]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
stl_function.h (_Select1st<>::operator()): Add templatized overloads.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f87bd04b
AS
12010-10-29 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2 Andrew Pinski <pinskia@gmail.com>
3
4 * tree.h (build_vector_from_val): Declare.
5 * tree.c (build_vector_from_val): New function.
6 * c-typeck.c (build_binary_op): Handle vector shifting.
7 * doc/extend.texi: Description of the vector shifting operation.
8
a01c666c
PK
92010-10-29 Paul Koning <pkoning@equallogic.com>
10
11 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
12 pdp11_secondary_memory_needed): Declare.
13 * config/pdp11/predicates.md (float_operand): New predicate.
14 * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
15 (cbranchdf4, movdf): Change predicate.
16 (movsf): Handle FPU register case.
17 (truncdfsf2, extendsfdf2): Add FPU register case.
18 * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
19 TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
20 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21 (pdp11_register_move_cost): Update cost matrix.
22 (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
23 pdp11_preferred_output_reload_class, pdp11_secondary_reload,
24 pdp11_secondary_memory_needed): New function.
25 (pdp11_return_in_memory): Add other float types.
26 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float
27 types.
28 (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
29 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
30 REGISTER_MOVE_COST): Delete.
31 (BASE_RETURN_VALUE_REG): Add other float types.
32
f3f63737
NC
332010-10-29 Nick Clifton<nickc@redhat.com>
34
35 * doc/invoke.texi: Document -mam34 and -mtune options.
36 * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
37 (mn10300_tune_cpu): New variable.
38 (mn10300_handle_option): Handle -mam34 and -mtune options.
39 (mn10300_option_override): Convert tune string into tune cpu
40 variable.
41 (mn10300_legitimate_constant_p): Delete unused local variable.
42 (is_load_insn): New function.
43 (is_store_insn): New function.
44 (mn10300_adjust_schedule_cost): New function.
45 (TARGET_SCHED_ADJUST_COST): Define.
46 * config/mn10300/mn10300.opt (mam34): New option.
47 (mtune): New option.
48 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34
49 support.
50 (enum processor_type): Add AM34.
51 (TARGET_AM34): Define.
52 * config/mn10300/mn10300.md (attr cpu): Add am34.
53 Add pipeline description.
54 (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates. Remove unneeded
55 alternatives. Add timing attribute.
56 (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
57 mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
58 mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
59 mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
60 mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
61 bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
62 bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
63 float_conditional_branch, jump, indirect_jump, tablejump,
64 call_internal, call_value_internal, zero_extendqisi2_am33,
65 zero_extendqisi2_mn10300, zero_extendhisi2_am33,
66 zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
67 extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
68 mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
69 mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
70 addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
71 fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
72 return_internal_regs, store_movm, return, call_next_insn):
73 Add timing attribute.
74 (am33_subsi3): Add missing clobber of CC_REG.
75 (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
76 (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
77 subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
78 extendqisi2): Fix predicates.
79 (call_internal, call_internal_value): Separate alternatives.
80 * config/mn10300/t-mn10300: Add AM34 multilib.
81
8a575d5a
PB
822010-10-29 Paolo Bonzini <bonzini@gnu.org>
83
84 * config/sh/sh.c (sh_promote_function_mode): Use
85 default_promote_function_mode if !sh_promote_prototypes.
86
74a28b08
PB
872010-10-28 Paolo Bonzini <bonzini@gnu.org>
88
89 * recog.c (split_all_insns): Remove dead code.
90
05fda848
NF
912010-10-28 Nathan Froyd <froydnj@codesourcery.com>
92
93 * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
94
73f3f841
NF
952010-10-28 Nathan Froyd <froydnj@codesourcery.com>
96
97 * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
98 (FUNCTION_ARG_ADVANCE): Delete.
99 * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
100 functions.
101 (cris_function_incoming_arg, cris_function_arg_advance): New
102 functions.
103 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
104 (TARGET_FUNCTION_ARG_ADVANCE): Define.
105
3acf034c
NF
1062010-10-28 Nathan Froyd <froydnj@codesourcery.com>
107
108 * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
109 * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
110 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
111 Take a const_tree and a bool.
112 (mcore_function_arg_advance): New function.
113 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
114
4665ac17
NF
1152010-10-28 Nathan Froyd <froydnj@codesourcery.com>
116
117 * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
118 * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
119 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
120 Take a const_tree and a bool.
121 (mcore_function_arg_advance): New function.
122 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
123
56f9413b
NF
1242010-10-28 Nathan Froyd <froydnj@codesourcery.com>
125
126 * config/h8300/h8300-protos.h (function_arg): Delete.
127 * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
128 * config/h8300/h8300.c (function_arg): Rename to...
129 (h8300_function_arg): ...this. Make static. Take a const_tree and
130 a bool.
131 (h8300_function_arg_advance): New function.
132 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
133
66d5ee14
NF
1342010-10-28 Nathan Froyd <froydnj@codesourcery.com>
135
136 * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
137 to...
138 * config/arc/arc.c (arc_function_arg): ...here and...
139 (arc_function_arg_advance): ...here. New functions.
140 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
141
a6a54b6f
NF
1422010-10-28 Nathan Froyd <froydnj@codesourcery.com>
143
144 * config/crx/crx-protos.h (crx_function_arg): Delete.
145 (crx_function_arg_advance): Delete.
146 * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
147 * config/crx/crx.c (crx_function_arg): Make static. Take a
148 const_tree and a bool.
149 (crx_function_arg_advance): Make static. Take a const_tree and
150 a bool.
151 (enough_regs_for_param): Take a const_tree.
152 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
153
da15f931
NF
1542010-10-28 Nathan Froyd <froydnj@codesourcery.com>
155
156 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
157 (m68hc11_function_arg_advance): Delete.
158 * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
159 (FUNCTION_ARG_ADVANCE): Delete.
160 * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
161 Take a const_tree and a bool.
162 (m68hc11_function_arg_advance): Likewise.
163 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
164
bf425ddd
NF
1652010-10-28 Nathan Froyd <froydnj@codesourcery.com>
166
167 * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
168 (xstormy16_function_arg_advance): Delete.
169 * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
170 (FUNCTION_ARG_ADVANCE): Delete.
171 * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
172 Take a const_tree and a bool.
173 (xstormy16_function_arg_advance): Likewise. Return void, updating
174 the CUM parameter instead.
175 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
176
4c05cbb2
NF
1772010-10-28 Nathan Froyd <froydnj@codesourcery.com>
178
179 * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
180 * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
181 (MOXIE_FUNCTION_ARG_SIZE): Move to...
182 * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
183 (moxie_function_arg): Make static. Take a const_tree and a bool.
184 (moxie_function_arg_advance): New function.
185 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
186
ce236858
NF
1872010-10-28 Nathan Froyd <froydnj@codesourcery.com>
188
189 * config/mn10300/mn10300-protos.h (function_arg): Delete.
190 * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
191 (FUNCTION_ARG_ADVANCE): Delete.
192 * config/mn10300/mn10300.c (function_arg): Rename to...
193 (mn10300_function_arg): ...this. Make static. Take a const_tree
194 and a bool.
195 (mn10300_function_arg_advance): New function.
196 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
197
24ef86d7
NF
1982010-10-28 Nathan Froyd <froydnj@codesourcery.com>
199
200 * config/iq2000/iq2000-protos.h (function_arg): Delete.
201 (function_arg_advance): Delete.
202 * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
203 * config/iq2000/iq2000.c (function_arg): Rename to...
204 (iq2000_function_arg): ...this. Make static. Take a const_tree and
205 a bool.
206 (function_arg_advance): Rename to...
207 (iq2000_function_arg_advance): ...this. Make static. Take a
208 const_tree and a bool.
209 (iq2000_expand_prologue): Call iq2000_function_arg_advance and
210 iq2000_function_arg.
211 (iq2000_pass_by_reference): Call iq2000_function_arg).
212 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
213
b60613c3
NF
2142010-10-28 Nathan Froyd <froydnj@codesourcery.com>
215
216 * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
217 * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
218 * config/fr30/fr30.c (fr30_num_arg_regs): Make static. Take a
219 const_tree.
220 (fr30_function_arg): New function.
221 (fr30_function_arg_advance): New function.
222 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
223
88a1f47f
NF
2242010-10-28 Nathan Froyd <froydnj@codesourcery.com>
225
226 * config/frv/frv-protos.h (frv_function_arg): Delete.
227 (frv_function_arg_advance): Delete.
228 * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
229 * config/frv/frv.c (frv_function_arg): Rename to...
230 (frv_function_arg_1): Make static. Take const_tree and bool
231 arguments.
232 (frv_function_arg, frv_function_incoming_arg): New functions.
233 (frv_function_arg_advance): Make static. Take a const_tree and
234 a bool.
235 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
236 (TARGET_FUNCTION_ARG_ADVANCE): Define.
237
f17aa4ad
UB
2382010-10-28 Uros Bizjak <ubizjak@gmail.com>
239
240 PR target/46153
241 * config/i386/sse.md (sse_movhlps_exp): Use destination
242 returned from ix86_fixup_binary_operands to expand insn.
243 (sse_movlhps_exp): Ditto.
244 (sse_loadhps_exp): Ditto.
245 (sse_loadlps_exp): Ditto.
246 (sse2_loadhpd_exp): Ditto.
247 (sse2_loadlpd_exp): Ditto.
f17aa4ad 248
d724c8f0
AS
2492010-10-28 Andrew Stubbs <ams@codesourcery.com>
250
251 * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
252 constants in thumb2.
253
c575a65f
EB
2542010-10-28 Eric Botcazou <ebotcazou@adacore.com>
255
256 * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
257 arithmetics in masking operations.
258 (contains_muldiv): Likewise.
259 (try_combine): Likewise.
260 (find_split_point): Likewise.
261 (combine_simplify_rtx): Likewise.
262 (simplify_if_then_else): Likewise.
263 (simplify_set): Likewise.
264 (expand_compound_operation): Likewise.
265 (expand_field_assignment): Likewise.
266 (make_extraction): Likewise.
267 (extract_left_shift): Likewise.
268 (make_compound_operation): Likewise.
269 (force_to_mode): Likewise.
270 (make_field_assignment): Likewise.
271 (reg_nonzero_bits_for_combine): Likewise.
272 (simplify_shift_const_1): Likewise.
273 (simplify_comparison): Likewise.
274
eb93b893
SE
2752010-10-27 Nathan Froyd <froydnj@codesourcery.com>
276
277 * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
278 (ia64_function_arg_advance): Delete.
279 * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
280 (FUNCTION_ARG_ADVANCE): Delete.
281 * config/ia64/ia64.c (ia64_function_arg): Rename to...
282 (ia64_function_arg_1): ...this. Make static. Take const_tree and
283 bool arguments.
284 (ia64_function_arg, ia64_function_incoming_arg): New functions.
285 (ia64_function_arg_advance): Make static. Take a const_tree and
286 a bool.
287 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
288 (TARGET_FUNCTION_ARG_ADVANCE): Define.
289
2902010-10-27 Steve Ellcey <sje@cup.hp.com>
291
292 * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
293 (TARGET_GET_RAW_ARG_MODE): New.
294 * doc/tm.texi: Regenerate.
295 * target.def (get_raw_result_mode): New.
296 (get_raw_arg_mode): New.
297 * targhooks.c (default_get_reg_raw_mode): New.
298 * targhooks.h (default_get_reg_raw_mode): New.
299 * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
300 (apply_result_size): Ditto.
301 * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
302 (TARGET_GET_RAW_RESULT_MODE): Define.
303 (TARGET_GET_RAW_ARG_MODE): Ditto.
304
4a8f6a63
EB
3052010-10-27 Eric Botcazou <ebotcazou@adacore.com>
306
307 * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
308 for newer Solaris 10 release.
309 (sparc_fallback_frame_state): Likewise.
310
22192559
JM
3112010-10-27 Jason Merrill <jason@redhat.com>
312
313 * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
314 variables sooner.
315
84fabdde
JZ
3162010-10-27 Jie Zhang <jie@codesourcery.com>
317 Maxim Kuvyrkov <maxim@codesourcery.com>
318
319 * haifa-sched.c (ISSUE_POINTS): Remove.
320 (max_issue): Don't issue more than issue_rate instructions.
321
9c042d80
ILT
3222010-10-27 Ian Lance Taylor <iant@google.com>
323
324 PR target/46197
325 * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
326 (split_stack_return): Replace UNSPEC_STACK_CHECK with
327 UNSPECV_SPLIT_STACK_RETURN.
328
2767a7f2
L
3292010-10-27 H.J. Lu <hongjiu.lu@intel.com>
330
331 * config/i386/i386-protos.h (init_cumulative_args): Add an int.
332
333 * config/i386/i386.c (block_info): New.
334 (BLOCK_INFO): Likewise.
335 (call_avx256_state): Likewise.
336 (check_avx256_stores): Likewise.
337 (move_or_delete_vzeroupper_2): Likewise.
338 (move_or_delete_vzeroupper_1): Likewise.
339 (move_or_delete_vzeroupper): Likewise.
340 (use_avx256_p): Likewise.
341 (function_pass_avx256_p): Likewise.
342 (flag_opts): Add -mvzeroupper.
343 (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
344 default for TARGET_AVX. Turn off MASK_VZEROUPPER if TARGET_AVX
345 is disabled.
346 (ix86_function_ok_for_sibcall): Disable sibcall if we need to
347 generate vzeroupper.
348 (init_cumulative_args): Add an int to indicate caller. Set
349 use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
350 based on return type.
351 (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
352 caller_pass_avx256_p based on argument type.
353 (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
354 is used, but not returned by caller.
f17aa4ad 355 (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
2767a7f2
L
356 (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
357 is used.
358 (ix86_minimum_alignment): Likewise.
359 (ix86_expand_special_args_builtin): Set target to
360 GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
361 (ix86_reorg): Run the vzeroupper optimization if needed.
362
363 * config/i386/i386.h (ix86_args): Add caller.
364 (INIT_CUMULATIVE_ARGS): Updated.
365 (machine_function): Add use_vzeroupper_p, use_avx256_p,
366 caller_pass_avx256_p, caller_return_avx256_p,
367 callee_pass_avx256_p and callee_return_avx256_p.
368
369 * config/i386/i386.opt (-mvzeroupper): New.
370
371 * config/i386/predicates.md (vzeroupper_operation): Removed.
372
373 * config/i386/sse.md (avx_vzeroupper): Removed.
374 (*avx_vzeroupper): Removed.
375 (avx_vzeroupper): New.
376
377 * doc/invoke.texi: Document -mvzeroupper.
378
22bc122e
EB
3792010-10-27 Eric Botcazou <ebotcazou@adacore.com>
380
381 * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
382 * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
383 * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
384
5d0d1564 3852010-10-27 Eric Botcazou <ebotcazou@adacore.com>
f17aa4ad 386 Olivier Hainque <hainque@adacore.com>
5d0d1564
EB
387
388 * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
389 of EBP. Do not restore reg #9. Remove +1 adjustment to EIP and set
390 fs->signal_frame instead.
391
200290f2
NP
3922010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
393
394 * c-parser.c (c_parser_objc_at_property_declaration): Recognize
395 RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
396 Do not use objc_set_property_attr, but use local variables
397 instead. Detect repeated usage of setter, getter and ivar
398 attributes. Improved error processing when a setter name does not
399 end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
400 that the token is a keyword. Updated call to
401 objc_add_property_declaration.
402
f614132b
NP
4032010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
404
405 * c-parser.c (c_parser_objc_at_property): Renamed to
406 c_parser_objc_at_property_declaration. Updated calls to
407 objc_add_property_variable, now objc_add_property_declaration.
408 Code rewritten to be much more robust in recovering from syntax
409 errors. Added comments.
410 (c_parser_objc_property_attrlist): Removed.
411 (c_parser_external_declaration): Updated calls to
412 c_parser_objc_at_property, now
413 c_parser_objc_at_property_declaration.
414 (c_parser_objc_methodprotolist): Same change.
f17aa4ad 415
3e1484c9
L
4162010-10-26 H.J. Lu <hongjiu.lu@intel.com>
417
f17aa4ad 418 * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
3e1484c9 419
d5fae457
JH
4202010-10-26 Jan Hubicka <jh@suse.cz>
421
422 * ipa.c (process_references): Enqueue all referenced nodes;
423 mark as reachable only non-external nodes.
424 (cgraph_remove_unreachable_nodes): All referenced nodes should
425 be enqueued; remove bogues node->needed check.
426
ed62e0d9
JH
4272010-10-26 Jan Hubicka <jh@suse.cz>
428
f17aa4ad
UB
429 * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
430 to represent OMP.
ed62e0d9 431
74288524
L
4322010-10-26 H.J. Lu <hongjiu.lu@intel.com>
433
434 * config/i386/i386.md (split_stack_return): Replace
435 unspec_volatile with unspec.
436
d47abcca
JW
4372010-10-26 Jonathan Wakely <jwakely.gcc@gmail.com>
438
439 * doc/install.texi: Fix typo in --with-sysroot description.
440
892ae21c
JH
4412010-10-26 Jan Hubicka <jh@suse.cz>
442
443 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
444 Use info provided by linker plugin.
445
73c982bc
JM
4462010-10-26 Jason Merrill <jason@redhat.com>
447
448 * varasm.c (constructor_static_from_elts_p): Don't require a
449 CONSTRUCTOR to have elements to be suitable for static
450 initialization. Allow ARRAY_TYPE as well.
451
530f3a1b
JH
4522010-10-26 Jan Hubicka <jh@suse.cz>
453
454 PR middle-end/45736
455 * cgraph.c (cgraph_set_readonly_flag): Rename to...
456 (cgraph_set_const_flags) ... this one; get also looping argument;
457 clear constructor/destructor flags.
458 (cgraph_set_pure_flag): Likewise.
459 (cgraph_set_looping_const_or_pure_flag): Remove.
460 (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
461 to optimize away static ctors/dtors; it does not work on inline clones;
462 external functions can always be rmeoved.
f17aa4ad
UB
463 (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
464 inline clones; in LTO external functions always can go.
530f3a1b 465 (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
f17aa4ad
UB
466 (cgraph_mark_address_taken_node): Assert that we are not taking
467 address of inline clone.
530f3a1b
JH
468 (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
469 external functions.
f17aa4ad
UB
470 * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
471 address taken.
472 (ipcp_initialize_node_lattices): Only local functions can be
473 handled without cloning.
530f3a1b
JH
474 * cgraph.h (cgraph_set_readonly_flag,
475 cgraph_set_looping_const_or_pure_flag): Remove.
476 (cgraph_set_const_flag): Declare.
477 (cgraph_set_pure_flag): Update.
478 * ipa-pure-const (propagate_pure_const, local_pure_const): Update
479 flags setting code.
f17aa4ad
UB
480 * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
481 look at inline clones; fix handling of external definitions.
530f3a1b
JH
482 (cgraph_postorder): Do not look at inline clones in the first pass.
483 (function_and_variable_visibility): Drop constructors/destructor
484 flags at pure and const functions.
485 * tree-profile.c (tree_profiling): Update.
486 * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
487 address taken; external functions do not account to whole program size.
f17aa4ad
UB
488 (cgraph_decide_inlining): Likewise; do not try to inline
489 functions already inlined.
530f3a1b 490
0d600fce
JZ
4912010-10-26 Jie Zhang <jie@codesourcery.com>
492
493 * doc/invoke.texi: Improve documentation of
494 -fstrict-volatile-bitfields.
495
75264e61
IR
4962010-10-26 Ira Rosen <irar@il.ibm.com>
497
498 PR tree-optimization/46167
499 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
500 is basic block for the statement.
501
6e2f8c15
PK
5022010-10-26 Paul Koning <ni1d@arrl.net>
503
504 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
505 current definition of struct_real_format.
506
f28e93a8
L
5072010-10-26 H.J. Lu <hongjiu.lu@intel.com>
508
509 PR target/44948
510 * config/i386/i386.c (ix86_old_function_arg_boundary): New.
511 (ix86_function_arg_boundary): Always align parameters on stack
f17aa4ad 512 in 64bit and align parameters with alignment >= 16byte on stack
f28e93a8
L
513 in 32bit. Warn alignment change.
514
76d8a30a
ILT
5152010-10-26 Ian Lance Taylor <iant@google.com>
516
517 PR middle-end/45687
518 * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
519 offset.
520
f17aa4ad 5212010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
90ecaf87
RRC
522
523 Implement opaque-enum-specifiesr for C++0x
524 * tree.h (ENUM_IS_OPAQUE): New.
525 * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
526
f5c88dbf
JZ
5272010-10-26 Jie Zhang <jie@codesourcery.com>
528
529 * stor-layout.c (layout_decl): Use the field's type to
f17aa4ad 530 determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
f5c88dbf
JZ
531 * config/arm/arm.c (arm_override_options): Default to
532 -fstrict-volatile-bitfields.
533
7021d5df
PK
5342010-10-25 Paul Koning <ni1d@arrl.net>
535
536 * config/pdp11/pdp11.md: Add define_constants for register
537 numbers, branch offset limits.
538 * config/pdp11/pdp11.c: Use named constants instead of numbers.
539 * config/pdp11.pdp11.h: Ditto.
540
7fa2619a
EB
5412010-10-25 Eric Botcazou <ebotcazou@adacore.com>
542
543 * configure.ac: Use $cpu_type instead of $target to define the nop.
544 * configure: Regenerate.
545
8150f05c
JZ
5462010-10-25 Jie Zhang <jie@codesourcery.com>
547
7fa2619a
EB
548 * combine.c (try_combine): If insns need to be kept around, check that
549 they can be copied in the merged instruction.
8150f05c 550
12929514
EB
5512010-10-24 Eric Botcazou <ebotcazou@adacore.com>
552
553 * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
554 has been modified.
555 (convert_regs_2): Likewise. Adjust calls to convert_regs_1.
556 (convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
557 it has been modified.
558
0e7e1527
EB
5592010-10-24 Eric Botcazou <ebotcazou@adacore.com>
560
561 * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
562
0f237806
PK
5632010-10-24 Paul Koning <ni1d@arrl.net>
564
565 * config/pdp11/pdp11.md: Change length attribute to be in bytes.
566 * config/pdp11/pdp11.c (output_jump): Ditto.
567
40d398e0
ILT
5682010-10-24 Ian Lance Taylor <iant@google.com>
569
f17aa4ad 570 * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
40d398e0 571
4cce988e
EB
5722010-10-24 Eric Botcazou <ebotcazou@adacore.com>
573
574 * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
575 least one insn with a locus corresponding to an edge's goto_locus,
576 disregard non-fallthru edges to the exit block and merge the blocks
577 created for the same goto_locus.
578
efe5e5a0
JM
5792010-10-23 Joseph Myers <joseph@codesourcery.com>
580
581 * gcc.c (n_switches_alloc_debug_check): New.
582 (set_option_handlers): New.
583 (process_command): Use set_option_handlers.
f17aa4ad 584 (do_self_spec): Pass spec-generated options through option handlers.
efe5e5a0
JM
585 (main): Also save and restore n_switches_alloc when swapping
586 switch arrays.
587
487a9a3e
RH
5882010-10-23 Richard Henderson <rth@redhat.com>
589
590 PR target/46144
591 * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
592 (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
593 Honor matching operands when splitting to XOR.
594
0e1b8b10
ILT
5952010-10-23 Ian Lance Taylor <iant@google.com>
596
597 * tree-vrp.c (extract_range_from_binary_expr): If
598 flag_non_call_exceptions don't eliminate division by zero.
599 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
600
18ed6ee4
NF
6012010-10-23 Nathan Froyd <froydnj@codesourcery.com>
602
603 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
604 __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
605 __ORDER_PDP_ENDIAN__.
606 * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
607 (struct DWstruct): Define based on __BYTE_ORDER__.
608 * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
609 (struct INTstruct): Define based on __BYTE_ORDER__.
610 * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
611 (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
612 * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
613 * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
614 * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
615 * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
616 * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
617 * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
618 * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
619 * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
620 * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
621 * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
622 * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
623 * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
624 * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
625 * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
626 * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
627 * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
628 * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
629 * doc/tm.texi: Regenerate.
630 * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
631 (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
632
646e6f41
JZ
6332010-10-23 Jie Zhang <jie@codesourcery.com>
634
635 PR rtl-optimization/37360
636 * config/mips/mips.c (cached_can_issue_more): New local variable.
637 (mips_sched_reorder_1): New.
638 (mips_sched_reorder): Use mips_sched_reorder_1.
639 (mips_sched_reorder2): New.
640 (mips_variable_issue): Set cached_can_issue_more.
641 (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
642 instead of mips_sched_reorder.
643
f17aa4ad 644 Revert:
646e6f41
JZ
645 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
646 PR rtl-optimization/37360
647 * haifa-sched.c (max_issue): Do not assert that we never issue more
648 insns than issue_rate. Add comment.
649
692ad9aa
EB
6502010-10-22 Eric Botcazou <ebotcazou@adacore.com>
651
652 * gimplify.c (gimplify_variable_sized_compare): Preserve the source
653 location info of the expression.
654
5fd5d713
DD
6552010-10-22 DJ Delorie <dj@redhat.com>
656
b3f85ff2
DD
657 * doc/extend.texi (Named Address Spaces): Document the M32C named
658 address space.
659
5fd5d713
DD
660 * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
661 __far address space.
662 * config/m32c/m32c.h (ADDR_SPACE_FAR): New. Add support for
663 "__far" address space for R8C and M16C processor variants.
664 * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
665 (far_addr_space_p): New.
666 (encode_pattern_1): Add sign and zero extend support.
667 (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
668 (m32c_extra_constraint_p2): Add SF constraint.
669 (m32c_legitimate_address_p): Support __far addresses.
670 (m32c_addr_space_pointer_mode): New.
671 (m32c_addr_space_address_mode): New.
672 (m32c_addr_space_legitimate_address_p): New.
673 (m32c_addr_space_legitimize_address): New.
674 (m32c_addr_space_subset_p): New.
675 (m32c_addr_space_convert): New.
676 (conversions): Add __far operand patterns.
f17aa4ad 677 (m32c_prepare_move): Force constants into registers for __far moves.
5fd5d713
DD
678 (m32c_split_move): __far moves are always split.
679 * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
680 * config/m32c/mov.md (mov<mode>_far_op1): New.
681 (mov<mode>_far_op2): New.
682 (movqi_op): Add __far (SF) support.
683 (movhi_op): Likewise.
684 (movsi_splittable): Split A1A0 also.
685
f17aa4ad
UB
6862010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
687 Andrew Pinski <pinskia@gmail.com>
30cd1c5d
AS
688
689 * c-typeck.c (build_array_ref): Handle subscripting of vectors.
690 * doc/extend.texi: New paragraph
691
5c958bda
PK
6922010-10-22 Paul Koning <ni1d@arrl.net>
693
694 * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
695
f6bac694
DD
6962010-10-22 DJ Delorie <dj@redhat.com>
697
698 * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
699
4d1bc60a
PK
7002010-10-22 Paul Koning <ni1d@arrl.net>
701
702 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
703
834d5dce
RH
7042010-10-22 Richard Henderson <rth@redhat.com>
705
706 * config/i386/i386.c (ix86_builtin_vectorized_function): Add
707 cases for __builtin_fma and __builtin_fmaf.
708
7a12785c
RH
7092010-10-22 Richard Henderson <rth@redhat.com>
710
711 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
712 NEG+USE for vectors as well.
713 * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
714 and splitter.
715
c3fb2eb4
JM
7162010-10-22 Joseph Myers <joseph@codesourcery.com>
717
718 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
719 SWITCH_CURTAILS_COMPILATION): Remove.
f17aa4ad 720 * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
c3fb2eb4
JM
721 * doc/tm.texi: Regenerate.
722 * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
723
6a08ffca
CF
7242010-10-22 Changpeng Fang <changpeng.fang@amd.com>
725
4d138338
CF
726 * config/i386/bdver1.md: New file.
727 * config/i386/i386.md (include "bdver1.md"): Invoke the
6a08ffca
CF
728 pipeline description for bdver1.
729 (x86_sahf_1): Add "bdver1_decode" attribute.
730 (*cmpfp_i_mixed): Likewise.
731 (*cmpfp_i_sse): Likewise.
732 (*cmpfp_i_i387): Likewise.
733 (*cmpfp_iu_mixed): Likewise.
734 (*cmpfp_iu_sse): Likewise.
735 (*cmpfp_iu_387): Likewise.
736 (*swap<mode>,*swap<mode>_1): Likewise.
737 (fixuns_trunc<mode>hi2): Likewise.
738 (fix_trunc<mode>si_sse): Likewise.
739 (x86_fnstcw_1): Likewise.
740 (x86_fldcw_1): Likewise.
741 (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
742 (*floatsi<mode>2_vector_mixed): Likewise.
743 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
744 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
745 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
746 (*floatsi<mode>2_vector_sse_with_temp): Likewise.
747 (*floatsi<mode>2_vector_sse): Likewise.
748 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
749 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
750 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
751 (*mul<mode>3_1): Likewise.
752 (*mulsi3_1_zext): Likewise.
753 (*mulhi3_1): Likewise.
754 (*mulqi3_1): Likewise.
755 (*<u>mul<mode><dwi>3_1): Likewise.
756 (*<u>mulqihi3_1): Likewise.
757 (*<s>muldi3_highpart_1): Likewise.
758 (*<s>mulsi3_highpart_1): Likewise.
759 (*<s>mulsi3_highpart_zext): Likewise.
760 (x86_64_shld): Likewise.
761 (x86_shld): Likewise.
762 (x86_64_shrd): Likewise.
763 (x86_shrd): Likewise.
764 (sqrtxf2): Likewise.
765 (sqrt_extend<mode>xf2_i387): Likewise.
766 (*sqrt<mode>2_sse): Likewise.
4d138338 767 * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6a08ffca
CF
768 (sse_cvtsi2ssq): Likewise.
769 (sse_cvtss2si): Likewise.
770 (sse_cvtss2si_2): Likewise.
771 (sse_cvtss2siq): Likewise.
772 (sse_cvtss2siq_2): Likewise.
773 (sse_cvttss2si): Likewise.
774 (sse_cvttss2siq): Likewise.
775 (sse2_cvtpi2pd): Likewise.
776 (sse2_cvttpd2pi): Likewise.
777 (sse2_cvtsi2sd): Likewise.
778 (sse2_cvtsi2sdq): Likewise.
779 (sse2_cvtsd2si): Likewise.
780 (sse2_cvtsd2si_2): Likewise.
781 (sse2_cvtsd2siq): Likewise.
782 (sse2_cvtsd2siq_2): Likewise.
783 (sse2_cvttsd2si): Likewise.
784 (sse2_cvttsd2siq): Likewise.
785 (*sse2_cvtpd2dq): Likewise.
786 (*sse2_cvttpd2dq): Likewise.
787 (sse2_cvtsd2ss): Likewise.
788 (sse2_cvtss2sd): Likewise.
789 (*sse2_cvtpd2ps): Likewise.
790 (sse2_cvtps2pd): Likewise.
791
07db7d35
RG
7922010-10-22 Richard Guenther <rguenther@suse.de>
793
794 PR middle-end/46137
795 * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
796 remove the virtual operands if they are not needed.
797
d8c801fd
CF
7982010-10-22 Changpeng Fang <changpeng.fang@amd.com>
799
4d138338 800 * config/i386/i386.c (processor_costs bdver1_cost): Update
d8c801fd
CF
801 insn costs and architectural parameters for bdver1.
802
4490cae6
RG
8032010-10-22 Richard Guenther <rguenther@suse.de>
804
805 * gimple.h (gimple_register_canonical_type): Declare.
806 * gimple.c (gimple_canonical_types): New global hashtable.
807 (struct gimple_type_leader_entry_s): New type.
808 (gimple_type_leader): New global cache.
809 (gimple_lookup_type_leader): New function.
810 (gtc_visit): Query the proper cache.
811 (gimple_types_compatible_p): Likewise.
812 (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
813 (gimple_canonical_type_eq): New function.
814 (gimple_register_canonical_type): Likewise.
815 (print_gimple_types_stats): Adjust for gimple_canonical_types.
816 (free_gimple_type_tables): Likewise. Free gimple_type_leader.
817 * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
818 gimple_types_compatible_p for LTO.
819
5ab2c5cb
UB
8202010-10-22 Uros Bizjak <ubizjak@gmail.com>
821
822 PR target/46098
823 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
824 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
825 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
826 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
827 (<sse>_movu<ssemodesuffix>): New expander.
828 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
829 (avx_movdqu<avxmodesuffix>): New expander.
830 (*sse2_movdqu): Rename from sse2_movdqu.
831 (sse2_movdqu): New expander.
832
d8ba5b19
RG
8332010-10-22 Richard Guenther <rguenther@suse.de>
834
835 PR tree-optimization/45720
836 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
837 Handle negative step.
838 (vect_enhance_data_refs_alignment): Likewise.
839 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
840 (vect_create_cond_for_align_checks): Likewise.
841 (vect_create_cond_for_alias_checks): Likewise.
842
57416708
IR
8432010-10-22 Ira Rosen <irar@il.ibm.com>
844
845 PR tree-optimization/46126
846 * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
847 vectorizable_shift in case of basic block vectorization.
848
3020190e
JM
8492010-10-22 Joseph Myers <joseph@codesourcery.com>
850
851 * target.h (enum opt_levels, struct default_options): New.
852 * target.def (handle_ofast): Remove hook.
853 (target_option.optimization): Change to
854 target_option.optimization_table.
855 * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
856 TARGET_OPTION_OPTIMIZATION_TABLE.
857 (CAN_DEBUG_WITHOUT_FP): Remove.
858 * doc/tm.texi: Regenerate.
859 * opts.c (maybe_default_option, maybe_default_options,
860 default_options_table): New.
861 (default_options_optimization): Take extra parameters. Don't
862 assert that global_options and global_options_set are in use. Use
863 maybe_default_options.
864 (decode_options): Pass extra parameters to
865 default_options_optimization.
866 * common.opt (falign-loops): Use value 0 with Var.
867 (frerun-cse-after-loop, ftree-ter): Remove Init.
868 * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
869 TARGET_OPTION_OPTIMIZATION): Remove.
870 * targhooks.c (empty_optimization_table): New.
871 * targhooks.h (empty_optimization_table): Declare.
872 * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
873 * config/alpha/alpha.c (alpha_option_optimization_table,
874 TARGET_OPTION_OPTIMIZATION_TABLE): New.
875 * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
876 * config/arm/arm.c (arm_option_optimization: Change to
877 arm_option_optimization_table.
878 (TARGET_OPTION_OPTIMIZATION): Change to
879 TARGET_OPTION_OPTIMIZATION_TABLE.
880 * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
881 * config/avr/avr.c (avr_option_optimization_table,
882 TARGET_OPTION_OPTIMIZATION_TABLE): New.
883 * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
884 * config/cris/cris.c (cris_option_optimization): Change to
885 cris_option_optimization_table.
886 (TARGET_OPTION_OPTIMIZATION): Change to
887 TARGET_OPTION_OPTIMIZATION_TABLE.
888 * config/crx/crx.c (crx_option_optimization): Change to
889 crx_option_optimization_table.
890 (TARGET_OPTION_OPTIMIZATION): Change to
891 TARGET_OPTION_OPTIMIZATION_TABLE.
892 * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
893 * config/fr30/fr30.c (fr30_option_optimization_table,
894 TARGET_OPTION_OPTIMIZATION_TABLE): New.
895 * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
896 * config/frv/frv.c (frv_option_optimization_table,
897 TARGET_OPTION_OPTIMIZATION_TABLE): New.
898 * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
899 * config/h8300/h8300.c (h8300_option_optimization): Change to
900 h8300_option_optimization_table.
901 (TARGET_OPTION_OPTIMIZATION): Change to
902 TARGET_OPTION_OPTIMIZATION_TABLE.
903 * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
904 * config/i386/i386.c (ix86_option_optimization): Change to
905 ix86_option_optimization_table.
906 (TARGET_OPTION_OPTIMIZATION): Change to
907 TARGET_OPTION_OPTIMIZATION_TABLE.
908 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
909 as initializer.
910 * config/ia64/ia64.c (ia64_option_optimization): Change to
911 ia64_option_optimization_table.
912 (TARGET_OPTION_OPTIMIZATION): Change to
913 TARGET_OPTION_OPTIMIZATION_TABLE.
914 * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
915 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
916 initializer.
917 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
918 TARGET_OPTION_OPTIMIZATION_TABLE): New.
919 * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
920 * config/lm32/lm32.c (lm32_option_optimization_table,
921 TARGET_OPTION_OPTIMIZATION_TABLE): New.
922 * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
923 * config/m32r/m32r.c (m32r_option_optimization): Change to
924 m32r_option_optimization_table.
925 (TARGET_OPTION_OPTIMIZATION): Change to
926 TARGET_OPTION_OPTIMIZATION_TABLE.
927 * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
928 CAN_DEBUG_WITHOUT_FP): Remove.
929 * config/mcore/mcore.c (mcore_option_optimization): Change to
930 mcore_option_optimization_table.
931 (TARGET_OPTION_OPTIMIZATION): Change to
932 TARGET_OPTION_OPTIMIZATION_TABLE.
933 * config/mep/mep.c (mep_option_optimization): Change to
934 mep_option_optimization_table.
935 (TARGET_OPTION_OPTIMIZATION): Change to
936 TARGET_OPTION_OPTIMIZATION_TABLE.
937 * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
938 * config/microblaze/microblaze.c
939 (microblaze_option_optimization_table,
940 TARGET_OPTION_OPTIMIZATION_TABLE): New.
941 * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
942 * config/mips/mips.c (mips_option_optimization_table,
943 TARGET_OPTION_OPTIMIZATION_TABLE): New.
944 * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
945 * config/mmix/mmix.c (mmix_option_optimization): Change to
946 mmix_option_optimization_table.
947 (TARGET_OPTION_OPTIMIZATION): Change to
948 TARGET_OPTION_OPTIMIZATION_TABLE.
949 * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
950 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
951 TARGET_OPTION_OPTIMIZATION_TABLE): New.
952 * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
953 * config/pa/pa.c (pa_option_optimization_table,
954 TARGET_OPTION_OPTIMIZATION_TABLE): New.
955 * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
956 * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
957 pdp11_option_optimization_table.
958 (TARGET_OPTION_OPTIMIZATION): Change to
959 TARGET_OPTION_OPTIMIZATION_TABLE.
960 * config/picochip/picochip.c (picochip_option_optimization_table,
961 TARGET_OPTION_OPTIMIZATION_TABLE): New.
962 * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
963 * config/rs6000/rs6000.c (rs6000_option_optimization_table,
964 TARGET_OPTION_OPTIMIZATION_TABLE): New.
965 * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
966 * config/rx/rx.c (rx_option_optimization_table,
967 TARGET_OPTION_OPTIMIZATION_TABLE): New.
968 * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
969 * config/s390/s390.c (s390_option_optimization): Change to
970 s390_option_optimization_table.
971 (s390_option_override): Update comment.
972 (TARGET_OPTION_OPTIMIZATION): Change to
973 TARGET_OPTION_OPTIMIZATION_TABLE.
974 * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
975 * config/score/score.c (score_option_optimization_table,
976 TARGET_OPTION_OPTIMIZATION_TABLE): New.
977 * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
978 * config/sh/sh.c (sh_option_optimization): Change to
979 sh_option_optimization_table.
980 (TARGET_OPTION_OPTIMIZATION): Change to
981 TARGET_OPTION_OPTIMIZATION_TABLE.
982 (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
983 (sh_option_override, expand_block_move, multcosts, find_barrier,
984 barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
985 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
986 (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
987 STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
988 instead of TARGET_SMALLCODE.
989 * config/sh/sh.opt (mspace): Make into an alias for -Os.
990 * config/sparc/sparc.c (sparc_option_optimization_table,
991 TARGET_OPTION_OPTIMIZATION_TABLE): New.
992 * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
993 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
994 TARGET_OPTION_OPTIMIZATION_TABLE): New.
995 * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
996 * config/v850/v850.c (v850_option_optimization): Change to
997 v850_option_optimization_table.
998 (TARGET_OPTION_OPTIMIZATION): Change to
999 TARGET_OPTION_OPTIMIZATION_TABLE.
1000 * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
1001 * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
1002 xtensa_option_optimization_table.
1003 (TARGET_OPTION_OPTIMIZATION): Change to
1004 TARGET_OPTION_OPTIMIZATION_TABLE.
1005 * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1006
26705988
IS
10072010-10-21 Iain Sandoe <iains@gcc.gnu.org>
1008
1009 Based on the CFString implementation in FSF apple/trunk branch.
5ab2c5cb 1010
26705988
IS
1011 * target.def (objc_construct_string): New Hook.
1012 * doc/tm.texi (objc_construct_string): Document.
1013 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
1014 * config/t-darwin: Amend build rules for darwin.o.
1015 * config/darwin.opt: Add cfstrings flags.
1016 * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
1017 (darwin_objc_construct_string): New.
1018 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
1019 * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
1020 * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
1021 (darwin_fold_builtin): Likewise.
1022 (darwin_build_constant_cfstring): Likewise.
1023 (darwin_objc_construct_string): Likewise.
1024 (darwin_cfstring_p): Likewise.
1025 (darwin_enter_string_into_cfstring_table): Likewise.
1026 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
5ab2c5cb 1027 * config/darwin.c (darwin_running_cxx): New var.
26705988
IS
1028 (machopic_select_section): Return cfstring_constant_object_section.
1029 (darwin_override_options): Set darwin_running_cxx.
1030 (add_builtin_field_decl): New.
1031 (darwin_init_cfstring_builtins): New.
1032 (darwin_build_constant_cfstring): New.
1033 (darwin_fold_builtin): New.
1034 (cfstring_hash): New.
1035 (cfstring_eq): New.
1036 (darwin_enter_string_into_cfstring_table): New.
1037 * config/darwin-sections.def (cfstring_constant_object_section): New.
1038 * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
1039 (TARGET_OBJC_CONSTRUCT_STRING): Define.
1040
0fd2eac2
NF
10412010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1042
1043 * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
1044 TYPE_STUB_DECL instead of TREE_CHAIN.
1045 * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
1046 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
1047 * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
1048 * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
1049 * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
1050 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
1051 Likewise.
1052 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
1053
62519f7f
JZ
10542010-10-22 Jie Zhang <jie@codesourcery.com>
1055
1056 * expr.c (emit_group_load_1): Update calls to extract_bit_field.
1057 (copy_blkmode_from_reg): Likewise.
1058 (read_complex_part): Likewise.
1059 (expand_expr_real_1): Calculate packedp and pass it to
1060 extract_bit_field.
1061 * expr.h (extract_bit_field): Update declaration.
1062 * calls.c (store_unaligned_arguments_into_pseudos): Update call
1063 to extract_bit_field.
1064 * expmed.c (extract_fixed_bit_field): Update calls to
1065 extract_fixed_bit_field.
1066 (store_split_bit_field): Likewise.
1067 (extract_bit_field_1): Add new argument packedp.
1068 (extract_bit_field): Add new argument packedp.
1069 (extract_fixed_bit_field): Add new argument packedp and let
1070 packed attribute override volatile.
1071 * stmt.c (expand_return): Update call to extract_bit_field.
1072
0aa88287
NF
10732010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1074
1075 * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
1076
cefb375a
NF
10772010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1078
1079 * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
1080 of gcc_checking_assert.
1081 * sel-sched.c (code_motion_process_successors): Likewise.
1082
50a36e42
EB
10832010-10-21 Eric Botcazou <ebotcazou@adacore.com>
1084
1085 * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
1086 when stopping because of a different locus on edge or insn.
1087 (try_optimize_cfg): Add comment.
1088 * cfgrtl.c (rtl_merge_blocks): Tweak log message. If the destination
1089 block is a forwarder block, propagate locus on the edge.
1090 (cfg_layout_merge_blocks): Likewise.
1091
233a46c8
UB
10922010-10-21 Uros Bizjak <ubizjak@gmail.com>
1093
1094 PR target/45946
1095 * config/i386/i386.md (*pushti2): New insn pattern.
1096 (pushti2 splitter): New insn splitter.
1097 (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
1098 DWI mode iterator.
1099
19ce9cf1
PK
11002010-10-21 Paul Koning <ni1d@arrl.net>
1101
1102 * config/pdp11/pdp11-protos.md (arith_operand,
1103 const_immediate_operand, expand_shift_operand,
1104 immediate15_operand): Delete
1105 * config/pdp11/pdp11.c: Ditto.
1106 * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
1107 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1108 EXTRA_CONSTRAINT): Delete.
1109 * config/pdp11/pdp11.md (various): Use standard constraints
1110 instead of removed ones.
1111 * config/pdp11/constraints.md: New file.
1112 * config/pdp11/predicates.md: New file.
1113
4fcf718a
BM
11142010-10-21 Bingfeng Mei <bmei@broadcom.com>
1115
1116 PR c/45834
233a46c8
UB
1117 * alias.c (true_dependence_1): Remove obsolete check for QImode.
1118 (may_alias_p): Ditto.
1119
ae1f6fce
MJ
11202010-10-21 Martin Jambor <mjambor@suse.cz>
1121
1122 PR tree-optimization/45875
1123 * tree.c (get_binfo_at_offset): Remove initial zero offset test.
1124
9e2995b2
NF
11252010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1126
1127 * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
1128 variables.
1129 (create_new_def_for): Likewise.
1130
e7ab5593
NC
11312010-10-21 Nick Clifton <nickc@redhat.com>
1132
1133 * config/mn10300/mn10300.c: Fold code to 80-character width.
233a46c8
UB
1134 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1135 MEM, CONST_INT and CONST_DOUBLE.
e7ab5593
NC
1136 (targetm): Move initialization to end of file.
1137 (print_operand): Rename to mn10300_print_operand.
1138 (print_operand_address): Rename to mn10300_print_operand_address.
1139 (can_use_return_insn): Rename to mn10300_can_use_return_insn.
1140 (expand_prologue): Rename to mn10300_expand_prologue.
1141 (expand_epilogue): Rename to mn10300_expand_epilogue.
1142 (initial_offset): Rename to mn10300_initial_offset.
1143 (function_arg): Rename to mn10300_function_arg.
1144 (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
1145 (symbolic_operand): Rename to mn10300_symbolic_operand.
1146 (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
1147 (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
1148 * config/mn10300/mn10300-protos.h: Update prototypes.
1149 * config/mn10300/mn10300.h: Fold code to 80-character width.
233a46c8
UB
1150 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1151 MEM, CONST_INT and CONST_DOUBLE.
1152 (CPP_SPEC): Move to...
1153 (TARGET_CPU_CPP_BUILTINS): ... here.
e7ab5593 1154 * config/mn10300/mn10300.md: Fold code to 80-character width.
233a46c8
UB
1155 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1156 MEM, CONST_INT and CONST_DOUBLE.
e7ab5593 1157
9dc3f7de
IR
11582010-10-21 Ira Rosen <irar@il.ibm.com>
1159
1160 PR tree-optimization/46049
1161 PR tree-optimization/46052
233a46c8 1162 * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
9dc3f7de
IR
1163 (vect_get_slp_defs): Add arguments.
1164 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
1165 operands to vect_get_slp_defs.
1166 (vectorizable_reduction): Fix comment, pass scalar operands to
1167 vect_get_slp_defs.
1168 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
1169 type to determine number of units in the created vector.
1170 (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
1171 (vectorizable_conversion): Fix comment.
1172 (vectorizable_shift): New function.
1173 (vectorizable_operation): Move code that handles shifts to
1174 vectorizable_shift.
1175 (vectorizable_type_demotion): Fix comment, pass scalar operands to
1176 vect_get_slp_defs.
1177 (vectorizable_type_promotion, vectorizable_store): Likewise.
1178 (vectorizable_condition): Fix comment.
1179 (vect_analyze_stmt): Call vectorizable_shift.
1180 (vect_transform_stmt): Likewise.
1181 * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
1182 Use it as the operand to create vectors for, except reduction
1183 initial definition and store. Use operands type.
1184 (vect_get_slp_defs): Add new arguments. Pass them to
1185 vect_get_constant_vectors.
1186
77a74ed7
NF
11872010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1188
1189 * basic-block.h (single_succ_edge): Use gcc_checking_assert.
1190 (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
1191 * cfghooks.c (fixup_reorder_chain): Likewise.
1192 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1193 * cgraph.c (cgraph_add_thunk): Likewise.
1194 (cgraph_create_edge_1): Likewise.
1195 (cgraph_create_virtual_clone): Likewise.
1196 * ddg.c (add_cross_iteration_register_deps): Likewise.
1197 * dwarf2out.c (modified_type_die): Likewise.
1198 * emit-rtl.c (set_mem_alias_set): Likewise.
1199 * ggc-zone.c (zone_allocate_marks): Likewise.
1200 * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
1201 * gimple.c (iterative_hash_gimple_type): Likewise.
1202 * graphite-scop-detection.c (create_single_entry_edge): Likewise.
1203 (create_single_exit_edge): Likewise.
1204 * haifa-sched.c (choose_ready): Likewise.
1205 * lto-streamer-in.c (input_gimple_stmt): Likewise.
1206 * passes.c (execute_todo): Likewise.
1207 * sched-ebb.c (begin_schedule_ready): Likewise.
1208 * sel-sched.c (code_motion_process_successors): Likewise.
1209 * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
1210 * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
1211 * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
1212 (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
1213 * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
1214 * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
1215 (ssa_conflicts_add): Likewise.
1216 * tree-ssa-copy.c (replace_exp): Likewise.
1217 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1218 * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
1219 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1220 * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
1221 (compute_antic): Likewise.
1222 * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
1223 (add_dependence): Likewise.
1224 (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
1225 * tree-vrp.c (supports_overflow_infinity): Likewise.
1226 (make_overflow_infinity, negative_overflow_infinity): Likewise.
1227 (avoid_overflow_infinity, register_new_assert_for): Likewise.
1228 (process_assert_insertions_for): Likewise.
1229 * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
1230 (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
1231 (intersect_loc_chains, variable_merge_over_cur): Likewise.
1232
31ff2426
NF
12332010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1234
1235 * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
1236 * reload1.c (has_nonexceptional_receiver): Likewise.
1237 * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
1238 (create_new_def_for): Likewise.
1239 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
1240 (merge_phi_nodes): Likewise.
1241 (has_abnormal_incoming_edge_p): Delete.
1242
2f7ba24e
L
12432010-10-21 H.J. Lu <hongjiu.lu@intel.com>
1244
1245 * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
1246
46241ea9 12472010-10-21 Richard Guenther <rguenther@suse.de>
233a46c8 1248 Michael Matz <matz@suse.de>
46241ea9
RG
1249
1250 PR tree-optimization/45764
1251 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1252 Adjust initial misalignment for negative DR_STEP.
1253 (vect_find_same_alignment_drs): Two DRs with different DR_STEP
1254 do not have the same alignment over the whole iteration domain.
1255
c9a410f0
RG
12562010-10-21 Richard Guenther <rguenther@suse.de>
1257
1258 PR tree-optimization/46111
1259 * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
1260
5490de28
AK
12612010-10-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1262
1263 * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
1264
1347d65c
TG
12652010-10-21 Tristan Gingold <gingold@adacore.com>
1266
1267 * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
1268 * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
1269
1f5576a8
TG
12702010-10-21 Tristan Gingold <gingold@adacore.com>
1271
1272 * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
1347d65c 1273 signal_frame.
1f5576a8
TG
1274 * config/alpha/alpha.c (alpha_function_arg): Adjust call.
1275
168e58f2
TG
12762010-10-21 Tristan Gingold <gingold@adacore.com>
1277
1278 * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
1279 * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
1280
0fd4b31d
NF
12812010-10-20 Nathan Froyd <froydnj@codesourcery.com>
1282
1283 * basic-block.h (find_fallthru_edge): Define.
1284 * cfgcleanup.c (merge_blocks_move): Use it.
1285 (try_crossjump_bb): Likewise.
1286 * cfglayout.c (fixup_reorder_chains): Likewise.
1287 (fixup_fallthru_exit_predecessor): Likewise.
1288 * cfgrtl.c (rtl_split_edge): Likewise.
1289 (rtl_verify_flow_info): Likewise.
1290 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1291 * gimple-pretty-print.c (dump_implicit_edges): Likewise.
1292 * ifcvt.c (block_fallthru): Likewise.
1293 * reload1.c (fixup_abnormal_edges): Likewise.
1294 * sched-ebb.c (being_schedule_ready): Likewise.
1295 (schedule_ebb): Likwise.
1296 * sched-rgn.c (find_single_block_region): Likewise.
1297 * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
1298 * tree-complex.c (expand_complex_move): Likewise.
1299 * sched-int.h (find_fallthru_edge): Rename to...
1300 (find_fallthru_edge_from): ...this.
1301 * haifa-sched.c (find_fallthru_edge): Rename to...
1302 (find_fallthru_edge_from): ...this. Use new find_fallthru_edge.
1303 (init_before_recovery): Call find_fallthru_edge_from.
1304 * sel-sched-ir.c (merge_fences): Likewise.
1305 * sel-sched.c (in_fallthru_bb_p): Likewise.
1306 (move_cond_jump): Likewise.
1307
b56f8e7c
PK
13082010-10-20 Paul Koning <ni1d@arrl.net>
1309
1310 * config/pdp11/pdp11.md (various): Fix conditions on a number of
1311 insn to check for target 11/40 or higher.
1312
249a82c4
NP
13132010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1314
1315 * parser.c (c_parser_objc_method_type): Mark inline. Return a
1316 bool instead of a tree.
1317 (c_parser_objc_method_decl): Added bool argument. Updated call to
1318 objc_build_method_signature.
1319 (c_parser_objc_method_definition): Do not call
1320 objc_set_method_type. Updated calls to c_parser_objc_method_type,
1321 c_parser_objc_method_decl and objc_start_method_definition.
1322 (c_parser_objc_methodproto): Do not call objc_set_method_type.
1323 Updated calls to c_parser_objc_method_type,
1324 c_parser_objc_method_decl and objc_add_method_declaration.
233a46c8 1325
1dff453d
JJ
13262010-10-20 Jakub Jelinek <jakub@redhat.com>
1327
f1e344ed
JJ
1328 PR tree-optimization/45919
1329 * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
1330 array members.
1331
1dff453d
JJ
1332 PR tree-optimization/46066
1333 * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
1334 instead of gsi_last_bb.
1335
d123bf41
DD
13362010-10-20 DJ Delorie <dj@redhat.com>
1337
1338 * config/m32c/m32c.c (m32c_option_override): Always disable
1339 function-cse in 16-bit mode. Indirect calls are always worse than
1340 direct calls as there is no 16-bit indirect call opcode.
1341 (m32c_override_options_after_change): New, likewise.
1342
582346ed
NF
13432010-10-20 Nathan Froyd <froydnj@codesourcery.com>
1344
1345 * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
1346 emitting the conditional move in the inner mode of the SUBREG.
1347
ab177ad5
AS
13482010-10-20 Anatoly Sokolov <aesok@post.ru>
1349
1350 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
1351 * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
1352 * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1353 (ia64_preferred_reload_class): Make static. Change rclass argument
1354 and result types from enum reg_class to reg_class_t.
1355
604f9a90
PH
13562010-10-20 Pat Haugen <pthaugen@us.ibm.com>
1357
1358 * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
1359 call for single operand expression.
1360
4244a86e
EB
13612010-10-20 Eric Botcazou <ebotcazou@adacore.com>
1362
1363 * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
1364 if there is a call statement to pure or const function in the block.
1365
825cb171
PK
13662010-10-20 Paul Koning <pkoning@equallogic.com>
1367
1368 Fix several build errors for pdp11 target.
1369 * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
1370 (cbranchdf4): Conditional on TARGET_FPU.
1371 (movdf): Ditto; correct alternatives check.
1372 (movmemhi): Fix predicate and constraint.
1373 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
1374
1b0e3802
RG
13752010-10-20 Richard Guenther <rguenther@suse.de>
1376
1377 PR lto/45667
1378 * lto-streamer-out.c (output_gimple_stmt): Fix typo.
1379 * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
1380 (verify_gimple_assign_single): Disable ADDR_EXPR type check
1381 when in LTO.
1382
51934590
VM
13832010-10-20 Vladimir Makarov <vmakarov@redhat.com>
1384
1385 PR fortran/42169
1386 * ira-emit.c (store_can_be_removed_p): Return false instead of
1387 gcc_unreachable.
1388
2298ade7
DM
13892010-10-20 Dmitry Melnik <dm@ispras.ru>
1390
1391 * fold-const.c (fold_binary_loc): New transformation.
1392
b9121f42
L
13932010-10-20 H.J. Lu <hongjiu.lu@intel.com>
1394
1395 PR target/46085
1396 * config/i386/sse.md (reduc_splus_v8sf): Updated.
1397 (reduc_splus_v4df): Likewise.
1398
742d143c
RG
13992010-10-20 Richard Guenther <rguenther@suse.de>
1400
1401 PR tree-optimization/45860
1402 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
1403 conditional store replacement for non-register type stores.
1404
0d475ac5
EB
14052010-10-20 Eric Botcazou <ebotcazou@adacore.com>
1406
1407 * stor-layout.c (skip_simple_constant_arithmetic): New function.
1408 (self_referential_size): Use it instead of skip_simple_arithmetic.
1409
73dd5ce0
OH
14102010-10-20 Olivier Hainque <hainque@adacore.com>
1411
1412 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
1413 If the current function calls eh_return, claim live all registers
1414 that we need to check for liveness otherwise.
1415
977e30bc
NP
14162010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1417
1418 * c-decl.c (c_write_global_declarations): Call
1419 objc_write_global_declarations when compiling Objective-C.
1420 * c-lang.c (finish_file): Removed.
1421
ad0c4c36
DD
14222010-10-19 DJ Delorie <dj@redhat.com>
1423
1424 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
1425 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
1426 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1427 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1428 * doc/tm.texi: Regenerate.
1429 * targhooks.h (default_label_align_after_barrier_max_skip,
1430 default_loop_align_max_skip, default_label_align_max_skip,
1431 default_jump_align_max_skip): Declare.
1432 * target.def (label_align_after_barrier_max_skip): New.
1433 (loop_align_max_skip): New.
1434 (label_align_max_skip): New.
1435 (jump_align_max_skip): New.
1436 * system.h (poison): Add those macros to the list.
1437 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
1438 (LOOP_ALIGN_MAX_SKIP): Remove.
1439 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
1440 (JUMP_ALIGN_MAX_SKIP): Remove.
1441 (default_label_align_after_barrier_max_skip): New.
1442 (default_loop_align_max_skip): New.
1443 (default_label_align_max_skip): New.
1444 (default_jump_align_max_skip): New.
1445 (compute_alignments): Use the new hooks.
1446 (shorten_branches): Likewise.
233a46c8 1447
351877cf
RH
14482010-10-19 Richard Henderson <rth@redhat.com>
1449
1450 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
1451 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
1452 (fma4i_fmadd_<mode>): New.
1453 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
233a46c8 1454 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
351877cf
RH
1455 standard fma patterns.
1456 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
1457 enable for FMA.
1458 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1459 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1460 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
1461
b5829a84
PK
14622010-10-19 Paul Koning <pkoning@equallogic.com>
1463
1464 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
1465 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
1466
46935749
RH
14672010-10-19 Richard Henderson <rth@redhat.com>
1468
1469 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
1470 (fmadf4, *fmsdf4, *nfmadf4): New.
1471 (fmaxf4, *fmsxf4, *nfmaxf4): New.
1472
16a1a239
ME
14732010-10-19 Michael Eager <eager@eagercon.com>
1474
233a46c8 1475 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
16a1a239
ME
1476 Use sjlj unwind info for exceptions.
1477
d35ce109
FXC
14782010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
1479
1480 PR fortran/43414
1481 * dwarf2out.c (add_calling_convention_attribute): Flag main
1482 Fortran subroutine with DW_AT_main_subprogram.
1483
e2f289f3
NC
14842010-10-19 Nick Clifton <nickc@redhat.com>
1485
1486 * config/rx/rx.c (rx_function_value): Small integer types are
233a46c8 1487 promoted to SImode.
e2f289f3
NC
1488 (rx_promote_function_mode): New function.
1489 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1490
9018b19c
NC
14912010-10-19 Nick Clifton <nickc@redhat.com>
1492
1493 * config/mep/mep.c (mep_print_operand): Use
1494 targetm.strip_name_encoding.
1495 (mep_output_aligned_common): Likewise.
1496
c512a6a0 14972010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
233a46c8
UB
1498
1499 * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
c512a6a0 1500
5c822194
RH
15012010-10-18 Richard Henderson <rth@redhat.com>
1502
233a46c8 1503 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
5c822194
RH
1504 (fma (neg a) (neg b) c) and (fma a (neg b) c).
1505
89509419
RH
15062010-10-18 Richard Henderson <rth@redhat.com>
1507
1508 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
1509 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
1510 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
1511 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
1512 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
1513 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
1514 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
1515 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
1516 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
1517 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
1518 (bdesc_multi_arg): Remove the corresponding builtins.
1519 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
1520 (UNSPEC_FMA4_FMSUBADD): Remove.
1521 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
1522 * config/i386/sse.md (FMA4MODEF4): Remove.
1523 (FMAMODE): Add.
1524 (fma<mode>4): New expander.
1525 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
1526 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
1527 (*fma4i_fmsub_<mode>): Similarly.
1528 (*fma4i_fnmadd_<mode>): Similarly.
1529 (*fma4i_fnmsub_<mode>): Similarly.
1530 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
1531 with the first operand.
1532 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
1533 of explicit arithmetic. Macroize with AVXMODEF2P.
1534 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
1535 (xop_frcz<mode>2): Macroize with FMAMODE.
1536 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
1537 the first operand.
1538 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
1539 extra negations.
1540 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
1541 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
1542 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
1543 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
1544 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
1545 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
1546 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
1547 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
1548
21016e43
BS
15492010-10-18 Bernd Schmidt <bernds@codesourcery.com>
1550
1551 PR rtl-optimization/45966
1552 * combine.c (try_combine): If added_sets_2, deal with the case
1553 where i0 feeds i1 and i1 feeds i2.
1554
93a3eea4
JH
15552010-10-18 Jan Hubicka <jh@suse.cz>
1556
1557 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
1558 preserve flags before trying to guess on visibility.
1559 (varpool_externally_visible_p): New function.
1560 (function_and_variable_visibility): Use it.
1561
da57d1b9
NP
15622010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1563
1564 Implemented parsing @synthesize and @dynamic for Objective-C.
1565 * c-parser.c (c_parser_external_declaration): Recognize
1566 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
1567 (c_parser_objc_at_synthesize_declaration): New.
1568 (c_parser_objc_at_dynamic_declaration): New.
1569
15702010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
233a46c8 1571
da57d1b9
NP
1572 * c-parser.c (c_parser_objc_class_declaration): After finding an
1573 error, parse the whole declaration then reset parser->error.
233a46c8 1574
0069111f
MM
15752010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1576
1577 PR target/46041
1578 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
1579 * builtins.c (mode_has_fma): Ditto.
1580
89774469
SE
15812010-10-18 Steve Ellcey <sje@cup.hp.com>
1582
1583 PR target/36898
1584 PR middle-end/43760
1585 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
1586
b69da3d8
JM
15872010-10-18 Joseph Myers <joseph@codesourcery.com>
1588
1589 * config/i386/i386.c (ix86_option_override_internal): Define and
1590 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
1591 default.
1592 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1593 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
1594
71fc71d8
NP
15952010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1596
233a46c8 1597 Merge from 'apple/trunk' branch on FSF servers.
71fc71d8
NP
1598 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1599 following Objective-C change:
1600
1601 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
1602
1603 Radar 4301047
1604 * c-parse.in (objc_quals): Build objc qualifier list same way
1605 as gcc-3.3
1606
7ba6eb1e
JH
16072010-10-18 Jan Hubicka <jh@suse.cz>
1608
1609 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1610 function_and_variable_visibility): Revert accidental commit.
1611
e426b47b
NP
16122010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1613
1614 Merge from 'apple/trunk' branch on FSF servers.
1615 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1616 the following Objective-C change:
1617
1618 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
1619
1620 Radar 4204796
1621 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1622 'volatilized' type used in a typeof operator.
1623
30fd5881
EB
16242010-10-18 Eric Botcazou <ebotcazou@adacore.com>
1625
1626 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1627 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1628 rewrite modelled on gimple_purge_dead_eh_edges.
1629 (gimple_purge_all_dead_abnormal_call_edges): New function.
1630 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1631 directly instead of through gimple_purge_dead_abnormal_call_edges.
1632 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1633 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1634 removed AB side-effects from one of its statements.
1635 (init_pre): Initialize need_ab_cleanup.
1636 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1637 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
1638
84628aa8
JJ
16392010-10-18 Jakub Jelinek <jakub@redhat.com>
1640
1641 PR c/46015
1642 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1643 on computed goto argument.
1644
0f8d6231
RG
16452010-10-18 Richard Guenther <rguenther@suse.de>
1646
1647 PR tree-optimization/45967
1648 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1649 (could_have_pointers): Likewise.
1650 (handle_rhs_call, handle_const_call, handle_pure_call,
1651 find_func_aliases, intra_create_variable_infos): Remove calls to them.
1652 (struct fieldoff): Add must_have_pointers field.
1653 (type_must_have_pointers): New function.
1654 (field_must_have_pointers): Likewise.
1655 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1656 Adjust field merging.
1657 (create_function_info_for): May-have-pointers of varinfo is
1658 almost always true.
1659 (create_variable_info_for_1): Likewise.
1660
3f2c0baf
TB
16612010-10-18 Tejas Belagod <tejas.belagod@arm.com>
1662
1663 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1664 of operands to vec_concat.
1665
e20efbfb
RG
16662010-10-18 Richard Guenther <rguenther@suse.de>
1667
1668 PR lto/44950
1669 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1670 also clear references to entries of it.
1671
fda9c731
AK
16722010-10-18 Andi Kleen <ak@linux.intel.com>
1673
1674 PR other/43448
1675 * gccbug.in: Remove.
1676 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1677 (doc, distclean, install-common): Remove reference to gccbug.
1678 * configure: Regenerate.
1679 * configure.ac (all_outputs): Remove gccbug.
1680 * doc/configfiles.texi: Remove references to gccbug.
1681 * doc/sourcebuild.texi: Dito.
1682
8ddf04c2
JJ
16832010-10-18 Jakub Jelinek <jakub@redhat.com>
1684
1685 PR middle-end/46019
1686 * fold-const.c (fold_binary_loc): If integer_pow2p has
1687 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1688
1d32bbcd
BS
16892010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
1690 Jeremie Salvucci <jeremie.salvucci@free.fr>
1691
c68015cd 1692 * gengtype.c (verbosity_level): Add variable.
1d32bbcd
BS
1693 (set_gc_used): Count variables for verbosity.
1694 (close_output_files): Backing up files, counting written ones
1695 verbosily.
1696 (write_types): Count emitted functions for verbosity. Added
1697 debug messages.
1698 (write_enum_defn): Count structures for verbosity. Added debug
1699 messages.
c68015cd 1700 (gengtype_long_options): Add "verbose" & "backupdir".
1d32bbcd
BS
1701 (print_usage): Ditto.
1702 (main): Verbose display of parsed files.
1703
c68015cd 1704 * gengtype.h (verbosity_level): Add declaration.
1d32bbcd 1705
dad22268
BS
17062010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
1707
c68015cd
BS
1708 * gengtype.c (parse_program_options): Add allocation of
1709 plugin_files, and correct test on nb_plugin_files.
dad22268 1710
90fbfdc3
NP
17112010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1712
1713 Merge from 'apple/trunk' branch on FSF servers.
233a46c8 1714
90fbfdc3
NP
1715 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1716
233a46c8 1717 Radar 4133425
90fbfdc3
NP
1718 * c-decl.c (undeclared_variable): Issue diagnostic on
1719 private 'ivar' access.
233a46c8 1720
2a4337c0
UB
17212010-10-17 Uros Bizjak <ubizjak@gmail.com>
1722
1723 PR target/46051
1724 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1725 generated sequence to match *avx_vperm2f128<mode>_nozero.
1726 (vec_interleave_lowv4df): Ditto.
1727 (vec_interleave_highv8sf): Ditto.
1728 (vec_interleave_lowv8sf): Ditto.
1729
78e7dd6a
KT
17302010-10-17 Kai Tietz <kai.tietz@onevision.com>
1731
1732 * libgcov.c (create_file_directory): Enable it for win32 case.
1733 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1734 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1735 (GCOV_PREFIX_SKIP): Likewise.
1736
5b8b526e
NP
17372010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1738
1739 * doc/objc.texi (GNU Objective-C runtime API): New section.
1740 (Modern GNU Objective-C runtime API): New section.
1741 (Traditional GNU Objective-C runtime API): New section.
1742 (Executing code before main): Mention that this section is
1743 specific to the GNU Objective-C runtime.
1744 (Garbage Collection): Same.
1745
91b90ead
UB
17462010-10-17 Uros Bizjak <ubizjak@gmail.com>
1747
1748 * c-parser.c (c_parser_for_statement): Move initialization of
1749 cond and incr before if.
1750
abd26bfb
AS
17512010-10-17 Anatoly Sokolov <aesok@post.ru>
1752
1753 * target.def (preferred_output_reload_class): New hook.
1754 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1755 * doc/tm.texi: Regenerate.
1756 * targhooks.c (default_preferred_output_reload_class): New function.
1757 * targhooks.h (default_preferred_output_reload_class): Declare.
91b90ead 1758 * reload.c (find_dummy_reload): Change rclass argument type from
abd26bfb
AS
1759 enum reg_class to reg_class_t. Change this_alternative array type
1760 from enum reg_class to reg_class_t.
1761 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1762 (push_reload): Change preferred_class variable type to reg_class_t.
1763 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1764 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1765 argument type from enum reg_class to reg_class_t. Use
1766 HARD_REGISTER_NUM_P predicate.
1767 * recog.h (reg_fits_class_p): Update prototype.
1768
1769 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
91b90ead
UB
1770 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1771 Remove.
abd26bfb
AS
1772 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1773 static. Change regclass argument and result types from enum reg_class
1774 to reg_class_t.
1775 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1776
c37d8c30
IS
17772010-10-17 Iain Sandoe <iains@gcc.gnu.org>
1778
91b90ead 1779 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
c37d8c30
IS
1780 visibility enum, and handle @package.
1781
1501d094
NP
17822010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1783
1784 * doc/objc.texi (What you can and what you cannot do in +load):
1785 Document that sending messages to constant string objects in +load
1786 is not guaranteed to work.
1787
bb853349
JH
17882010-10-16 Jan Hubicka <jh@suse.cz>
1789
1790 PR middle-end/44206
1791 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1792 existence of refrences before removing the function.
1793
844db5d0
JH
17942010-10-16 Jan Hubicka <jh@suse.cz>
1795
1796 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1797 only_called_at_startup and only_called_at_exit.
91b90ead 1798 (cgraph_propagate_frequency): Compute only_called_at_startup and
844db5d0
JH
1799 only_called_at_exit.
1800 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1801 only_called_at_exit.
1802 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1803 flags.
1804 * predict.c (compute_function_frequency): Initialize the new flags.
1805
08d78391
EB
18062010-10-16 Eric Botcazou <ebotcazou@adacore.com>
1807
1808 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1809 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1810 on the bounds of its domain.
1811 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1812
4b0b4ab0
AS
18132010-10-16 Anatoly Sokolov <aesok@post.ru>
1814
1815 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1816 * config/avr/avr-protos.h (preferred_reload_class): Remove.
1817 * config/avr/avr.c (preferred_reload_class): Remove.
1818 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1819 * config/pa/pa.c (emit_move_sequence): Update comment
1820 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1821 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1822 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1823 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1824 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1825 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1826 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1827 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1828 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1829 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1830 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1831 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1832 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1833
7bb3487f
JM
18342010-10-16 Joseph Myers <joseph@codesourcery.com>
1835
1836 * opts.c (set_fast_math_flags,
1837 set_unsafe_math_optimizations_flags): Make static.
1838 * toplev.h (set_fast_math_flags,
1839 set_unsafe_math_optimizations_flags): Remove prototypes.
1840
0a587f65
JM
18412010-10-16 Joseph Myers <joseph@codesourcery.com>
1842
1843 * config/arm/arm.c (arm_option_optimization): Set
1844 flag_section_anchors to 1 not 2.
1845 * config/i386/i386.c (ix86_option_override_internal): Check
1846 global_options_set.x_flag_zee and
1847 global_options_set.x_flag_omit_frame_pointer.
1848 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
1849 flag_zee to 2.
1850 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1851 global_options_set.x_flag_omit_frame_pointer.
1852 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
1853 opts->x_flag_section_anchors to 1 not 2.
1854 * config/sh/sh.c (sh_option_optimization): Don't set
1855 flag_schedule_insns to 2.
1856 (sh_option_override): Check
1857 global_options_set.x_flag_schedule_insns.
1858 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
1859
e1dbd4c8
KT
18602010-10-16 Kai Tietz <kai.tietz@onevision.com>
1861
1862 * configure.ac: Make sure inhibit_libc remains false for mingw targets
1863 as cross.
1864 * configure: Regenerated.
1865
2edb37a6
XDL
18662010-10-15 Xinliang David Li <davidxl@google.com>
1867
1868 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
1869 function.
1870 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
1871 into a recursive function.
1872
ba492752
UB
18732010-10-15 Uros Bizjak <ubizjak@gmail.com>
1874
1875 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
1876 (*movdfcc_1): ditto.
1877
7e4aae92
JM
18782010-10-15 Joseph Myers <joseph@codesourcery.com>
1879
1880 * target.def (target_option.init_struct): New hook.
1881 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
1882 * doc/tm.texi: Regenerate.
1883 * hooks.c (hook_void_gcc_optionsp): New.
1884 * hooks.h (hook_void_gcc_optionsp): Declare.
1885 * langhooks-def.h (lhd_init_options_struct): Remove.
91b90ead 1886 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7e4aae92
JM
1887 * langhooks.c (lhd_init_options_struct): Remove.
1888 * opts.c (init_options_struct): Also call
1889 targetm.target_option.init_struct.
1890 * config/i386/i386.c (ix86_option_init_struct,
1891 TARGET_OPTION_INIT_STRUCT): New.
1892 (ix86_option_optimization): Move some settings to
1893 ix86_option_init_struct.
1894 * config/pdp11/pdp11.c (pdp11_option_init_struct,
1895 TARGET_OPTION_INIT_STRUCT): New.
1896 (pdp11_option_optimization): Move some settings to
1897 pdp11_option_init_struct.
1898 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
1899 rs6000_option_init_struct. Use options structure pointer.
91b90ead 1900 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7e4aae92
JM
1901 * config/s390/s390.c (s390_option_init_struct,
1902 TARGET_OPTION_INIT_STRUCT): New.
1903 (s390_option_optimization): Don't set
1904 flag_asynchronous_unwind_tables here.
1905 * config/sh/sh.c (sh_option_init_struct,
1906 TARGET_OPTION_INIT_STRUCT): New.
1907 (sh_option_optimization): Don't set flag_finite_math_only here.
1908 * config/spu/spu.c (spu_option_optimization): Replace by
1909 spu_option_optimization. Use options structure pointer.
91b90ead 1910 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7e4aae92 1911
1b1562a5
MM
19122010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
1913
1914 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
1915
1916 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
1917 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
1918 (Standard names): Document fma.
1919
1920 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
1921 __FP_FAST_FMAF, __FP_FAST_FMAL.
1922
1923 * builitns.c (expand_builtin_mathfn_ternary): New function for
1924 expanding ternary math functions, like fma.
1925 (expand_builtin): Call it for the fma builtins.
1926
1927 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
1928 ops at present.
1929
1930 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
1931 vectorizable functions to support vectorizing fma.
1932
1933 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1934 Handle fma builtins.
1935
1936 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
1937 (UNSPEC_VSX_MSUB): Ditto.
1938 (UNSPEC_VSX_NMADD): Ditto.
1939 (UNSPEC_VSX_NMSUB): Ditto.
1940 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
1941 of UNSPEC. Renumber combiner patterns.
1942 (vsx_fmsub<mode>4*): Ditto.
1943 (vsx_fnmadd<mode>4*): Ditto.
1944 (vsx_fnmsub<mode>4*): Ditto.
1945
1946 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
1947 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
91b90ead 1948 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
1b1562a5
MM
1949 (altivec_vmaddfp_1): Ditto.
1950 (altivec_vmaddfp_2): Ditto.
1951 (atlivec_mulv4sf3): Ditto.
1952 (altivec_vnmsubfp): Ditto.
1953 (altivec_vnmsubfp_1): Ditto.
1954 (altivec_vnmsubfp_2): Ditto.
1955 (altivec_vnmsubfp_3): Delete.
1956
91b90ead 1957 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1b1562a5
MM
1958 (fmasf4_fpr): Ditto.
1959 (fmssf4_fpr): Ditto.
1960 (fnmasf4_fpr): Ditto.
1961 (fnmssf4_fpr): Ditto.
1962 (fmadf4): Ditto.
1963 (fmadf4_fpr): Ditto.
1964 (fmsdf4_fpr): Ditto.
1965 (fnmadf4_fpr): Ditto.
1966 (fnmsdf4_fpr): Ditto.
1967
1968 * optabs.h (OTI_fma): Add fma optab.
1969 (fma_optab): Ditto.
1970
1971 * genopinit.c (optabs): Set fma optab.
1972
1973 * rtl.def (FMA): Add FMA rtl.
1974
1975 * tree.h (mode_has_fma): New function to return if MODE supports a
1976 fast multiply and add instruction.
1977 * builtins.c (mode_has_fma): Ditto.
1978
695c3817
JH
19792010-10-15 Jan Hubicka <jh@suse.cz>
1980
1981 * lto-streamer-out.c (write_symbol): Use pointer set of seen
1982 objects instead of bitmap.
1983 (produce_symtab): Likewise; output defined symbols first.
1984
c1721efb
JZ
19852010-10-15 Jie Zhang <jie@codesourcery.com>
1986
1987 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
1988 Option Summary and Index.
1989
638fd1e5
RG
19902010-10-15 Richard Guenther <rguenther@suse.de>
1991
1992 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
1993 for automatic variables again.
1994
fbdaa0b2
JM
19952010-10-15 Joseph Myers <joseph@codesourcery.com>
1996
1997 * doc/extend.texi (Variable Length): Don't refer to VLAs not
1998 conforming to C99.
1999
a32b99ad
JM
20002010-10-15 Joseph Myers <joseph@codesourcery.com>
2001
2002 * config/rx/rx.c (rx_option_optimization): Change to
2003 rx_override_options_after_change. Don't change
2004 flag_lto_compression_level. Don't check for changes to whether
2005 FPU instructions can be used. Check and set only
2006 flag_finite_math_only, not other fast-math flags.
2007 (rx_option_override): Call rx_override_options_after_change.
2008 (TARGET_OPTION_OPTIMIZATION): Remove.
2009 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2010
b534dca5
JM
20112010-10-15 Joseph Myers <joseph@codesourcery.com>
2012
2013 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
2014 disable section anchors for lang_hooks.name[4] != 'O'.
2015
25b0dd68
JM
20162010-10-15 Joseph Myers <joseph@codesourcery.com>
2017
2018 * config/frv/frv.c (frv_option_optimization,
2019 TARGET_OPTION_OPTIMIZATION): Remove.
2020 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2021
936fcef1
MM
20222010-10-15 Michael Matz <matz@suse.de>
2023
2024 * cgraphunit.c (clone_of_p): Define unconditionally.
2025
7a1a20d1
RG
20262010-10-15 Richard Guenther <rguenther@suse.de>
2027
2028 PR lto/45957
ba492752 2029 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7a1a20d1 2030
034c987c
CLT
20312010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
2032
2033 * ifcvt.c (find_active_insn_before): New function.
2034 (find_active_insn_after): New function.
2035 (cond_exec_process_if_block): Use new functions to replace
2036 prev_active_insn() and next_active_insn().
2037
56f01f0b
YQ
20382010-10-14 Yao Qi <yao@codesourcery.com>
2039
2040 PR target/45447
2041 * config/arm/arm.c (arm_build_builtin_va_list): Assign
2042 va_list_name to TYPE_STUB_DECL (va_list_type).
2043
97ba0040
JH
20442010-10-14 Jan Hubicka <jh@suse.cz>
2045
2046 PR middle-end/45621
2047 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
2048 redirected to clone, be happy.
2049 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
2050 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
936fcef1 2051 former_clone_of unconditionally.
ba492752 2052
668ea4b1
IS
20532010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2054
91b90ead 2055 Merge from FSF apple 'trunk' branch.
668ea4b1 2056 2006 Fariborz Jahanian <fjahanian@apple.com>
ba492752 2057
668ea4b1
IS
2058 Radars 4436866, 4505126, 4506903, 4517826
2059 * c-parser.c (c_parser, objc_property_attr_context) New flag.
2060 (c_lex_one_token): Handle property attributes.
2061 (c_parser_external_declaration): Handle @property.
2062 (c_parser_declaration_or_fndef): Warn on invalid attributes before
2063 @alias, @class, @end and @property objc keywords.
2064 (c_parser_objc_methodprotolist): Handle @property.
2065 (c_parser_objc_property_attrlist): New.
2066 (c_parser_objc_at_property): New.
2067 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
2068 (build_modify_expr): Likewise.
2069
e05eee49
JJ
20702010-10-14 Jakub Jelinek <jakub@redhat.com>
2071
2072 PR tree-optimization/46008
ba492752 2073 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
e05eee49 2074
7d36e538
RG
20752010-10-14 Richard Guenther <rguenther@suse.de>
2076
2077 PR tree-optimization/44913
2078 * tree-data-ref.c (disjoint_objects_p): Remove.
2079 (dr_may_alias_p): Simplify. Only hand the base object to
2080 the alias-oracle.
2081 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2082 some more trees, bail out instead of asserting.
2083 (ptr_derefs_may_alias_p): Likewise. Export.
2084 (refs_may_alias_p_1): Handle STRING_CSTs.
2085 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2086
180f8dbb
JM
20872010-10-14 Joseph Myers <joseph@codesourcery.com>
2088
2089 PR c/45969
2090 * c-typeck.c (build_binary_op): Don't try to compute a semantic
2091 type with excess precision for boolean operations.
2092
f8ed6dc5
JS
20932010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
2094 Basile Starynkevitch <basile@starynkevitch.net>
2095
2096 * gengtype.c: Include getopt.h and version.h.
2097
2098 (lang_bitmap, struct outf, outf_p)
2099 (get_output_file_with_visibility, oprintf): Definitions moved to
2100 gengtype.h
2101 (output_files, header_file, srcdir, srcdir_len, this_file)
2102 (do_dump): No more static variables.
2103 (do_debug): New.
2104 (dbgprint_count_type_at): Added new function.
2105 (gengtype_long_options): New.
2106 (print_usage, print_version, parse_program_options): New.
2107 (main): Call parse_program_options, and removed old option
2108 handling code. Added some debug output.
2109
2110 * gengtype.h: Updated copyright year.
2111 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
2112 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
2113 Moved from gengtype.c to here.
ba492752
UB
2114 (do_debug, read_state_filename, write_state_filename): New variables.
2115 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
f8ed6dc5
JS
2116
2117 * Makefile.in:
2118 (REVISION): Always defined.
2119 (version.o): Removed ifdef REVISION_c.
2120 (s-gtype): Pass arguments to build/gengtype program.
2121 (build/version.o): Added building rule.
2122 (build/gengtype$(build_exeext)): Added build/version.o.
2123
560d6bd5
IS
21242010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2125
2126 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
2127 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
2128 __strong macros.
2129
a61c3633
EB
21302010-10-14 Eric Botcazou <ebotcazou@adacore.com>
2131
2132 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
2133 may_trap_or_fault_p instead of may_trap_p predicate.
2134 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
2135 (substitute_placeholder_in_expr): Likewise.
2136 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
2137 flag on MEM_REF nodes.
2138 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
2139 flags on INDIRECT_REF nodes.
2140
8ac7fdcb
NF
21412010-10-14 Nathan Froyd <froydnj@codesourcery.com>
2142
ba492752 2143 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
8ac7fdcb
NF
2144 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
2145 (arm*-*-eabi*) <tm_file>: Likewise.
2146 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
2147 (frv-*-*linux*) <tm_file>: Likewise.
2148 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
2149 and associated helper macros.
2150 * config/frv/frv-abi.h: Delete.
2151
1e85e720
RG
21522010-10-14 Richard Guenther <rguenther@suse.de>
2153
2154 PR lto/44561
2155 * tree.def (NULLPTR_TYPE): New tree code.
2156 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
2157 * dwarf2out.c (is_base_type): Likewise.
2158 (gen_type_die_with_usage): Likewise.
2159 * sdbout.c (plain_type_1): Likewise.
2160 * tree.c (build_int_cst_wide): Likewise.
ba492752 2161 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
1e85e720 2162
48476d13
JM
21632010-10-14 Joseph Myers <joseph@codesourcery.com>
2164
2165 * params.c (params_finished): New.
2166 (add_params): Assert !params_finished.
2167 (finish_params): New.
2168 (set_param_value_internal): Take params and params_set
2169 parameters. Assert params_finished.
2170 (set_param_value, maybe_set_param_value): Take params and
2171 params_set parameters. Update calls to set_param_value_internal.
2172 (set_default_param_value): Assert !params_finished. Don't use
2173 set_param_value_internal.
2174 (default_param_value, init_param_values): New.
2175 * params.h (struct param_info): Change value to default_value.
2176 Remove set.
2177 (set_param_value, maybe_set_param_value): Add params and
2178 params_set parameters.
2179 (PARAM_VALUE): Get parameters from global_options.
2180 (PARAM_SET_P): Remove.
2181 (finish_params, default_param_value, init_param_values): New.
2182 * common.opt (param_values): New Variable.
2183 * config/arm/arm.c (arm_option_override): Pass extra arguments to
2184 maybe_set_param_value.
2185 * config/i386/i386.c (ix86_option_override_internal): Pass extra
2186 arguments to maybe_set_param_value.
2187 * config/picochip/picochip.c (picochip_option_override): Pass
2188 extra arguments to maybe_set_param_value.
2189 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
2190 extra arguments to maybe_set_param_value.
2191 * config/s390/s390.c (s390_option_override): Use
2192 maybe_set_param_value instead of set_param_value. Pass extra
2193 arguments to maybe_set_param_value.
2194 * config/sparc/sparc.c (sparc_option_override): Pass extra
2195 arguments to maybe_set_param_value.
2196 * config/spu/spu.c (spu_option_override): Pass extra arguments to
2197 maybe_set_param_value.
2198 * opts.c (handle_param): Take opts and opts_set parameters.
2199 Update call to set_param_value.
ba492752 2200 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
48476d13
JM
2201 initial_loop_invariant_max_bbs_in_loop): Remove.
2202 (init_options_once): Don't set them.
2203 (init_options_struct): Initialize parameters structures.
2204 (default_options_optimization): Use default_param_value when
2205 restoring defaults. Update calls to maybe_set_param_value.
2206 (finish_options): Update calls to maybe_set_param_value.
2207 (common_handle_option): Update calls to handle_param and
2208 set_param_value.
ba492752 2209 * toplev.c (DEFPARAM): Update definition for changes to param_info.
48476d13
JM
2210 (general_init): Call finish_params.
2211
4af476d7
NC
22122010-10-14 Nick Clifton <nickc@redhat.com>
2213
2214 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
2215 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
2216 (FIRST_PSEUDO_REGISTER): Increase by one.
2217 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
2218 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
2219 (MODES_TIEABLE): Call mn10300_modes_tieable.
ba492752 2220 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
4af476d7
NC
2221 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
2222 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
2223 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
2224 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
2225 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2226 (mn10300_cc_status_mdep): Delete.
2227 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
2228 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
2229 the combine-stack-adjust pass.
2230 (print_operand): Use the mode of the comparison operation to
2231 select the comparison suffix.
2232 (notice_update_cc): Delete.
2233 (mn10300_secondary_reload_class): Remove test for stack pointer
2234 based arithmetic.
2235 (output_tst): Rename to mn10300_output_cmp.
2236 (impossible_plus_operand): Move into predicates.md.
2237 (mn10300_legitimize_address): Make static.
2238 (mn10300_legitimate_address_p): Make static. Only allow SI sized
2239 constant pic operands.
2240 (mn10300_legitimate_constant_p): New function.
2241 (mn10300_case_values_threshold): Make static.
2242 (mn10300_hard_regno_mode_ok): New function.
2243 (mn10300_modes_tieable): New function.
2244 (mn10300_select_cc_mode): New function.
2245 * config/mn10300/predicates.md (impossible_plus_operand): Define.
2246 * config/mn10300/mn10300-protos.h: Tidy.
2247 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
2248 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
2249 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
2250 with clobbers or sets of CC_REG.
2251 (CC_REG): Define.
2252 (mov*): Remove use of CLR instruction.
2253 (cbranch_si4_<code>): New pattern/split.
2254 (integer_conditional_branch): New pattern.
2255 (cbranch_sf4_<code>): New pattern/split.
2256 (float_conditional_branch): New pattern.
2257 (casesi): Use addsi3 pattern instead of movsi pattern to add and
2258 move a value at the same time.
2259 (cc0 peepholes): Remove.
2260
cfeb0fa8
AB
22612010-10-14 Andrey Belevantsev <abel@ispras.ru>
2262
2263 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
2264 on RTX_FRAME_RELATED_P insns and the insn to which
2265 NOTE_INSN_EPILOGUE_BEG is attached.
2266 * sched-vis.c (print_value): Allow NULL value.
2267
3e6a3f6f
AB
22682010-10-14 Andrey Belevantsev <abel@ispras.ru>
2269
2270 PR rtl-optimization/45570
2271 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
2272 assert that we are pipelining outer loops. Allow returning
2273 zero predecessors.
2274
262d8232
AB
22752010-10-14 Andrey Belevantsev <abel@ispras.ru>
2276
2277 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
2278 (tidy_control_flow): Tidy vertical space.
2279 (sel_remove_bb): New variable idx. Use it to remember the basic
2280 block index before deleting the block.
2281 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
2282 (sel_merge_blocks): ... here.
2283 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
2284
6699b754
JJ
22852010-10-14 Jakub Jelinek <jakub@redhat.com>
2286
2287 * cse.c (is_dead_reg): Change into inline function that is not
2288 called through for_each_rtx.
2289 (set_live_p): Adjust caller.
2290 (insn_live_p): Don't reset DEBUG_INSNs here.
ba492752 2291 (struct dead_debug_insn_data): New data.
6699b754
JJ
2292 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
2293 (delete_trivially_dead_insns): If there is just one setter for the
2294 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
2295 and add DEBUG_INSN for it right before the removed setter and
2296 use the DEBUG_EXPR instead of the dead pseudo.
2297
d2e60b7b 22982010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
6699b754 2299
d2e60b7b
ZD
2300 * et-forest.c (et_nca): Return NULL immediately when
2301 the dominance forest has disjoint components.
2302
854edfcd
VM
23032010-10-13 Vladimir Makarov <vmakarov@redhat.com>
2304
2305 * ira.c (setup_class_hard_regs): Fix typo in indexing
2306 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
2307
208d8b55
TWL
23082010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
2309
2310 * graph.c (inbb): New variable.
2311 (start_bb): Set inbb to 1 if output is inside of a building block.
2312 (end_bb): Check if output is inside of a building block.
2313
8908df28
EB
23142010-10-13 Eric Botcazou <ebotcazou@adacore.com>
2315
2316 PR rtl-optimization/45912
2317 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
2318 regno of registers instead of their index to compute the alignment.
2319
1e27129f
L
23202010-10-13 H.J. Lu <hongjiu.lu@intel.com>
2321
2322 * config/i386/i386.c (ix86_build_const_vector): Check vector
2323 mode instead of scalar mode.
2324 (ix86_build_signbit_mask): Likewise.
2325 (ix86_expand_fp_absneg_operator): Updated.
2326 (ix86_expand_copysign): Likewise.
2327 (ix86_expand_int_vcond): Likewise.
2328 (ix86_emit_swdivsf): Likewise.
2329 (ix86_sse_copysign_to_positive): Likewise.
2330 (ix86_expand_sse_fabs): Likewise.
2331 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
2332 * config/i386/sse.md (copysign<mode>3): Likewise.
2333 (sse2_cvtudq2ps): Likewise.
2334 (vec_unpacku_float_hi_v4si): Likewise.
2335 (vec_unpacku_float_lo_v4si): Likewise.
2336
2337 * config/i386/i386.c (ix86_builtins): Add
2338 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
2339 (bdesc_args): Likewise.
ba492752 2340 (ix86_builtin_vectorized_function): Support
1e27129f
L
2341 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
2342 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
2343 and IX86_BUILTIN_CVTPS2DQ256.
2344 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
2345
2346 * config/i386/sse.md (STORENT_MODE): New.
2347 (VEC_FLOAT_MODE): Likewise.
2348 (VEC_EXTRACT_MODE): Likewise.
2349 (*avx_cvtdq2pd256_2): Likewise.
2350 (vec_pack_trunc_v4df): Likewise.
2351 (vec_interleave_highv8sf): Likewise.
2352 (vec_interleave_lowv8sf): Likewise.
2353 (storent<mode>): Macroized.
2354 (<code><mode>2: absneg): Likewise.
2355 (copysign<mode>3): Likewise.
2356 (vec_extract<mode>): Likewise.
2357
2358 PR target/44180
2359 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
2360 for V8SFmode.
2361
23622010-10-13 Richard Guenther <rguenther@suse.de>
2363 H.J. Lu <hongjiu.lu@intel.com>
2364
2365 * config/i386/sse.md (reduc_splus_v8sf): Add.
2366 (reduc_splus_v4df): Likewise.
2367 (vec_unpacks_hi_v8sf): Likewise.
2368 (vec_unpacks_lo_v8sf): Likewise.
2369 (*avx_cvtps2pd256_2): Likewise.
2370 (vec_unpacks_float_hi_v8si): Likewise.
2371 (vec_unpacks_float_lo_v8si): Likewise.
2372 (vec_interleave_highv4df): Likewise.
2373 (vec_interleave_lowv4df): Likewise.
2374
0d8485e0
RG
23752010-10-13 Richard Guenther <rguenther@suse.de>
2376
2377 PR objc/45878
2378 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
2379 alone if there are no virtual methods.
2380
bde8a146
RH
23812010-10-13 Richard Henderson <rth@redhat.com>
2382
2383 * expr.c (build_personality_function): Take parameter LANG instead
2384 of parameter NAME. Build the name based on the lang prefix and the
2385 unwind method in use.
2386 * tree.c (lhd_gcc_personality): Update call to
2387 build_personality_function.
2388
74e80a24
RG
23892010-10-13 Richard Guenther <rguenther@suse.de>
2390
2391 PR objc/45878
2392 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
2393
b1ba284c
EB
23942010-10-13 Eric Botcazou <ebotcazou@adacore.com>
2395
2396 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
2397 Canonicalize input operands of ASM_OPERANDS insns.
2398
1b7d2dd1
RG
23992010-10-13 Richard Guenther <rguenther@suse.de>
2400
2401 PR tree-optimization/45788
2402 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
2403 EH update until fixup-cfg.
2404
565d018d
JB
24052010-10-13 Julian Brown <julian@codesourcery.com>
2406
2407 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
2408 from CORE_REGS and GENERAL_REGS classes.
2409 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
2410 final constraint for register preferencing.
2411
71d61348
RG
24122010-10-13 Richard Guenther <rguenther@suse.de>
2413
2414 PR tree-optimization/45970
2415 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
2416 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
2417 (stmt_kills_ref_p): Likewise.
2418 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
2419
cb89b4b0
RG
24202010-10-13 Richard Guenther <rguenther@suse.de>
2421
2422 PR tree-optimization/45982
2423 * tree-ssa-structalias.c (make_constraints_to): New function.
2424 (make_constraint_to): Implement in terms of make_constraints_to.
2425 (find_func_aliases): Properly make return values of pure/const
2426 functions escape if they assign to sth that is not a pointer.
2427
72351fa3
RG
24282010-10-13 Richard Guenther <rguenther@suse.de>
2429
2430 PR middle-end/45874
2431 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
2432 Fixup the CFG when EH was fixed up.
2433
d59dc888
IR
24342010-10-13 Ira Rosen <irar@il.ibm.com>
2435
2436 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
2437 Use operand's type for POINTER_PLUS_EXPR.
2438
3f6d4c52
AO
24392010-10-13 Alexandre Oliva <aoliva@redhat.com>
2440
2441 * c-parser.c (c_parser_for_statement): Initialize incr.
2442
98d30e4f
XDL
24432010-10-12 Xinliang David Li <davidxl@google.com>
2444
2445 PR tree-optimization/45972
18aebb0e 2446 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
98d30e4f
XDL
2447 with too many arguments.
2448
f4684242
JJ
24492010-10-12 Jakub Jelinek <jakub@redhat.com>
2450
2451 PR fortran/45636
2452 * tree-ssa-forwprop.c: Include expr.h.
2453 (constant_pointer_difference, simplify_builtin_call): New functions.
2454 (tree_ssa_forward_propagate_single_use_vars): Call
2455 simplify_builtin_call on builtin calls.
2456
d761137f
EB
24572010-10-12 Eric Botcazou <ebotcazou@adacore.com>
2458
2459 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
2460 (*adddi3_extend_sp32): Likewise.
2461 (*subdi3_insn_sp32): Likewise.
2462 (*subdi3_extend_sp32): Likewise.
2463 (*negdi2_sp32): Use negative test for consistency.
2464
a18bdccd
NF
24652010-10-12 Nathan Froyd <froydnj@codesourcery.com>
2466
ba492752 2467 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
a18bdccd
NF
2468 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2469 * config/fixed-bit.h: Likewise.
2470 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2471 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2472 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
2473 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
2474 (DF_SIZE): Likewise.
2475 * doc/tm.texi: Regenerate.
2476
d2333f6e
NF
24772010-10-12 Nathan Froyd <froydnj@codesourcery.com>
2478
2479 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
2480 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
2481 (*isel_reversed_unsigned_<mode>): New.
2482 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
2483 as valid comparisons and adjust operands and output appropriately.
2484 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
2485
0c86e0dd
CLT
24862010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
2487
2488 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
2489 DATA_ALIGNMENT and add COND parameter. Update comments above.
2490 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
ba492752 2491 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
0c86e0dd 2492
515fe073
L
24932010-10-12 H.J. Lu <hongjiu.lu@intel.com>
2494
2495 PR bootstrap/45958
ba492752 2496 * exec-tool.in: Support '-plugin' as the second option to the linker.
515fe073 2497
533f611a
RH
24982010-10-12 Richard Henderson <rth@redhat.com>
2499
2500 PR middle-end/45962
2501 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
2502 (expand_stack_vars): Assert large base allocated when used.
2503
1f181fde
RG
25042010-10-12 Richard Guenther <rguenther@suse.de>
2505
2506 * tree-ssa-structalias.c (get_constraint_for_1): Constants
2507 only point to nonlocal, not anything.
2508
83e350f7
HS
25092010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
2510
2511 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
2512 unwind info for exceptions.
2513
cf3e1041
RO
25142010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2515
2516 PR testsuite/45851
2517 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
2518 Document optional target selector.
2519
f938f60c
JM
25202010-10-12 Joseph Myers <joseph@codesourcery.com>
2521
2522 * flag-types.h: New.
2523 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
2524 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
2525 options.h.
2526 (OPTIONS_H): Define.
2527 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
2528 of options.h.
2529 * configure.ac (tm_include_list): Include options.h not flags.h.
2530 * configure: Regenerate.
2531 * flags.h: Include flag-types.h. Include options.h at top of file
2532 again.
2533 (enum debug_info_type, enum debug_info_level, enum
2534 debug_info_usage, enum symbol_visibility, struct visibility_flags,
2535 enum ira_algorithm, enum ira_region, enum excess_precision, enum
ba492752
UB
2536 graph_dump_types, enum stack_check_type,
2537 enum warn_strict_overflow_code): Move to flag-types.h
f938f60c
JM
2538 * opth-gen.awk: Include flag-types.h in options.h.
2539
d95828db
JJ
25402010-10-12 Jakub Jelinek <jakub@redhat.com>
2541
a4feaa71
JJ
2542 * expr.c (store_expr): Share code for STRING_CST and
2543 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
2544 check if target is a MEM.
2545
d95828db
JJ
2546 * rtl.h: Include hashtab.h.
2547 (iterative_hash_rtx): New prototype.
2548 * rtl.c (iterative_hash_rtx): New function.
2549 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
ba492752 2550 (output_loc_list): Return immediately if emitted is set, set it.
d95828db
JJ
2551 (hash_loc_operands, hash_locs, hash_loc_list,
2552 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
2553 optimize_location_lists_1, optimize_location_lists): New function.
2554 (dwarf2out_finish): Call optimize_location_lists.
2555 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2556
8207e1fb
RW
25572010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2558
2559 PR testsuite/45974
2560 Revert:
2561 * Makefile.in ($(lang_checks_parallel))
2562 ($(lang_checks_parallelized)): Use single quotes for
2563 $(RUNTESTFLAGS), to allow passing quoted content.
2564
5dbae367
JDA
25652010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2566
2567 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
2568 actual_oldval. Use __builtin_expect.
2569 (SUBWORD_VAL_CAS): Likewise.
2570
2c8865f1
NF
25712010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2572
2573 * recog.c (nonmemory_operand): Call immediate_operand for
2574 CONSTANT_P operands.
2575
bbc8841b
UB
25762010-10-11 Uros Bizjak <ubizjak@gmail.com>
2577
2578 * config/i386/i386.md (movmem<mode>): Macroize expander from
2579 movmem{si,di} using SWI48 mode iterator.
2580 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
2581 *strmovsi_rex_1 using P mode iterator.
2582 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
2583 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
2584 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
2585 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
2586 (setmem<mode>): Macroize expander from setmem{si,di} using
2587 SWI48 mode iterator.
2588 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
2589 *strsetsi_rex_1 using P mode iterator.
2590 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
2591 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
2592 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
2593 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
2594 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
2595 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
2596 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
2597 mode iterator.
2598 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2599 *strlenqi_rex_1 using P mode iterator.
2600
579c1bf3
BS
26012010-10-11 Bernd Schmidt <bernds@codesourcery.com>
2602
2603 PR bootstrap/45445
2604 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2605 static functions.
2606 (mark_ref_live, mark_ref_dead): Use them.
2607 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
2608 Save the original reg, and use the new functions.
2609 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
2610 changed.
2611 (check_and_make_def_conflict): Save the original reg.
2612
3f1f0ae3
MJ
26132010-10-11 Martin Jambor <mjambor@suse.cz>
2614
2615 PR middle-end/45699
2616 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2617 thunks.
2618
e4590d63
RW
26192010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2620
9dd57a6e
RW
2621 * Makefile.in ($(lang_checks_parallel))
2622 ($(lang_checks_parallelized)): Use single quotes for
2623 $(RUNTESTFLAGS), to allow passing quoted content.
2624
e4590d63
RW
2625 PR bootstrap/35855
2626 * opt-functions.awk (BEGIN): New section.
2627 (lower, upper, digit, alnum): New variables.
2628 (static_var, opt_sanitized_name): Use alnum instead of character
2629 classes, for non-C locale.
2630 * optc-gen.awk: Likewise.
2631 * opth-gen.awk: Likewise.
2632
fba42e24
AS
26332010-10-11 Anatoly Sokolov <aesok@post.ru>
2634
2635 * target.def (preferred_reload_class): New hook.
2636 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2637 * doc/tm.texi: Regenerate.
2638 * targhooks.c (default_preferred_reload_class): New function.
2639 * targhooks.h (default_preferred_reload_class): Declare.
2640 * reload.c (find_dummy_reload): Change preferred_class variable type
2641 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2642 target hook.
2643 (find_reloads): Change goal_alternative array type from int to
2644 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2645 (push_reload, find_reloads_address_part): Use
2646 TARGET_PREFERRED_RELOAD_CLASS target hook.
2647 * reload1.c (emit_input_reload_insns): Ditto.
2648 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2649 hook. Change rclass argument and secondary_class variable types from
2650 'enum reg_class' to reg_class_t.
2651
2652 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2653 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2654 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2655 Change regclass argument and result types from enum reg_class to
2656 reg_class_t.
2657 (TARGET_PREFERRED_RELOAD_CLASS): Define.
2658
43c36287
EB
26592010-10-11 Eric Botcazou <ebotcazou@adacore.com>
2660
2661 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2662 in masking operations.
2663 (simplify_const_unary_operation): Likewise.
2664 (simplify_binary_operation_1): Likewise.
2665 (simplify_const_binary_operation): Likewise.
2666 (simplify_const_relational_operation): Likewise.
2667 (simplify_ternary_operation): Likewise.
2668 (simplify_immed_subreg): Likewise.
2669
74b90fe2
JDA
26702010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2671
2672 PR middle-end/45862
2673 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2674 (TARGET_SUPPORTS_WEAK): New.
2675 * doc/tm.texi: Regenerate.
2676 * defaults.h (SUPPORTS_WEAK): Update comment.
2677 (TARGET_SUPPORTS_WEAK): New.
2678 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2679 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2680 SUPPORTS_WEAK.
2681 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2682 make_decl_one_only): Likewise.
2683 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2684 TARGET_SUPPORTS_WEAK.
2685 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2686 instead of SUPPORTS_WEAK.
2687
2861cfa1
RO
26882010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2689
2690 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2691
5095da95
NF
26922010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2693
2694 * vec.h (VEC_qsort): Define.
2695 * dbxout.c (output_used_types): Use it.
2696 * df-scan.c (df_sort_and_compress_refs): Likewise.
2697 (df_sort_and_compress_mws): Likewise.
2698 * genautomata.c (uniq_sort_alt_states): Likewise.
2699 (evaluate_equiv_classes): Likewise.
2700 (output_trans_table): Likewise.
2701 (output_state): Likewise.
2702 * gimplify.c (compare_case_labels): Likewise.
2703 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2704 * ipa.c (build_cdtor_fns): Likewise.
2705 * lto.c (lto_wpa_write_files): Likewise.
2706 * sel-sched.c (fill_vec_av_set): Likewise.
2707 * tree-predcom.c (determine_roots_comp): Likewise.
2708 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2709 (splice_param_accesses): Likewise.
2710 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2711 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2712 (reassociate_bb): Likewise.
2713 * tree-ssa-sccvn.c (sort_scc): Likewise.
2714 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2715
3748f5c9
ILT
27162010-10-11 Ian Lance Taylor <iant@google.com>
2717
2718 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2719 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2720 TREE_THIS_NOTRAP when appropriate.
bbc8841b 2721 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
3748f5c9
ILT
2722 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2723 newly created MEM_REF.
2724
c159751b
HS
27252010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
2726
bbc8841b 2727 Nathan Froyds patch to hooks FUNCTION_ARG etc.
c159751b
HS
2728 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2729 (picochip_incoming_function_arg): Delete.
2730 (picochip_arg_advance): Delete.
2731 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2732 (FUNCTION_INCOMING_ARG): Delete.
2733 (FUNCTION_ARG_ADVANCE): Delete.
2734 * config/picochip/picochip.c (picochip_function_arg): Take a
2735 const_tree and a bool.
2736 (picochip_incoming_function_arg): Likewise.
2737 (picochip_arg_advance): Likewise.
2738 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2739 (TARGET_FUNCTION_ARG_ADVANCE): Define.
2740
7d26a391
JDA
27412010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2742
2743 PR middle-end/45955
2744 * ipa.c (build_cdtor): Delete endless loop.
2745
d6d5951a
AK
27462010-10-07 Andi Kleen <ak@linux.intel.com>
2747
2748 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2749 checksum-options.
2750 (checksum-options): Add.
2751 (cc1-dummy): Remove.
2752 (cc1-checksum): Change to run checksum over object files
2753 and options only.
2754 * dummy-checksum.c: Remove.
2755 * genchecksum.c: Update copyright.
2756 (usage): Allow multiple arguments.
2757 (BLOCKSIZE): Add.
2758 (dosum): Change for incremental checksum. Remove C output.
2759 (main): Iterate over all argument files. Add C output.
2760
128dc8e2
JM
27612010-10-11 Joseph Myers <joseph@codesourcery.com>
2762
2763 * params.c (set_param_value_internal): New.
2764 (set_param_value): Use set_param_value_internal.
2765 (maybe_set_param_value, set_default_param_value): New.
2766 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2767 (maybe_set_param_value, set_default_param_value): Declare.
bbc8841b 2768 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
128dc8e2
JM
2769 * config/i386/i386.c (ix86_option_override_internal): Use
2770 maybe_set_param_value.
2771 * config/ia64/ia64.c (ia64_option_default_params,
2772 TARGET_OPTION_DEFAULT_PARAMS): New.
2773 (ia64_option_optimization): Move some code to
2774 ia64_option_default_params.
2775 * config/picochip/picochip.c (picochip_option_override): Use
2776 maybe_set_param_value.
2777 * config/rs6000/rs6000.c (rs6000_option_default_params,
2778 TARGET_OPTION_DEFAULT_PARAMS): New.
2779 (rs6000_option_override_internal): Use maybe_set_param_value.
2780 (rs6000_option_optimization): Move some code to
2781 rs6000_option_default_params.
bbc8841b 2782 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
128dc8e2
JM
2783 * config/sh/sh.c (sh_option_default_params,
2784 TARGET_OPTION_DEFAULT_PARAMS): New.
bbc8841b 2785 (sh_option_optimization): Move some code to sh_option_default_params.
128dc8e2
JM
2786 * config/sparc/sparc.c (sparc_option_override): Use
2787 maybe_set_param_value.
2788 * config/spu/spu.c (spu_option_default_params,
2789 TARGET_OPTION_DEFAULT_PARAMS): New.
bbc8841b 2790 (spu_option_optimization): Move some code to spu_option_default_params.
128dc8e2
JM
2791 (spu_option_override): Use maybe_set_param_value.
2792 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2793 * doc/tm.texi: Regenerate.
2794 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2795 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2796 compiler_params.
2797 (default_options_optimization): Use maybe_set_param_value.
2798 (finish_options): Use maybe_set_param_value.
2799 * target.def (target_option.default_params): New hook.
bbc8841b 2800 * toplev.c (general_init): Call targetm.target_option.default_params.
128dc8e2 2801
49077698
IR
28022010-10-11 Ira Rosen <irar@il.ibm.com>
2803
2804 PR tree-optimization/45902
2805 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2806 vector type for constants, unless it's a pointer.
2807
a6510374
AK
28082010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2809
2810 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2811
922a06c3
JJ
28122010-10-11 Jakub Jelinek <jakub@redhat.com>
2813
2814 PR target/45870
2815 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2816 (ix86_delegitimize_address): Use it.
2817
e9acb323
EB
28182010-10-10 Eric Botcazou <ebotcazou@adacore.com>
2819
2820 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2821
bdf057c6
UB
28222010-10-10 Uros Bizjak <ubizjak@gmail.com>
2823
2824 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2825 to cum struct in the call to function_arg_advance.
2826 (alpha_function_arg_advance): Mark named as unused.
2827
0e88eb86
RS
28282010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
2829
2830 * config/mips/mips.c (mips_handle_option): Make "value" with
2831 ATTRIBUTE_UNUSED.
2832
3a42502d
RH
28332010-10-09 Richard Henderson <rth@redhat.com>
2834
2835 PR rtl-opt/33721
2836 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2837 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
2838 required_align, tidy the code a bit. Emit split_stack code in the
2839 right place. Mark the return value with the alignment properly.
2840 * expr.h (allocate_dynamic_stack_space): Update decl.
2841 * builtins.c (expand_builtin_apply): Update call to
2842 allocate_dynamic_stack_space.
2843 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
2844 * calls.c (initialize_argument_information): Update call to
2845 allocate_dynamic_stack_space.
2846 (expand_call): Likewise.
2847
2848 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
2849 Don't update_stack_alignment here.
2850 (alloc_stack_frame_space): Make ALIGN unsigned.
2851 (stack_var_cmp): Sort by alignment too.
2852 (partition_stack_vars): Don't merge large and small alignment vars.
2853 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
2854 Take care when BASE is not virtual_stack_vars_rtx.
2855 (expand_stack_vars): Allocate dynamic stack space for large
2856 alignment variables.
2857 (expand_one_stack_var): Update all to expand_one_stack_var_at.
2858 (defer_stack_allocation): True for large alignment vars.
2859 (update_stack_alignment): Merge into ...
2860 (expand_one_var): ... here.
2861 (gimple_expand_cfg): Place code from expand_stack_vars.
2862
a5f4f531
NF
28632010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2864
2865 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2866 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
2867 (pdp11_function_arg_advance): New function.
2868 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2869
4471aff6
NF
28702010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2871
2872 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
2873 * libgcc2.c: Likewise.
2874
5074d72c
RG
28752010-10-09 Richard Guenther <rguenther@suse.de>
2876
2877 PR lto/45956
2878 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
2879 Properly check if a decl is an automatic var.
2880
865e8e8e
RG
28812010-10-09 Richard Guenther <rguenther@suse.de>
2882
2883 PR lto/45947
2884 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2885
9fb41e15
NF
28862010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2887
2888 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
2889 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2890 * config/mmix/mmix.c (mmix_function_arg): Rename to...
2891 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
2892 bool arguments.
2893 (mmix_function_arg): New function.
2894 (mmix_function_incoming_arg): New function.
2895 (mmix_function_arg_advance): New function.
2896 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2897 (TARGET_FUNCTION_ARG_ADVANCE): Define.
2898
8f8a46ba
NF
28992010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2900
2901 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2902 * config/vax/vax.c (vax_function_arg): New function.
2903 (vax_function_arg_advance): New function.
2904 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2905
fd29bdaf
NF
29062010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2907
2908 * config/pa/pa-protos.h (function_arg): Delete.
2909 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2910 * config/pa/pa.c (function_arg): Rename to...
2911 (pa_function_arg): ...this. Make static. Take a const_tree and
2912 a bool.
2913 (pa_function_arg_advance): New function.
2914 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2915
13d3961c
NF
29162010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2917
2918 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2919 * config/m68k/m68k.c (m68k_function_arg): New function.
2920 (m68k_function_arg_advance): New function.
2921 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2922
733bdfbd
NF
29232010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2924
2925 * config/avr/avr-protos.h (function_arg): Delete.
2926 (function_arg_advance): Delete.
2927 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2928 * config/avr/avr.c (function_arg): Rename to...
2929 (avr_function_arg): ...this. Make static. Take a const_tree and
2930 a bool.
2931 (function_arg_advance): Rename to...
2932 (avr_function_arg_advance): ...this. Make static. Take a
2933 const_tree and a bool.
2934 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2935
0c3a9758
NF
29362010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2937
2938 * config/alpha/alpha-protos.h (function_arg): Delete.
2939 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2940 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
2941 * config/alpha/alpha.c (function_arg): Rename to...
2942 (alpha_function_arg): ...this. Make static. Take a const_tree and
2943 a bool. Delete TARGET_ABI_UNICOSMK code.
2944 (alpha_function_arg_advance): New function.
2945 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2946
0851c6e3
NF
29472010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2948
2949 * config/mep/mep-protos.h (mep_function_arg): Delete.
2950 (mep_function_arg_advance): Delete.
2951 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2952 * config/mep/mep.c (mep_function_arg): Make static. Take a
2953 const_tree and a bool.
2954 (mep_function_arg_advance): Likewise.
2955 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2956
e5160e93
RG
29572010-10-09 Richard Guenther <rguenther@suse.de>
2958
2959 PR tree-optimization/45945
bdf057c6 2960 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
e5160e93 2961
1802378d
EB
29622010-10-09 Eric Botcazou <ebotcazou@adacore.com>
2963
2964 PR tree-optimization/45612
2965 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
2966 Test LABEL_DECLs as well. Fix formatting issues.
2967 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
2968 whose label is present in NON_SSA_VARS.
2969 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
2970 as well. Fix formatting issues.
2971 (visit_bb): Fix typos and formatting issue.
2972
64978ba3
NF
29732010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2974
2975 PR tree-optimization/45950
2976 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
2977 before initializing vno->op.
2978
1ddc8057
RC
29792010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
2980
2981 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
2982 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2983
c2c795ff
L
29842010-10-08 H.J. Lu <hongjiu.lu@intel.com>
2985
2986 PR target/45913
2987 * config/i386/i386.c (ix86_binary_operator_ok): Support
2988 "andhi/andsi/anddi" as a zero-extending move.
2989
8897c9ce
NF
29902010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2991
2992 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
2993 into a temporary array.
2994
509dd380
JJ
29952010-10-08 Jakub Jelinek <jakub@redhat.com>
2996
2997 PR tree-optimization/45903
2998 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
bdf057c6 2999 of {A,L}SHIFTRT of MEM.
509dd380 3000
bd39cb52
RG
30012010-10-08 Richard Guenther <rguenther@suse.de>
3002
3003 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
3004 Re-construct BLOCK_VARS.
3005 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
3006 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
3007 * tree.c (free_lang_data_in_block): Remove.
3008 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
3009 Do not touch the BLOCK tree.
3010 * expr.c (expand_expr_real_1): Allow externals.
3011
8686c474
RG
30122010-10-08 Richard Guenther <rguenther@suse.de>
3013
3014 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
3015 Do not output BLOCK_SUBBLOCKS.
3016 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
3017 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
3018 Re-construct BLOCK_SUBBLOCKS of parent block.
3019 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
3020 for BINFO_BASE_ACCESSES.
3021
a75bfaa6
JM
30222010-10-08 Joseph Myers <joseph@codesourcery.com>
3023
3024 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
3025 (TREE_H): Include $(FLAGS_H) instead of options.h.
3026 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
3027 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3028 * common.opt (flag_complex_method, flag_evaluation_order,
3029 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
3030 Variable declarations.
bdf057c6 3031 * configure.ac (tm_include_list): Include flags.h instead of options.h.
a75bfaa6
JM
3032 * configure: Regenerate.
3033 * flags.h: Condition out contents for target libraries. Include
3034 options.h at end of file.
3035 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
3036 flag_evaluation_order, flag_warn_unused_result): Remove.
3037 * gcc.c (main): Intialize global_options with global_options_init.
3038 * langhooks-def.h (lhd_init_options_struct): Declare.
3039 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3040 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
3041 * langhooks.c (lhd_init_options_struct): New.
3042 * langhooks.h (struct lang_hooks): Add init_options_struct.
3043 Update comment on init_options.
3044 * optc-gen.awk: Generate initializer for global_options_init, not
3045 global_options.
3046 * opth-gen.awk: Condition out structure declarations for target
3047 libraries. Declare global_options_init.
3048 * opts-common.c: Include flags.h instead of options.h.
3049 * opts.c (flag_warn_unused_result): Remove.
3050 (read_cmdline_options): Take gcc_options parameters. Pass them to
3051 read_cmdline_option.
3052 (initial_lang_mask, initial_min_crossjump_insns,
3053 initial_max_fields_for_field_sensitive,
3054 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
3055 (init_options_once): New. Split out of decode_options.
3056 (init_options_struct): New. Split out of decode_options.
3057 (decode_cmdline_options_to_array_default_mask): New.
3058 (default_options_optimization): New. Split out of decode_options.
3059 (decode_options): Move most code to other functions. Update call
3060 to read_cmdline_options.
3061 (finish_options): New. Split out of decode_options.
3062 * opts.h (decode_options): Add gcc_options parameters.
3063 (init_options_once, init_options_struct,
3064 decode_cmdline_options_to_array_default_mask): New.
3065 * toplev.c (flag_complex_method, flag_ira_algorithm,
3066 flag_ira_region, flag_evaluation_order): Remove.
3067 (general_init): Use global_options_init for initial flag values
3068 for global_dc.
3069 (toplev_main): Call init_options_once, init_options_struct,
3070 lang_hooks.init_options_struct,
3071 decode_cmdline_options_to_array_default_mask and
3072 lang_hooks.init_option before decode_options. Update arguments to
3073 decode_options.
3074 * tree.h: Include flags.h instead of options.h.
3075
ab86687c
NF
30762010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3077
3078 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3079
9adafb9f
NF
30802010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3081
3082 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
3083 Delete.
3084 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3085 (FUNCTION_INCOMING_ARG): Delete.
3086 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
3087 (function_arg_slotno): Likewise. Take bool arguments.
3088 (sparc_arg_partial_bytes): Update call to it.
3089 (function_arg): Rename to...
3090 (sparc_function_arg_1): ...this. Take bool arguments.
3091 (sparc_function_arg, sparc_function_incoming_arg): New functions.
3092 (function_arg_advance): Rename to...
3093 (sparc_function_arg_advance): ...this. Take bool argument.
3094 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
3095 (TARGET_FUNCTION_INCOMING_ARG): Define.
3096
74f41f02
NF
30972010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3098
3099 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
3100 Delete.
3101 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3102 * config/bfin/bfin.c (function_arg_advance): Rename to...
3103 (bfin_function_arg_advance): ...this. Make static. Take const_tree
3104 and bool arguments.
3105 (function_arg): Rename to...
3106 (bfin_function_arg): ...this. Make static. Take const_tree and bool
3107 arguments.
3108 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3109
3a2bd2f4
NF
31102010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3111
3112 * config/score/score-protos.h (score_function_arg): Delete.
3113 (score_function_arg_advance): Delete.
3114 * config/score/score3.h (score3_function_arg_advance): Take a
3115 const_tree and a bool.
3116 (score3_function_arg): Likewise.
3117 * config/score/score7.h (score7_function_arg_advance): Likewise.
3118 (score7_function_arg): Likewise.
3119 * config/score/score3.c (score3_classify_arg): Likewise.
3120 (score3_function_arg_advance, score3_function_arg): Likewise.
3121 * config/score/score7.c (score7_classify_arg): Likewise.
3122 (score7_function_arg_advance, score7_function_arg): Likewise.
3123 * config/score/score.c (score_function_arg_advance): Likewise.
3124 (score_function_arg): Likewise. De-const-ify `cum' argument.
3125 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3126
3cb1da52
NF
31272010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3128
3129 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
3130 (s390_function_arg): Delete.
3131 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3132 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
3133 (s390_function_arg_integer): Likewise.
3134 (s390_function_arg_advance): Make static. Take a const_tree and
3135 a bool.
3136 (s390_function_arg): Likewise.
3137 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3138
925ed112
NF
31392010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3140
3141 * config/spu/spu-protos.h (spu_function_arg): Delete.
3142 * config/spu/spu.h (FUNCTION_ARG): Delete.
3143 (FUNCTION_ARG_ADVANCE): Move code to ...
3144 * config/spu/spu.c (spu_function_arg_advance): New function.
3145 (spu_function_arg): Make static. Take a const_tree and a bool.
3146 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
3147 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3148
31492010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3150
3151 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3152
9ad6bebe
NF
31532010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3154
3155 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
3156 (init_vn_nary_op_from_op): New function.
3157 (init_vn_nary_op_from_stmt): New function.
3158 (vn_nary_op_lookup_1): New function.
3159 (sizeof_vn_nary_op): New function.
3160 (alloc_vn_nary_op_noinit): New function.
3161 (alloc_vn_nary_op): New function.
3162 (vn_nary_op_insert_into): New function.
3163 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
3164 (vn_nary_op_lookup): Likewise.
3165 (vn_nary_op_lookup_stmt): Likewise.
3166 (vn_nary_op_insert_pieces): Likewise.
3167 (vn_nary_op_insert): Likewise.
3168 (vn_nary_op_insert_stmt): Likewise.
3169 (copy_nary): Likewise.
3170 (set_value_id_for_result): New function.
3171 (set_hashtable_value_ids): Call it.
3172
0db0c836
NF
31732010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3174
3175 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3176 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
3177
fd02e833
NF
31782010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3179
3180 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
3181 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3182
5f262d13
AO
31832010-10-08 Alexandre Oliva <aoliva@redhat.com>
3184
3185 PR debug/45656
3186 * cse.c (cse_extended_basic_block): Preserve cc0 info across
3187 debug isnsn. Skip them when searching for cc0 setter.
3188 (set_live_p): Skip debug insns when searching for cc0 user.
3189
7de9e0a1
AO
31902010-10-08 Alexandre Oliva <aoliva@redhat.com>
3191
3192 PR debug/45673
3193 PR debug/45604
3194 PR debug/45419
3195 PR debug/45408
3196 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
3197 type of MEM_REFs to INTEGER_CSTs.
3198
5bd84829
NF
31992010-10-07 Nathan Froyd <froydnj@codesourcery.com>
3200
3201 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
3202 m68hc11_print_operand_address.
3203
43ea30dc
NF
32042010-10-07 Nathan Froyd <froydnj@codesourcery.com>
3205
3206 * builtins.c (rewrite_call_expr): Move code to...
bdf057c6 3207 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
43ea30dc
NF
3208 (rewrite_call_expr_array): New function.
3209 (fold_builtin_sprintf_chk_1): New function.
3210 (fold_builtin_sprintf_chk): Call it.
3211 (gimple_fold_builtin_sprintf_chk): Likewise.
3212 (fold_builtin_snprintf_chk_1): New function.
3213 (fold_builtin_snprintf_chk): Call it.
3214 (gimple_fold_builtin_snprintf_chk): Likewise.
3215 (gimple_rewrite_call_expr): Delete.
3216
39604ffe
DK
32172010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
3218
3219 * config.host: Update copyright year.
3220
1cd0b716
DK
32212010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
3222
3223 * config.host (host_lto_plugin_soname): New shell variable.
3224 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
3225 * config.in: Regenerate.
3226 * configure: Regenerate.
3227 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
3228 LTO plugin shared library.
3229
6ba74c2d
RH
32302010-10-07 Richard Henderson <rth@redhat.com>
3231
3232 * target.h (enum unwind_info_type): Move ...
3233 * coretypes.h: ... here.
3234
038d22b6
NP
32352010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
3236
3237 * doc/objc.texi (Fast enumeration protocol): Mention that
3238 'unsigned int' can also be used instead of 'unsigned long' in
3239 countByEnumeratingWithState:objects:count:.
3240
fc37536b
MJ
32412010-10-07 Martin Jambor <mjambor@suse.cz>
3242
3243 * tree-sra.c (struct access): New field grp_assignment_write.
3244 (dump_access): Dump grp_assignment_write.
3245 (build_accesses_from_assign): Set grp_assignment_write.
3246 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
3247 (mark_read_status): Renamed to mark_rw_status, individual values
3248 renamed too.
3249 (analyze_access_subtree): Changed type of mark_write to
3250 mark_read_status. Fixed propagating of mark_read and
3251 mark_write. Changed benefit estimate. Updated comment.
3252
d163c4f7
TB
32532010-10-07 Tejas Belagod <tejas.belagod@arm.com>
3254
78e27dd3 3255 PR Tree-Vect/45847
d163c4f7
TB
3256 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
3257 check for vectype_out returned by get_vectype_for_scalar_type().
3258
7f27ec08
TB
32592010-10-07 Tejas Belagod <tejas.belagod@arm.com>
3260
78e27dd3 3261 PR target/45805
7f27ec08
TB
3262 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
3263 constraint, add register specifier in instruction template.
3264 (neon_vec_pack_trunc_<mode>): Likewise.
3265 (neon_vec_<US>mult_<mode>): Add register specifier to
3266 instruction template.
3267
3edeb30d
DK
32682010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
3269
3270 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
3271 cygwin2.o.
3272 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
3273 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
3274 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
3275 (cygwin2.o): Likewise.
3276 * config/i386/cygwin1.c: Delete file.
3277 * config/i386/cygwin2.c: Likewise.
3278 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
3279 make all {%!mno-cygwin} ones unconditional.
3280 (STARTFILE_SPEC): Likewise.
3281 (REAL_LIBGCC_SPEC): Likewise.
3282 (LIB_SPEC): Likewise.
3283 (CXX_WRAP_SPEC): Likewise.
3284 (LINK_SPEC): Likewise.
3285 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
3286 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
3287 (cygwin_gplusplus_include_dir): Delete now-unused array.
3288 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
3289 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
3290 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
3291 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
3292 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
3293 (cygwin_local_include_dir): Delete now-unused array.
3294 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
3295 (cygwin_cross_include_dir): Delete now-unused array.
3296 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
3297 (cygwin_tool_include_dir): Delete now-unused array.
3298 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
3299 (cygwin_standard_include_dir): Delete now-unused array.
3300 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
3301 (GEN_CVT_ARRAY): Delete now-unused macro definition.
3302 (cvt_to_mingw): Delete now-unused array.
3303 (mingw_scan): Remove prototype of deleted function.
3304 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
3305 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
3306 * doc/invoke.texi (-mcygwin): Don't document removed option.
3307 (-mno-cygwin): Likewise.
3308
bb67d9c7
RG
33092010-10-07 Richard Guenther <rguenther@suse.de>
3310
3311 * machmode.h (mode_for_vector): Declare.
3312 * stor-layout.c (mode_for_vector): New function, split out from ...
3313 (layout_type): ... here.
3314 * tree-vectorizer.h (current_vector_size): Declare.
3315 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
3316 mask vector type is available.
3317 (get_vectype_for_scalar_type): Rename to ...
3318 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
3319 size argument.
3320 (get_vectype_for_scalar_type): New wrapper around
3321 get_vectype_for_scalar_type_and_size using current_vector_size.
3322 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
3323 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
3324 of vect_analyze_loop here.
3325 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
3326 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
3327 to autodetect.
3328 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
3329 V8SF to V8SI conversion builtin.
3330
767f865f
RG
33312010-10-07 Richard Guenther <rguenther@suse.de>
3332
3333 * target.def (autovectorize_vector_sizes): New target hook.
3334 * targhooks.c (default_autovectorize_vector_sizes): New function.
3335 * targhooks.h (default_autovectorize_vector_sizes): Declare.
3336 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
3337 Document.
3338 * doc/tm.texi: Update.
3339 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
3340 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3341
cc4b5170
RG
33422010-10-07 Richard Guenther <rguenther@suse.de>
3343
3344 * target.def (units_per_simd_word): Rename to ...
3345 (preferred_simd_mode): ... this. Return mode instead of size.
3346 * targhooks.c (default_units_per_simd_word): Rename to ...
3347 (default_preferred_simd_mode): ... this. Return word_mode.
3348 * targhooks.h (default_preferred_simd_mode): Declare.
3349 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
3350 (arm_preferred_simd_mode): ... this. Re-implement.
3351 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
3352 (ix86_preferred_simd_mode): ... this. Re-implement.
3353 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
3354 (sparc_preferred_simd_mode): ... this. Re-implement.
3355 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
3356 (mips_preferred_simd_mode): ... this. Re-implement.
3357 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
3358 (rs6000_preferred_simd_mode): ... this. Re-implement.
3359 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
3360 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
3361 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
3362 * doc/tm.texi: Update.
3363
65dcb901
RG
33642010-10-07 Richard Guenther <rguenther@suse.de>
3365
3366 PR middle-end/45869
3367 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
3368 of pointers.
3369
a557f9cc
AM
33702010-10-07 Alan Modra <amodra@gmail.com>
3371
3372 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
3373 rather than sign extension by hand.
3374
bd67cff1
JH
33752010-10-07 Jan Hubicka <jh@suse.cz>
3376
3377 PR middle-end/45926
3378 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
3379
2b48f20d
RG
33802010-10-07 Richard Guenther <rguenther@suse.de>
3381
3382 PR bootstrap/45914
3383 * configure.ac: Fix typo.
3384 * configure: Regenerated.
3385
826d817f
FXC
33862010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3387
3388 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
3389 define_builtin_std where it's unnecessary.
3390 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
3391
32bd8fcf
AS
33922010-10-06 Anatoly Sokolov <aesok@post.ru>
3393
3394 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
3395 * doc/tm.texi.in: Regenerate.
3396 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
a557f9cc 3397 * targhooks.c (default_class_likely_spilled_p): Don't use the
32bd8fcf
AS
3398 CLASS_LIKELY_SPILLED_P macro.
3399
a557f9cc 3400 * config/arm/arm.md: Update comment.
32bd8fcf 3401
0e9ea52b
JH
34022010-10-06 Jan Hubicka <jh@suse.cz>
3403
a557f9cc
AM
3404 * ipa.c (cgraph_remove_unreachable_nodes): External references can
3405 always be removed.
3406 (cgraph_externally_visible_p): We can not bring local comdats that
3407 are known to linker; fix handling of internal visibility.
0e9ea52b
JH
3408 (function_and_variable_visibility): Likewise.
3409
9c506f10
EB
34102010-10-06 Eric Botcazou <ebotcazou@adacore.com>
3411
3412 PR rtl-optimization/45394
3413 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
3414 (struct rtx_subst_pair): Remove AFTER field.
3415 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
3416 (propagate_for_debug): Remove MOVE parameter and adjust.
3417 (try_combine): In the special case where I2 is a PARALLEL, combine only
3418 destinations of SETs and set I2SRC to the I2 source.
3419 Adjust calls to propagate_for_debug throughout.
3420 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
3421 insns.
3422
35c26820
OH
34232010-10-06 Olivier Hainque <hainque@adacore.com>
3424
3425 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
3426 switch on insn codes as sequence of ifs.
3427
9c506f10
EB
34282010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
3429
131e5634
HS
3430 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
3431 be UI_NONE for picochip.
3432 (picochip_option_override): Do not disable exception flags.
9c506f10 3433 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
131e5634
HS
3434 Declare.
3435
85194319
RG
34362010-10-06 Richard Guenther <rguenther@suse.de>
3437
3438 * Makefile.in (regmove.o): Depend on $(TARGET_H).
3439
f05b9d93
NP
34402010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
3441
a557f9cc 3442 Implemented fast enumeration for Objective-C.
f05b9d93
NP
3443 * c-parser.c (objc_could_be_foreach_context): New.
3444 (c_lex_one_token): Recognize RID_IN keyword in a potential
3445 Objective-C foreach context.
3446 (c_parser_declaration_or_fndef): Added parameter. Accept
3447 Objective-C RID_IN keyword as terminating a declaration; in that
3448 case, return the declaration in the new parameter.
3449 (c_parser_extenral_declaration): Updated calls to
3450 c_parser_declaration_or_fndef.
3451 (c_parser_declaration_or_fndef): Same change.
3452 (c_parser_compound_statement_nostart): Same change.
3453 (c_parser_label): Same change.
3454 (c_parser_objc_methodprotolist): Same change.
3455 (c_parser_omp_for_loop): Same change.
3456 (c_parser_for_statement): Detect and parse Objective-C foreach
3457 statements.
3458 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
3459 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
3460 fast enumeration parsing code to turn off the c99 error but still
3461 perform checks on the loop declarations.
3462 * c-tree.h (check_for_loop_decls): Updated declaration.
3463 * doc/objc.texi: Document fast enumeration.
a557f9cc 3464
2720cc47
NC
34652010-10-06 Nick Clifton <nickc@redhat.com>
3466
bdf057c6 3467 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
2720cc47 3468 (MDR_REGNUM): Define.
bdf057c6 3469 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
2720cc47
NC
3470 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
3471 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
3472 (REGISTER_NAMES): Add MDR.
3473 (DWARF2_DEBUGGING_INFO): Define to 1.
3474 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3475 (F): New function. Sets RTX_FRAME_RELATED_P.
3476 (mn10300_gen_multiple_store): Use F.
3477 (expand_prologue): Use F. Use gen_movsf() to push floating
3478 point registers.
bdf057c6 3479 (expand_epilogue): Use gen_movsf() to pop floating point registers.
2720cc47
NC
3480 (mn10300_option_override): Disable combine stack adjust pass.
3481
28ce2f29
TS
34822010-10-06 Thomas Schwinge <thomas@schwinge.name>
3483
3484 PR target/45901
3485 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
3486 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
3487
d724c876
JJ
34882010-10-06 Jakub Jelinek <jakub@redhat.com>
3489
933bc232
JJ
3490 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
3491 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
3492 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
3493 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
3494 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
3495 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
3496 BUILT_IN_TOUPPER): Mark as leaf.
3497
d724c876
JJ
3498 PR middle-end/45838
3499 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
3500 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
3501 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
3502 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
3503 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
3504 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
3505 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
3506
c1f9afd1
AS
35072010-10-05 Anatoly Sokolov <aesok@post.ru>
3508
3509 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
3510 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3511 (m68hc11_class_likely_spilled_p): New function.
3512
a26d8862
NP
35132010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
3514
3515 * c-parser.c (c_parser_objc_method_definition): Updated comment.
3516
852e4bd2
JH
35172010-10-05 Jan Hubicka <jh@suse.cz>
3518
3519 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
3520 Document.
3521 * opts.c (decode_options): Handle lto partitions.
3522 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
3523 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
3524
35252010-10-05 Jan Hubicka <jh@suse.cz>
5806d9ac
JH
3526
3527 * cgraphunit.c (assemble_function): Output thunks and aliases before
3528 the function itself.
3529
9c506f10 35302010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
0378450e
HS
3531
3532 * config/picochip/picochip.c (picochip_option_override): Disable
3533 exception flags for picochip.
3534
1ebe4b4f
JM
35352010-10-05 Joseph Myers <joseph@codesourcery.com>
3536
3537 * opts-common.c (handle_option, handle_generated_option,
3538 read_cmdline_option, set_option): Add diagnostic_context
3539 parameter. Update calls among these functions.
3540 (set_option): Don't use global_dc.
bdf057c6 3541 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
1ebe4b4f
JM
3542 (decode_options): Pass global_dc to enable_warning_as_error.
3543 (common_handle_option): Pass global_dc to enable_warning_as_error.
3544 (enable_warning_as_error): Add diagnostic_context parameter.
3545 Document parameters. Don't use global_dc. Pass
3546 diagnostic_context parameter to handle_generated_option.
3547 * opts.h (set_option, handle_option, handle_generated_option,
3548 read_cmdline_option, enable_warning_as_error): Add
3549 diagnostic_context parameter.
3550 * Makefile.in (lto-opts.o): Update dependencies.
3551 * coretypes.h (struct diagnostic_context, diagnostic_context):
3552 Declare here.
3553 * diagnostic.h (diagnostic_context): Don't declare typedef here.
3554 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
3555 * langhooks-def.h (struct diagnostic_context): Don't declare here.
3556 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
3557 using diagnostic_context typedef.
3558 * langhooks.c (lhd_initialize_diagnostics): Declare using
3559 diagnostic_context typedef.
3560 * langhooks.h (struct diagnostic_context): Don't declare here.
3561 (initialize_diagnostics, print_error_function): Declare using
3562 diagnostic_context typedef.
3563 * lto-opts.c: Include diagnostic.h.
3564 (lto_reissue_options): Pass global_dc to set_option. Pass
3565 DK_UNSPECIFIED not 0.
3566 * plugin.c (plugins_internal_error_function): Declare using
3567 diagnostic_context typedef.
3568 * plugin.h (struct diagnostic_context): Don't declare here.
3569 (plugins_internal_error_function): Declare using
3570 diagnostic_context typedef.
3571
bcee41ff 35722010-10-05 Olivier Hainque <hainque@adacore.com>
bdf057c6 3573 Nicolas Roche <roche@adacore.com>
bcee41ff
OH
3574
3575 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
3576 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
3577
694a4f61
IR
35782010-10-05 Ira Rosen <irar@il.ibm.com>
3579
3580 PR tree-optimization/45752
3581 * tree-vect-slp.c (vect_get_mask_element): Remove static
3582 variables, make them function arguments.
3583 (vect_transform_slp_perm_load): Pass new arguments to
3584 vect_get_mask_element.
3585
4d3814a5
RG
35862010-10-05 Richard Guenther <rguenther@suse.de>
3587
3588 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
3589 (gimple_mod_pow2): Likewise.
3590 (gimple_mod_subtract): Likewise.
3591 (gimple_ic): Likewise.
3592 (gimple_stringop_fixed_value): Likewise.
3593 * tree-profile.c (tree_init_edge_profiler): Mark profile
3594 functions nothrow and leaf.
3595 (add_abnormal_goto_call_edges): Remove.
3596 (tree_gen_edge_profiler): Work on SSA form.
3597 (tree_gen_ic_profiler): Likewise. Simplify.
3598 (do_tree_profiling): Update SSA form.
3599 (pass_tree_profile): Remove.
3600 (do_tree_profiling): Likewise.
3601 (gate_tree_profile_ipa): New function.
3602 (pass_ipa_tree_profile): New.
3603 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
3604 state of instrumented functions.
3605 * passes.c (init_optimization_passes): Remove early non-SSA
3606 inlining. Move profiling after early optimizations.
3607 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3608 (pass_ipa_early_inline): Likewise.
3609 * tree-pass.h (pass_ipa_early_inline): Remove.
3610 (pass_tree_profile): Likewise.
3611 (pass_ipa_tree_profile): Declare.
3612
65b1d8ea 36132010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
bdf057c6 3614 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
65b1d8ea
AK
3615
3616 * gcc/config/s390/s390.c (z196_cost): New.
3617 (s390_handle_arch_option): Add -march=z196.
3618 (s390_option_override): Use the new cost function and use the z10
3619 defaults also for z196.
3620 (legitimate_reload_constant_p): Adjust comment.
3621 (legitimate_reload_fp_constant_p): New function.
3622 (s390_preferred_reload_class): Distingiush between FP and Int constants.
3623 (preferred_la_operand_p): Avoid la with index on z196.
3624 (s390_adjust_priority): Trigger also for z196.
3625 (s390_issue_rate): Issue rate for z196 is 3.
3626 (s390_z10_fix_long_loop_prediction): Rename to ...
3627 (s390_fix_long_loop_prediction): ... this.
3628 (s390_reorg): Apply the z10 adjustments also for z196.
3629 (s390_loop_unroll_adjust): Do this also for z196.
3630 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3631 (enum processor_flags): Add PF_Z196.
3632 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3633 (TARGET_CPU_Z196, TARGET_Z196): New macros.
3634 * gcc/config.gcc: Enable z196 for --with-arch.
3635 * gcc/config/s390/2817.md: New file.
3636 * gcc/config/s390/2084.md: New type for multiply and add.
3637 * gcc/config/s390/2097.md: Likewise.
3638 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3639 (UNSPECV_ATOMIC_OP): New constants.
3640 (fmadddf, fmaddsf): New values for type attribute.
3641 (z196prop): New insn attribute.
3642 (cpu, cpu_facility): Add z196.
3643 (ATOMIC_Z196): New code iterator.
3644 (noxa): New code attribute.
3645 (gk): New mode attribute.
3646 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3647 Support load zero for fp constants.
3648 (fixuns_truncdddi2, fixuns_trunctddi2)
3649 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3650 for z196.
3651 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3652 (popcounthi2, popcountqi2): New expander.
3653 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3654 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3655 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3656 insn definition.
3657 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3658 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
bdf057c6
UB
3659 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3660 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3661 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3662 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3663 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3664 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3665 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3666 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3667 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3668 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
65b1d8ea
AK
3669 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3670 Support new z196 instructions.
3671
6e572326
RG
36722010-10-05 Richard Guenther <rguenther@suse.de>
3673
3674 PR middle-end/45877
3675 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3676 case where gimplification optimizes away the stmt.
3677
098db05e
JJ
36782010-10-04 Jakub Jelinek <jakub@redhat.com>
3679
3680 PR debug/45849
3681 * var-tracking.c (strip_pointer_flags): New function.
3682 (emit_note_insn_var_location): If rtx_equal_p check failed,
3683 retry on locations simplified with simplify_replace_fn_rtx
3684 and strip_pointer_flags as its callback.
3685
b3b9f3d0
JH
36862010-10-04 Jan Hubicka <jh@suse.cz>
3687
3688 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3689 (can_refer_decl_in_current_unit_p): ... this one; reverse return
3690 value; handle comdats too.
3691 (canonicalize_constructor_val): Use it; handle function_decls
3692 correctly.
3693 (gimple_fold_obj_type_ref_known_binfo): Likewise.
3694 * gimple.c (get_base_address): Accept all kinds of decls.
3695
fa37ed29
JM
36962010-10-04 Joseph Myers <joseph@codesourcery.com>
3697
3698 * flags.h (g_switch_value, g_switch_set): Remove.
3699 * opts.c (g_switch_value, g_switch_set): Remove.
3700 * config/g.opt (G): Add Var(g_switch_value).
bdf057c6 3701 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
fa37ed29
JM
3702 (alpha_option_override): Check global_options_set.x_g_switch_value
3703 instead of g_switch_set.
3704 (alpha_in_small_data_p): Remove cast in comparison with
3705 g_switch_value.
3706 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3707 g_switch_value to unsigned HOST_WIDE_INT.
3708 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3709 with g_switch_value.
3710 (frv_handle_option): Don't handle -G here.
3711 (frv_option_override): Check global_options_set.x_g_switch_value
3712 instead of g_switch_set. Don't modify g_switch_set.
bdf057c6 3713 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
fa37ed29
JM
3714 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3715 g_switch_value to unsigned HOST_WIDE_INT.
3716 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3717 (ia64_option_override): Check global_options_set.x_g_switch_value
3718 instead of g_switch_set.
3719 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3720 Remove.
3721 (lm32_in_small_data_p): Remove cast in comparison with
3722 g_switch_value.
3723 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3724 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3725 HOST_WIDE_INT.
3726 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3727 (m32r_init): Check global_options_set.x_g_switch_value instead of
3728 g_switch_set.
3729 (m32r_in_small_data_p): Remove cast in comparison with
3730 g_switch_value.
3731 (m32r_file_start): Format g_switch_value with %d.
3732 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
bdf057c6 3733 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
fa37ed29
JM
3734 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3735 handle -G here.
3736 (microblaze_option_override): Check
3737 global_options_set.x_g_switch_value instead of g_switch_set.
3738 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3739 (mips_option_override): Check global_options_set.x_g_switch_value
3740 instead of g_switch_set.
bdf057c6 3741 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
fa37ed29
JM
3742 (rs6000_file_start): Format g_switch_value with %d.
3743 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3744 comparisons with g_switch_value.
3745 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3746 global_options_set.x_g_switch_value instead of g_switch_set.
3747 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3748 global_options_set.x_g_switch_value instead of g_switch_set.
bdf057c6 3749 * config/score/score.c (score_handle_option): Don't handle -G here.
fa37ed29
JM
3750 * config/score/score3.c (score3_option_override): Check
3751 global_options_set.x_g_switch_value instead of g_switch_set.
3752 * config/score/score7.c (score7_option_override): Check
3753 global_options_set.x_g_switch_value instead of g_switch_set.
3754
22b0982c
VM
37552010-10-04 Vladimir Makarov <vmakarov@redhat.com>
3756
3757 * common.opt (fira-coalesce): Remove.
3758
3759 * doc/invoke.texi (flag_ira_coalesce): Remove.
3760
3761 * ira-color.c (allocno_coalesced_p): Move before
3762 copy_freq_compare_func.
3763 processed_coalesced_allocno_bitmap): Ditto.
3764 (update_conflict_hard_regno_costs): Don't use
3765 ALLOCNO_FIRST_COALESCED_ALLOCNO.
3766 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3767 (assign_hard_reg): Assume no coalesced allocnos.
3768 (get_coalesced_allocnos_attributes): Remove.
3769 (bucket_allocno_compare_func): Assume no coalesced allocnos.
3770 (push_allocno_to_stack): Ditto.
3771 (remove_allocno_from_bucket_and_push): Use
3772 ira_print_expanded_allocno instead of print_coalesced_allocno.
3773 (push_allocnos_to_stack): Assume uncoalesced allocnos.
3774 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
3775 all_conflicting_hard_regs.
3776 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3777 (setup_allocno_left_conflicts_size): Ditto.
3778 (put_allocno_into_bucket): Ditto.
3779 (copy_freq_compare_func): Remove.
3780 (copy_freq_compare_func, merge_allocnos): Move before
3781 coalesced_pseudo_reg_freq_compare.
3782 coalesced_allocno_conflict_p): Ditto.
3783 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
3784 parameter. Assume it true.
3785 (color_allocnos): Assume uncoalesced allocnos. Use
3786 ira_print_expanded_allocno instead of print_coalesced_allocno.
3787 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3788 parameter.
3789
3790 * ira.c: Remove comment about coalescing.
3791
f770d743
JM
37922010-10-04 Joseph Myers <joseph@codesourcery.com>
3793
3794 * config/mips/mips.h (target_flags_explicit): Declare for
3795 GENERATOR_FILE.
3796
a90163e9
AK
37972010-10-04 Andi Kleen <ak@linux.intel.com>
3798
3799 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
a557f9cc 3800 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
a90163e9 3801
6fda54ac
MK
38022010-10-04 Matthias Klose <doko@ubuntu.com>
3803
3804 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3805 multilib osdirname if it exists.
3806 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3807
828fde80
JJ
38082010-10-04 Jakub Jelinek <jakub@redhat.com>
3809
3810 PR middle-end/45876
3811 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3812 arg0's type or its unsigned counterpart as utype. Convert
3813 arg1 to utype unconditionally.
3814
c452684d
JB
38152010-10-04 Julian Brown <julian@codesourcery.com>
3816
3817 * expr.c (expand_assignment): Add assertion to prevent emitting
3818 null rtx for movmisalign pattern.
3819 (expand_expr_real_1): Likewise.
3820 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3821 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3822 (arm_vector_alignment_reachable): New.
3823 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3824 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3825 (arm_print_operand): Include alignment qualifier in %A.
3826 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3827 (movmisalign<mode>): New expander.
3828 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3829 insn patterns.
3830
d4d24ba4
JM
38312010-10-04 Joseph Myers <joseph@codesourcery.com>
3832
3833 * optc-gen.awk: Define global_options_set. Don't define
3834 target_flags_explicit.
3835 * opth-gen.awk: Declare global_options_set. Define
3836 target_flags_explicit as macro.
3837 * opts-common.c (handle_option): Take opts_set and generated_p
3838 parameters.
3839 (handle_generated_option, read_cmdline_option, set_option): Take
3840 opts_set parameter.
3841 (set_option): Use opts_set instead of hardcoding target_flags and
3842 target_flags_explicit.
3843 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
3844 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
3845 flag_value_profile_transformations_set, flag_peel_loops_set,
3846 flag_branch_probabilities_set, flag_inline_functions_set,
3847 flag_ipa_cp_set, flag_ipa_cp_clone_set,
3848 flag_predictive_commoning_set, flag_unswitch_loops_set,
3849 flag_gcse_after_reload_set): Remove.
3850 (common_handle_option, lang_handle_option, target_handle_option):
3851 Take opts_set parameter. Assert that it is &global_options_set.
3852 (common_handle_option): Don't set _set variables. Check opts_set
3853 instead of such variables.
3854 (enable_warning_as_error): Pass &global_options_set to
3855 handle_generated_option.
3856 * opts.h (cl_option_handler_func.handler, set_option,
3857 handle_option, handle_generated_option, read_cmdline_option): Add
3858 opts_set parameters.
3859 (handle_option): Add generated_p parameter.
3860 * config/i386/i386.c (ix86_function_specific_save,
3861 ix86_function_specific_restore): Updat for renaming of
3862 target_flags_explicit field.
3863 * config/i386/i386.opt (target_flags_explicit): Rename to
3864 ix86_target_flags_explicit.
3865 * config/ia64/ia64.c (ia64_override_options_after_change): Check
3866 global_options_set.x_flag_selective_scheduling and
3867 global_options_set.x_flag_selective_scheduling2, not
3868 sel_sched_switch_set.
3869 * flags.h (sel_sched_switch_set,
3870 flag_speculative_prefetching_set): Remove.
3871 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
3872 that it is &global_options_set.
bdf057c6 3873 (process_command): Pass &global_options_set to read_cmdline_option.
d4d24ba4
JM
3874 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
3875 set_option.
3876 * toplev.c (target_flags_explicit): Remove.
3877
4a2da105
JH
38782010-10-04 Jan Hubicka <jh@suse.cz>
3879
3880 PR middle-end/45871
3881 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
3882 use get_ref_base_and_offset to handle references.
3883 (fold_const_aggregate_ref): Update.
3884
1dbee8c9
MJ
38852010-10-04 Martin Jambor <mjambor@suse.cz>
3886
3887 PR tree-optimization/45572
3888 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
3889 ipa_check_create_node_params.
3890 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
3891
eeb4dfda
YQ
38922010-10-04 Yao Qi <yao@codesourcery.com>
3893
3894 * doc/passes.texi: Clean up.
3895
478a1c5b
ILT
38962010-10-03 Ian Lance Taylor <iant@google.com>
3897
3898 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
3899 referring to a field using a typedef name.
3900 (find_anonymous_field_with_type): New static function.
3901 (convert_to_anonymous_field): New static function.
3902 (convert_for_assignment): If -fplan9-extensions, permit converting
3903 pointer to struct to pointer to anonymous field.
bdf057c6 3904 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
478a1c5b
ILT
3905 (is_duplicate_field): New static function.
3906 (detect_field_duplicates_hash): If -fplan9-extensions, check for
3907 typedef names duplicating field names.
3908 (detect_field_duplicates): Likewise.
3909 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
3910 (C Dialect Options): Document -fplan9-extensions.
3911 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
3912
a1e53f3f
L
39132010-10-03 H.J. Lu <hongjiu.lu@intel.com>
3914
3915 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
3916 revision 164914.
3917 (vect_create_data_ref_ptr): Likewise.
3918 * tree-vect-stmts.c (vectorizable_store): Likewise.
3919 (perm_mask_for_reverse): Likewise.
3920 (reverse_vec_elements): Likewise.
3921 (vectorizable_load): Likewise.
3922
82a1c2fe
FXC
39232010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3924
3925 * cppbuiltin.c: New file.
3926 * cppbuiltin.h: New file.
3927 * Makefile.in: Take into account cppbuiltin.{h,c}.
3928
f1e92a43
AK
39292010-10-03 Andi Kleen <ak@linux.intel.com>
3930
82a1c2fe 3931 * lto-cgraph.c (input_cgraph): Check for missing sections.
f1e92a43 3932
5ed69344
UB
39332010-10-03 Uros Bizjak <ubizjak@gmail.com>
3934
bdf057c6 3935 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
5ed69344
UB
3936 to nonimmediate_operand. Force operand 2 to register when allowed.
3937 (*<shiftrt_insn><mode>3_mask): Ditto.
3938 (*<rotate_insn><mode>3_mask): Ditto.
3939
888a22d0
L
39402010-10-02 H.J. Lu <hongjiu.lu@intel.com>
3941
3942 PR tree-optimization/45720
3943 PR tree-optimization/45764
3944 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3945 Don't accept backwards consecutive accesses.
3946 (vect_create_data_ref_ptr): Disallow negative steps.
3947
3948 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
3949 (perm_mask_for_reverse): Removed.
3950 (reverse_vec_elements): Likewise.
5ed69344 3951 (vectorizable_load): Don't handle negative steps.
888a22d0 3952
31ceb574
JH
39532010-10-02 Jan Hubicka <jh@suse.cz>
3954
3955 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
3956 call destination is known.
3957
715a567d
JDA
39582010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3959
3960 PR target/45820
3961 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
3962 earlier.
3963
ffedf511
RW
39642010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3965
3966 * doc/install.texi (Configuration): Document build_configargs,
3967 host_configargs, target_configargs.
3968
c44d6c47
UB
39692010-10-01 Uros Bizjak <ubizjak@gmail.com>
3970
3971 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
3972 (*<shiftrt_insn><mode>3_mask): Ditto.
3973 (*<rotate_insn><mode>3_mask): Ditto.
3974
1cc2d70b
SE
39752010-10-01 Steve Ellcey <sje@cup.hp.com>
3976
3977 PR tree-optimization/44716
3978 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3979 (HOT_TEXT_SECTION_NAME): Define.
3980
ccaeeafe
NC
39812010-10-01 Nick Clifton <nickc@redhat.com>
3982
3983 * common.opt: Add -fcombine-stack-adjustments.
c44d6c47 3984 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
ccaeeafe
NC
3985 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
3986 flag_combine_stack_adjustments.
3987 * doc/invoke.texi: Document the new option.
3988
0d228a52
RG
39892010-10-01 Richard Guenther <rguenther@suse.de>
3990
3991 PR tree-optimization/45854
3992 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
3993
83f7dcf2
AG
39942010-10-01 Anthony Green <green@moxielogic.com>
3995
3996 * config.gcc: Fix moxie-*-rtems* configuration.
3997
29aca1e1
RG
39982010-10-01 Richard Guenther <rguenther@suse.de>
3999
4000 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
4001 (gen_decl_die): Likewise.
4002
fec6e65b
UW
40032010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4004
4005 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
4006 to the function code for SPU MD builtins.
4007 (spu_expand_builtin): Update.
4008 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
4009
1ae3762d
UW
40102010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4011
4012 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
4013 sjlj_except_unwind_info.
4014
16045c71
TG
40152010-10-01 Tristan Gingold <gingold@adacore.com>
4016
4017 * configure.ac: Define the nop insn for avr*-*-*
4018 * configure: Regenerate.
4019
d7e7073f
AM
40202010-10-01 Alan Modra <amodra@gmail.com>
4021
4022 PR target/45807
4023 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
4024 extend toc_restore_insn.
4025
c98b08ff
RG
40262010-09-30 Richard Guenther <rguenther@suse.de>
4027
4028 PR tree-optimization/43959
4029 * function.c (gimplify_parameters): Use create_tmp_reg instead of
4030 create_tmp_var.
4031
e631262b
KK
40322010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
4033
4034 * config/sh/sh.c (sh_expand_prologue): Set
4035 current_function_static_stack_size.
4036
319840d3
RO
40372010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4038
4039 * configure.ac: Check for Solaris 8 ld with .hidden support.
4040 * configure: Regenerate.
4041
cdb9802c
SP
40422010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4043
4044 PR middle-end/45758
4045 * graphite.c (graphite_initialize): Call scev_reset.
4046
8ba78f92
SP
40472010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4048
4049 * sese.h (scev_analyzable_p): Return false for real or floating
4050 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
4051
cb5f9ec6
SP
40522010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4053
4054 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
4055 and ps.
4056 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
4057 domain.
4058 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
4059 Do not allocate ub_expr, it is passed in initialized.
4060
03c830c2
SP
40612010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4062
4063 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
4064 (build_cloog_prog): Dump CLooG input file when
4065 flag_graphite_dump_cloog is set. This is disabled on trunk.
4066 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
4067
61c6973f
SP
40682010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4069
4070 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
4071 verify_dominators for CDI_POST_DOMINATORS.
4072 * sese.h: Remove comment about CDI_POST_DOMINATORS.
4073 (recompute_all_dominators): Remove call to free_dominance_info
4074 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
4075 for CDI_POST_DOMINATORS.
4076
aad78a1a
SP
40772010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4078
4079 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
4080 over pbb_dim_iter_domain.
4081
26315ccf
SP
40822010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4083
4084 * graphite-flattening.c: Fix comments.
4085
98af4c9f
SP
40862010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4087
4088 * Makefile.in (OBJS-common): Add graphite-flattening.o.
4089 (graphite-flattening.o): New rule.
4090 * common.opt (floop-flatten): New flag.
4091 * doc/invoke.texi (-floop-flatten): Documented.
4092 * graphite-flattening.c: New.
4093 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
4094 * graphite-poly.h (flatten_all_loops): Declared.
4095 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
4096 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
4097 is set, also set flag_graphite.
4098
c498b9b9
SP
40992010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4100
4101 * graphite-poly.c (cloog_checksum): New.
4102 * graphite-poly.h (cloog_checksum): Declared.
4103
26ccb556
SP
41042010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4105
4106 * graphite-poly.c (pbb_number_of_iterations): Removed.
4107 (pbb_number_of_iterations_at_time): Correctly compute the number
4108 of iterations in the transformed loop.
4109 * graphite-poly.h (pbb_number_of_iterations): Removed.
4110
b8745012
SP
41112010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4112
4113 * graphite-poly.h (lst_update_scattering_seq): Removed.
4114 (lst_update_scattering): Correctly handle outermost loop dewey
4115 renumbering.
4116
22280f63
SP
41172010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4118
4119 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
4120 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
4121 * graphite-poly.h (lst_niter_for_loop): New.
4122
6eb412ef
SP
41232010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4124
4125 * graphite-poly.c (apply_poly_transforms): Do not abort when the
4126 transform read from disk is not legal. Call fatal_error instead.
4127
0ba82567
SP
41282010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4129
4130 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
4131 (print_scop_header): Removed. Inlined in the only call place...
4132 (print_scop): ... here.
4133
69ac2bb6
SP
41342010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4135
4136 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
4137
41382010-09-30 Sebastian Pop <sebastian.pop@amd.com>
da8cebd1
SP
4139
4140 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
4141
1635d7b0
SP
41422010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4143
4144 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
4145 (dot_deps_stmt): Same.
4146 * graphite-poly.c (dot_lst): Same.
4147
3a7cd438
SP
41482010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4149
4150 * graphite-blocking.c (scop_do_strip_mine): Do not call
4151 graphite_legal_transform.
4152 (scop_do_block): Same.
4153
45fc26fc
VK
41542010-09-30 Vladimir Kargov <kargov@gmail.com>
4155
4156 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
4157 description.
4158
dbc08079
SP
41592010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4160
4161 * tree-scalar-evolution.c (instantiate_array_ref): New.
4162 (instantiate_scev_r): Also handle ARRAY_REFs.
4163
492e5456
SP
41642010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4165
4166 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4167 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
4168 RESULT_DECL, and FIELD_DECL. Return false for an
4169 SSA_NAME_IS_DEFAULT_DEF.
4170 (compute_scalar_evolution_in_loop): Do not further analyze the
4171 scalar evolution when no_evolution_in_loop_p returns true.
4172
21d91009
SP
41732010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4174
4175 * tree-chrec.h (evolution_function_is_affine_p): Do not check
4176 whether CHREC_LEFT is invariant. A function is affine when
4177 CHREC_RIGHT is invariant.
4178
c2bc669e
SP
41792010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4180
4181 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
4182 is_gimple_reg.
4183 (rewrite_degenerate_phi): Same.
4184 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
4185
56f30f65
VK
41862010-09-30 Vladimir Kargov <kargov@gmail.com>
4187
4188 * graphite-scop-detection.c (graphite_can_represent_scev,
4189 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
4190 graphite_can_represent_loop): Remove outermost_loop.
4191
b4c8119f
SP
41922010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4193
4194 PR middle-end/45229
4195 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
4196 handle GIMPLE_CALLs with no LHS.
4197
f06ecc4b
RB
41982010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
4199
4200 * graphite-poly.c (init_graphite_out_file): New.
4201 (init_graphite_in_file): New.
4202 (apply_poly_transforms): Updated to enable reading and writing of
4203 multiple scop files.
4204
d9ae7906
SP
42052010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
4206
4207 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
4208 redundant checks.
4209
42102010-09-30 Sebastian Pop <sebastian.pop@amd.com>
02315365
SP
4211
4212 * graphite-clast-to-gimple.c (precision_for_value): Adjust
4213 computation of precision by 1.
4214
721c8b1e
RB
42152010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
4216
4217 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
4218 (openscop_read_polyhedron_matrix): New.
4219 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
4220 (openscop_read_N_int): Same.
4221 * graphite-poly.c (openscop_read_N_int): New.
4222 (openscop_read_one_int): New.
4223 (openscop_read_N_string): New.
4224 (openscop_read_one_string): New.
4225 (openscop_read_powerset_matrix): New.
4226 (graphite_read_transforms): Remove.
4227 (graphite_read_scatt): New.
4228 (graphite_read_scop_file): New.
4229 (apply_poly_transforms): Updated to call graphite_read_scop_file.
4230
fd8bb591
AS
42312010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4232
4233 * graphite-poly.c: Change include order.
4234
562c1b02
AS
42352010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4236
4237 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
4238 (cloog_matrix_nrows): New.
4239
7241f8c5
RB
42402010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
4241
4242 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
4243 from matrix lines.
4244 * graphite-poly.c (openscop_print_scattering_function_1): Same.
4245 (print_scattering_function_1): Same.
4246 (openscop_print_pbb_domain): Same.
4247 (openscop_print_scop_context): Same.
4248 (print_scop_context): Same.
4249
d72f5037
RB
42502010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
4251
4252 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
4253 (openscop_print_pdr_polyhedron): Print pph.
4254
c6060639
SP
42552010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4256
4257 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
4258 priority signed types.
4259
2c2aceeb
SP
42602010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4261
c44d6c47
UB
4262 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
4263 the call to lang_hooks.types.type_for_size. Call
4264 build_nonstandard_integer_type.
2c2aceeb 4265
ae403f5a
RB
42662010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
4267
4268 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
4269 (openscop_print_polyhedron_matrix): New.
4270 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
4271 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
4272 (openscop_print_pdr_powerset): New.
4273 (openscop_print_powerset_matrix): New.
4274 (openscop_print_scattering_function_1): New.
4275 (print_scattering_function): Add support for scattering names and
4276 OpenScop format.
4277 (graphite_write_transforms): Remove.
4278 (print_pdr_access_layout): Updated to support OpenScop format.
4279 (print_pdr): Same.
4280 (openscop_print_pbb_domain): New.
c44d6c47
UB
4281 (print_pbb_body): Added a parameter to allow indicating that pbb_body
4282 is not provided.
ae403f5a
RB
4283 (print_pbb): Updated to call the new print_pbb_body.
4284 (openscop_print_scop_context): New.
4285 (print_scop_header): New.
4286 (print_scop): Updated to call print_scop_header.
4287 * graphite-poly.h: Document OpenScop format.
4288
b95491a0
AS
42892010-09-30 Anatoly Sokolov <aesok@post.ru>
4290
4291 * config/cris/m32c.c (cris_memory_move_cost): New.
4292 (cris_register_move_cost): Make static. Change arguments type from
4293 enum reg_class to reg_class_t.
4294 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4295 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4296 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
4297
45c13d4c
JJ
42982010-09-30 Jakub Jelinek <jakub@redhat.com>
4299
4300 PR target/45843
4301 * config/i386/i386.c (ix86_gimplify_va_arg): Use
4302 INTVAL (XEXP (slot, 1)) as prev_size.
4303
78009d9f
MM
43042010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
4305
4306 PR target/45837
4307 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
4308 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
4309 defined.
4310 * config/rs6000/option-defaults.h (toplevel): Change #if
4311 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
4312 global option changes.
4313
140d4eff
JJ
43142010-09-30 Jakub Jelinek <jakub@redhat.com>
4315
bb6b5461
JJ
4316 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
4317
140d4eff
JJ
4318 PR tree-optimization/31261
4319 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
4320 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
4321
6ddddaed
RW
43222010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4323
4324 PR bootstrap/45796
4325 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
4326 special-casing for generators and turn into ...
4327 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
c44d6c47 4328 rule, for better error messages in case of toplevel dependency errors.
6ddddaed
RW
4329 (genprog): Add hooks, rename to ...
4330 (genprogerr): ... this, and let genprog also contain check,
4331 checksum, condmd.
4332 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
4333 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
4334 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
4335
abcc9b2a 43362010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
c44d6c47 4337 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
abcc9b2a
JW
4338
4339 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
4340 for GMP, MPFR and MPC.
4341
c28aa982
RO
43422010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4343
4344 * config/sparc/sparc.opt (mimpure-text): Move ...
c44d6c47 4345 * config/sol2.opt: ... here. Correct description.
c28aa982
RO
4346 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
4347 * doc/invoke.texi (Option Summary, SPARC Options): Move
4348 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
4349 (Option Summary, Solaris 2 Options): ... here.
4350 (Submodel Options, Solaris 2 Options): New menu entry.
4351 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
4352 (Solaris 2 Options): ... here.
4353
80920132
ME
43542010-09-30 Michael Eager <eager@eagercon.com>
4355
4356 * extend.texi (interrupt_handler): Add MicroBlaze to list.
4357 (save_volatiles): Describe option for MicroBlaze.
4358 * invoke.texi: Add MicroBlaze Options.
a557f9cc 4359 * contrib.texi: Add acknowledgment.
80920132
ME
4360 * md.texi: Add MicroBlaze d and z constraints.
4361 * install.texi: Add microblaze-*-elf.
4362 * configure.ac: Add microblaze-*-* to target list.
4363 * configure: Regenerate.
4364 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
4365 * config/microblaze/microblaze-protos.h: New.
4366 * config/microblaze/crti.s: New.
4367 * config/microblaze/predicates.md: New.
4368 * config/microblaze/linux.h: New.
4369 * config/microblaze/microblaze.md: New.
4370 * config/microblaze/constraints.md: New.
4371 * config/microblaze/crtn.s: New.
4372 * config/microblaze/microblaze.opt: New.
4373 * config/microblaze/microblaze-c.c: New.
4374 * config/microblaze/t-microblaze: New.
4375 * config/microblaze/microblaze.c: New.
4376 * config/microblaze/microblaze.h: New.
4377
92902b1b
IS
43782010-09-30 Iain Sandoe <iains@gcc.gnu.org>
4379
4380 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
4381 parse @optional/@required and set the flags as appropriate.
4382
ca01d012
NF
43832010-09-30 Nathan Froyd <froydnj@codesourcery.com>
4384
4385 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
4386
46625112
JM
43872010-09-30 Joseph Myers <joseph@codesourcery.com>
4388
4389 * opt-functions.awk (static_var): Update comment.
4390 (var_ref): Return offsetof expression or -1, not variable address.
4391 * optc-gen.awk: Generate structure field initializers instead of
4392 static variables. Expect -1 for missing variables instead of null
4393 pointer. Add gcc_options parameters to generated functions.
4394 * opth-gen.awk: Generate structure fields for static variables.
4395 Add gcc_options parameters to generated functions.
4396 * common.opt (optimize, optimize_size): Add variables.
4397 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
4398 &global_options to cl_target_option_restore.
4399 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
4400 &global_options to cl_optimization_restore, cl_target_option_save
4401 and cl_target_option_restore.
4402 (ix86_set_current_function): Pass &global_options to
4403 cl_target_option_restore.
4404 * config/pdp11/pdp11.h (optimize): Remove.
4405 * config/rs6000/rs6000.h (optimize): Remove.
4406 * config/sh/sh.h (optimize): Remove.
4407 * config/xtensa/xtensa.h (optimize): Remove.
4408 * coretypes.h (struct gcc_options): Declare.
4409 * diagnostic.c (diagnostic_initialize): Initialize
4410 context->option_state.
4411 (diagnostic_report_diagnostic): Pass option_state to
4412 option_enabled hook.
4413 * diagnostic.h (diagnostic_context.option_enabled): Add void *
4414 parameter.
4415 (diagnostic_context.option_state): New field.
4416 * final.c (final_start_function, final, final_scan_insn): Rename
4417 optimize parameter to optimize_p.
4418 * flags.h (optimize, optimize_size): Remove.
4419 * function.c (invoke_set_current_function_hook): Pass
4420 &global_options to cl_optimization_restore.
4421 * gcc.c (driver_handle_option): Take gcc_options parameter.
4422 Assert that it is &global_options.
4423 (process_command): Pass &global_options to read_cmdline_option.
4424 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
4425 option_enabled.
4426 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
4427 &global_options to set_option.
4428 * opts-common.c (handle_option, handle_generated_option,
4429 read_cmdline_option, set_option): Take explicit gcc_options
4430 parameters. Use option_flag_var.
4431 (option_flag_var): New.
4432 * opts.c (common_handle_option, lang_handle_option,
4433 target_handle_option): Take gcc_options parameter. Assert that it
4434 is &global_options.
c44d6c47 4435 (read_cmdline_options): Pass &global_options to read_cmdline_option.
46625112
JM
4436 (print_filtered_help): Use option_flag_var. Pass &global_options
4437 to option_enabled.
4438 (common_handle_option): Use option_flag_var.
4439 (option_enabled): Take opts parameter. Use option_flag_var.
4440 (get_option_state): Take gcc_options parameter. Use
4441 option_flag_var. Pass gcc_options parameter to option_enabled.
4442 (enable_warning_as_error): Pass &global_options to
4443 handle_generated_option.
4444 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
4445 (cl_option_handler_func.handler): Take gcc_options parameter.
4446 (option_enabled, get_option_state, set_option, handle_option,
4447 handle_generated_option, read_cmdline_option): Take gcc_options
4448 parameters.
4449 * toplev.c (optimize, optimize_size): Remove.
4450 (print_switch_values): Pass &global_options to option_enabled.
4451 (option_affects_pch_p): Use option_flag_var. Pass &global_options
4452 to get_option_state.
4453 (general_init): Initialize global_dc->option_state.
4454 * tree.c (build_optimization_node): Pass &global_options to
4455 cl_optimization_save.
4456 (build_target_option_node): Pass &global_options to
4457 cl_target_option_save.
4458
37ccfc46
MJ
44592010-09-30 Martin Jambor <mjambor@suse.cz>
4460
4461 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
4462 zero sized bit-fields.
4463
49b91f05
NP
44642010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
4465
4466 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
4467 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
c44d6c47 4468 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
49b91f05
NP
4469 (c_parser_objc_class_declaration): Same change.
4470 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
4471 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4472 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
4473 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
4474 and RID_AT_PUBLIC instead of RID_PUBLIC.
4475 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
4476 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
a557f9cc 4477
58735e03
TC
44782010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
4479
4480 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
4481 Add links to current providers of packages for Solaris and IRIX.
4482
a6341d57
NP
44832010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
4484
4485 Merge from 'apple/trunk' branch on FSF servers.
4486 * c-parser.c: Applied change originally in c-parse.in.
a557f9cc 4487
a6341d57
NP
4488 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
4489
4490 Radar 4281748
4491 * c-decl.c (start_decl): Check for redeclaration of class name.
4492 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
4493
b14446e2
SE
44942010-09-29 Steve Ellcey <sje@cup.hp.com>
4495
4496 * config/ia64/ia64.c (ia64_builtin_decl): New.
4497 (TARGET_BUILTIN_DECL): Define.
4498 (ia64_builtins): New.
4499 (ia64_init_builtins): Save decls in ia64_builtins.
4500
22939744
BS
45012010-09-29 Bernd Schmidt <bernds@codesourcery.com>
4502
4503 PR target/40457
c44d6c47 4504 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
22939744
BS
4505 (move2add_use_add3_insn): Likewise.
4506 (reload_cse_move2add): Likewise.
4507 * rtlanal.c (get_full_rtx_cost): New function.
4508 * rtl.h (struct full_rtx_costs): New.
4509 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
4510 costs_add_n_insns): New inline functions.
4511 (get_full_rtx_cost): Declare.
4512
907c53bb
BS
4513 PR c/45054
4514 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
4515 invariants. Check for reg_equiv_invariant.
4516 (reload): Assert that spilled_pseudos is empty when returning.
4517
0f23bc16
KT
45182010-09-29 Kai Tietz <kai.tietz@onevision.com>
4519
4520 * config/i386/mingw32.h (TARGET_64BIT): replaced by
4521 TARGET_64BIT_DEFAULT in #if check.
4522
a0c6102d
JH
45232010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
4524
c44d6c47 4525 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
a0c6102d 4526
48b3f0a0
MS
45272010-09-29 Mike Stump <mikestump@comcast.net>
4528
4529 * config/darwin.h (flag_mkernel): Remove.
4530 (flag_apple_kext): Likewise.
4531
006097f4
JM
45322010-09-29 Joseph Myers <joseph@codesourcery.com>
4533 Jack Howarth <howarth@bromo.med.uc.edu>
4534
4535 * config/darwin.opt (undefined): Add.
4536
f6c5fbfd
NS
45372010-09-29 Nathan Sidwell <nathan@codesourcery.com>
4538
416ccea5 4539 PR testsuite/45664
f6c5fbfd
NS
4540 * configure.ac: Add --enable-indirect-function option.
4541 * config.gcc: Add default_gnu_indirect_function.
4542 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
4543 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
416ccea5 4544 * varasm.c (do_assemble_alias): Adjust for macro name change.
f6c5fbfd
NS
4545 * configure: Rebuilt.
4546 * doc/install.texi: Document --enable-indirect-function.
4547
f0036cca
JM
45482010-09-29 Joseph Myers <joseph@codesourcery.com>
4549
4550 * doc/options.texi (Variable, Var, Init): Update documentation
4551 without reference to VarExists.
4552 (VarExists): Remove.
4553 * common.opt, config/i386/i386.opt, config/linux.opt,
4554 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
4555 Don't use VarExists.
4556
e3339d0f
JM
45572010-09-29 Joseph Myers <joseph@codesourcery.com>
4558
4559 * optc-gen.awk: Generate global_options initializer instead of
c44d6c47 4560 individual variables. Add x_ prefix to names of structure members.
e3339d0f
JM
4561 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
4562 names of structure members.
4563 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4564 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
4565 * doc/tm.texi: Regenerate.
4566 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4567 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4568 * c-parser.c (disable_extension_diagnostics,
c44d6c47 4569 restore_extension_diagnostics): Update names of cpp_options members.
e3339d0f
JM
4570 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4571 * common.opt (fcompare-debug-second): Don't use Var.
4572 * config/alpha/alpha.h (target_flags): Remove.
4573 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4574 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4575 * config/bfin/bfin.h (target_flags): Remove.
4576 * config/cris/cris.h (target_flags): Remove.
4577 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
4578 cl_target_option members.
4579 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
4580 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
4581 ix86_can_inline_p): Update names of cl_target_option members.
4582 * config/i386/i386.h (ix86_isa_flags): Remove.
4583 * config/lm32/lm32.h (target_flags): Remove.
4584 * config/mcore/mcore.h (mcore_stack_increment): Remove.
4585 * config/mcore/mcore.md (addsi3): Remove extern declaration of
4586 flag_omit_frame_pointer.
4587 * config/mep/mep.h (target_flags): Remove.
4588 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4589 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4590 * config/mmix/mmix.h (target_flags): Remove.
4591 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
4592 flag_expensive_optimizations): Remove.
4593 * config/s390/s390.h (flag_pic): Remove.
4594 * config/score/score-conv.h (target_flags): Remove.
4595 * config/sh/sh.h (sh_fixed_range_str): Remove.
4596 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
4597 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4598 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4599 * diagnostic.c (diagnostic_initialize): Update names of
4600 diagnostic_context members.
4601 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
4602 warn_system_headers.
4603 (diagnostic_report_warnings_p): Update for new names.
4604 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4605 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
4606 HARD_FRAME_POINTER_IS_ARG_POINTER.
4607 * flags.h (flag_compare_debug): Declare.
4608 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4609 * opts.c (flag_compare_debug): Define.
4610 (common_handle_option): Update names of diagnostic_context
4611 members. Handle -fcompare-debug-second.
4612 (fast_math_flags_struct_set_p): Update names of cl_optimization
4613 members.
4614 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4615 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4616 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4617 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4618 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4619 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4620 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
4621 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4622 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4623
9c506f10 46242010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
66dfc610
HS
4625
4626 * config/picochip/picochip.c (picochip_output_internal_label):
c44d6c47
UB
4627 This function can now be called for debug CFI labels, which can come
4628 in the middle of a vliw instruction. Postpone until end of vliw.
66dfc610 4629
725214ac
RG
46302010-09-29 Richard Guenther <rguenther@suse.de>
4631
4632 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
4633 (DECL_FILE_SCOPE_P): Use it.
4634 (TYPE_FILE_SCOPE_P): New macro.
4635
1973201f
NP
46362010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
4637
4638 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
4639 a CPP_NAME which is a reserved word, clearly separate cases for
4640 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
4641
a1ec5747
NP
46422010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
4643
4644 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
4645 token->value with the canonical spelling. Do exactly like C and
4646 C++ and leave it as it is.
4647
fd930388
RH
46482010-09-28 Richard Henderson <rth@redhat.com>
4649
4650 * config/alpha/alpha.c (alpha_builtins): New.
4651 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
4652 (alpha_builtin_function): New.
4653 (alpha_add_builtins, alpha_init_builtins): Use it.
4654
6b79b1b7
NP
46552010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
4656
4657 * doc/standards.texi (Standards): Expanded the section on
4658 Objective-C and Objective-C++.
4659
146456c1
DD
46602010-09-28 DJ Delorie <dj@redhat.com>
4661
4662 PR target/45800
4663 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
4664 volatile MEMs.
4665
f7e71da5
IS
46662010-09-28 Iain Sandoe <iains@gcc.gnu.org>
4667
4668 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
4669 attributes on methods.
4670 (c_parser_objc_method_definition): Handle attributes.
4671 (c_parser_objc_methodproto): Likewise.
4672 (c_parser_objc_maybe_method_attributes): New.
4673 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
4674 missing definition, similar to that in ObjC++.
4675
f0a0390e
RH
46762010-09-28 Richard Henderson <rth@redhat.com>
4677
4678 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
4679 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4680 (CONFIG_SJLJ_EXCEPTIONS): Remove.
4681 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
4682 (STACK_CHECK_PROTECT): Likewise.
4683 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
4684 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
4685 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
4686 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
4687 (dwarf2out_assembly_start): Likewise.
4688 * except.c (init_eh): Use targetm.except_unwind_info.
4689 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
4690 (output_one_function_exception_table): Likewise.
4691 * final.c: Unconditionally include dwarf2out.h.
4692 (final_start_function): Unconditionally call dwarf2out routines.
4693 (final_end_function, final_scan_insn): Likewise.
4694 * function.c (expand_function_end): Use targetm.except_unwind_info.
4695 * opts.c (decode_options): Use targetm.except_unwind_info.
4696 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
4697 * target.def (debug_unwind_info, except_unwind_info): New.
4698 * target.h (enum unwind_info_type): New.
4699 * targhooks.c (default_debug_unwind_info): New.
4700 (default_except_unwind_info): New.
4701 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
4702 * targhooks.h: Declare them.
4703 * tree-tailcall.c: Include "target.h"
4704 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
4705 * Makefile.in (tree-tailcall.o): Update.
4706 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
4707 (lhd_gcc_personality): Likewise.
4708
4709 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
4710 (TARGET_EXCEPT_UNWIND_INFO): New.
4711 (DWARF2_UNWIND_INFO): Update.
4712 (TARGET_DEBUG_UNWIND_INFO): New.
4713 * doc/tm.texi: Rebuild.
4714
4715 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
4716 targetm.except_unwind_info.
4717
4718 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
4719 (arm_except_unwind_info): New.
4720 (arm_compute_func_type): Use it.
4721 (arm_expand_prologue, thumb_pushpop): Likewise.
4722 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
4723 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
4724 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
4725 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
4726 (DWARF2_UNWIND_INFO): Remove.
4727 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4728 (ARM_EABI_UNWIND_TABLES): Remove.
4729
4730 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
4731 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
4732 (ia64_except_unwind_info): New.
4733 (ia64_output_function_prologue): Use it.
4734 (ia64_add_bundle_selector_before): Likewise.
4735 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
4736 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
4737 (TARGET_UNWIND_INFO): Remove.
4738
4739 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
c44d6c47 4740
c165dca7
IS
47412010-09-28 Iain Sandoe <iains@gcc.gnu.org>
4742
4743 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
4744 (c_parser_objc_protocol_definition): Likewise.
4745 (c_parser_external_declaration): Provide dummy attribute arguments.
4746 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
4747 (c_parser_objc_class_definition): Handle attributes.
4748 (c_parser_objc_protocol_definition): Likewise.
4749
41804a5b
TB
47502010-09-28 Tobias Burnus <burnus@net-b.de>
4751
4752 PR fortran/40569
4753 PR fortran/40568
4754 * toplev.h (save_decoded_options, save_decoded_options_count):
4755 New global variables.
4756 * toplev.c (save_decoded_options, save_decoded_options_count):
c44d6c47 4757 Export variables.
41804a5b 4758
7647b127
ILT
47592010-09-28 Ian Lance Taylor <iant@google.com>
4760
4761 * config/i386/i386.c (ix86_supports_split_stack): Test
c44d6c47 4762 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
7647b127 4763
bb469872
ILT
47642010-09-28 Ian Lance Taylor <iant@google.com>
4765
4766 PR target/45815
4767 * opts.c (decode_options): Don't test whether the target supports
4768 split stack if flag_split_stack == 0.
4769
0d6e14fd
JH
47702010-09-28 Jan Hubicka <jh@suse.cz>
4771
4772 * builtin-attrs.def (ATTR_LEAF): New attribute.
4773 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
4774 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
4775 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
4776 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
4777 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
4778 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
4779 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
4780 * sync-builtins.def: Annotate all builtins by leaf.
4781 * omp-builtins.def: Annotate all builtins by leaf.
4782 * builtins.def: Annotate relevant builtins with leaf attribute.
4783 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
4784 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
4785 leaf.
4786
697c3575
JH
47872010-09-28 Jan Hubicka <jh@suse.cz>
4788
4789 * tree-ssa-ccp.c (fold_ctor_reference): New function.
4790 (fold_const_aggregate_ref): Use it.
4791 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
4792 into external static.
4793
2770264a
RO
47942010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4795
4796 PR target/44452
4797 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
4798 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
4799 (ix86_solaris_return_in_memory): Remove.
4800 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
4801 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4802 (TARGET_SUBTARGET_DEFAULT): Redefine.
4803 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
4804 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4805 (TARGET_SUBTARGET_DEFAULT): Redefine.
4806 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
4807 -mvect8-ret-in-mem.
4808 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
4809
2268453b
AM
48102010-09-29 Alan Modra <amodra@gmail.com>
4811
4812 PR target/45807
4813 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
4814 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
4815 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
4816 Delete.
4817 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
4818 (rs6000_emit_prologue): Don't just create frame save info for r2,
4819 actually save r2.
4820
4d508d59
RH
48212010-09-28 Richard Henderson <rth@redhat.com>
4822
4823 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
4824 when 8 bytes are requested.
4825
247df3b6
TG
48262010-09-28 Tristan Gingold <gingold@adacore.com>
4827
4828 * config/avr/avr.c (expand_prologue): Set
4829 current_function_static_stack_size.
4830
d5ad88c0
TG
48312010-09-28 Tristan Gingold <gingold@adacore.com>
4832
4833 * config/alpha/alpha.md: Change the initial condition of the
4834 probing loop.
4835
4150f926
UB
48362010-09-28 Uros Bizjak <ubizjak@gmail.com>
4837
4838 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
4839 Split from *avx_<maxmin:code><mode>3.
4840 (*avx_<smaxmin:code><mode>3): Ditto.
4841 * config/i386/i386.md (maxmin): Remove code iterator.
4842
b6110d6d
ILT
48432010-09-27 Ian Lance Taylor <iant@google.com>
4844
4845 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
4846 requires assembler support for CFI directives.
4847
9b809695
RH
48482010-09-27 Richard Henderson <rth@redhat.com>
4849
4850 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
4851
4f8344eb
HPN
48522010-09-27 Hans-Peter Nilsson <hp@axis.com>
4853
4854 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
4855 that AFTER is not in the range FROM..TO, inclusive.
4856
fdf0b018
HPN
48572010-09-27 Hans-Peter Nilsson <hp@axis.com>
4858 Bernd Schmidt <bernds@codesourcery.com>
4859
4860 PR rtl-optimization/45792
4861 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
4862 If not all insns are to be merged, for each edge, stash the
4863 next candidate after the to-be-merged insns before doing the
4864 merge, and use them for the retry at the new insertion point.
4865 Handle CC0 targets when retrying.
4866
7458026b
ILT
48672010-09-27 Ian Lance Taylor <iant@google.com>
4868
4869 * common.opt (fsplit-stack): New option.
4870 * opts.c (decode_options): Set flag_split_stack to final value.
4871 * target.def (supports_split_stack): New hook.
4872 * gcc.c (STACK_SPLIT_SPEC): Define.
4873 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
4874 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
4875 (Code Gen Options): Document -fsplit-stack.
4876 * doc/extend.texi (Function Attributes): Mention no_split_stack.
4877 (Function Attributes): Document no_split_stack.
4878 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
4879 TARGET_SUPPORTS_SPLIT_STACK.
4880 * doc/tm.texi: Rebuild.
4881 * function.c (thread_prologue_and_epilogue_insns): If
4882 flag_split_stack, add split stack prologue.
4883 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
4884 * varasm.c (saw_no_split_stack): New static variable.
4885 (assemble_start_function): Set saw_no_split_stack if the function
4886 has the no_split_stack attribute.
4887 (file_end_indicate_split_stack): New function.
4888 * output.h (file_end_indicate_split_stack): Declare.
4889 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
4890 and function.
4891 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
4892 routines.
4893 * config/i386/i386.c (ix86_option_override_internal): Don't set
4894 expand_builtin_va_start to NULL if -fsplit-stack.
4895 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
4896 -fsplit-stack.
4897 (ix86_va_start): If -fsplit-stack, get overflow pointer from
4898 scratch register set by prologue.
4899 (ix86_code_end): If -fsplit-stack, call
4900 file_end_indicate_split_stack.
4901 (ix86_supports_split_stack): New static function.
4902 (SPLIT_STACK_AVAILABLE): Define.
4903 (split_stack_prologue_scratch_regno): New static function.
4904 (split_stack_fn): New static variable.
4905 (ix86_expand_split_stack_prologue): New function.
4906 (ix86_live_on_entry): New static function.
4907 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
4908 (output_pic_addr_const): Likewise.
4909 (i386_asm_output_addr_const_extra): Likewise.
4910 (ix86_expand_call): Change return type to rtx. Return the new
4911 call instruction.
4912 (TARGET_SUPPORTS_SPLIT_STACK): Define.
4913 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4914 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
4915 (split_stack_prologue, split_stack_return): New insns.
4916 (split_stack_space_check): New insn.
4917 * config/i386/i386.h (struct machine_function): Add
4918 split_stack_varargs_pointer field.
4919 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
4920 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4921 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
4922 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4923 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
4924 Declare.
4925 (ix86_expand_call): Update declaration.
4926
177b48f9
NP
49272010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
4928
4929 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
4930 code. Added byref, which was missing in the list of codes.
4931 Explain that enumeration values are encoded as the integer type
4932 that the compiler uses to store them. Explain and make examples
4933 of how 'const' interacts with pointers, and the complication of
4934 the encoding of 'const char *'.
4935 (Legacy type encoding): New subsection, explaining that GCC emits
4936 incorrect type encodings for the NeXT runtime for compatibility
4937 reasons.
4938 (@@encode): New subsection, explaining @encode and particularly
4939 that protocol qualifiers are not recognized inside an @encode()
4940 expression.
4941 (Method signatures): New subsection, explaining how method
4942 signatures are encoded.
4943
b581b85b
NP
49442010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
4945
4946 Merge from 'apple/trunk' branch on FSF servers. Removed small
4947 change in build_conditional_expr that had been added when fixing
4948 PR objc/27377 and which did the same check in a less complete way.
4949
4950 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
4951
4952 Radar 4229905
4953 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
4954 looking for objective-c common pointer types.
c44d6c47 4955
b581b85b
NP
4956 2005-06-22 Ziemowit Laski <zlaski@apple.com>
4957
4958 Radar 4154928
4959 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
4960 use their ObjC common type.
4961
1787f59e
RG
49622010-09-27 Richard Guenther <rguenther@suse.de>
4963
4964 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
4965
16892055
JZ
49662010-09-27 Jie Zhang <jie@codesourcery.com>
4967
4968 * print-tree.c (print_node): Print in-constant-pool.
4969
63001560
UB
49702010-09-27 Uros Bizjak <ubizjak@gmail.com>
4971
4972 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
4973 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
4974 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
4975 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
4976
4470a3a3
UB
49772010-09-26 Uros Bizjak <ubizjak@gmail.com>
4978
4979 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
4980 from pro_epilogue_adjust_stack_<mode>_{1,2}.
4981 (pro_epilogue_adjust_stack_<mode>_add): Rename from
4982 pro_epilogue_adjust_stack_<mode>_3.
4983 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
4984 renamed pro_epilogue_adjust_stack_{si,di}_add.
4985 (ix86_expand_prologue): Use indirect functions. Update for renamed
4986 pro_epilogue_adjust_stack_{si,di}_sub.
4987
d355d5ea
UB
49882010-09-26 Uros Bizjak <ubizjak@gmail.com>
4989
4990 * config/i386/i386.md (movmsk_df): New insn.
4991 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
4992 sequence for TARGET_SSE_MATH.
4993
7725086e
RS
49942010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
4995
4996 * config/mips/mips.c (mips_builtin_decls): Declare.
4997 (mips_init_builtins): Store function declarations in
4998 mips_builtin_decls.
4999 (mips_builtin_decl): New function.
5000 (TARGET_BUILTIN_DECL): Define.
5001
174425ad
KT
50022010-09-25 Kai Tietz <kai.tietz@onevision.com>
5003 Richard Henderson <rth@redhat.com>
5004
5005 * config/i386/cygwin.asm: Include auto-host.h.
5006 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
5007 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
5008 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
5009 alignment code from the 64-bit path. Use gas local labels.
5010 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
5011 from _di_2. Remove the useless constant integer argument.
5012 (pro_epilogue_adjust_stack_<mode>_3): New.
5013 (allocate_stack_worker_probe_<mode>): Macroize from
5014 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
5015 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
5016 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
5017 (__chkstk_ms): New function.
5018 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
5019 * gcc/config/i386/t-interix: Likewise.
5020 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
5021 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
5022 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
5023 * configure, config.in: Rebuild.
5024
cf1bcf06
EB
50252010-09-25 Eric Botcazou <ebotcazou@adacore.com>
5026
5027 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
5028 statements because of the return slot optimization.
5029
c21136ee
AS
50302010-09-25 Anatoly Sokolov <aesok@post.ru>
5031
5032 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
5033 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
5034 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5035 (class_likely_spilled_p): Rename to...
5036 (avr_class_likely_spilled_p): ...this. Make static. Change argument
5037 type to reg_class_t.
5038
051f8cc6
JH
50392010-09-24 Jan Hubicka <jh@suse.cz>
5040
5041 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
5042 (lto_symtab_resolve_symbols): Set it.
5043 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
5044 store resolution field in cgraph/varpool.
5045 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
5046 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
5047 (cgraph_dump_node): Drop used_from_object_file.
5048 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
5049 (cgraph_function_body_availability): Use decl_replaceable_p.
5050 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
5051 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
5052 cgraph_used_from_object_file_p.
5053 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
5054 cgraph_used_from_object_file_p.
5055 (resolution_used_from_other_file_p): New functoin.
5056 (cgraph_used_from_object_file_p): New predicate.
5057 * cgraph.h: Include plugin-api.h
5058 (struct cgraph_local_info): Remove used_from_object_file.
5059 (struct cgraph_node): Add resolution field.
5060 (struct varpool_node): Likewise; remove used_from_object_file;
5061 reove const_value_known.
5062 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
5063 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
5064 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5065 varpool_used_from_object_file_p): Declare.
5066 (varpool_get_node, varpool_extra_name_alias): Update prototype.
5067 * tree.h (DECL_REPLACEABLE_P): Remove.
5068 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
5069 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
5070 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
5071 input_overwrite_node, input_node, input_varpool_node): Stream
5072 resolution.
5073 * expr.c (expand_expr_real_1): Use const_value_known_p
5074 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
5075 const_value_known.
5076 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
5077 (function_and_variable_visibility): Set resolution for local vars
d355d5ea 5078 and functions; use varpool_used_from_object_file_p.
051f8cc6
JH
5079 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
5080 static functions.
5081 (default_binds_local_p_1): Use resolutoin info.
5082 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
5083 * varpool.c (varpool_get_node): Constify.
5084 (const_value_known_p): Do not use vnode->const_value_known;
5085 use decl_replaceable_p.
5086 (varpool_finalize_decl): Do not set const_value_known.
5087 (cgraph_variable_initializer_availability): Use decl_replaceable_p
5088 (varpool_extra_name_alias): Return new node.
5089 (varpool_used_from_object_file_p): New function.
5090
5c255b57
RH
50912010-09-24 Richard Henderson <rth@redhat.com>
5092
5093 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
5094 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
5095 (do_spill): Use REG_CFA_OFFSET.
5096 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
5097 as appropriate.
5098 (ia64_expand_epilogue): Likewise.
5099 (process_set): Split into ...
5100 (process_cfa_adjust_cfa): this,
5101 (process_cfa_register): this,
5102 (process_cfa_offset): and this new function.
5103 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
5104 instead of REG_FRAME_RELATED_EXPR.
5105
42d87712
OH
51062010-09-24 Olivier Hainque <hainque@adacore.com>
5107
5108 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
5109
46a4da10
JH
51102010-09-24 Jan Hubicka <jh@suse.cz>
5111
5112 * doc/extend.texi: (attribute leaf): Document.
5113 * tree.c (local_define_builtin): Handle ECF_LEAF.
5114 (build_common_builtin_nodes): Set ECF_LEAF where needed.
5115 * tree.h (ECF_LEAF): New.
d355d5ea
UB
5116 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
5117 overwrittable and unavailable functions.
46a4da10
JH
5118 (ipa_init): Put all_module_statics into optimization_summary_obstack.
5119 (copy_global_bitmap): Do not copy all_module_statics.
5120 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
5121 (propagate): Handle overwritable and unavailable leaf functions;
5122 initialize global info for overwritable and unavailable leaf functions;
5123 do not free all module statics.
74164603 5124 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
d355d5ea 5125 local statics.
46a4da10
JH
5126 * calls.c (flags_from_decl_or_type): Handle leaf.
5127 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
5128 abnormal gotos.
e1b793e7
BS
5129
51302010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
5131
5132 * gengtype.c: Reindented.
e1b793e7 5133 * gengtype.h: Reindented.
e1b793e7
BS
5134 * gengtype-parse.c: Reindented.
5135
1d0804d4
JH
51362010-09-24 Jan Hubicka <jh@suse.cz>
5137
5138 PR tree-optimization/45738
5139 PR tree-optimization/45741
5140 * expr.c (string_constant): Allow CONST_DECL too;
5141 check that DECL_INITIAL is set.
5142 * varpool.c (const_value_known_p): Only look into VAR_DECL
5143 and CONST_DECL.
5144
5642f5d5
JM
51452010-09-24 Joseph Myers <joseph@codesourcery.com>
5146
5147 * common.opt (undef): New.
5148
32990d5b
JJ
51492010-09-24 Jakub Jelinek <jakub@redhat.com>
5150
5151 PR middle-end/45234
5152 * rtl.h (enum global_rtl_index): Add
5153 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
5154 (LAST_VIRTUAL_POINTER_REGISTER): Define.
5155 (virtual_preferred_stack_boundary_rtx,
5156 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
5157 (LAST_VIRTUAL_REGISTER): Increase by one.
5158 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
5159 instead of LAST_VIRTUAL_REGISTER.
5160 * function.c (instantiate_new_reg): Handle
5161 virtual_preferred_stack_boundary_rtx.
5162 * emit-rtl.c (init_virtual_regs): Handle
5163 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
5164 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
5165 * explow.c (round_push): If crtl->preferred_stack_boundary
5166 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
5167 virtual_preferred_stack_boundary_rtx alignment instead of
5168 crtl->preferred_stack_boundary alignment.
5169 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
5170 macros. Never decrease crtl->preferred_stack_boundary,
5171 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
5172 instead of PREFERRED_STACK_BOUNDARY. Don't modify
5173 stack_pointer_delta in dynamic allocation, even when size
5174 is constant.
5175 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
5176 macro.
5177 * print-rtl.c (print_rtx): Handle
5178 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
5179 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
5180 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
5181 * config/frv/frv.c (frv_emit_movsi): Likewise.
5182 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
5183 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
5184 Likewise.
5185
5186 Revert:
5187 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5188
5189 PR middle-end/45234
5190 * calls.c (expand_call): Make sure that all variable sized
5191 adjustments are multiple of preferred stack boundary after
5192 stack alignment.
5193
3d1b7f13
IS
51942010-09-24 Iain Sandoe <iains@gcc.gnu.org>
5195 Dominique Dhumieres <dominiq@lps.ens.fr>
d355d5ea 5196
3d1b7f13
IS
5197 PR bootstrap/45751
5198 * gcc/config/darwin-driver.c (darwin_default_min_version):
5199 Adjust size passed to memcpy in two places.
d355d5ea 5200
116f30c3
RG
52012010-09-24 Richard Guenther <rguenther@suse.de>
5202
5203 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
5204 Make sure to not call set_type_context with error_mark_node.
5205 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
5206
de6ba7ae
RG
52072010-09-24 Richard Guenther <rguenther@suse.de>
5208
5209 * Makefile.in (OBJS-onestep): Remove.
5210 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
5211 (libbackend.a): Remove onestep support.
5212 (libbackend.o): Remove.
5213 * configure.ac (--enable-intermodule): Remove.
5214 * configure: Regenerate.
5215
662592e1
BS
52162010-09-24 Bernd Schmidt <bernds@codesourcery.com>
5217
5218 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
5219 reaching the end of a block if it occurs at a DEBUG_INSN.
5220
5501bdc1
TG
52212010-09-09 Tristan Gingold <gingold@adacore.com>
5222
5223 PR target/44242
5224 * config/vms/vms-crt0-64.c: Removed.
5225 * config/vms/vms-crt0.c: Removed.
5226 * config/vms/vms-psxcrt0-64.c: Removed.
5227 * config/vms/vms-psxcrt0.c: Removed.
5228 * config/vms/vms-ucrt0.c: New file.
5229 * config/vms/t-vms64: Removed.
5230 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
5231 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
5232 * config.gcc (alpha-dec-vms): Use t-vms.
5233
35e711d3
NP
52342010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
5235
5236 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
5237 underfull hbox in DVI output.
5238 (-fobjc-class-cxx-cdtors): Same change.
5239 (-fobjc-exceptions): Tidied up documentation. Explain what the
5240 option does, but moved the (lenghty) description of the exception
5241 syntax into objc.texi.
5242 (-fobjc-gc): Explain that the option is not useful with the GNU
5243 runtime.
5244 (-fzero-link): Explain that the GNU runtime always works in
5245 "zero-link" mode.
5246 * doc/objc.texi: All sections: simplified @node declarations
5247 removing specification of next, previous, up node.
5248 (Objective-C): Updated introduction.
5249 (Garbage Collection): Updated. The bohem-gc library is now
5250 included in gcc itself. Mention that this section only applies to
5251 the GNU Objective-C runtime.
5252 (compatibility_alias): Small tidy up.
5253 (Exceptions): New section mostly containing text previously in the
5254 description of the -fobjc-exception command-line option.
5255 (Synchronization): Same.
5501bdc1 5256
6fd71fde
UB
52572010-09-24 Uros Bizjak <ubizjak@gmail.com>
5258
5259 * config/i386/i386.md (ix86_code_end): Move the initialization of
5260 xops array near the consumer. Use AX_REG and SP_REG instead of
5261 numerical constants.
5262
19dc6d01
NP
52632010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
5264
6fd71fde
UB
5265 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
5266 method [methodname]' for an Objective-C method instead of the less
5267 satisfactory 'too many arguments to function' (with no method name).
19dc6d01 5268
f61c8291
EB
52692010-09-23 Eric Botcazou <ebotcazou@adacore.com>
5270
452648a8 5271 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
f61c8291 5272 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
452648a8
EB
5273 (execute_update_addresses_taken): Remove parameter. Execute the
5274 optimization unconditionally.
5275 * passes.c (execute_function_todo): Call execute_update_addresses_taken
5276 unconditionally if TODO_rebuild_alias is set, else only when optimizing
5277 if TODO_update_address_taken is set.
f61c8291 5278
ffda8a0d
AS
52792010-09-23 Anatoly Sokolov <aesok@post.ru>
5280
5281 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5282 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
5283 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5284 (arm_output_addr_const_extra): Make static.
5285
17eba947
UB
52862010-09-23 Uros Bizjak <ubizjak@gmail.com>
5287
5288 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
5289 define as unspec_volatile.
5290 ("nops"): Define as unspec_volatile. Use fputs to write to
5291 asm_out_file directly. Output NOPs on separate lines using while loop.
5292 * config/i386/i386.c (ix86_code_end): Use fputs to write to
5293 asm_out_file directly. Output NOPs on separate lines using while loop.
5294
3d113394
RG
52952010-09-23 Richard Guenther <rguenther@suse.de>
5296
5297 PR tree-optimization/45565
5298 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5299 Make sure to adjust the fndecl before replacing the stmt.
5300
dca26746
RG
53012010-09-23 Richard Guenther <rguenther@suse.de>
5302
5303 PR middle-end/45750
5304 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
5305 gimplifying MEM_REF.
5306
9f2e34e1
AM
53072010-09-23 Alan Modra <amodra@gmail.com>
5308
5309 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
5310 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
5311
3c3bd471
BS
53122010-09-23 Bernd Schmidt <bernds@codesourcery.com>
5313
5314 PR rtl-optimization/44374
5315 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
5316 * df-core.c (df_set_bb_dirty): Set it.
5317 * ifcvt.c (find_memory): Remove function.
5318 (dead_or_predicable): Use can_move_insns_across.
5319 * df.h (can_move_insns_across): Declare function.
5320 * cfgcleanup.c (block_was_dirty): New static variable.
5321 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
5322 than df_get_bb_dirty.
5323 (try_head_merge_bb): New static function.
5324 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
5325 is set.
5326 * df-problems.c: Include "target.h"
5327 (df_simulate_find_uses): New static function.
5328 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
5329 (find_memory, find_memory_store): New static functions.
5330 (can_move_insns_across): New function.
5331 * Makefile.in (df-problems.o): Update dependencies.
5332
40ea67af
EB
53332010-09-22 Eric Botcazou <ebotcazou@adacore.com>
5334
5335 PR java/44095
5336 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
5337 is specified and the suffix of the file isn't ".c".
5338 * config/sparc/linux64.h (ASM_SPEC): Likewise.
5339
53402010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ab940b73 5341
17eba947 5342 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
ab940b73
RW
5343 * doc/cppopts.texi: Fix markup of index entry.
5344 * doc/extend.texi (Constructing Calls): Fix markup of
5345 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
5346 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
5347 (Vague Linkage, C++ Attributes): Fix markup of index entries and
5348 keywords.
5349 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
5350 avoid long lines.
5351 (C Dialect Options, C++ Dialect Options, Warning Options)
5352 (Debugging Options, Spec Files, Darwin Options)
5353 (i386 and x86-64 Options, MIPS Options)
5354 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
5355 index entries, avoid abbreviations, allow URLs to wrap, avoid
5356 long lines, avoid overlong pages from long @itemx lists.
5357 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
5358 * doc/standards.texi (Standards): Likewise.
17eba947 5359 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
ab940b73 5360
60cf253a
JM
53612010-09-22 Joseph Myers <joseph@codesourcery.com>
5362
5363 * opts-common.c (prune_options): Make static. Work with decoded
5364 options.
5365 (decode_cmdline_options_to_array): Call prune_options. Don't
5366 resize option array here.
5367 * opts.h (prune_options): Remove prototype.
5368 * gcc.c (process_command): Take decoded options; don't call
17eba947 5369 decode_cmdline_options_to_array here. Use decoded options for argv[0].
60cf253a
JM
5370 (main): Call decode_cmdline_options_to_array here instead of
5371 prune_options. Update call to process_command.
5372 * config/darwin-driver.c: Include opts.h.
5373 (darwin_default_min_version): Work with decoded options. Don't
5374 handle -b or -V here.
5375 * config/darwin.h (darwin_default_min_version): Update prototype.
5376 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
5377 darwin_default_min_version.
5378 * config/i386/cygwin.h (mingw_scan): Update prototype.
5379 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
5380 * config/i386/cygwin1.c: Include opts.h.
5381 (mingw_scan): Work with decoded options.
5382 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
5383 * config/t-darwin (darwin-driver.o): Update dependencies.
5384
e200444e
JM
53852010-09-22 Joseph Myers <joseph@codesourcery.com>
5386
5387 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
5388 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
5389 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
5390 -force-link, -force-link=, -language, -language=,
5391 -library-directory, -library-directory=, -no-canonical-prefixes,
5392 -no-standard-libraries, -no-warnings, -optimize, -output,
5393 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
5394 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
5395 -print-file-name=, -print-libgcc-file-name,
5396 -print-multi-directory, -print-multi-lib,
5397 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
5398 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
5399 -profile, -save-temps, -shared, -specs, -specs=, -static,
5400 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
5401 symbolic): New.
5402 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
5403 * gcc.c (A Short Introduction to Adding a Command-Line Option):
5404 Remove comment.
5405 (cc1_options): Correct specs for passing down --help,
5406 --target-help and --help=*. Add spec for passing down --version.
5407 (struct option_map, option_map, target_option_translations,
5408 translate_options): Remove.
5409 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
5410 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
5411 OPT_fhelp_ and OPT_ftarget_help.
5412 (process_command): Don't call translate_options. Call
5413 decode_cmdline_options_to_array before checking for
5414 -no-canonical-prefixes using decoded options.
5415 * opts-common.c (tm.h): Update comment on #include.
5416 (find_opt): Allow abbreviations of long options.
5417 (struct option_map, option_map): New.
5418 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
5419 and -mno handling.
5420 (target_option_translations): New.
5421 (decode_cmdline_options_to_array): Handle
5422 TARGET_OPTION_TRANSLATE_TABLE in driver.
5423 * opts.c (common_handle_option): Don't handle OPT_fhelp,
5424 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
5425
5d7b099c
RG
54262010-09-22 Richard Guenther <rguenther@suse.de>
5427
5428 * tree-inline.c (optimize_inline_calls): Schedule cleanups
5429 only if we inlined something. Block compaction and conditional
5430 folding are done by cfg cleanup. Schedule update-address-taken.
5431 (tree_function_versioning): Remove redundant call to number_blocks.
5432 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
5433 folding is done by cfg cleanup.
5434 * passes.c (init_optimization_passes): Remove update-address-taken
5435 pass after IPA inlining.
5436
27d5e204
CLT
54372010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
5438
5439 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
5440 to update conditions. Fix reg_mode[] check.
5441
17eba947 54422010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
be6388e1
HS
5443
5444 * config/picochip/picochip.md (movhicc): Use expand to check whether
5445 movhicc is available and split it after reload.
5446
736fe2d5
RG
54472010-09-22 Richard Guenther <rguenther@suse.de>
5448
5449 * tree-ssanames.c (release_dead_ssa_names): Do not remove
5450 callee edges here.
5451 * passes.c (init_optimization_passes): Remove early CFG cleanup.
5452 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
5453 (pass_cleanup_cfg): Likewise.
5454 (execute_fixup_cfg): Cleanup.
5455 * tree-pass.h (pass_cleanup_cfg): Remove.
5456
23c1da7a
MJ
54572010-09-22 Martin Jambor <mjambor@suse.cz>
5458
5459 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
5460 builtins if it is true.
5461 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
5462 parameter.
5463
9271a43c
MJ
54642010-09-22 Martin Jambor <mjambor@suse.cz>
5465
5466 * tree-sra.c (struct access): New field grp_no_warning.
5467 (create_access_replacement): Set TREE_NO_WARNING according to
5468 grp_no_warning.
5469 (create_artificial_child_access): Use build_ref_for_model and set
5470 grp_no_warning if build_user_friendly_ref_for_offset fails.
5471 (propagate_subaccesses_across_link): Likewise.
5472
77167b6f
EB
54732010-09-22 Eric Botcazou <ebotcazou@adacore.com>
5474
5475 PR target/35664
5476 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
5477 ('f'): Likewise.
5478
50842acb
TG
54792010-09-22 Tristan Gingold <gingold@adacore.com>
5480
5481 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
5482
c69fa2d4
UB
54832010-09-22 Uros Bizjak <ubizjak@gmail.com>
5484
5485 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
5486 * config/i386/i386.c (decide_alg): Update for rename.
5487
a82e045d
JJ
54882010-09-22 Jakub Jelinek <jakub@redhat.com>
5489
5490 PR rtl-optimization/45739
5491 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
5492 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
5493
5e68c77a
AS
54942010-09-21 Anatoly Sokolov <aesok@post.ru>
5495
5496 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
5497 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
5498 Remove.
c69fa2d4 5499 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5e68c77a
AS
5500 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5501
45547c7f
NP
55022010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
5503
5504 PR objc/23710
45547c7f
NP
5505 * c-parser.c (c_parser_objc_method_definition): Check the return
5506 value of objc_start_method_definition and if false is returned,
5507 parse the method definition but emit no code.
50842acb 5508
c0c24aa4
NP
55092010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
5510
5511 PR objc/25965
5512 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
5513 call objc_get_interface_ivars ().
50842acb 5514
f997b875
KT
55152010-09-21 Kai Tietz <kai.tietz@onevision.com>
5516
5517 PR target/45694
5518 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
5519 static chain-register is used for 64-bit.
5520
54394f4d
RG
55212010-09-21 Richard Guenther <rguenther@suse.de>
5522
5523 * dwarf2out.c (is_cu_die): New function.
5524 (add_pubtype): Use it.
5525 (gen_subprogram_die): Likewise.
5526 (gen_struct_or_union_type_die): Likewise.
5527 (dwarf2out_finish): Likewise.
5528 (comp_unit_die): Rename to ...
5529 (single_comp_unit_die): ... this.
5530 (comp_unit_die): New function lazily constructing and
5531 returning single_comp_unit_die.
5532 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
5533 base_type_die, subrange_type_die, modified_type_die,
5534 lower_bound_default, add_bound_info, add_prototyped_attribute,
5535 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
5536 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
5537 force_decl_die, gen_namespace_die, dwarf2out_decl,
5538 dwarf2out_start_source_file, dwarf2out_end_source_file,
5539 prune_unused_types, dwarf2out_finish): Use it.
5540 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
5541 the global list of translation-unit decls.
5542 (dwarf2out_init): Do not create single_comp_unit_die here.
5543 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
5544
9cad5fe7
RG
55452010-09-21 Richard Guenther <rguenther@suse.de>
5546
5547 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
5548 for bool for C++.
5549
c9cdcaa5
BS
55502010-09-21 Bernd Schmidt <bernds@codesourcery.com>
5551
5552 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
5553 (qhs_extenddi_cstr): Likewise.
5554 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
5555 them for the source operand.
5556
903c31ee
UB
55572010-09-21 Uros Bizjak <ubizjak@gmail.com>
5558
5559 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
5560 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
5561 (ix86_split_ashr): Ditto.
5562 (ix86_split_lshr): Ditto.
5563
ce2b1d68
RG
55642010-09-21 Richard Guenther <rguenther@suse.de>
5565
5566 PR tree-optimization/45580
5567 * tree-ssa-propagate.c (substitute_and_fold): Always replace
5568 regular uses.
5569 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
5570 virtuals fold the call into a regular indirect one.
5571
ad78b8a6
EB
55722010-09-20 Eric Botcazou <ebotcazou@adacore.com>
5573
5574 PR rtl-optimization/42775
5575 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
5576 scheduling is enabled.
5577
0a7a6af6
JJ
55782010-09-20 Jakub Jelinek <jakub@redhat.com>
5579
220c5f0c
JJ
5580 PR rtl-optimization/45728
5581 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
5582 gen_lowpart_common first and if that fails, force_reg first
5583 before calling gen_lowpart.
5584
0a7a6af6
JJ
5585 PR middle-end/45678
5586 * cfgexpand.c (expand_one_stack_var_at): Use
5587 crtl->max_used_stack_slot_alignment as max_align, instead
5588 of maximum of that and PREFERRED_STACK_BOUNDARY.
5589 Don't call update_stack_alignment.
5590
523e82a7
EB
55912010-09-20 Eric Botcazou <ebotcazou@adacore.com>
5592
5593 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
5594 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
5595 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
5596 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
5597 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
5598 (build_nonstandard_integer_type): Likewise.
5599 (build_range_type_1): New function, built from...
5600 (build_range_type): ...this. Call build_range_type_1.
5601 (build_nonshared_range_type): New function.
5602 (build_array_type_1): New function, built from...
5603 (build_array_type: ...this. Call build_array_type_1.
5604 (build_nonshared_array_type): New function.
5605 * tree.h (build_nonshared_range_type): Declare.
5606 (build_nonshared_array_type): Likewise.
5607
d163e655
AS
56082010-09-20 Anatoly Sokolov <aesok@post.ru>
5609
5610 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
5611 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5612 (arm_class_likely_spilled_p): New function.
5613
382eb33c
UB
56142010-09-20 Uros Bizjak <ubizjak@gmail.com>
5615
5616 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
5617 indirect functions.
5618 (ix86_split_ashl): Ditto.
5619 (ix86_split_ashr): Ditto.
5620 (ix86_split_lshr): Ditto.
5621 (ix86_adjust_counter): Ditto.
5622
abc88a08
NP
56232010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
5624
5625 * c-family/c-common.h (constant_string_class): Documented with
5626 comment identical to the one already in c-common.c.
5627
fbbe0995
JJ
56282010-09-20 Jakub Jelinek <jakub@redhat.com>
5629
9bedc09b
JJ
5630 * dwarf2out.c (any_cfis_emitted): New static variable.
5631 (add_fde_cfi): Set it.
5632 (dwarf2out_frame_debug): Clear it before processing,
5633 if it is set afterwards, flush any queued reg saves.
5634
fbbe0995
JJ
5635 PR debug/45124
5636 * dwarf2out.c (add_accessibility_attribute): Assume
5637 DW_ACCESS_private as the default for dwarf_version > 2
5638 and DW_TAG_class_type parent.
5639 (gen_inheritance_die): Assume DW_ACCESS_public as the default
5640 for dwarf_version > 2 and parent other than DW_TAG_class_type.
5641
382eb33c 56422010-09-20 Rafael Carre <rafael.carre@gmail.com>
cce470f9
RC
5643
5644 PR target/45726
5645 * arm.md (arm_movt): Only enable on machines with MOVT.
5646
47d8f18d
JZ
56472010-09-20 Jie Zhang <jie@codesourcery.com>
5648
5649 * config/arm/arm.c (arm_address_offset_is_imm): New.
5650 (arm_early_store_addr_dep): New.
5651 (arm_early_load_addr_dep): New.
5652 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
5653 (arm_early_load_addr_dep): Declare.
5654 (arm_address_offset_is_imm): Declare.
5655 * config/arm/cortex-m4.md: New file.
5656 * config/arm/cortex-m4-fpu.md: New file.
5657 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
5658 (attr generic_sched): Exclude cortexm4.
5659 (attr generic_vfp): Exclude cortexm4.
5660
06baaba3
RG
56612010-09-20 Richard Guenther <rguenther@suse.de>
5662
5663 PR middle-end/45704
5664 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
5665
64e0f5ff
JH
56662010-09-20 Jan Hubicka <jh@suse.cz>
5667
5668 PR tree-optimize/45605
5669 * cgraph.h (const_value_known_p): Declare.
5670 (varpool_decide_const_value_known): Remove.
5671 * tree-ssa-ccp.c (get_base_constructor): Use it.
5672 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
5673 * expr.c (string_constant): Likewise.
5674 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
5675 * ipa.c (ipa_discover_readonly_nonaddressable_var,
5676 function_and_variable_visibility): Likewise.
5677 * gimplify.c (gimplify_call_expr): Likewise.
5678 * gimple-fold.c (get_symbol_constant_value): Likewise.
5679 * varpool.c (varpool_decide_const_value_known): Replace by...
5680 (const_value_known_p): ... this one; handle other kinds of DECLs
5681 too and work for automatic vars.
5682 (varpool_finalize_decl): Use const_value_known_p.
5683
382eb33c 56842010-09-20 Rafael Carre <rafael.carre@gmail.com>
4ce9b2b2
RC
5685
5686 PR target/45726
5687 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
5688
565b8886
RG
56892010-09-20 Richard Guenther <rguenther@suse.de>
5690
5691 PR tree-optimization/45705
5692 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
5693
2960be83
JJ
56942010-09-20 Jakub Jelinek <jakub@redhat.com>
5695
5696 PR rtl-optimization/45695
5697 * combine.c (try_combine): When splitting a two set pattern,
5698 make sure the pattern which will be put into i2 doesn't use REGs
5699 or MEMs set by insns in between i2 and i3.
5700
d1f6261f
JH
57012010-09-19 Jan Hubicka <jh@suse.cz>
5702
5703 PR lto/44246
5704 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
5705 processing same node twice.
5706
0b182178
AS
57072010-09-19 Anatoly Sokolov <aesok@post.ru>
5708
5709 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
5710 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5711 (bfin_class_likely_spilled_p): New function
5712
039d9ea1
IR
57132010-09-19 Ira Rosen <irar@il.ibm.com>
5714
5715 PR tree-optimization/45714
5716 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
5717 created in vectorizable_call instead of the original statement in
5718 def stmt updates.
5719
b146446c
UB
57202010-09-19 Uros Bizjak <ubizjak@gmail.com>
5721
5722 * config/i386/i386-protos.h (split_double_mode): New prototype.
5723 (split_di, split_ti): Remove prototypes.
5724 * config/i386/i386.c (split_double_mode): New function.
5725 (split_di, split_ti): Remove.
5726 (ix86_expand_branch): Use split_double_mode.
5727 (ix86_split_to_parts): Ditto.
5728 (ix86_split_ashl): Ditto.
5729 (ix86_split_ashr): Ditto.
5730 (ix86_split_lshr): Ditto.
5731 (ix86_force_to_memory): Ditto.
5732 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
5733
9b389a5e
JH
57342010-09-18 Jan Hubicka <jh@suse.cz>
5735
5736 PR tree-optimization/45453
5737 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
5738 virtual functions are reachable.
5739 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
5740 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5741 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
5742 when modifying function.
5743
1389294c
JH
57442010-09-18 Jan Hubicka <jh@suse.cz>
5745
5746 PR tree-optimization/45605
5747 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
5748 * gimple-fold.c (static_object_in_other_unit_p): New function.
5749 (canonicalize_constructor_val): Use it.
5750 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
5751 returning NULL.
b146446c
UB
5752 (gimple_fold_obj_type_ref_known_binfo): Use
5753 static_object_in_other_unit_p.
1389294c 5754
6a78fd06
RG
57552010-09-18 Richard Guenther <rguenther@suse.de>
5756
5757 PR tree-optimization/45709
5758 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
5759 insertions until after all PHI nodes of the block are processed.
5760
17eba947 57612010-09-18 Tijl Coosemans <tijl@coosemans.org>
f52a39cd
TC
5762
5763 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
5764
b4b7e792
KT
57652010-09-18 Kai Tietz <kai.tietz@onevision.com>
5766
5767 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
5768
a9db10d4
RG
57692010-09-18 Richard Guenther <rguenther@suse.de>
5770
5771 PR tree-optimization/45709
b146446c 5772 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
a9db10d4 5773
1f424006
SP
57742010-09-17 Sebastian Pop <sebastian.pop@amd.com>
5775
5776 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
5777 (dot_deps_stmt): Same.
5778 * graphite-poly.c (dot_lst): Same.
5779 * graphite-scop-detection.c (dot_all_scops): Same.
5780 (dot_scop): Same.
5781
f3241b29
SP
57822010-09-17 Sebastian Pop <sebastian.pop@amd.com>
5783
b146446c
UB
5784 Revert:
5785 2009-12-16 Ben Elliston <bje@au.ibm.com>
5786
f3241b29
SP
5787 * tree-data-ref.c (dot_rdg_1): Added back.
5788 (dot_rdg): Same. Added "#if 0" around system call.
5789
e7ed95a2
L
57902010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5791 Richard Henderson <rth@redhat.com>
5792
5793 * config/i386/i386.c (initial_ix86_tune_features): Add
5794 X86_TUNE_PAD_SHORT_FUNCTION.
5795 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
5796 (ix86_count_insn): New.
5797 (ix86_pad_short_function): Likewise.
5798 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
5799
5800 * config/i386/i386.h (ix86_tune_indices): Add
5801 X86_TUNE_PAD_SHORT_FUNCTION.
5802 (TARGET_PAD_SHORT_FUNCTION): New.
5803
5804 * config/i386/i386.md (UNSPEC_NOPS): New.
5805 (nops): Likewise.
5806
2b3ded42
L
58072010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5808
5809 PR middle-end/45234
5810 * calls.c (expand_call): Make sure that all variable sized
5811 adjustments are multiple of preferred stack boundary after
5812 stack alignment.
5813
bf9afb7d
DD
58142010-09-17 DJ Delorie <dj@redhat.com>
5815
5816 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
5817 passed an invalid value, print an error instead of ICEing.
5818 (valid_psw_flag): New.
5819 (rx_expand_builtin): Call it for setpsw/clrpsw.
b146446c 5820 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
bf9afb7d
DD
5821
5822 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
5823 (bitclr_in_memory): Likewise.
5824 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
5825
765c3e8f
L
58262010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5827
5828 PR middle-end/45678
5829 * cfgexpand.c (update_stack_alignment): New.
5830 (get_decl_align_unit): Use it.
5831 (expand_one_stack_var_at): Call update_stack_alignment.
5832
0982fd64
RG
58332010-09-17 Richard Guenther <rguenther@suse.de>
5834
5835 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
5836 Properly copy the read string.
5837
e90afde6
JM
58382010-09-17 Joseph Myers <joseph@codesourcery.com>
5839
5840 * doc/options.texi (Variable): Document.
5841 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
5842 generate target_flags declarations explicitly. Don't define
5843 VarExists variables for the driver.
5844 * common.opt (target_flags): New Variable record.
5845 (flag_dump_unnumbered, flag_dump_unnumbered_links,
5846 flag_var_tracking, flag_var_tracking_assignments,
5847 flag_var_tracking_assignments_toggle): Don't mark variables with
5848 VarExists.
5849 * config/i386/i386.c (ix86_isa_flags): Don't define here.
5850 * config/i386/i386.opt (ix86_isa_flags): Define here.
5851 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
5852 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
5853 VarExists.
5854 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
5855 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
5856 Only define for generator programs.
5857 * rtlanal.c (target_flags): Remove.
5858 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
5859 flag_var_tracking_assignments_toggle): Remove.
5860
18ba3ce7
MM
58612010-09-17 Michael Matz <matz@suse.de>
5862
5863 PR tree-optimization/43432
5864 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
5865 Accept backwards consecutive accesses.
5866 (vect_create_data_ref_ptr): If step is negative generate
5867 decreasing IVs.
5868 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
5869 (perm_mask_for_reverse, reverse_vec_elements): New functions.
5870 (vectorizable_load): Handle loads with negative steps when easily
5871 possible.
5872
4c588abf
JH
58732010-09-03 Jan Hubicka <jh@suse.cz>
5874
5875 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
5876
122603fa
N
58772010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
5878
5879 * config/v850/v850.c (v850_function_value_regno_p): Make static.
5880 Adjust comments. Declare.
5881 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5882 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
5883
c3224d6f
RG
58842010-09-17 Richard Guenther <rguenther@suse.de>
5885
5886 * common.opt (combine): Remove.
5887 * gcc.c (default_compilers): Remove specs testing combine.
5888 The C compilers no longer can combine.
5889 (option_map): Remove -combine.
5890 (display_help): Remove -combine.
5891 (driver_handle_option): Remove OPT_combine handling.
5892 (compile_input_file_p): Remove.
5893 (do_spec): Remove code concerning combine.
5894 (main): Likewise.
5895 * doc/invoke.texi: Remove traces of -combine.
b146446c 5896 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
c3224d6f 5897
dbad82f5
RG
58982010-09-17 Richard Guenther <rguenther@suse.de>
5899
5900 PR middle-end/45678
5901 * builtins.c (fold_builtin_memory_op): Always properly adjust
5902 alignment of memory accesses.
5903
52b3b3c7
JH
59042010-09-16 Jan Hubicka <jh@suse.cz>
5905
5906 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
5907 processing clone.
5908
26ec9308
L
59092010-09-16 H.J. Lu <hongjiu.lu@intel.com>
5910
5911 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
5912
5913 * config/i386/i386.c (predict_jump): Add prototype.
5914 (flag_opts): Add -m8bit-idiv.
5915 (ix86_split_idivmod): New.
5916
5917 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
5918 Add 2 splitters for SI/DI mode divide.
5919 (divmod<mode>4_1): New pattern.
5920 (udivmod<mode>4_1): Likewise.
5921 (testdi_ccno_1): Likewise.
5922
5923 * config/i386/i386.opt (m8bit-idiv): New.
5924
5925 * doc/invoke.texi: Document -m8bit-idiv.
5926
782d5172
RY
59272010-09-16 Reza Yazdani <reza.yazdani@amd.com>
5928
5929 PR bootstrap/45680
5930 * config/i386/i386.c (min_insn_size): Moved out of the
5931 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
5932
0cac82a0
JH
59332010-09-16 Jan Hubicka <jh@suse.cz>
5934
5935 * lto-cgraph.c (lto_output_node): Fix handling of clones.
5936 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
5937 unreachable clones with reachable clones.
5938 * tree-inline.c (copy_bb): Fix sanity checking when producing
5939 unreachable clone.
5940
40e2dfaa
AS
59412010-09-16 Anatoly Sokolov <aesok@post.ru>
5942
5943 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
5944 (TARGET_MEMORY_MOVE_COST): Define.
5945 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
5946
65592aad
AM
59472010-09-16 Alexander Monakov <amonakov@ispras.ru>
5948
5949 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
5950 maybe_tidy_empty_bb.
5951
5952 Revert:
5953 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
5954 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
5955
fac0f722
JM
59562010-09-16 Joseph Myers <joseph@codesourcery.com>
5957
5958 * target.def (target_option.optimization): New hook.
5959 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
5960 TARGET_OPTION_OPTIMIZATION hook.
5961 * doc/tm.texi: Regenerate.
5962 * hooks.c (hook_void_int_int): New.
5963 * hooks.h (hook_void_int_int): Declare.
5964 * opts.c: Don't include tm_p.h.
5965 (decode_options): Use targetm.target_option.optimization instead
5966 of OPTIMIZATION_OPTIONS.
5967 * system.h (OPTIMIZATION_OPTIONS): Poison.
5968 * config/arm/arm-protos.h (arm_optimization_options): Remove.
5969 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
5970 (arm_optimization_options): Rename to arm_option_optimization.
5971 Make static.
5972 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
5973 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
5974 (cris_option_optimization): New.
5975 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
5976 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
5977 (crx_option_optimization): New.
5978 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
5979 * config/frv/frv-protos.h (frv_optimization_options): Remove.
5980 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
5981 (frv_optimization_options): Rename to frv_option_optimization.
5982 Make static.
5983 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
5984 * config/h8300/h8300.c (h8300_option_optimization): New.
5985 (TARGET_OPTION_OPTIMIZATION): Define.
5986 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
5987 * config/i386/i386-protos.h (optimization_options): Remove.
5988 * config/i386/i386.c (optimization_options): Rename to
5989 ix86_option_optimization. Make static.
5990 (TARGET_OPTION_OPTIMIZATION): Define.
5991 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
5992 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
5993 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
5994 (ia64_optimization_options): Rename to ia64_option_optimization.
5995 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
5996 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
5997 commented-out definition.
5998 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5999 instead of OPTIMIZATION_OPTIONS.
6000 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
6001 (m32r_option_optimization): New.
6002 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
6003 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
6004 Remove.
6005 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
6006 (mcore_option_optimization): New.
6007 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
6008 * config/mep/mep-protos.h (mep_optimization_options): Remove.
6009 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
6010 (mep_optimization_options): Rename to mep_option_optimization.
6011 Make static. Take unused level and size parameters.
6012 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
6013 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
6014 (mmix_option_optimization): New.
6015 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
6016 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
6017 (pdp11_option_optimization): New.
6018 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
6019 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
6020 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
6021 (optimization_options): Rename to rs6000_option_optimization.
6022 Make static.
6023 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
6024 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
6025 * config/rx/rx.c (rx_set_optimization_options): Rename to
6026 rx_option_optimization. Make static. Take unused level and size
6027 parameters.
6028 (TARGET_OPTION_OPTIMIZATION): Define.
6029 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
6030 * config/s390/s390-protos.h (optimization_options): Remove.
6031 * config/s390/s390.c (optimization_options): Rename to
6032 s390_option_optimization. Make static. Don't mark size parameter
6033 unused.
6034 (TARGET_OPTION_OPTIMIZATION): Define.
6035 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
6036 * config/sh/sh-protos.h (sh_optimization_options): Remove.
6037 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
6038 (sh_optimization_options): Rename to sh_option_optimization. Make
6039 static. Don't mark parameters unused.
6040 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
6041 * config/spu/spu-protos.h (spu_optimization_options): Remove.
6042 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
6043 (spu_optimization_options): Rename to spu_option_optimization.
6044 Make static.
6045 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
6046 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
6047 (v850_option_optimization): New.
6048 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
6049 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
6050 (xtensa_option_optimization): New.
6051 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
6052
c5387660
JM
60532010-09-16 Joseph Myers <joseph@codesourcery.com>
6054
6055 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
6056 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
6057 * doc/tm.texi: Regenerate.
6058 * system.h (OVERRIDE_OPTIONS): Poison.
6059 * target.def (override): Default to hook_void_void.
6060 * targhooks.c (default_target_option_override): Remove.
6061 * genmodes.c, machmode.def: Update comments mentioning
6062 OVERRIDE_OPTIONS.
6063 * config/alpha/alpha-modes.def: Update comment mentioning
6064 alpha_override_options.
6065 * config/alpha/alpha-protos.h (override_options): Remove.
6066 * config/alpha/alpha.c (override_options): Rename to
b146446c 6067 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
c5387660
JM
6068 (TARGET_OPTION_OVERRIDE): Define.
6069 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
6070 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
6071 of OVERRIDE_OPTIONS.
6072 * config/arc/arc-protos.h (arc_init): Remove.
6073 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
6074 (arc_init): Rename to arc_option_override. Make static.
6075 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
6076 (OVERRIDE_OPTIONS): Remove.
6077 * config/arm/arm-protos.h (arm_override_options): Remove.
6078 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
6079 (arm_override_options): Rename to arm_option_override. Make
6080 static. Call SUBTARGET_OVERRIDE_OPTIONS.
6081 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
b146446c 6082 * config/arm/arm.md: Update comment referring to arm_override_options.
c5387660
JM
6083 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
6084 instead of OVERRIDE_OPTIONS.
6085 * config/avr/avr-protos.h (avr_override_options): Remove.
6086 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6087 (avr_override_options): Rename to avr_option_override. Make static.
c5387660
JM
6088 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
6089 * config/bfin/bfin-protos.h (override_options): Remove (twice).
6090 * config/bfin/bfin.c (override_options): Rename to
6091 bfin_option_override. Make static.
6092 (TARGET_OPTION_OVERRIDE): Define.
6093 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
6094 * config/cris/cris-protos.h (cris_override_options): Remove.
6095 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6096 (cris_override_options): Rename to cris_option_override. Make static.
c5387660
JM
6097 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
6098 * config/frv/frv-protos.h (frv_override_options): Remove.
6099 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6100 (frv_override_options): Rename to frv_option_override. Make static.
c5387660
JM
6101 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
6102 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
6103 * config/h8300/h8300.c (h8300_init_once): Rename to
6104 h8300_option_override. Make static.
6105 (TARGET_OPTION_OVERRIDE): Define.
6106 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
6107 * config/i386/i386-protos.h (override_options): Remove.
6108 * config/i386/i386.c (override_options): Rename to
6109 ix86_option_override_internal. Make static. Comments referring
6110 to this function and callers changed.
6111 (ix86_option_override): New.
6112 (TARGET_OPTION_OVERRIDE): Define.
6113 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
b146446c 6114 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
c5387660
JM
6115 * config/ia64/ia64.c (ia64_file_start): Update comment referring
6116 to ia64_override_options.
6117 * config/iq2000/iq2000-protos.h (override_options): Remove.
6118 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6119 (override_options): Rename to iq2000_option_override. Make static.
c5387660
JM
6120 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
6121 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
6122 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6123 (lm32_override_options): Rename to lm32_option_override. Make static.
c5387660
JM
6124 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
6125 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
6126 (m32r_option_override): New.
6127 (m32r_init): Update comment.
6128 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
b146446c 6129 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
c5387660
JM
6130 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
6131 (m68hc11_override_options): Rename to m68hc11_option_override.
6132 Make static. Return void.
6133 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
6134 * config/m68k/m68k-protos.h (override_options): Remove.
6135 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
6136 (override_options): Rename to m68k_option_override. Make static.
6137 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
6138 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
6139 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
6140 (mcore_override_options): Rename to mcore_option_override. Make
6141 static.
6142 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
6143 * config/mep/mep-protos.h (mep_override_options): Remove.
6144 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6145 (mep_override_options): Rename to mep_option_override. Make static.
c5387660
JM
6146 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
6147 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
6148 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6149 (mmix_override_options): Rename to mmix_option_override. Make static.
c5387660 6150 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
b146446c 6151 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
c5387660
JM
6152 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
6153 (mn10300_override_options): Rename to mn10300_option_override.
6154 Make static.
6155 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
6156 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
6157 * config/moxie/moxie.c (moxie_override_options): Rename to
6158 moxie_option_override. Make static.
6159 (TARGET_OPTION_OVERRIDE): Define.
6160 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
6161 * config/picochip/picochip-protos.h (picochip_override_options):
6162 Remove. Update comment referring to picochip_override_options.
6163 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
6164 (picochip_override_options): Rename to picochip_option_override.
6165 Make static. Update comment and definition of
6166 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
6167 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
b146446c
UB
6168 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6169 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6170 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6171 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6172 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
c5387660
JM
6173 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
6174 instead of OVERRIDE_OPTIONS.
6175 * config/rs6000/rs6000-modes.def: Update comment referring to
6176 rs6000_override_options.
6177 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
6178 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
6179 (rs6000_override_options): Rename to
6180 rs6000_option_override_internal. Make static. Commented
6181 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
6182 (rs6000_option_override): New.
6183 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
6184 instead of OVERRIDE_OPTIONS.
b146446c 6185 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
c5387660
JM
6186 * config/s390/s390-protos.h (override_options): Remove.
6187 * config/s390/s390.c (override_options): Rename to
6188 s390_option_override. Make static.
6189 (TARGET_OPTION_OVERRIDE): Define.
6190 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
6191 * config/score/score-protos.h (score_override_options): Remove.
6192 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
6193 (score_override_options): Rename to score_option_override. Make
6194 static.
6195 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
6196 Update comment referring to override_options.
6197 * config/score/score3.c (score3_override_options): Rename to
6198 score3_option_override.
6199 * config/score/score3.h (score3_override_options): Rename to
6200 score3_option_override.
6201 * config/score/score7.c (score7_override_options): Rename to
6202 score7_option_override.
6203 * config/score/score7.h (score7_override_options): Rename to
6204 score7_option_override.
6205 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
6206 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
6207 (sparc_override_options): Rename to sparc_option_override. Make
6208 static. Call SUBTARGET_OVERRIDE_OPTIONS.
6209 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
6210 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
6211 instead of OVERRIDE_OPTIONS.
6212 * config/spu/spu-protos.h (spu_override_options): Remove.
6213 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
6214 (spu_override_options): Rename to spu_option_override. Make
6215 static.
6216 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
6217 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
6218 OVERRIDE_OPTIONS.
6219 * config/vax/vax-protos.h (override_options): Remove.
6220 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
6221 (override_options): Rename to vax_option_override. Make static.
6222 Call SUBTARGET_OVERRIDE_OPTIONS.
6223 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
6224 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
6225 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
6226 * config/xtensa/xtensa-protos.h (override_options): Remove.
6227 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 6228 (override_options): Rename to xtensa_option_override. Make static.
c5387660
JM
6229 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
6230
ed6c4831
RG
62312010-09-16 Richard Guenther <rguenther@suse.de>
6232
6233 PR tree-optimization/45623
6234 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
6235 (get_constraint_for_component_ref): If computing a constraint
6236 for the rhs handle type punning through unions.
6237 (get_constraint_for_address_of): Adjust.
6238 (get_constraint_for_1): Likewise.
6239 (get_constraint_for): Likewise.
6240 (get_constraint_for_rhs): New function.
6241 (do_structure_copy): Adjust.
6242 (make_constraint_to): Likewise.
6243 (handle_const_call): Likewise.
6244 (find_func_aliases): Likewise.
6245 (process_ipa_clobber): Likewise.
6246 (create_variable_info_for): Likewise.
6247
ff802fa1
IR
62482010-09-16 Ira Rosen <irar@il.ibm.com>
6249
6250 * tree-vectorizer.c: Fix documentation.
6251 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
6252 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
6253 is_pattern_stmt_p, is_loop_header_bb_p,
6254 stmt_vinfo_set_inside_of_loop_cost,
6255 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
6256 known_alignment_for_access_p): Likewise.
6257 * tree-vect-loop.c: Fix documentation.
6258 (vect_get_cost): Start function name from new line.
6259 * tree-vect-data-refs.c: Fix documentation.
6260 * tree-vect_stmts.c: Likewise.
6261 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
6262 (vectorizable_store): Free vec_oprnds if allocated.
6263 (vectorizable_condition): Initialize several variables to avoid
6264 warnings.
6265 * tree-vect-slp.c: Fix documentation.
6266
6be14c0e
RG
62672010-09-16 Richard Guenther <rguenther@suse.de>
6268
6269 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
6270 is TS_TRANSLATION_UNIT_DECL.
6271 (initialize_tree_contains_struct): Adjust.
6272 (all_translation_units): New global vector.
6273 (build_translation_unit_decl): New function.
6274 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
6275 (struct tree_translation_unit_decl): New.
6276 (all_translation_units): Declare.
6277 (union tree_node): Add translation_unit_decl member.
6278 (build_translation_unit_decl): Declare.
6279 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
6280 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
6281 New function.
6282 (pack_value_fields): Call it.
6283 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
6284 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
6285 (lto_output_tree_pointers): Call it.
6286 * lto-streamer-in.c (lto_input_tree_ref): Handle references
6287 to TRANSLATION_UNIT_DECL.
6288 (unpack_ts_translation_unit_decl_value_fields): New function.
6289 (unpack_value_fields): Call it.
6290 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
6291 (lto_input_tree_pointers): Call it.
6292 * lto-streamer.c (check_handled_ts_structures): Adjust.
6293 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
6294 * c-decl.c (all_translation_units): Remove.
6295 (pop_scope): Use build_translation_unit_decl.
6296 (collect_all_refs): Adjust.
6297 (for_each_global_decl): Likewise.
6298 (c_write_global_declarations): Likewise.
6299
0c3dbcf0
JJ
63002010-09-16 Jakub Jelinek <jakub@redhat.com>
6301
6302 PR bootstrap/45686
6303 * fold-const.c (fold_checksum_tree): Change slot from const void **
6304 to void **, use CONST_CAST_TREE to store into *slot.
6305
a427621f
UB
63062010-09-16 Uros Bizjak <ubizjak@gmail.com>
6307
6308 * config/i386/i386.md: Remove unneeded empty conditions and
6309 preparation statements from expanders.
6310 * config/i386/mmx.md: Ditto.
6311 * config/i386/sse.md: Ditto.
6312
8c2b2fae
UB
63132010-09-16 Uros Bizjak <ubizjak@gmail.com>
6314
6315 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
6316
9fa07b13
EB
63172010-09-15 Eric Botcazou <ebotcazou@adacore.com>
6318
6319 PR rtl-optimization/45593
6320 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
6321 insns that were in delay slots as stand-alone insns.
6322
46327e12
ILT
63232010-09-15 Ian Lance Taylor <iant@google.com>
6324
6325 * incpath.c (remove_duplicates): If name is not a directory, issue
6326 a warning rather than an error.
6327
1faab08d
MJ
63282010-09-15 Martin Jambor <mjambor@suse.cz>
6329
6330 PR middle-end/45644
6331 * tree-sra.c (create_access): Check for bit-fields directly.
6332
cc99c5fe
JJ
63332010-09-15 Jakub Jelinek <jakub@redhat.com>
6334
6335 PR tree-optimization/45633
6336 * tree-cfg.c (verify_gimple_assign_binary): Allow
6337 MINUS_EXPR with lhs and rhs1 pointer vector and
6338 rhs2 sizetype vector.
6339 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
6340 or vector pointer use TER to optimize pointer subtraction.
6341
7dd8ecf0
JZ
63422010-09-15 Jie Zhang <jie@codesourcery.com>
6343
6344 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
6345 fcmpd to fcmps.
6346
1f944e88
ILT
63472010-09-15 Ian Lance Taylor <iant@google.com>
6348
6349 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
6350
c1d9a70a
ILT
63512010-09-15 Ian Lance Taylor <iant@google.com>
6352
6353 * function.c (get_arg_pointer_save_area): Set
6354 arg_pointer_save_area_init to true.
6355
ea395a11
MJ
63562010-09-15 Martin Jambor <mjambor@suse.cz>
6357
6358 * tree-sra.c (generate_subtree_copies): Updated comment.
6359 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
6360 obtained from the statement iterator instead.
6361 (load_assign_lhs_subreplacements): Removed parameters lhs and
6362 right_offset, which is obtained from top_racc instead. Parameter lacc
6363 is now expected to be the root of the processed tree rather than root's
6364 first child. Updated all callers.
6365
6d96b48b
JM
63662010-09-15 Joseph Myers <joseph@codesourcery.com>
6367
6368 * config/pdp11/pdp11.c (register_move_cost): Rename to
6369 pdp11_register_move_cost.
6370 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
6371 pdp11_register_move_cost.
6372 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
6373 pdp11_register_move_cost instead of register_move_cost.
6374
0f38f229
TB
63752010-09-15 Tejas Belagod <tejas.belagod@arm.com>
6376
6377 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
17eba947 6378 pattern for vmovn. Expansion in case of non
0f38f229
TB
6379 -mvectorize-with-neon-quad.
6380 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
6381 non- -mvectorize-with-neon-quad case.
6382 (move_lo_quad_<mode>): New expansion to vmov into low part.
6383 (move_hi_quad_<mode>): New expansion to vmov into high part.
6384 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
6385 (move_lo_quad_v4sf): Likewise.
6386 (move_lo_quad_v8hi): Likewise.
6387 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
6388 low part.
6389 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
6390 high part.
6391 * config/arm/iterators.md (ANY128): New mode iterator.
6392 (V_narrow_pack): New mode attribute.
6393 (V_HALF): Add attribute.
6394 (V_DOUBLE): Add attribute.
6395 (V_mode_nunits): Add attribute.
6396
10937190
EB
63972010-09-15 Eric Botcazou <ebotcazou@adacore.com>
6398
6399 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
6400 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
6401
6c175675 64022010-09-15 Olivier Hainque <hainque@adacore.com>
8c2b2fae 6403 Jose Ruiz <ruiz@adacore.com>
6c175675
OH
6404
6405 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
6406 * config/alpha/osf5-unwind.h: New file.
6407
2b7237bb
L
64082010-09-14 H.J. Lu <hongjiu.lu@intel.com>
6409
6410 PR bootstrap/45672
8c2b2fae 6411 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2b7237bb
L
6412 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6413 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6414
969c37b7
LB
64152010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6416
6417 * c-lang.h (struct lang_type): Add variable_size GTY option.
6418
187c10dc
L
64192010-09-14 H.J. Lu <hongjiu.lu@intel.com>
6420
6421 PR bootstrap/45672
6422 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6423
2c03791b
L
64242010-09-14 H.J. Lu <hongjiu.lu@intel.com>
6425
6426 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
6427 result isn't used in memory address.
6428
26983c22
L
64292010-09-14 H.J. Lu <hongjiu.lu@intel.com>
6430
6431 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
6432 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
6433 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
6434 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6435 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6436 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6437
6438 * target.def: Add units_per_simd_word to vectorize.
6439
6440 * targhooks.c (default_units_per_simd_word): New.
6441 * targhooks.h (default_units_per_simd_word): Likewise.
6442 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
6443 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6444 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
6445 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6446 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6447 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6448 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6449 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6450
6451 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
6452 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
6453
6454 * tree-vect-stmts.c: Don't include "tm_p.h".
6455 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
6456 with targetm.vectorize.units_per_simd_word.
6457
6458 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
6459
6460 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
6461
8c2b2fae 6462 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
26983c22
L
6463 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6464
6465 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
6466 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
6467
6468 * doc/tm.texi: Regenerated.
6469
4de264ab
L
64702010-09-14 H.J. Lu <hongjiu.lu@intel.com>
6471
6472 * tree-vect-stmts.c: Include "tm_p.h".
6473
6474 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
6475 out of RTX_CODE.
6476
e4b5cace
MJ
64772010-09-14 Martin Jambor <mjambor@suse.cz>
6478
6479 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
6480 location of generated statement. Changed all callers.
6481 (build_ref_for_model): New parameter loc which used to set location of
6482 all generated expressions. Changed all callers.
6483 (generate_subtree_copies): Likewise.
6484 (init_subtree_with_zero): Likewise.
6485 (sra_modify_expr): Set locations of all generated statements and
6486 expressions to the location the original statement.
6487 (handle_unscalarized_data_in_subtree): Likewise.
6488 (load_assign_lhs_subreplacements): Likewise.
6489 (sra_modify_constructor_assign): Likewise.
6490 (sra_modify_assign): Likewise.
6491
d191cd06
EB
64922010-09-14 Eric Botcazou <ebotcazou@adacore.com>
6493
6494 PR target/45277
6495 PR target/45363
6496 PR target/45407
6497 * doc/install.texi (sparc*-*-*): New section.
6498 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
6499
4359dc2a
JJ
65002010-09-14 Jakub Jelinek <jakub@redhat.com>
6501
6502 PR middle-end/45567
6503 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
6504 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
6505 (expand_builtin): Adjust caller.
6506 (expand_builtin_unop): Only use subtarget if it has the right mode.
6507
515871c7
TG
65082010-09-14 Tristan Gingold <gingold@adacore.com>
6509
6510 * configure.ac (plugins): Fix typos.
6511 * configure: Regenerate.
6512
4a6e5cc8
JJ
65132010-09-14 Jakub Jelinek <jakub@redhat.com>
6514
6515 PR debug/45660
6516 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
6517 gen_type_die for function/method return type.
6518
5a2c1986
IR
65192010-09-14 Ira Rosen <irar@il.ibm.com>
6520
6521 PR tree-optimization/45470
6522 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6523 can throw an exception.
8c2b2fae 6524 * tree-vect-stmts.c (vectorizable_call): Likewise.
5a2c1986 6525
c28883e6
DD
65262010-09-14 DJ Delorie <dj@redhat.com>
6527
6528 PR target/44749
6529 * config/mep/mep-protos.h (mep_save_register_info,
6530 mep_reinit_regs, mep_init_regs): Declare.
6531
6532 * config/mep/mep.c: Move all target definitions to the end of the
6533 file to avoid the need for duplicate declarations.
6534 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
6535 (mep_reorg_erepeat): Remove unused variables.
6536 (mep_expand_builtin): Likewise.
6537
6538 * config/mep/mep-pragma.c: Don't include rtl.h.
6539 (INVALID_REGNUM): New.
6540 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
6541 functions.
6542 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
6543 Avoid enum/integer math.
6544
ce959463
JM
65452010-09-13 Joseph Myers <joseph@codesourcery.com>
6546
6547 PR target/44749
6548 * config/mep/t-mep (GTM_H): Add insn-constants.h.
6549 * config/mep/mep.c (mep_conditional_register_usage): Take no
6550 parameters.
6551 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
6552 prototype.
6553 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
6554 call to mep_conditional_register_usage.
6555
5c9bf752
EB
65562010-09-13 Eric Botcazou <ebotcazou@adacore.com>
6557
6558 PR debug/43937
6559 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
6560 the DECL as well.
6561
ef3be7da
JJ
65622010-09-13 Jakub Jelinek <jakub@redhat.com>
6563
6564 PR rtl-optimization/45617
6565 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
6566 even if low N bits of X aren't known to be zero.
6567
e72eba85
L
65682010-09-13 H.J. Lu <hongjiu.lu@intel.com>
6569
6570 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
6571
6572 * config/i386/i386.c (initial_ix86_tune_features): Add
6573 X86_TUNE_VECTORIZE_DOUBLE.
6574 (ix86_units_per_simd_word): New.
6575
6576 * config/i386/i386.h (ix86_tune_indices): Add
6577 X86_TUNE_VECTORIZE_DOUBLE.
6578 (TARGET_VECTORIZE_DOUBLE): New.
6579 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
6580
2ea5ee06
PH
65812010-09-13 Pat Haugen <pthaugen@us.ibm.com>
6582
6583 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
6584 (new_temp_expr_table): Allocate call_cnt vector.
6585 (free_temp_expr_table): Free it.
6586 (process_replaceable): Add call_cnt parm and set in vector.
6587 (find_replaceable_in_bb): Skip replacement if def/use span a call.
6588 (debug_ter): Dump call_cnt value, remove stderr uses.
6589
e196b221
JH
65902010-09-13 Jan Hubicka <jh@suse.cz>
6591
6592 * tree.c (build_zero_cst): New.
6593 * tree.h (build_zero_cst): Declare.
6594 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
6595 (get_base_constructor): Break out from ...
6596 (fold_const_aggregate_ref): Here; handle empty constructors.
6597
e88290ac
MS
65982010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
6599
6600 * config/arm/arm.md: (define_attr "conds"): Update comment.
8c2b2fae 6601 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
e88290ac 6602 conds attribute to clob.
8c2b2fae 6603 (arm_sync_compare_and_swapsi): Likewise.
e88290ac
MS
6604 (arm_sync_compare_and_swap<mode>): Likewise.
6605 (arm_sync_lock_test_and_setsi): Likewise.
6606 (arm_sync_lock_test_and_set<mode>): Likewise.
6607 (arm_sync_new_<sync_optab>si): Likewise.
6608 (arm_sync_new_nandsi): Likewise.
6609 (arm_sync_new_<sync_optab><mode>): Likewise.
6610 (arm_sync_new_nand<mode>): Likewise.
6611 (arm_sync_old_<sync_optab>si): Likewise.
6612 (arm_sync_old_nandsi): Likewise.
6613 (arm_sync_old_<sync_optab><mode>): Likewise.
6614 (arm_sync_old_nand<mode>): Likewise.
6615
2f434b97
OH
66162010-09-13 Olivier Hainque <hainque@adacore.com>
6617
8c2b2fae 6618 * fwprop.c (forward_propagate_and_simplify): Only attach a
2f434b97 6619 REG_EQUAL note to an insn if the destination is a register.
8c2b2fae 6620 * gcse.c (try_replace_reg): Likewise.
2f434b97 6621
654a61fb
RG
66222010-09-13 Richard Guenther <rguenther@suse.de>
6623
6624 PR tree-optimization/45611
6625 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
6626 (copy_ref_info): Likewise.
6627
4e3a5f19
AO
66282010-09-13 Alexandre Oliva <aoliva@redhat.com>
6629
6630 PR debug/45604
6631 PR debug/45419
6632 PR debug/45408
6633 * tree-pretty-print.c (dump_generic_node): Disregard top-level
6634 types of MEM_REF pointer types to the same type.
6635
ddf68ab9
HPN
66362010-09-13 Hans-Peter Nilsson <hp@axis.com>
6637
6638 PR rtl-optimization/41087
6639 * ifcvt.c (noce_get_condition): Don't allow conditions with
6640 side-effects.
6641
33124e84
AS
66422010-09-12 Anatoly Sokolov <aesok@post.ru>
6643
6644 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6645 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
6646 * config/frv/frv.c (frv_register_move_cost): Make static. Change
6647 arguments type to reg_class_t. Add mode argument.
6648 (frv_memory_move_cost): New.
6649 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
6650
2cea21dd
BS
66512010-09-12 Bernd Schmidt <bernds@codesourcery.com>
6652
6653 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
6654 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
6655
1b0086cc
JH
66562010-09-10 Jan Hubicka <jh@suse.cz>
6657
6658 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
6659
bedbdfcf
RG
66602010-09-10 Richard Guenther <rguenther@suse.de>
6661
6662 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
6663 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
6664 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
6665 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
6666 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
6667
cf6a4097
RG
66682010-09-10 Richard Guenther <rguenther@suse.de>
6669
6670 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
6671 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
6672 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
6673 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
6674
90966337
L
66752010-09-10 H.J. Lu <hongjiu.lu@intel.com>
6676
6677 PR middle-end/45634
6678 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
6679 of string folding is of integral type.
6680
2962b1bb
RM
66812010-09-10 Ryan Mansfield <rmansfield@qnx.com>
6682
6683 * doc/invoke.texi (-x): Fix typo.
6684
e836611d
RG
66852010-09-10 Richard Guenther <rguenther@suse.de>
6686
6687 PR debug/44115
6688 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
6689 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6690 Output DECL_DEBUG_EXPR.
6691 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6692 Input DECL_DEBUG_EXPR.
6693
8c4353b7
RG
66942010-09-10 Richard Guenther <rguenther@suse.de>
6695
8c2b2fae 6696 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
8c4353b7
RG
6697 (build_index_type): Implement in terms of build_range_type.
6698 (build_range_type): Do not allow NULL_TREE type, improve
6699 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
6700 if we didn't hash.
6701 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
6702 create a distinct copy of the type.
6703
996b42ef
KT
67042010-09-10 Kai Tietz <kai.tietz@onevision.com>
6705
6706 * configure: Regenerated.
6707 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
6708
a8c171c1
RR
67092010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6710
8c2b2fae
UB
6711 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
6712 * config/arm/cortex-a9-neon.md: New and partially generated.
6713 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
a8c171c1 6714
88df93ce
RG
67152010-09-10 Richard Guenther <rguenther@suse.de>
6716
6717 * tree.h (build_index_2_type): Remove.
6718 * tree.c (build_index_2_type): Remove.
6719
40ed057b
JJ
67202010-09-10 Jakub Jelinek <jakub@redhat.com>
6721
6722 PR bootstrap/45630
6723 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
6724 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
6725 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
6726
d242d063
MJ
67272010-09-10 Martin Jambor <mjambor@suse.cz>
6728
6729 PR tree-optimization/44972
6730 * tree-sra.c: Include toplev.h.
6731 (build_ref_for_offset): Entirely reimplemented.
6732 (build_ref_for_model): New function.
6733 (build_user_friendly_ref_for_offset): New function.
6734 (analyze_access_subtree): Removed build_ref_for_offset check.
6735 (propagate_subaccesses_across_link): Likewise.
6736 (create_artificial_child_access): Use
6737 build_user_friendly_ref_for_offset.
6738 (propagate_subaccesses_across_link): Likewise.
6739 (ref_expr_for_all_replacements_p): Removed.
6740 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
6741 (sra_modify_expr): Use build_ref_for_model.
6742 (load_assign_lhs_subreplacements): Likewise.
6743 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
6744 checks for return values of build_ref_for_offset.
6745 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
6746 build_ref_for_offset.
6747 * ipa-prop.h: Include gimple.h
6748 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
6749 (ipa_analyze_indirect_call_uses): Update comment.
6750 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
6751 (IPA_PROP_H): Likewise.
6752
fffe1e40
MJ
67532010-09-10 Martin Jambor <mjambor@suse.cz>
6754
6755 PR tree-optimization/44972
6756 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
6757 calling build_ref_for_offset.
6758
508371fe
RR
67592010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6760
2b74262b
UB
6761 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
6762 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
6763 * config/arm/arm-tune.md: Regenerate.
6764 * doc/invoke.texi (ARM Options): Document it.
508371fe 6765
7942e47e
RY
67662010-09-09 Reza Yazdani <reza.yazdani@amd.com>
6767
6768 * config/i386/i386.c: Include sched-int.h.
6769 (TARGET_SCHED_DISPATCH): Defined.
6770 (TARGET_SCHED_DISPATCH_DO): Defined.
6771 (DISPATCH_WINDOW_SIZE): Defined.
6772 (MAX_DISPATCH_WINDOWS): Defined.
6773 (MAX_INSN): Defined.
6774 (MAX_IMM): Defined.
6775 (MAX_IMM_SIZE): Defined.
6776 (MAX_IMM_32): Defined.
6777 (MAX_IMM_64): Defined.
6778 (MAX_LOAD): Defined.
6779 (MAX_STORE): Defined.
6780 (BIG): Defined.
6781 (dispatch_group): New.
6782 (num_allowable_groups): New.
6783 (group_name): New.
6784 (sched_insn_info_s): New.
6785 (dispatch_windows_s): New.
6786 (imm_info_s): New.
6787 (dispatch_window_list): New.
6788 (dispatch_window_list1): New.
6789 (get_mem_group): New.
6790 (is_cmp): New.
6791 (dispatch_violation): New.
6792 (is_branch): New.
6793 (is_prefetch): New.
6794 (init_window): New.
6795 (allocate_window): New.
6796 (init_dispatch_sched): New.
6797 (is_end_basic_block): New.
6798 (process_end_window): New.
6799 (allocate_next_window): New.
6800 (find_constant_1): New.
6801 (find_constant): New.
6802 (get_num_immediates): New.
6803 (has_immediate): New.
6804 (get_insn_path): New.
6805 (get_insn_group): New.
6806 (count_num_restricted): New.
6807 (fits_dispatch_window): New.
6808 (add_insn_window): New.
6809 (add_to_dispatch_window): New.
6810 (debug_dispatch_window_file): New.
6811 (debug_dispatch_window): New.
6812 (debug_insn_dispatch_info_file): New.
6813 (debug_ready_dispatch): New.
6814 (do_dispatch): New.
6815 (has_dispatch): New.
6816 * config/i386/i386.h (debug_ready_dispatch): Declared.
6817 (debug_dispatch_window): Declared.
6818 * config/i386/i386.opt (mdispatch-scheduler): New flag.
6819 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
6820 (TARGET_SCHED_DISPATCH_DO): New.
6821 * doc/tm.texi: Regererated.
6822 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
6823 ready_remove_first_dispatch
6824 (schedule_block): Call targetm.sched.dispatch and
6825 targetm.sched.dispatch_do.
6826 (sched_init): Call targetm.sched.dispatch and
6827 targetm.sched.dispatch_do.
6828 (ready_remove_first_dispatch): New.
6829 (number_in_ready): New.
6830 (get_ready_element): New.
6831 * hooks.c (hook_bool_rtx_int_false): New.
6832 (hook_void_rtx_int): New.
6833 * hooks.h (hook_bool_rtx_int_false): Declared.
6834 (hook_void_rtx_int): Declared.
6835 * sched-int.h (IS_DISPATCH_ON): Defined.
6836 (IS_CMP): Defined.
6837 (DISPATCH_VIOLATION): Defined.
6838 (FITS_DISPATCH_WINDOW): Defined.
6839 (DISPATCH_INIT): Defined.
6840 (ADD_TO_DISPATCH_WINDOW): Defined.
6841 (get_ready_element): Declared.
6842 (number_in_ready): Declared.
6843 * target.def (dispatch): Defined.
6844 (dispatch_do): Defined.
6845
82916e7e
VM
68462010-09-09 Vladimir Makarov <vmakarov@redhat.com>
6847
6848 PR middle-end/45312
6849 * reload1.c (merge_assigned_reloads): Remove.
6850 (reload_as_needed): Don't call it.
6851
b9be2842
AS
68522010-09-09 Anatoly Sokolov <aesok@post.ru>
6853
6854 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
6855 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6856 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6857
709e26f0
MK
68582010-09-09 Matthias Klose <doko@ubuntu.com>
6859
6860 PR bootstrap/43847
6861 * configure.ac (--enable-plugin): Enhance for cross builds.
6862 * configure: Regenerate.
6863
54e34c35
JH
68642010-09-09 Jan Hubicka <jh@suse.cz>
6865
6866 PR tree-optimization/45598
6867 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
6868 string folding is of integral type.
6869
ba885ec5
NS
68702010-09-09 Nathan Sidwell <nathan@codesourcery.com>
6871
6872 * configure.ac (gnu_indirect_function): New test.
6873 * configure: Rebuilt.
6874 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
6875 * defaults.h (IFUNC_ASM_TYPE): Provide default.
6876
6877 * doc/extend.texi (Function Attributes): Document ifunc.
6878 * varasm.c (do_assemble_alias): Deal with ifuncs too.
6879
74164603 68802010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
5582cb29
HS
6881
6882 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
6883 epilogue instruction move.
6884
ed2222c8
JH
68852010-09-09 Jan Hubicka <jh@suse.cz>
6886
6887 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
6888 command line to allow more partitions than input files.
6889
de8e52f0
VM
68902010-09-09 Vladimir Makarov <vmakarov@redhat.com>
6891
6892 PR middle-end/44554
6893 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
6894
b100151b
VM
68952010-09-09 Vladimir Makarov <vmakarov@redhat.com>
6896
6897 PR middle-end/40386
6898 * ira.c (pseudo_for_reload_consideration_p): Don't use
6899 flag_ira_share_spill_slots.
6900
45e5214c
UW
69012010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6902
6903 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
6904 point zero operands that fit into a single GPR.
6905 (s390_preferred_reload_class): Ensure we only return general-purpose
6906 register classes.
6907 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
6908 floating-point zero operands into GPRs.
6909 ("*mov<mode>_64"): Likewise.
6910 ("mov<mode>"): Likewise using lhi.
6911
98635b04
UW
69122010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6913
6914 * config/s390/s390.c (s390_symref_operand_p): Return false for
6915 literal pool references.
6916 (s390_check_qrst_address): Update caller.
6917
d2795d58
UB
69182010-09-09 Uros Bizjak <ubizjak@gmail.com>
6919
6920 * config/i386/predicates.md (ext_register_operand): Check that
6921 SUBREG_REG is really a register before looking for REGNO.
6922 (reg_not_xmm0_operand): Handle SUBREGs correctly.
6923 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
6924
c8a27c40
JJ
69252010-09-09 Jakub Jelinek <jakub@redhat.com>
6926
6927 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
6928 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
6929 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
6930 * print-rtl.c (print_rtx): Likewise.
6931 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6932 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
6933 for ADDR_EXPR with non-addressable object.
6934 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
6935 (struct dw_val_struct): Add v.val_decl_ref.
6936 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
6937 Handle DW_OP_GNU_implicit_pointer.
6938 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
6939 (get_ref_die_offset_label): New function.
6940 (implicit_ptr_descriptor): New function.
6941 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
6942 (loc_descriptor): Likewise.
6943 (gen_variable_die): Put even definitions into decl_die_table.
6944 (resolve_addr_in_expr): Resolve still unresolved
6945 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
6946 return false.
6947 (dwarf2out_finish): Call output_location_lists after outputting
6948 .debug_info and .debug_abbrev instead of before.
6949
69502010-09-09 Roland McGrath <roland@redhat.com>
6951
6952 * dwarf2out.c (DWARF_REF_SIZE): Define.
6953 (size_of_loc_descr): Use it for DW_OP_call_ref.
6954
5a79bcc4
AM
69552010-09-09 Alan Modra <amodra@gmail.com>
6956
6957 * doc/invoke.text: Reinstate mcmodel=medium.
6958 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6959 CMODEL_MEDIUM as default.
6960 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
6961 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
6962 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
6963 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
6964
bc707992
JDA
69652010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6966
6967 PR target/45250
6968 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
6969 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
6970 (builtin_longjmp): Likewise.
6971 (allocate_stack): Use hard_frame_pointer_rtx instead of
6972 frame_pointer_rtx.
6973 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
6974 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
6975 (pa_can_eliminate): Likewise.
6976 (TARGET_INTERNAL_ARG_POINTER): Define.
6977 (TARGET_CAN_ELIMINATE): Define.
6978 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
6979 pointer.
6980 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
6981 (pa_internal_arg_pointer, pa_can_eliminate,
6982 pa_initial_elimination_offset): New.
6983 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
6984 (HARD_FRAME_POINTER_REGNUM): Set to register three.
6985 (INITIAL_FRAME_POINTER_OFFSET): Delete.
6986 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
6987 Define.
6988 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
6989 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
6990 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
6991 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
6992 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
6993 new soft frame pointer.
6994 * config/pa/pa64-regs.h: Likewise.
6995
2824d6e5
UB
69962010-09-08 Uros Bizjak <ubizjak@gmail.com>
6997
6998 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
6999 numerical constant.
7000 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
7001
c485684d
AO
70022010-09-08 Alexandre Oliva <aoliva@redhat.com>
7003
7004 PR debug/45531
7005 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
7006
359bea1d
AO
70072010-09-08 Alexandre Oliva <aoliva@redhat.com>
7008
7009 PR debug/45419
7010 PR debug/45408
7011 * tree-pretty-print.c (dump_generic_node): Disregard top-level
7012 qualifiers in otherwise equal MEM_REF pointer types.
7013 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
7014 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
7015
0a7822a3
RR
70162010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7017
7018 PR target/44392
7019 * config/arm/arm.md (bswapsi2): Handle condition correctly
7020 for armv6 and optimize_size.
7021
2bfef1ad
FXC
70222010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7023
7024 PR other/18555
2824d6e5 7025 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2bfef1ad 7026
19ed9d7b
UB
70272010-09-08 Uros Bizjak <ubizjak@gmail.com>
7028
7029 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
7030 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
7031 ix86_expand_strlen, legitimate_pic_address_disp_p,
7032 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
7033 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
7034 ix86_check_movabs, ix86_secondary_memory_needed): Change function
7035 prototype to bool.
7036 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
7037 return_in_memory_ms_64, ix86_check_movabs,
7038 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
7039 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
7040 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
7041 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
7042 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
7043 ix86_secondary_memory_needed): Change to bool. Return
7044 "true" and "false" values.
7045 * config/i386/i386.md: Return "true" and "false" values.
7046
0fa3d594
RO
70472010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7048
7049 * doc/sourcebuild.texi (Effective-Target Keywords): Document
7050 run_expensive_tests.
7051
86923f6e
RO
70522010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7053
19ed9d7b 7054 * toplev.c (output_stack_usage): Use lbasename instead of basename.
86923f6e 7055
da1cc2e4
MJ
70562010-09-08 Martin Jambor <mjambor@suse.cz>
7057
7058 PR other/45443
7059 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
7060 at -O3.
7061
0f443ad0
RG
70622010-09-08 Richard Guenther <rguenther@suse.de>
7063
7064 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
7065 (visit): Adjust.
7066 (iterative_hash_gimple_type): Likewise.
7067 (gimple_type_hash): Likewise.
7068 (gimple_register_type): Likewise.
7069 (print_gimple_types_stats): Likewise.
7070 (free_gimple_type_tables): Likewise.
7071
a855b1b1
MM
70722010-09-08 Michael Matz <matz@suse.de>
7073
7074 PR tree-optimization/43430
7075 * tree-vect-stmts.c (vectorizable_condition): Support multiple
7076 copies for conditional statements if it's not part of a reduction.
7077
3834917d
MM
70782010-09-08 Michael Matz <matz@suse.de>
7079
7080 PR tree-optimization/33244
7081 * tree-ssa-sink.c (statement_sink_location): Don't sink into
7082 empty loop latches.
7083
b5c878a5
RG
70842010-09-08 Richard Guenther <rguenther@suse.de>
7085
7086 PR tree-optimization/45578
7087 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
7088 Be more careful when transfering alignment information to
7089 the new induction variable.
7090 (copy_ref_info): Likewise.
7091
1814522d
RG
70922010-09-08 Richard Guenther <rguenther@suse.de>
7093
7094 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
19ed9d7b 7095 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1814522d 7096
7370e0da
AC
70972010-09-08 Arnaud Charlet <charlet@adacore.com>
7098
7099 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
7100 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
7101
74164603 71022010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
19ed9d7b 7103
e0d4c0b3
KZ
7104 PR doc/45587
7105 * doc/md.texi: Fixed modes on several standard pattern names.
7106
59bdeecb
MX
71072010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
7108
7109 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
7110 (ashl<mode>3): ...this.
7111 (loongson_psra<V_suffix>): Rename to...
7112 (ashr<mode>3): ...this.
7113 (loongson_psrl<V_suffix>): Rename to...
7114 (lshr<mode>3): ...this.
7115 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
7116 (CODE_FOR_loongson_psllw): Define.
7117 (CODE_FOR_loongson_psrlh): Define.
7118 (CODE_FOR_loongson_psrlw): Define.
7119 (CODE_FOR_loongson_psrah): Define.
7120 (CODE_FOR_loongson_psraw): Define.
7121
237e9c04
RH
71222010-09-07 Richard Henderson <rth@redhat.com>
7123
7124 * tree-vect-data-refs.c: Include tm_p.h.
7125 * Makefile.in (tree-vect-data-refs.o): Update deps.
7126 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
7127 Move delarations outside #ifdef RTX_CODE.
7128
182a0c11
RH
71292010-09-07 Richard Henderson <rth@redhat.com>
7130
19ed9d7b 7131 * final.c (rest_of_handle_final): Unconditionally do
182a0c11
RH
7132 output_function_exception_table before assemble_end_function.
7133
f27e50db
JH
71342010-09-07 Jan Hubicka <jh@suse.cz>
7135
19ed9d7b
UB
7136 * tree-inline.c (tree_inlinable_function_p): Do not test
7137 DECL_REPLACEABLE_P.
7138 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
7139 update_callee_keys, cgraph_decide_inlining): Test function availability.
f27e50db
JH
7140 * cif-code.def (OVERWRITABLE): New code.
7141
a0766cdb 71422010-09-07 H.J. Lu <hjl.tools@gmail.com>
74164603 7143 Jack Howarth <howarth@bromo.med.uc.edu>
a0766cdb
L
7144
7145 PR target/36502
7146 PR target/42313
7147 PR target/44651
eed023cc 7148 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
a0766cdb
L
7149 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
7150 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
7151 MAX macro.
7152
4e751772
L
71532010-09-07 H.J. Lu <hongjiu.lu@intel.com>
7154
7155 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
7156 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
7157
274eec6c
L
71582010-09-07 H.J. Lu <hongjiu.lu@intel.com>
7159
7160 * config.gcc: Don't append t-android for Android targets.
7161
7162 * config/t-android: Removed.
7163
a68b5e52
RH
71642010-09-07 Richard Henderson <rth@redhat.com>
7165
7166 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
7167 * doc/tm.texi.in: Add doc marker.
7168 * doc/tm.texi: Rebuild.
7169 * except.c (switch_to_exception_section): Always build.
7170 (output_one_function_exception_table): Move section switch,
7171 personality output, and label output ...
7172 (output_function_exception_table): ... here. Use the new
7173 personality hook.
7174
7175 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
7176 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
7177 TARGET_ASM_INIT_SECTIONS): New.
7178 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
7179 make static.
7180 (TARGET_ASM_UNWIND_EMIT): Update to match.
7181 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
7182
7183 * config/arm/arm.c (arm_asm_emit_except_personality): New.
7184 (arm_asm_init_sections): New.
7185 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
7186
9b3a7a26
RR
71872010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7188
7189 * config/arm/arm.md: Remove unused variable.
7190
7149f02c
AS
71912010-09-07 Anatoly Sokolov <aesok@post.ru>
7192
7193 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7194 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
7195 (m32r_memory_move_cost): New function.
7196
c811b2a5
L
71972010-09-07 H.J. Lu <hongjiu.lu@intel.com>
7198
7199 * config.gcc: Append t-android for Android targets.
7200
7201 * config/t-android: New.
7202
3bc6b3e6
RH
72032010-09-07 Richard Henderson <rth@redhat.com>
7204
7205 * target.def (unwind_emit_before_insn): New hook.
7206 * doc/tm.texi.in: Add @hook marker for it.
7207 * doc/tm.texi: Rebuild.
7208 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
7209
aa229804
MJ
72102010-09-07 Martin Jambor <mjambor@suse.cz>
7211
7212 PR fortran/43665
7213 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
7214 are any type attributes.
7215
9c4ce18d
JH
72162010-09-07 Jan Hubicka <jh@suse.cz>
7217
3bc6b3e6
RH
7218 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
7219 array_ref_low_bound in string access folding.
9c4ce18d 7220
d341a5d0
UB
72212010-09-07 Uros Bizjak <ubizjak@gmail.com>
7222
7223 PR target/45206
7224 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
7225 eh_return fixup sequence.
7226
8683f051
JH
72272010-09-07 Jan Hubicka <jh@suse.cz>
7228
9c4ce18d 7229 * gimple-fold.c (maybe_fold_reference): Verify that operand is
8683f051
JH
7230 gimple_min_invariant.
7231
f5e5b46c
RG
72322010-09-07 Richard Guenther <rguenther@suse.de>
7233
7234 PR middle-end/45569
7235 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
7236 nor CONSTRUCTOR can trap.
7237 * tree-complex.c (update_complex_assignment): Update EH info.
7238
c9d6130e
RG
72392010-09-07 Richard Guenther <rguenther@suse.de>
7240
7241 PR middle-end/45569
7242 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
7243 * passes.c (execute_function_todo): Do not verify anything if
7244 we saw errors.
7245
d7806def
RG
72462010-09-07 Richard Guenther <rguenther@suse.de>
7247
d341a5d0 7248 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
d7806def 7249
da0a441d
BS
72502010-09-07 Bernd Schmidt <bernds@codesourcery.com>
7251
7252 PR target/43137
7253 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
7254 New define_mode_attrs.
7255 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
7256 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
7257 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
7258 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
7259 Remove pool_range attribute.
7260 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
7261 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
7262 pool_range and neg_pool_range attributes.
7263 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
7264 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
7265 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
7266
4e18507b
L
72672010-09-06 H.J. Lu <hongjiu.lu@intel.com>
7268
7269 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
7270 check glibc.
7271
61ec1123
UB
72722010-09-06 Uros Bizjak <ubizjak@gmail.com>
7273
7274 PR target/22152
7275 * config/i386/mmx.md (*mov<mode>_internal_rex64,
7276 *mov<mode>_internal_avx, *mov<mode>_internal,
7277 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
7278 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
7279
c5ee1358
MM
72802010-09-06 Mark Mitchell <mark@codesourcery.com>
7281
7282 * c-typeck.c (do_warn_double_promotion): Remove.
7283 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
7284 Objective-C++ too.
7285
c28350ab
AS
72862010-09-06 Anatoly Sokolov <aesok@post.ru>
7287
7288 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
7289 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
7290 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
7291 argument type to reg_class_t. Change result type to bool.
7292 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7293
708e07fb
NP
72942010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
7295
7296 PR libobjc/19850
7297 * gthr-posix.h (__gthread_objc_thread_detach): Use
7298 _objc_thread_attribs when detaching a thread.
7299 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
7300
cc0ae0ca
L
73012010-09-06 H.J. Lu <hongjiu.lu@intel.com>
7302
7303 PR target/45524
61ec1123 7304 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
cc0ae0ca
L
7305 * configure: Regenerated.
7306
c18605cc
AK
73072010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7308
7309 * combine.c (try_combine): Set subst_low_luid to i0.
7310
be1ac4ec
RG
73112010-09-06 Richard Guenther <rguenther@suse.de>
7312
7313 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
7314 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
7315 (build_aligned_type): Declare.
7316 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
7317 (check_aligned_type): New function.
7318 (build_aligned_type): Likewise.
7319 * expr.c (expand_assignment): Handle misaligned stores via
7320 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
7321 (expand_expr_real_1): Likewise.
7322 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
7323 * tree-vect-stmts.c (vectorizable_store): Do not build
7324 MISALIGNED_INDIRECT_REF but initialize alignment information.
7325 (vectorizable_load): Likewise.
7326 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
7327 handling.
7328 * cfgexpand.c (expand_debug_expr): Likewise.
7329 * dwarf2out.c (loc_list_from_tree): Likewise.
7330 * fold-const.c (maybe_lvalue_p): Likewise.
7331 (operand_equal_p): Likewise.
7332 (build_fold_addr_expr_with_type_loc): Likewise.
7333 * gimplify.c (gimplify_addr_expr): Likewise.
7334 (gimplify_expr): Likewise.
7335 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7336 (verify_gimple_assign_single): Likewise.
7337 * tree-dump.c (dequeue_and_dump): Likewise.
7338 (tree_could_trap_p): Likewise.
7339 * tree-predcom.c (ref_at_iteration): Likewise.
7340 * tree-pretty-print.c (dump_generic_node): Likewise.
7341 (op_code_prio): Likewise.
7342 (op_symbol_code): Likewise.
7343 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
7344 * tree-ssa-loop-im.c (for_each_index): Likewise.
7345 (gen_lsm_tmp_name): Likewise.
7346 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7347 (find_interesting_uses_address): Likewise.
7348 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7349 * tree-ssa-operands.c (get_expr_operands): Likewise.
7350 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7351 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7352 (ao_ref_init_from_vn_reference): Likewise.
7353 * tree.c (staticp): Likewise.
7354 (build1_stat): Likewise.
7355 (reference_alias_ptr_type): Likewise.
7356 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7357 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
7358 MISALIGNED_INDIRECT_REF handling.
7359
863a7578
RB
73602010-09-06 Richard Guenther <rguenther@suse.de>
7361
7362 PR tree-optimization/45534
7363 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
7364 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
7365 on the target.
7366 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
7367 valid on the target.
7368
84f47d20
AS
73692010-09-06 Andreas Schwab <schwab@redhat.com>
7370
7371 * configure.ac: Quote argument of AC_MSG_WARN.
7372 * configure: Regenerate.
7373
e5cb031f
AM
73742010-09-06 Alexander Monakov <amonakov@ispras.ru>
7375
863a7578
RB
7376 * sel-sched.c (move_cond_jump): Correct arguments to
7377 maybe_tidy_empty_bb.
e5cb031f
AM
7378 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
7379
324d3f45
AM
73802010-09-06 Andrey Belevantsev <abel@ispras.ru>
7381
7382 PR rtl-optimization/44919
7383 * sel-sched.c (move_cond_jump): Remove assert, check that
7384 the several blocks case can only happen with mutually exclusive
7385 insns instead. Rewrite the movement code to support moving through
7386 several basic blocks.
7387
d1e74401
UB
73882010-09-06 Uros Bizjak <ubizjak@gmail.com>
7389
7390 * config/i386/i386.md (iptrsize): New mode attribute.
7391 (tp_seg): Ditto.
7392 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
7393 mode iterator.
7394 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
7395 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
7396 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
7397 (stack_tls_protect_set_<mode>): Ditto from
7398 stack_tls_protect_set_{si,di}. Use %@ to output segment register
7399 of thread base pointer load.
7400 (stack_tls_protect_test_<mode>): Ditto from
7401 stack_tls_protect_test_{si,di}. Use %@ to output segment register
7402 of thread base pointer load.
7403 (stack_protect_set): Rewrite using indirect functions.
7404 (stack_protect_test): Ditto.
7405 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
7406 (ix86_print_operand): Handle '@'.
7407
68fce4ed
GS
74082010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
7409
7410 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
7411 MINUS_EXPR.
7412
0a0b3574
MM
74132010-09-05 Mark Mitchell <mark@codesourcery.com>
7414
7415 * doc/invoke.texi: Document -Wdouble-promotion.
7416 * c-typeck.c (convert_arguments): Check for implicit conversions
7417 from float to double.
7418 (do_warn_double_promotion): New function.
7419 (build_conditional_expr): Use it.
7420 (build_binary_op): Likewise.
7421
f38fb2c4
RG
74222010-09-05 Richard Guenther <rguenther@suse.de>
7423
7424 PR tree-optimization/45535
7425 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
7426 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
7427 dereferencing it.
7428 (indirect_refs_may_alias_p): Likewise.
7429
e7a8f681
N
74302010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
7431
7432 * config/sh/sh.c (sh_option_override): Make static.
7433 Adjust comments. Declare.
68fce4ed 7434 (sh_function_value_regno_p): Likewise.
e7a8f681
N
7435 (sh_register_move_cost): Modify the arguments, make static.
7436 Adjust comments. Declare.
7437 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
7438 TARGET_FUNCTION_VALUE_REGNO_P): Define.
7439 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
7440 REGISTER_MOVE_COST): Delete.
7441 * config/sh/sh-protos.h (sh_override_options): Delete.
7442 (sh_register_move_cost): Delete.
7443 (sh_function_value_regno_p): Delete.
7444
8c9cb6e6
AS
74452010-09-04 Anatoly Sokolov <aesok@post.ru>
7446
7447 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
7448 m32r_function_value_regno_p): New functions.
7449 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7450 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
7451 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
7452 FUNCTION_VALUE_REGNO_P): Remove.
7453
17f39a39
JH
74542010-09-04 Jan Hubicka <jh@suse.cz>
7455
7456 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
7457 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
7458 fold_read_from_constant_string.
7459
7460 * gimple.h (canonicalize_constructor_val): Declare.
7461 * gimple-fold.c (canonicalize_constructor_val): New function.
7462 (get_symbol_constant_value):Use it.
7463 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
7464
5f7ae6b6
JH
74652010-09-04 Jan Hubicka <jh@suse.cz>
7466
7467 * tree-switch-conversion.c (build_one_array): Set constructor to be
7468 static.
7469 * varpool.c (varpool_finalize_decl): Compute const_value_known.
7470
bcf71673
RG
74712010-09-04 Richard Guenther <rguenther@suse.de>
7472
7473 PR bootstrap/45519
7474 * tree-flow.h (force_gimple_operand_1): Declare.
7475 (force_gimple_operand_gsi_1): Likewise.
7476 * gimplify.c (force_gimple_operand_1): New worker taking a
7477 gimple predicate for ...
7478 (force_gimple_operand): ... which now wraps it.
7479 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
7480 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
7481 last change.
7482 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
7483 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
7484 (create_mem_ref): Likewise.
7485
770b37b9
UB
74862010-09-04 Uros Bizjak <ubizjak@gmail.com>
7487
7488 * config/i386/predicates.md (sse_reg_operand): New predicate.
7489 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
7490 predicate for operand 1.
7491 (XFmode push splitter): Use fp_register_operand predicate
7492 for operand 1.
7493 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
7494 (SF-DF float_extend push splitter): Add reload_completed insn
7495 predicate.
7496 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
7497 MODEF mode macro. Add reload_completed insn predicate.
7498
502ef838
PB
74992010-09-04 Paolo Bonzini <bonzini@gnu.org>
7500
7501 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
7502 (struct df_extract_ref): Remove.
7503 (union df_ref_d): Remove extract_ref member.
7504 (df_ref_create): Remove last three arguments.
7505 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
7506 * df-scan.c (df_ref_record): Remove last three arguments, do not
7507 pass them to df_ref_create_structure.
7508 (df_uses_record): Remove first and last three arguments. Replace
7509 first argument with DF_REF_REGULAR, adjust calls to remove the
7510 width, offset and mode. Always call recursively on the second
7511 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
7512 (df_ref_create_structure): Remove first argument.
7513 (struct df_scan_problem_data): Remove ref_extract_pool.
7514 (df_scan_free_internal): Do not free it.
7515 (df_scan_alloc): Do not allocate it.
7516 (df_ref_create): Remove last three arguments, do not pass them to
7517 df_ref_create_structure.
7518 (df_free_ref): Remove DF_REF_EXTRACT case.
7519 (df_notes_rescan): Adjust call to df_uses_record.
7520 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
7521 Remove DF_REF_EXTRACT case.
7522 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
7523 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
7524 and SUBREG definitions.
7525 (df_get_conditional_uses): Remove references to width/offset/mode,
7526 adjust call to df_ref_create_structure.
7527 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
7528 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
7529 calls to df_uses_record and df_ref_record.
7530 * fwprop.c (update_df): Remove references to width/offset/mode,
7531 adjust call to df_ref_create.
7532
48c24aca
JH
75332010-09-03 Jan Hubicka <jh@suse.cz>
7534
7535 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
7536 (build_cdtor_fns): Update use of build_cdtor.
7537
d1583032
JM
75382010-09-03 Joseph Myers <joseph@codesourcery.com>
7539
7540 * doc/options.texi (SeparateAlias): Document.
7541 * opt-functions.awk (switch_flags): Handle SeparateAlias.
7542 * opth-gen.awk: Generate enumeration names for options marked
7543 SeparateAlias, but not for those marked Ignore.
7544 * opts-common.c (generate_canonical_option): Don't output separate
7545 argument for options marked CL_SEPARATE_ALIAS.
7546 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
7547 * opts.h (CL_SEPARATE_ALIAS): New.
7548 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
7549 CL_COMMON): Adjust definitions.
7550 * config/i386/darwin.opt, config/mips/sde.opt: New.
7551 * common.opt (fdump-final-insns): New.
7552 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7553 i386/darwin.opt.
7554 (mips*-sde-elf*): Add mips/sde.opt.
7555 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
7556 -mno-data-in-code and -mcode-xonly here.
7557 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
7558 * gcc.c (option_map): Add "j" to --dump entry.
770b37b9 7559 (translate_options): Don't translate -d to -foutput-class-dir= here.
d1583032 7560
b0af49c4
SP
75612010-09-03 Sebastian Pop <sebastian.pop@amd.com>
7562
7563 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
7564 DR_IS_WRITE.
7565 (compute_all_dependences): Same.
7566 (create_rdg_edge_for_ddr): Same.
7567 * tree-data-ref.h (DR_IS_WRITE): New.
7568 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
7569 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
7570 (write_memrefs_written_at_least_once): Same.
7571 * tree-predcom.c (suitable_component_p): Same.
7572 (determine_roots_comp): Same.
7573 (execute_load_motion): Same.
7574 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
7575 (vect_enhance_data_refs_alignment): Same.
7576 (vect_analyze_group_access): Same.
7577
de3f621b
JR
75782010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
7579
7580 PR testsuite/42843
7581 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
7582 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
7583
4d8ff563
MB
75842010-09-03 Marcin Baczynski <marbacz@gmail.com>
7585
7586 * dwarf2out.c (file scope): Remove #if0'd code.
7587 (gen_subprogram_die): Same.
7588
87df9ea5
JJ
75892010-09-03 Jakub Jelinek <jakub@redhat.com>
7590
7591 PR middle-end/45484
7592 * dwarf2out.c (flush_queued_reg_saves): Rename to...
7593 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
7594 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
7595 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
7596 * config/i386/i386.c (output_set_got): Call it.
7597
15a54c10
MM
75982010-09-03 Michael Matz <matz@suse.de>
7599
7600 PR middle-end/45415
7601 * tree-sra.c (sra_modify_assign): If we modify the statement,
7602 say so.
7603
7604 * tree-ssa.c (verify_ssa): Check number of operands and links
7605 per statement to agree.
7606
0df8fcc8
UB
76072010-09-03 Uros Bizjak <ubizjak@gmail.com>
7608 Iain Sandoe <iains@gcc.gnu.org>
7609
7610 PR target/45476
7611 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
7612 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
7613 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7614
ac364a48
RG
76152010-09-03 Richard Guenther <rguenther@suse.de>
7616
7617 * lto-streamer-out.c (output_function): Output function
7618 start and end loci.
7619 * lto-streamer-in.c (input_function): Input function start
7620 and end loci.
7621
3c39bca6
AK
76222010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7623
7624 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
7625 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
7626 * configure: Regenerate.
7627 * aclocal.m4: Regenerate.
7628
1c7b11d2
JH
76292010-09-03 Jan Hubicka <jh@suse.cz>
7630
7631 PR lto/44812
7632 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
7633 on functions/variables in other partition.
7634
155c92a7
JH
76352010-09-03 Jan Hubicka <jh@suse.cz>
7636
7637 * cgraph.h (struct varpool_node): Add const_value_known.
7638 (varpool_decide_const_value_known): Declare.
7639 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
7640 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
7641 (input_varpool_node): Restore const_value_known.
7642 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
7643 initializer folding.
7644 * ipa.c (ipa_discover_readonly_nonaddressable_var,
7645 function_and_variable_visibility): Compute const_value_known.
0df8fcc8
UB
7646 * gimple-fold.c (get_symbol_constant_value): Use varpool for
7647 initializer folding.
155c92a7
JH
7648 * varpool.c (varpool_decide_const_value_known): New function.
7649
cb1b497e
UB
76502010-09-03 Uros Bizjak <ubizjak@gmail.com>
7651
0df8fcc8 7652 * config/i386/i386.md: Remove empty preparation statements
cb1b497e
UB
7653 from splitters.
7654
a482b1f5
JH
76552010-09-03 Jan Hubicka <jh@suse.cz>
7656
cb1b497e
UB
7657 * passes.c (rest_of_decl_compilation): Do not add local vars into
7658 varpool.
a482b1f5
JH
7659 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
7660 static or extern vars are in varpool.
cb1b497e
UB
7661 (varpool_finalize_decl): Sanity check that only static vars are
7662 finalized.
a482b1f5 7663
2f757e4a
JJ
76642010-09-03 Jakub Jelinek <jakub@redhat.com>
7665
7666 PR debug/45500
7667 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
7668 not just generic vectors with BLKmode.
7669
4d948885
RG
76702010-09-03 Richard Guenther <rguenther@suse.de>
7671
7672 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
7673 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
7674 * tree.h (TMR_SYMBOL): Remove.
7675 (TMR_BASE, TMR_OFFSET): Adjust.
7676 (TMR_INDEX2): New.
7677 * alias.c (ao_ref_from_mem): Use TMR_BASE.
7678 * builtins.c (get_object_alignment): Merge TMR_BASE and
7679 TMR_SYMBOL handling.
7680 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
7681 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
7682 handling. Also allow TARGET_MEM_REF as base address.
7683 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
7684 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
7685 base. Gimplify TMR_INDEX2.
7686 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
7687 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7688 (get_addr_base_and_unit_offset): Likewise.
7689 * tree-eh.c (tree_could_trap_p): Likewise.
7690 * tree-pretty-print.c (dump_generic_node): Likewise.
cb1b497e 7691 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
4d948885
RG
7692 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
7693 base to index2.
7694 (get_address_description): Reconstruct addres description
7695 from merged TMR_BASE and TMR_INDEX2.
7696 (maybe_fold_tmr): Fold propagated addresses.
7697 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
7698 MEM_REF and TARGET_MEM_REF paths.
7699 (indirect_refs_may_alias_p): Likewise.
7700 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
7701 instead of TMR_SYMBOL.
7702 * tree-ssa-operands.c (get_tmr_operands): Simplify.
7703 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
7704 according to changes ...
7705 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
7706 Split TARGET_MEM_REF into two fields plus the base.
7707 * tree.c (mem_ref_offset): Simplify.
7708 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
7709 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
7710 Strip NOPs when folding MEM_REF addresses.
7711 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
7712 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
7713 (fold_gimple_assign): ... not here.
7714
49042313
MX
77152010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
7716
7717 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
7718 * config/mips/mips.c (mips_shift_truncation_mask): New function.
7719 (TARGET_SHIFT_TRUNCATION_MASK): Define.
7720
92053f38
RH
77212010-09-02 Richard Henderson <rth@redhat.com>
7722
7723 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
7724 instead of readelf in the test.
7725 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
7726 in the .debug_frame section for coff targets.
7727 * configure: Rebuild.
7728
184866c5
AS
77292010-09-02 Anatoly Sokolov <aesok@post.ru>
7730
7731 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
7732 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
7733 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7734 (m32c_class_likely_spilled_p): Make static. Change argument type to
7735 reg_class_t. Change result type to bool.
7736
688e4919
MM
77372010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7738
7739 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
7740 to convert (double)(long) into a single FRIZ instruction or not
7741 when -ffast-math is used.
7742
7743 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
7744 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
7745 or FRIZ instruction if -ffast-math.
7746 * config/rs6000/rs6000.md (friz): Ditto.
7747
7748 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
7749
398da2ac
JM
77502010-09-02 Joseph Myers <joseph@codesourcery.com>
7751
7752 * opth-gen.awk (quote, comma): Remove unused variables.
7753
fe7645b9
RM
77542010-09-02 Ryan Mansfield <rmansfield@qnx.com>
7755
7756 * arm.c (arm_override_options): Correct fall-back code to use
7757 SUBTARGET_CPU_DEFAULT.
7758
5bfc5baa
JB
77592010-09-02 Julian Brown <julian@codesourcery.com>
7760
7761 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
7762 unspecs.
7763 (vcond<mode>, vcondu<mode>): New expanders.
7764 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
7765 comparisons with zero.
7766 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
7767 * config/arm/constraints.md (Dz): New constraint.
7768
07b8f0a8
AS
77692010-09-02 Anatoly Sokolov <aesok@post.ru>
7770
7771 * target.def (class_likely_spilled_p): New hook.
7772 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
7773 * doc/tm.texi: Regenerate.
7774 * targhooks.c (default_class_likely_spilled_p): New function.
7775 * targhooks.h (default_class_likely_spilled_p): Declare.
7776 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
cb1b497e 7777 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
07b8f0a8
AS
7778 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
7779 Use fixed_reg_set instead of fixed_regs.
7780 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7781 * calls.c (avoid_likely_spilled_reg): Ditto.
cb1b497e 7782 * ira-conflicts.c (ira_build_conflicts): Ditto.
07b8f0a8
AS
7783 * ira.c (update_equiv_regs): Ditto.
7784 * mode-switching.c (create_pre_exit): Ditto.
7785 * regmove.c (find_matches): Ditto.
cb1b497e 7786 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
07b8f0a8
AS
7787 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
7788 (small_register_class_p): New inline function.
7789 (push_secondary_reload, find_reusable_reload, find_reloads): Use
7790 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
7791
7792 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
7793 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
7794 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7795
6b8c9df8
RG
77962010-09-02 Richard Guenther <rguenther@suse.de>
7797
7798 PR tree-optimization/44937
7799 PR tree-optimization/45412
7800 * ipa-split.c (split_function): Properly remove PHI nodes.
7801
2d2bd949
JM
78022010-09-02 Joseph Myers <joseph@codesourcery.com>
7803
7804 * opts.h (struct cl_option): Add warn_message field.
7805 (struct cl_decoded_option): Add warn_message field.
7806 * doc/options.texi (Ignore, Warn): Document.
7807 * opt-functions.awk (needs_state_p): Don't consider aliases or
7808 ignored options to need state saved.
7809 * optc-gen.awk: Handle Warn and Ignore.
7810 * opth-gen.awk: Output OPT_SPECIAL_ignore.
7811 * opts-common.c (decode_cmdline_option): Set warn_message field.
7812 Handle ignored options.
7813 (decode_cmdline_options_to_array, generate_option,
7814 generate_option_input_file): Set warn_message field.
7815 (read_cmdline_option): Generate warnings from warn_message field.
7816 Handle ignored options.
7817 * common.opt (Wunreachable-code, fargument-alias,
7818 fargument-noalias, fargument-noalias-global,
7819 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
7820 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
7821 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
7822 ftree-salias): Mark Ignore.
7823 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
7824 -mintel-syntax and -mno-intel-syntax here.
7825 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
7826 using Warn.
7827 * opts.c (common_handle_option): Don't handle options marked as
7828 ignored.
7829 (enable_warning_as_error): Handle ignored options.
7830
5de8299c
JM
78312010-09-02 Joseph Myers <joseph@codesourcery.com>
7832
7833 PR driver/44076
7834 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
7835 alias_target fields.
7836 * opt-functions.awk (opt_sanitized_name): Don't handle
7837 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
7838 * optc-gen.awk: Generate alias fields.
7839 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
7840 Don't generate such constants for aliases.
7841 * opts-common.c (generate_canonical_option): New.
7842 (decode_cmdline_option): Handle aliases. Use
7843 generate_canonical_option for known options instead of copying the
7844 input option text.
7845 * doc/options.texi (Alias): Document.
7846 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
7847 fstack-check, specs): Mark as aliases.
7848 * gcc.c (driver_handle_option): Canonicalize -L options to joined
7849 arguments.
7850 (driver_handle_option): Don't handle OPT_specs.
7851 * opts.c (common_handle_option): Don't handle options marked as
7852 aliases.
7853 (enable_warning_as_error): Handle aliases.
7854 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
7855 OPT_Wlarger_than_eq.
7856 * tree-optimize.c (tree_rest_of_compilation): Use
7857 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
7858
cfc20f00
UB
78592010-09-02 Uros Bizjak <ubizjak@gmail.com>
7860
7861 * config/i386/i386.md (nonmemory_operand): New mode attribute.
7862 (push memory peephole2): Macroize peepholes using SWI mode iterator.
7863 (move immediate to memory peephole2): Macroize peepholes using
7864 SWI124 mode iterator.
7865 (non-pairable NOT peephole2): Macroize peepholes using SWI124
7866 mode iterator.
7867 (simple lea add peephole2): Macroize peepholes using SWI48
7868 mode iterator.
7869 (simple lea mult peephole2): Ditto.
7870 (imul by 3,5,9 to lea peephole2): Ditto.
7871 (mov $-1, reg peephole2): Macroize peepholes using SWI248
7872 mode iterator.
7873 (imul $32bit_imm,mem,reg peephole2): Ditto.
7874 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
7875
bae077dc
IB
78762010-09-02 Ian Bolton <ian.bolton@arm.com>
7877
7878 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
7879
71af27d2
OH
78802010-09-02 Olivier Hainque <hainque@adacore.com>
7881
815248b1 7882 PR middle-end/44763
71af27d2
OH
7883 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
7884 (allocno_priority_compare_func): Use it instead of a straight
7885 difference computation over priorities.
7886
e10909ce
AK
78872010-09-02 Andi Kleen <ak@linux.intel.com>
7888
7889 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
7890
e4a707c4
IR
78912010-09-02 Ira Rosen <irar@il.ibm.com>
7892
7893 * tree-vectorizer.h (get_later_stmt): New function.
7894 (vect_analyze_data_ref_dependences): Add argument.
7895 * tree-vect-loop.c (vect_analyze_loop): Update call to
7896 vect_analyze_data_ref_dependences.
7897 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
7898 New function.
7899 (vect_analyze_data_ref_dependence): Add argument for basic block
7900 dependencies. Check dependencies in basic block vectorization.
7901 (vect_analyze_data_ref_dependences): Add argument and update call to
7902 vect_analyze_data_ref_dependences.
7903 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
7904 (vect_bb_vectorizable_with_dependencies): New.
7905 (vect_slp_analyze_bb): Check dependencies in basic block.
7906 (vect_schedule_slp_instance): Insert stores before the last store in
7907 SLP instance.
7908
282ac51f
UB
79092010-09-02 Uros Bizjak <ubizjak@gmail.com>
7910
7911 PR target/45476
7912 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
7913 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7914
596aa3f0
JJ
79152010-09-01 Jakub Jelinek <jakub@redhat.com>
7916
7917 PR middle-end/45458
7918 * bb-reorder.c (add_labels_and_missing_jumps): Treat
7919 bbs ending with throwing insns like blocks ending with a call.
7920 (fix_up_fall_thru_edges): Likewise.
7921
cd34bbe8
NF
79222010-09-01 Nathan Froyd <froydnj@codesourcery.com>
7923
7924 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
7925 (m32c_function_arg_advance): Delete.
7926 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7927 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
7928 comments. Take a const_tree and a bool. Declare.
7929 (m32c_function_arg_advance): Likewise.
7930 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7931
cecab05b
UB
79322010-09-01 Uros Bizjak <ubizjak@gmail.com>
7933
cb1b497e
UB
7934 PR target/45476
7935 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
cecab05b 7936 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
cb1b497e 7937 * config/i386/mingw32.h: ... here.
cecab05b 7938
427eb57d
AK
79392010-09-01 Andi Kleen <ak@linux.intel.com>
7940
cecab05b
UB
7941 PR lto/45475
7942 * lto-streamer-in.c (lto_input_ts_target_option): Add.
7943 (lto_input_tree_pointers): Call lto_input_ts_target_option.
cb1b497e 7944 * lto-streamer-out (lto_output_ts_target_option): Add.
cecab05b 7945 (lto_output_tree_pointers): Call lto_output_ts_target_option.
427eb57d 7946
d323f47e
KT
79472010-09-01 Kai Tietz <kai.tietz@onevision.com>
7948
7949 PR/target 45452
7950 * config/i386/cygwin.h: Change order of specified import libraries.
7951 * config/i386/mingw32.h: Likewise.
7952 * config/i386/t-cygwin: Likewise.
7953 * config/i386/t-mingw32: Likewise.
7954 * config/i386/t-mingw-w32: Likewise.
7955 * config/i386/t-mingw-w64: Likewise.
7956
4600a8d1
RR
79572010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7958
7959 * config/arm/neon-schedgen.ml (core): New type.
7960 (allCores): List of supported cores.
7961 (availability_table): Add supported cores.
7962 (collate_bypasses): Accept core as a parameter.
282ac51f
UB
7963 (worst_case_latencies_and_bypasses): Accept core as a parameter.
7964 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
7965 and coreStr to get tune attribute and prefix for functional units.
4600a8d1
RR
7966 (emit_bypasses): Accept core name and use it.
7967 (calculate_per_core_availability_table): New.
7968 (filter_core): New.
7969 (calculate_core_availability_table): New.
7970 (main): Use calculate_core_availablity_table.
7971 * config/arm/cortex-a8-neon.md: Update copyright year.
7972 Regenerated from ml file and merged in.
7973 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
7974 cortex_a8_neon_mrc.
7975
f6857310
IB
79762010-09-01 Ian Bolton <ian.bolton@arm.com>
7977
7978 * Makefile.in (tree-switch-conversion.o): Update dependencies.
7979
23a534a1
RG
79802010-09-01 Richard Guenther <rguenther@suse.de>
7981
7982 * alias.c (ao_ref_from_mem): Adjust.
7983 * builtins.c (get_object_alignment): Likewise.
7984 * cfgexpand.c (expand_debug_expr): Likewise.
7985 * gimple.c (get_base_address): Likewise.
7986 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7987 (get_addr_base_and_unit_offset): Likewise. Fix for
7988 both TMR_SYMBOL and TMR_BASE being set.
7989 * tree-eh.c (tree_could_trap_p): Likewise.
7990 * gimplify.c (gimplify_expr): Do not attempt to gimplify
7991 TMR_SYMBOL. Always gimplify TMR_BASE.
7992 * tree-cfg.c (verify_types_in_gimple_reference): Verify
7993 TMR_BASE if there is a TMR_SYMBOL.
7994 * tree-pretty-print.c (dump_generic_node): Adjust.
7995 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
7996 (tree_mem_ref_addr): Likewise.
7997 (create_mem_ref_raw): Likewise.
7998 (move_fixed_address_to_symbol): Likewise.
7999 (create_mem_ref): Likewise.
8000 (dump_mem_address): Likewise.
8001 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
8002 Fix for both TMR_SYMBOL and TMR_BASE being set.
8003 (indirect_refs_may_alias_p): Likewise.
8004 * tree-ssa-operands.c (get_tmr_operands): Adjust.
8005 * tree.def (TARGET_MEM_REF): Adjust documentation.
8006
d8b08ecd
UB
80072010-09-01 Uros Bizjak <ubizjak@gmail.com>
8008
8009 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
8010 Rename from X86_TUNE_ADD_ESP_4.
8011 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
8012 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
8013 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
8014 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
8015 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
8016 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
8017 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
8018 * config/i386/i386.c (initial_ix86_tune_features)
8019 <X86_TUNE_SINGLE_POP>: Invert members.
8020 <X86_TUNE_DOUBLE_POP>: Ditto.
8021 <X86_TUNE_SINGLE_PUSH>: Ditto.
8022 <X86_TUNE_DOUBLE_PUSH>: Ditto.
8023 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
8024 No longer exported.
8025 (push peephole2 patterns): Macroize peepholes using P mode iterator.
8026 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
8027 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
8028 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
8029
558af7ca
EB
80302010-09-01 Eric Botcazou <ebotcazou@adacore.com>
8031
8032 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
8033 a volatile LHS if the constructor has only one element.
8034
6e0833db
MP
80352010-09-01 Mikael Pettersson <mikpe@it.uu.se>
8036
558af7ca
EB
8037 PR bootstrap/45321
8038 * tree.c (stdarg_p): Make fntype parameter const.
8039 * tree.h (stdarg_p): Likewise.
8040 (function_args_iterator): Remove unused fntype field.
8041 (function_args_iter_init): Do not initialize fntype
d8b08ecd 8042 field. Make fntype parameter const.
6e0833db 8043
e3488283
RG
80442010-09-01 Richard Guenther <rguenther@suse.de>
8045
8046 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
8047 estimate.
d8b08ecd 8048 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
e3488283
RG
8049 (execute_vrp): Compute number of iteration estimates.
8050 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
8051 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
8052 * tree-data-ref.c (estimated_loop_iterations): Adjust.
8053 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
d8b08ecd 8054 Infer loop bounds from undefined behavior based on a new parameter.
e3488283
RG
8055 (estimate_numbers_of_iterations): Likewise.
8056 (scev_probably_wraps_p): Adjust.
8057 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
8058
a21eaf5e
NC
80592010-09-01 Nick Clifton <nickc@redhat.com>
8060
8061 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
8062 where appropriate.
8063 (xstormy16_legitimate_address_p): Use true and false instead of 1
8064 and 0.
8065 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
8066 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
8067 magic constant 2.
8068 (xstormy16_expand_call): Fix comment at start of function.
8069
e14ca1ce
NC
80702010-09-01 Nick Clifton <nickc@redhat.com>
8071
8072 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
8073 when pushing accumulator register.
8074 (rx_get_stack_layout): Always save call clobbered registers inside
8075 interrupt handlers.
8076 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
8077
d78552bd
UB
80782010-09-01 Uros Bizjak <ubizjak@gmail.com>
8079
8080 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
8081 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
8082
8083 * libgcc-std.ver (GCC_4.6.0): Define version.
8084
0c1bebc4
EB
80852010-08-31 Eric Botcazou <ebotcazou@adacore.com>
8086
8087 * tree-nested.c (convert_all_function_calls): Iterate until after the
8088 sum of static chains in the nest doesn't change.
8089
0e607518
AS
80902010-08-31 Anatoly Sokolov <aesok@post.ru>
8091
8092 * config/m32c/m32c.c (classes_intersect): Remove.
8093 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
8094 reg_classes_intersect_p instead of classes_intersect.
8095 (class_can_hold_mode): Change arguments type from enum reg_class to
8096 reg_class_t. Use reg_class_contents instead of class_contents.
8097 (m32c_register_move_cost): Make static. Change arguments type from
8098 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
8099 classes_intersect. Use reg_class_contents instead of class_contents.
8100 (m32c_memory_move_cost): Make static. Change arguments type from
8101 enum reg_class to reg_class_t.
8102 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8103 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8104 * config/m32c/m32c-protos.h (m32c_register_move_cost,
8105 m32c_memory_move_cost): Remove.
8106
9c6a2bee
NF
81072010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8108
8109 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
8110 (arm_function_arg): Delete.
8111 (arm_needs_doubleword_align): Take a const_tree.
8112 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8113 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
8114 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
8115 (arm_function_arg): Make static. Take a const_tree and a bool.
8116 (arm_function_arg_advance): Likewise.
8117 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8118
d78552bd 81192010-08-31 Andi Kleen <ak@linux.intel.com>
a478ffff
AK
8120
8121 * common.opt (fwhopr=): Update for -fwhopr=jobserver
8122 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
8123 * lto-wrapper.c (run_gcc): Add jobserver mode.
8124 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
8125 argument.
8126
7d2c38c0
UB
81272010-08-31 Uros Bizjak <ubizjak@gmail.com>
8128
8129 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
8130 (popsi1): Ditto.
8131 (*popdi1_epilogue): Ditto.
8132 (*popsi1_epilogue): Ditto.
8133 (popsi, popdi peephole2 patterns): Update peepholes for changed
8134 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
8135
8136 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
8137 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
8138
8139 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
8140 (override_options): Do not initialize removed ix86_gen_pop1.
8141 (gen_pop): New static function.
8142 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
8143 (release_scratch_register_on_entry): Ditto.
8144 (ix86_restore_reg_using_pop): Ditto.
8145 (ix86_expand_epilogue): Ditto.
8146
0f643366
JJ
81472010-08-31 Jakub Jelinek <jakub@redhat.com>
8148
8149 PR middle-end/45461
8150 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
8151
08350106
NF
81522010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8153
8154 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
8155 semicolons.
8156
6cea734d
FXC
81572010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8158
8159 * doc/extend.texi: Fix documentation of the return value of
8160 __builtin_choose_expr.
8161
74a3d2c3
NF
81622010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8163
8164 * config/v850/v850-protos.h (function_arg): Delete.
8165 * config/v850/v850.h (FUNCTION_ARG): Delete.
8166 (FUNCTION_ARG_ADVANCE): Move code to...
8167 * config/v850/v850.c (v850_function_arg_advance): ...here.
8168 (v850_function_arg): Make static. Take a const_tree and a bool.
8169 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8170
6fadd9bb
NF
81712010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8172
8173 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
8174 these...
8175 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
8176 ...and these...
8177 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
8178 ..to here..
8179 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
8180 ...and here.
8181 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8182
3968a1c0
NF
81832010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8184
8185 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
8186 Delete.
8187 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8188 * config/rx/rx.c (rx_function_arg_size): Make static.
8189 (rx_function_arg): Likewise.
8190 (rx_function_arg_advance): New function.
8191 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8192
4546a2ef
JT
81932010-08-31 John Tytgat <John.Tytgat@aaug.net>
8194
8195 * config/arm/arm.c (arm_override_options): Remove superfluous test.
8196 Fix indentation.
8197
658af27d
EB
81982010-08-31 Eric Botcazou <ebotcazou@adacore.com>
8199
8200 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
8201 (dwarf2out_decl) <CONST_DECL>: Likewise.
8202
d3c12306
EB
82032010-08-30 Eric Botcazou <ebotcazou@adacore.com>
8204
8205 Stack usage support
8206 * common.opt (-fstack-usage): New option.
8207 * doc/invoke.texi (Debugging options): Document it.
8208 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
8209 allocate_dynamic_stack_space.
8210 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
8211 and propagate it to allocate_dynamic_stack_space.
8212 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
8213 * calls.c (initialize_argument_information): Pass TRUE as 4th
8214 argument to allocate_dynamic_stack_space.
8215 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
8216 to 1 when pushing a variable-sized argument onto the stack. Pass
8217 TRUE as 4th argument to allocate_dynamic_stack_space.
8218 Update current_function_pushed_stack_size.
8219 (emit_library_call_value_1): Likewise.
8220 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
8221 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
8222 attempt to find an upper bound. Remove redundant code for the
8223 SETJMP_VIA_SAVE_AREA case.
8224 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
8225 * function.h (struct stack_usage): New structure.
8226 (current_function_static_stack_size): New macro.
8227 (current_function_dynamic_stack_size): Likewise.
8228 (current_function_pushed_stack_size): Likewise.
8229 (current_function_dynamic_alloc_count): Likewise.
8230 (current_function_has_unbounded_dynamic_stack_size): Likewise.
8231 (current_function_allocates_dynamic_stack_space): Likewise.
8232 (struct function): Add new field 'su'.
8233 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
8234 add the value of the dynamic offset to the dynamic stack usage.
8235 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
8236 for variable-sized objects.
8237 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
8238 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
8239 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
8240 BUILT_IN_ALLOCA for variable-sized objects.
8241 * output.h (output_stack_usage): Declare.
8242 * toplev.c (stack_usage_file): New file pointer.
8243 (output_stack_usage): New function.
8244 (open_auxiliary_file): Likewise.
8245 (lang_dependent_init): Open file if flag_stack_usage is set.
8246 (finalize): Close file if stack_usage_file is not null.
8247 * tree.h (ALLOCA_FOR_VAR_P): New macro.
8248 * config/alpha/alpha.c (compute_frame_size): New function.
8249 (alpha_expand_prologue): Use it.
8250 (alpha_start_function): Likewise.
8251 (alpha_expand_epilogue): Likewise. Set stack usage info.
8252 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8253 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8254 * config/mips/mips.c (mips_expand_prologue): Likewise.
8255 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8256 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8257 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8258
1987baa3
ZD
82592010-08-30 Zdenek Dvorak <ook@ucw.cz>
8260
8261 PR tree-optimization/45427
8262 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
8263 Handle the case that the exit is never taken correctly.
8264 (number_of_iterations_ne): Pass exit_must_be_taken to
8265 number_of_iterations_ne_max.
8266
d3c12306 82672010-08-30 Catherine Moore <clm@codesourcery.com>
037f9973
CM
8268
8269 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
8270 Infer -mdspr2 for the the 74K.
8271
f2b11865
JJ
82722010-08-30 Jakub Jelinek <jakub@redhat.com>
8273
b0268cc0
JJ
8274 PR debug/45419
8275 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
8276
f2b11865
JJ
8277 PR middle-end/45423
8278 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
8279 and TRUTH_{AND,OR,XOR}_EXPR.
8280 * c-parser.c (c_parser_omp_atomic): Handle boolean
8281 {PRE,POST}_{INC,DEC}REMENT.
8282
626a4b31
NF
82832010-08-30 Nathan Froyd <froydnj@codesourcery.com>
8284
8285 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
8286 (function_arg): Delete.
8287 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8288 (FUNCTION_INCOMING_ARG): Delete.
8289 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
d78552bd 8290 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
626a4b31
NF
8291 and a bool.
8292 (function_arg): Rename to...
8293 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
8294 a bool.
8295 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
8296 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8297 (TARGET_FUNCTION_INCOMING_ARG): Define.
8298
2e481a2f
RG
82992010-08-30 Richard Guenther <rguenther@suse.de>
8300
8301 PR tree-optimization/21602
8302 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
8303 using points-to information.
8304
a95054c1
L
83052010-08-30 H.J. Lu <hongjiu.lu@intel.com>
8306
8307 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
8308
525fb35c
RG
83092010-08-30 Richard Guenther <rguenther@suse.de>
8310
8311 PR tree-optimization/45449
8312 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
8313 variables.
8314
184eb658
JM
83152010-08-30 Joseph Myers <joseph@codesourcery.com>
8316
8317 * opts.h (CL_ERR_NEGATIVE): Define.
8318 * opts.c (unknown_option_callback): Don't postpone warnings for
8319 options marked with CL_ERR_NEGATIVE.
8320 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
8321 for negative versions of CL_REJECT_NEGATIVE options.
8322
9552aca7
UB
83232010-08-30 Uros Bizjak <ubizjak@gmail.com>
8324
8325 * config/i386/i386.md (zero_extendsidi2_1): Rename from
8326 zero_extendsidi2_32.
8327 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
8328 using SWI12 mode iterator.
8329 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
8330 to define_insn_and_split pattern.
8331 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
8332 using SWI24 mode iterator.
8333 (*zero_extendqi<mode>2_and): Macroize insn from
8334 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
8335 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
8336 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
8337 SWI24 mode iterator.
8338 (*zero_extendqi<mode>2_movzbl): Ditto from
8339 *zero_extendqi{hi,si}2_movzbl.
8340 (extendsidi2_1): Rename from extendsidi2_32.
8341 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
8342 SWI12 mode iterator.
8343
33620355
EB
83442010-08-29 Eric Botcazou <ebotcazou@adacore.com>
8345
8346 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
8347 general purpose registers.
8348 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
8349 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
8350 with general purpose registers and memory operands. Add associated
8351 CCImode post-reload splitter.
8352 * config/ia64/div.md: Change BImode to CCImode throughout.
8353
bf321310
EB
83542010-08-28 Eric Botcazou <ebotcazou@adacore.com>
8355
8356 * config/ia64/ia64.md (cstorebi4): Fix thinko.
8357
74164603 83582010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
179ba6b8
HS
8359
8360 * config/picochip/picochip.c (reorder_var_tracking_notes): This
8361 function was dropping debug insns which caused PR45299.
ee9dd92e 8362
179ba6b8 83632010-08-28 Uros Bizjak <ubizjak@gmail.com>
bf321310 8364
ee9dd92e
UB
8365 * config/i386/sse.md (extsuffix): New code attribute.
8366 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
8367 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
8368 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
8369 and sse4_1_zero_extendv4qiv4si2.
8370 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
8371 and sse4_1_zero_extendv2qiv2di2.
8372 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
8373 and sse4_1_zero_extendv4hiv4si2.
8374 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
8375 and sse4_1_zero_extendv2hiv2di2.
8376 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
8377 and sse4_1_zero_extendv2siv2di2
8378
8379 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
8380 using any_extend code iterator.
8381 (*avx_<s>mulv8hi3_highpart): Macroize insn from
8382 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
8383 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
8384
8385 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
8386 gen_sse4_1_sign_extend* functions.
8387 (struct builtin_description bdesc_args): Ditto.
8388
f06e400f
XDL
83892010-08-27 Xinliang David Li <davidxl@google.com>
8390
8391 PR/45422
8392 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
8393 (iv_ca_set_no_cp): Update used inv expr count.
8394 (iv_ca_set_cp): Ditto.
8395 (iv_ca_new): Initialize new member.
8396 (iv_ca_free): Free memory.
8397
b64336b8
NF
83982010-08-27 Nathan Froyd <froydnj@codesourcery.com>
8399
8400 * config/sh/sh-protos.h (sh_function_arg): Delete.
8401 (sh_function_arg_advance): Delete.
8402 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8403 (PASS_IN_REG_P): Eliminate cast.
8404 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
8405 const_tree and a bool.
8406 (sh_function_arg): Likewise.
8407 (sh_output_mi_thunk): Call sh_function_arg_advance) and
8408 sh_function_arg.
8409 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8410
91a19652
N
84112010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
8412 Kaz Kojima <kkojima@gcc.gnu.org>
8413
8414 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
8415 when possible.
8416 (sh_expand_epilogue): Likewise.
8417 * config/sh/sh.md (movml_push_banked): New insn.
8418 (movml_pop_banked): Likewise.
8419
c1cb371a
BS
84202010-08-28 Bernd Schmidt <bernds@codesourcery.com>
8421
8422 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
8423 gen_regexp_oneof, gen_regexp_sequence): Use the string found
8424 in vector element 0 rather than the original string when there's
8425 only one element.
8426 (gen_regexp): Remove extra semicolon.
8427
f8045c41
BS
8428 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
8429 thumb2_movsf_vfp): Set attribute "insn".
8430 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
8431 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
8432 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
8433 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
8434 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
8435 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
8436 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
8437 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
8438 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
8439 if_not_arith, if_arith_not, cond_move_not): Likewise.
8440
7042fe5e
MM
84412010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8442
8443 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
8444 New declaration.
8445 (rs6000_allocate_stack_temp): Ditto.
8446 (rs6000_expand_convert_si_to_sfdf): Ditto.
8447
8448 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
8449 line. Update the options set if power6 or power7 server/embedded
8450 type options are used. If we give a warning for no vsx under
8451 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
8452 (rs6000_allocate_stack_temp): New function to allocate a stack
8453 tempoary and adjust the address so it meets either REG+OFFSET or
8454 REG+REG addressing requirements.
8455 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
8456 that they can be used with the LFIWAX/LFIWZX instrucitons.
8457 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
8458 converting signed/unsigned SImode to either SFmode/DFmode.
8459
8460 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
8461 whether certain instructions can be generated.
8462 (TARGET_FCTIDZ): Ditto.
8463 (TARGET_STFIWX): Ditto.
8464 (TARGET_LFIWAX): Ditto.
8465 (TARGET_LFIWZX): Ditto.
8466 (TARGET_FCFIDS): Ditto.
8467 (TARGET_FCFIDU): Ditto.
8468 (TARGET_FCFIDUS): Ditto.
8469 (TARGET_FCTIDUZ): Ditto.
8470 (TARGET_FCTIWUZ): Ditto.
8471
8472 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
8473 (UNSPEC_FCTID): Ditto.
8474 (UNSPEC_LFIWAX): Ditto.
8475 (UNSPEC_LFIWZX): Ditto.
8476 (UNSPEC_FCTIWUZ): Ditto.
8477 (rreg): Use correct constraints.
8478 (SI_CONVERT_FP): New mode attribute for floating point conversion
8479 tests.
8480 (E500_CONVERT): Ditto.
8481 (lfiwax): New insns for converting from integer to floating point
8482 utilizing newer instructions. Attempt to optimize conversions
8483 that come from memory so that we don't load the value into a GPR,
8484 spill it to the stack and reload it into a FPR.
8485 (floatsi<mode>2_lfiwax): Ditto.
8486 (floatsi<mode>2_lfiwax_mem): Ditto.
8487 (floatsi<mode>2_lfiwax_mem2): Ditto.
8488 (lfiwzx): Ditto.
8489 (floatunssi<mode>2_lfiwzx): Ditto.
8490 (floatunssi<mode>2_lfiwzx_mem): Ditto.
8491 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
8492 (floatdidf2_mem): Ditto.
8493 (floatunsdidf2_fcfidu): Ditto.
8494 (floatunsdidf2_mem): Ditto.
8495 (floatunsdisf2): Ditto.
8496 (floatunsdisf2_fcfidus): Ditto.
8497 (floatunsdisf2_mem): Ditto.
8498 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
8499 Use FCFID on 32-bit hosts that support it.
8500 (floatsidf2_internal): Ditto.
8501 (floatunssisf2): Ditto.
8502 (floatunssidf2): Ditto.
8503 (floatunssidf2_internal): Ditto.
8504 (floatsisf2): Ditto.
8505 (floatdidf2): Ditto.
8506 (floatdidf2_fpr): Ditto.
8507 (floatunsdidf2): Ditto.
8508 (floatdisf2): Ditto.
8509 (floatdisf2_fcfids): Ditto.
8510 (floatdisf2_internal1): Ditto.
8511 (fixuns_truncsfsi2): Delete, merge into common pattern for both
8512 SF/DF. Add power7 support.
8513 (fix_truncsfsi2): Ditto.
8514 (fixuns_truncdfsi2): Ditto.
8515 (fixuns_truncdfdi2): Ditto.
8516 (fix_truncdfsi2): Ditto.
8517 (fix_truncdfsi2_internal): Ditto.
8518 (fix_truncdfsi2_internal_gfxopt): Ditto.
8519 (fix_truncdfsi2_mfpgpr): Ditto.
8520 (fctiwz): Ditto.
8521 (btruncdf2): Ditto.
8522 (btruncdf2_fpr): Ditto.
8523 (btructsf2): Ditto.
8524 (ceildf2): Ditto.
8525 (ceildf2_fpr): Ditto.
8526 (ceilsf2): Ditto.
8527 (floordf2): Ditto.
8528 (floordf2_fpr): Ditto.
8529 (floorsf2): Ditto.
8530 (rounddf2): Ditto.
8531 (rounddf2_fpr): Ditto.
8532 (roundsf2): Ditto.
8533 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
8534 (fix_trunc<mode>di2): Ditto.
8535 (fixuns_trunc<mode>si2): Ditto.
8536 (fixuns_trunc<mode>di2): Ditto.
8537 (fctiwz_<mode>): Ditto.
8538 (btrunc<mode>2): Ditto.
8539 (btrunc<mode>2_fpr): Ditto.
8540 (ceil<mode>2): Ditto.
8541 (ceil<mode>2_fpr): Ditto.
8542 (floor<mode>2): Ditto.
8543 (float<mode>2_fpr): Ditto.
8544 (round<mode>2): Ditto.
8545 (round<mode>2_fpr): Ditto.
8546 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
8547 (fixuns_trunc<mode>si2_stfiwx): Ditto.
8548 (fix_truncdfsi2_internal): Ditto.
8549 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
8550 converted value on stack, loaded into GPR, and then stored into
8551 the final destination.
8552 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
8553 FCTIDZ.
8554 (lrint<mode>di2): New insn, provide the lrint builtin functions.
8555 (ftruncdf2): Delete, unused.
8556 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
8557
8558 * config/rs6000/vsx.md (toplevel): Update copyright year.
8559 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
8560 (VSr3): Ditto.
6ba2db5e
BS
8561
85622010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
7d2c38c0 8563 Jeremie Salvucci <jeremie.salvucci@free.fr>
6ba2db5e 8564
7d2c38c0 8565 * gengtype.c (output_type_enum): Test the right union member.
6ba2db5e 8566
83d58961
UB
85672010-08-27 Uros Bizjak <ubizjak@gmail.com>
8568
8569 PR target/41484
8570 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
8571 operands for operand 1.
8572 (sse4_1_extendv4qiv4si2): Ditto.
8573 (sse4_1_extendv2qiv2di2): Ditto.
8574 (sse4_1_extendv4hiv4si2): Ditto.
8575 (sse4_1_extendv2hiv2di2): Ditto.
8576 (sse4_1_extendv2siv2di2): Ditto.
8577 (sse4_1_zero_extendv8qiv8hi2): Ditto.
8578 (sse4_1_zero_extendv4qiv4si2): Ditto.
8579 (sse4_1_zero_extendv2qiv2di2): Ditto.
8580 (sse4_1_zero_extendv4hiv4si2): Ditto.
8581 (sse4_1_zero_extendv2hiv2di2): Ditto.
8582 (sse4_1_zero_extendv2siv2di2): Ditto.
8583 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
8584 (*sse4_1_extendv4qiv4si2): Ditto.
8585 (*sse4_1_extendv2qiv2di2): Ditto.
8586 (*sse4_1_extendv4hiv4si2): Ditto.
8587 (*sse4_1_extendv2hiv2di2): Ditto.
8588 (*sse4_1_extendv2siv2di2): Ditto.
8589 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
8590 (*sse4_1_zero_extendv4qiv4si2): Ditto.
8591 (*sse4_1_zero_extendv2qiv2di2): Ditto.
8592 (*sse4_1_zero_extendv4hiv4si2): Ditto.
8593 (*sse4_1_zero_extendv2hiv2di2): Ditto.
8594 (*sse4_1_zero_extendv2siv2di2): Ditto.
8595
c8717ea3
NF
85962010-08-27 Nathan Froyd <froydnj@codesourcery.com>
8597
8598 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
8599 (mips_function_arg): Delete.
8600 (mips_function_arg_boundary): Take a const_tree.
8601 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
8602 (mips_arg_info): Likewise.
8603 (mips_setup_incoming_varargs): Call mips_function_arg_advance
8604 instead of FUNCTION_ARG_ADVANCE.
8605 (mips_function_arg_advance): Adjust prototype. Make static.
8606 (mips_function_arg): Likewise.
8607 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8608 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8609
7c8232a2
NF
86102010-08-27 Nathan Froyd <froydnj@codesourcery.com>
8611
8612 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8613 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
8614 (function_arg): Delete.
8615 (function_arg_boundary): Take a const_tree.
8616 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
8617 (rs6000_spe_function_arg): Likewise.
8618 (rs6000_parm_start): Likewise.
8619 (rs6000_arg_size): Likewise.
8620 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
83d58961 8621 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
7c8232a2
NF
8622 (rs6000_mixed_function_arg): Likewise.
8623 (function_arg): Rename to...
8624 (rs6000_function_arg): ...this.
8625 (function_arg_advance): Rename to...
8626 (rs6000_function_arg_advance_1): ...this
8627 (rs6000_function_arg_advance): New function. Call it.
8628 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
8629 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
8630 (rs6000_function_value): Likewise.
8631 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8632
da787dec
RR
86332010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8634
8635 * config/arm/arm.md (enabled): Test the value of arch_enabled
ee9dd92e 8636 rather than just using it.
da787dec 8637
d32f725a 86382010-08-27 Olivier Hainque <hainque@adacore.com>
ee9dd92e 8639 Eric Botcazou <ebotcazou@adacore.com>
d32f725a
OH
8640
8641 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
8642 cover all the possible offsets from this base.
8643 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
8644
9e3920e9
JJ
86452010-08-26 Jakub Jelinek <jakub@redhat.com>
8646
8647 PR tree-optimization/44485
8648 * calls.c (flags_from_decl_or_type): For const or pure
8649 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
8650 together with ECF_CONST resp. ECF_PURE.
8651 * builtins.c (expand_builtin): Use flags_from_decl_or_type
8652 instead of querying flags directly.
8653 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
8654 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
8655
4be4cd6d
RG
86562010-08-26 Richard Guenther <rguenther@suse.de>
8657
8658 PR tree-optimization/45255
83d58961
UB
8659 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
8660 and externals are also invariant.
4be4cd6d 8661
932c9bff
JJ
86622010-08-25 Jakub Jelinek <jakub@redhat.com>
8663
ea9f1d6f
JJ
8664 PR rtl-optimization/44858
8665 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
8666 newi2pat, make sure they don't affect newpat.
8667
932c9bff
JJ
8668 PR rtl-optimization/45400
8669 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
8670 SUBREG_REG if both modes are of MODE_INT class.
8671
d8099dd8
JB
86722010-08-25 Julian Brown <julian@codesourcery.com>
8673
8674 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
8675 * config/arm/arm.md (generic_sched): No for Cortex-A5.
8676 (generic_vfp): Likewise.
8677 (cortex-a5.md): Include.
8678 * config/arm/cortex-a5.md: New.
8679
0ceb0201
RG
86802010-08-25 Richard Guenther <rguenther@suse.de>
8681
83d58961 8682 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
0ceb0201
RG
8683 * gimple.c (gimple_get_alias_set): Remove special handling
8684 for pointers.
8685
4942fc56
BS
86862010-08-25 Bernd Schmidt <bernds@codesourcery.com>
8687
8688 PR middle-end/45355
8689 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
8690 dead_or_set_p when computing i0_feeds_i2_n.
8691
0cdf7b49
BS
8692 * combine.c (find_split_point): Undo canonicalization of multiply-add
8693 to (minus x (mult)) when it seems likely that this will increase the
8694 chances of a split.
8695
1cf01301
RG
86962010-08-25 Richard Guenther <rguenther@suse.de>
8697
8698 PR lto/44562
8699 * lto-streamer.c (lto_record_common_node): Do not mess with
8700 TYPE_CANONICAL when not in lto.
8701 * gimple.c (gimple_register_type): Likewise.
8702
a2c0ed2e
RG
87032010-08-25 Richard Guenther <rguenther@suse.de>
8704
8705 PR tree-optimization/45316
8706 * tree-ssa-pre.c (eliminate): Properly clean EH info.
8707
90bc1cb8
RG
87082010-08-25 Richard Guenther <rguenther@suse.de>
8709
8710 PR tree-optimization/45393
8711 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
8712 and clean EH info. Avoid SSA update.
8713 (execute_cse_sincos): Cleanup the CFG if it has changed.
8714
9407f6bc
RG
87152010-08-25 Richard Guenther <rguenther@suse.de>
8716
8717 PR middle-end/45379
8718 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
8719 TARGET_MEM_REF in alignment computation.
8720
ca046f7f
JJ
87212010-08-25 Jakub Jelinek <jakub@redhat.com>
8722
8723 PR tree-optimization/45059
8724 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
8725 type conversions from newop{1,2}. Assert t is a comparison and
8726 newop{1,2} after the stripping are gimple vals.
8727
46b57af1
TB
87282010-08-25 Tejas Belagod <tejas.belagod@arm.com>
8729
8730 * config/arm/iterators.md (VU, SE, V_widen_l): New.
8731 (V_unpack, US): New.
83d58961 8732 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
46b57af1
TB
8733 (vec_unpack<US>_lo_<mode>): Likewise.
8734 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
8735 (neon_vec_unpack<US>_lo_<mode>): Likewise.
8736 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
8737 (vec_widen_<US>mult_hi_<mode>): Likewise.
8738 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
8739 (neon_vec_<US>mult_hi_<mode>"): Likewise.
8740 (neon_unpack<US>_<mode>): Widening move intermediate step for
8741 vectorizing without -mvectorize-with-neon-quad.
8742 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
8743 for vectorizing without -mvectorize-with-neon-quad.
8744 * config/arm/predicates.md (vect_par_constant_high): Check for
8745 high-half lanes of a vector.
8746 (vect_par_constant_low): Check for low-half lanes of a vector.
8747
4b9c23ea
SP
87482010-08-24 Sebastian Pop <sebastian.pop@amd.com>
8749
8750 * tree-if-conv.c (struct ifc_dr): New.
8751 (IFC_DR): New.
8752 (DR_WRITTEN_AT_LEAST_ONCE): New.
8753 (DR_RW_UNCONDITIONALLY): New.
8754 (memref_read_or_written_unconditionally): Use the cached values
8755 when possible.
8756 (write_memref_written_at_least_once): Same.
8757 (if_convertible_loop_p): Initialize and free DR->aux fields.
8758
e1fd038a
SP
87592010-08-24 Sebastian Pop <sebastian.pop@amd.com>
8760
8761 * gimple.c (gimple_could_trap_p_1): Not static anymore.
8762 Pass an extra bool parameter include_mem.
8763 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
8764 (gimple_assign_rhs_could_trap_p): Same.
8765 * gimple.h (gimple_could_trap_p_1): Declared.
8766 * tree-data-ref.h (same_data_refs_base_objects): New.
8767 (same_data_refs): New.
8768 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
8769 (write_memrefs_written_at_least_once): New.
8770 (ifcvt_memrefs_wont_trap): New.
8771 (operations_could_trap): New.
8772 (ifcvt_could_trap_p): New.
8773 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
8774 Gets a vector of data refs.
8775 (if_convertible_stmt_p): Same.
8776 (if_convertible_loop_p_1): New.
8777 (if_convertible_loop_p): Call if_convertible_loop_p_1.
8778
bd544141
SP
87792010-08-24 Sebastian Pop <sebastian.pop@amd.com>
8780
8781 * common.opt (ftree-loop-if-convert-stores): New flag.
8782 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
8783 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
8784 the created statement before GSI.
8785 (if_convertible_phi_p): Allow virtual phi nodes when
8786 flag_loop_if_convert_stores is set.
8787 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
8788 Do not handle types that do not match is_gimple_reg_type.
8789 Remove loop and bb parameters. Call gimple_could_trap_p instead of
8790 when flag_loop_if_convert_stores is set, as LHS can contain
8791 memory refs.
8792 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
8793 to if_convertible_gimple_assign_stmt_p.
8794 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
8795 (replace_phi_with_cond_gimple_assign_stmt): Renamed
8796 predicate_scalar_phi. Do not handle virtual phi nodes.
8797 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
8798 Call predicate_scalar_phi.
8799 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
8800 just after the labels for flag_loop_if_convert_stores, otherwise
8801 insert the predicate in the end of the BB.
8802 (predicate_mem_writes): New.
8803 (combine_blocks): Call predicate_all_scalar_phis. When
8804 flag_loop_if_convert_stores is set, call predicate_mem_writes.
8805 (tree_if_conversion): Call mark_sym_for_renaming when
8806 flag_loop_if_convert_stores is set.
8807 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
8808 flag_loop_if_convert_stores is set.
8809
8a5b8538
AS
88102010-08-24 Anatoly Sokolov <aesok@post.ru>
8811
8812 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
8813 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
8814 (pa_function_value): Make static.
8815 (override_options): Rename to...
8816 (pa_option_override): ...this. Make static.
8817 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
8818 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
8819 TARGET_OPTION_OVERRIDE): Define.
8820 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
8821 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
8822 Remove.
8823 * config/pa/pa-protos.h (override_options): Remove.
8824
d15adbeb
RG
88252010-08-24 Richard Guenther <rguenther@suse.de>
8826
8827 PR middle-end/45379
8828 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
8829 if addr->index is NULL or zero.
8830 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
8831 TARGET_MEM_REF more properly.
8832 (indirect_ref_may_alias_decl_p): Likewise.
8833 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
83d58961 8834 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
d15adbeb 8835
f28f2337
AS
88362010-08-23 Anatoly Sokolov <aesok@post.ru>
8837
8838 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
8839 (m32c_override_options): Rename to...
8840 (m32c_option_override): ...this. Make static.
8841 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
8842 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
8843 Remove.
8844 * config/m32c/m32c-protos.h (m32c_override_options,
8845 m32c_function_value_regno_p): Remove.
8846
756f50ce
CF
88472010-08-23 Changpeng Fang <changpeng.fang@amd.com>
8848
8849 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
8850 Fix a typo in a previous commit.
8851
0b3f0088
KT
88522010-08-23 Kai Tietz <kai.tietz@onevision.com>
8853
8854 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
8855 Pre-initialize innerloop_iters to one.
8856
bc068a23
CF
88572010-08-23 Changpeng Fang <changpeng.fang@amd.com>
8858
8859 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
8860 existing static function global.
8861
83d58961 8862 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
bc068a23
CF
8863 is changed to global.
8864
83d58961 8865 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
bc068a23
CF
8866 may_be_nonaddressable_p on base, and don't collect this reference
8867 if the address of the base could not be taken.
8868
8bcc0304
MM
88692010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8870
b36cf9d2
MM
8871 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
8872 enable the compiler to autovectorize mathmetical functions for
8873 power7 using the Mathematical Acceleration Subsystem library.
8bcc0304 8874
b36cf9d2
MM
8875 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
8876 handle which vector math library we have.
8877 (rs6000_override_options): Add -mveclibabi=mass support.
8878 (rs6000_builtin_vectorized_libmass): New function to handle auto
8879 vectorizing math functions that are in the MASS library.
8bcc0304
MM
8880 (rs6000_builtin_vectorized_function): Call it.
8881
b36cf9d2
MM
8882 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8883 -mveclibabi=mass.
8bcc0304 8884
8c157f90
JDA
88852010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8886
8887 PR boehm-gc/34544
8888 * gthr-posix.h (__gthread_active_init): Delete.
8889 (__gthread_active_p): Do activity check here.
8890 Don't include errno.h on hppa-hpux. Update comment.
8891 * gthr-posix95.h (__gthread_active_init): Delete.
8892 (__gthread_active_p): Do activity check here.
8893 Don't include errno.h on hppa-hpux. Update comment.
8894 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
8895 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
8896 add -lpthread when -mt or -pthread is specified.
8897 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
8898 (LINK_GCC_C_SEQUENCE_SPEC): Define.
8899 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
8900 (stublib.c, pthread_default_stacksize_np-stub.o,
8901 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
8902 $(T)libgcc_stub.a): Add methods.
8903 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
8904 (stublib.c, pthread_default_stacksize_np-stub.o,
8905 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
8906 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8907 pthread_mutex_unlock): New stubs.
8908
d9d16a19
JM
89092010-08-22 Joseph Myers <joseph@codesourcery.com>
8910
8911 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
8912 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
8913 options.
8914 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
8915 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
8916 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
8917 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
8918 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
8919 "-l".
8920 * cppspec.c: Include opts.h.
8921 (lang_specific_driver): Use cl_decoded_option structures.
8922 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
8923 * doc/tm.texi: Regenerate.
8924 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
8925 (driver_handle_option): Allow driver options needing no special
8926 processing.
8927 (process_command): Decode options before call to
8928 lang_specific_driver. Pass decoded options to
8929 lang_specific_driver.
8930 * gcc.h (lang_specific_driver): Update prototype.
8931 * gccspec.c: Include opts.h.
8932 (lang_specific_driver): Use cl_decoded_option structures.
8933 * opts-common.c (option_ok_for_language, generate_option,
8934 generate_option_input_file): New.
8935 (decode_cmdline_option): Use option_ok_for_language.
8936 (decode_cmdline_options_to_array): Use generate_option_input_file.
8937 (handle_generated_option): Use generate_option.
8938 * opts.h (generate_option, generate_option_input_file): Declare.
8939
525c561d
AS
89402010-08-22 Anatoly Sokolov <aesok@post.ru>
8941
8942 * config/mips/mips.c (mips_override_options): Rename to...
8943 (mips_option_override): ...this. Make static.
8944 (TARGET_OPTION_OVERRIDE): Define.
8945 (mips_in_small_data_p): Update comment.
8946 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
8947 (FIXED_REGISTERS): Update comment.
8948 * config/mips/mips-protos.h (mips_override_options): Remove.
8949
65f1047a
OH
89502010-08-21 Olivier Hainque <hainque@adacore.com>
8951
8952 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
8953
b3552548
OH
89542010-08-21 Olivier Hainque <hainque@adacore.com>
8955
74025114 8956 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
b3552548
OH
8957 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
8958
9e97ff61
JH
89592010-08-20 Jan Hubicka <jh@suse.cz>
8960
8961 * tree-pass.h (pass_ipa_cdtor_merge): New function.
8962 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
8963 heap allocated.
8964 (record_cdtor_fn): Move to ipa.c; do not test for
8965 have_ctors_dtors.
8966 (build_cdtor): Move to ipa.c; add code avoiding construction
8967 when target have ctors/dtors and there is only one ctor/dtor at given
8968 priority.
757fc8ed
EB
8969 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
8970 sort; reverse order of constructors.
83d58961 8971 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
9e97ff61
JH
8972 (cgraph_finalize_function): Do not call record_cdtor_fn.
8973 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
8974 (cgraph_build_static_cdtor): Move to ipa.c.
8975 * ipa.c: Include target.h and tree-iterator.h.
8976 (cgraph_build_static_cdtor, static_ctors, static_dtors,
8977 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
8978 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
8979 pass_ipa_cdtor_merge): New.
8980 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
757fc8ed
EB
8981 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
8982 bounds access.
9e97ff61 8983
508e4757
JH
89842010-08-20 Jan Hubicka <jh@suse.cz>
8985
8986 PR c++/45307
8987 PR c++/17736
8988 * cgraph.h (cgraph_only_called_directly_p,
8989 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
8990 static cdtors.
8991 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
8992 are not needed.
8993 (cgraph_finalize_function): Static cdtors are reachable.
8994 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
8995
f1395d4a
JH
89962010-08-20 Jan Hubicka <jh@suse.cz>
8997
757fc8ed
EB
8998 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
8999 flag_wpa.
f1395d4a 9000 * lto-streamer-out.c (lto_output): Likewise.
83d58961
UB
9001 * passes.c (ipa_write_optimization_summaries): Initialize statement
9002 uids.
f1395d4a 9003
b4d456ff
OH
90042010-08-20 Olivier Hainque <hainque@adacore.com>
9005
9006 * tree.h (alias_diag_flags): New enum.
9007 (alias_pair): Add an 'emitted_diags' field.
9008 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
9009 (assemble_alias): Initialize emitted_diags of new pairs.
9010
39acb18f
EB
90112010-08-20 Eric Botcazou <ebotcazou@adacore.com>
9012
9013 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9014 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9015 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9016 (STACK_CHECK_PROTECT): Define.
9017 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
9018 (output_probe_stack_range): Likewise.
9019 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
9020 builtin stack checking is enabled.
9021 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
9022 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9023 (probe_stack_range): New insn.
9024
410841c6
L
90252010-08-20 H.J. Lu <hongjiu.lu@intel.com>
9026
9027 PR target/45336
9028 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
9029 short first.
9030
9031 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
9032 char first.
9033
50d724a7
JJ
90342010-08-20 Jakub Jelinek <jakub@redhat.com>
9035
9036 PR target/45336
9037 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
9038 to cover zero extension into 64-bit register.
9039 (*sse2_pextrw): Likewise.
9040 (*sse4_1_pextrd_zext): New insn.
9041
c6d8116a
IS
90422010-08-20 Iain Sandoe <iains@gcc.gnu.org>
9043
9044 revert r163410, partially revert r163267.
9045 * config/rs6000/darwin.h (LIB_SPEC): Remove.
83d58961 9046 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
c6d8116a 9047 Darwin versions.
83d58961 9048
994fc9ab
JJ
90492010-08-20 Jakub Jelinek <jakub@redhat.com>
9050
9051 PR middle-end/44974
9052 * builtins.c (expand_builtin): Don't optimize away
9053 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
9054
6c334090
UB
90552010-08-20 Uros Bizjak <ubizjak@gmail.com>
9056
83d58961 9057 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
6c334090
UB
9058 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
9059 alternative 1 of operand 2.
9060
561da6bc
JJ
90612010-08-20 Jakub Jelinek <jakub@redhat.com>
9062 Paolo Bonzini <bonzini@gnu.org>
9063
9064 * simplify-rtx.c (simplify_unary_operation_1): Optimize
6c334090 9065 (sign_extend (zero_extend (...)) and
561da6bc
JJ
9066 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
9067
89ad0f25
JJ
90682010-08-20 Jakub Jelinek <jakub@redhat.com>
9069
9070 PR rtl-optimization/45353
9071 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
9072 after bb_note is a BARRIER.
9073
bf794e41
IS
90742010-08-20 Iain Sandoe <iains@gcc.gnu.org>
9075
6c334090 9076 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
bf794e41 9077 linking libgcc.a.
6c334090 9078
521fdcda
JJ
90792010-08-20 Jakub Jelinek <jakub@redhat.com>
9080 Michael Matz <matz@suse.de>
9081
6c334090 9082 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
521fdcda 9083
71bb2d86
NF
90842010-08-20 Nathan Froyd <froydnj@codesourcery.com>
9085
9086 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
9087 (ggc_mark_roots): ...here.
9088
ac47786e
NF
90892010-08-20 Nathan Froyd <froydnj@codesourcery.com>
9090
9091 * vec.h (FOR_EACH_VEC_ELT): Define.
9092 * c-decl.c: Use it.
9093 * cfgloop.c: Likewise.
9094 * cfgloopmanip.c: Likewise.
9095 * cgraph.c: Likewise.
9096 * cgraphunit.c: Likewise.
9097 * combine.c: Likewise.
9098 * config/bfin/bfin.c: Likewise.
9099 * config/mips/mips.c: Likewise.
9100 * config/rs6000/rs6000.c: Likewise.
9101 * dbxout.c: Likewise.
9102 * df-scan.c: Likewise.
9103 * dominance.c: Likewise.
9104 * dse.c: Likewise.
9105 * dwarf2out.c: Likewise.
9106 * except.c: Likewise.
9107 * expr.c: Likewise.
9108 * function.c: Likewise.
9109 * gcse.c: Likewise.
9110 * genattr.c: Likewise.
9111 * ggc-common.c: Likewise.
9112 * gimplify.c: Likewise.
9113 * graphite-blocking.c: Likewise.
9114 * graphite-clast-to-gimple.c: Likewise.
9115 * graphite-dependences.c: Likewise.
9116 * graphite-interchange.c: Likewise.
9117 * graphite-poly.c: Likewise.
9118 * graphite-scop-detection.c: Likewise.
9119 * graphite-sese-to-poly.c: Likewise.
9120 * graphite.c: Likewise.
9121 * haifa-sched.c: Likewise.
9122 * ifcvt.c: Likewise.
9123 * implicit-zee.c: Likewise.
9124 * ipa-prop.c: Likewise.
9125 * ipa-struct-reorg.c: Likewise.
9126 * ipa.c: Likewise.
9127 * ira-build.c: Likewise.
9128 * ira-color.c: Likewise.
9129 * ira-emit.c: Likewise.
9130 * lambda-code.c: Likewise.
9131 * loop-invariant.c: Likewise.
9132 * loop-unroll.c: Likewise.
9133 * lower-subreg.c: Likewise.
9134 * lto-cgraph.c: Likewise.
9135 * lto-opts.c: Likewise.
9136 * lto-streamer-in.c: Likewise.
9137 * lto-streamer-out.c: Likewise.
9138 * lto-streamer.c: Likewise.
9139 * lto-symtab.c: Likewise.
9140 * matrix-reorg.c: Likewise.
9141 * opts.c: Likewise.
9142 * predict.c: Likewise.
9143 * print-tree.c: Likewise.
9144 * sdbout.c: Likewise.
9145 * sel-sched-dump.c: Likewise.
9146 * sel-sched-ir.c: Likewise.
9147 * sel-sched.c: Likewise.
9148 * sese.c: Likewise.
9149 * stor-layout.c: Likewise.
9150 * tree-cfg.c: Likewise.
9151 * tree-cfgcleanup.c: Likewise.
9152 * tree-chrec.c: Likewise.
9153 * tree-data-ref.c: Likewise.
9154 * tree-emutls.c: Likewise.
9155 * tree-inline.c: Likewise.
9156 * tree-into-ssa.c: Likewise.
9157 * tree-loop-distribution.c: Likewise.
9158 * tree-loop-linear.c: Likewise.
9159 * tree-mudflap.c: Likewise.
9160 * tree-outof-ssa.c: Likewise.
9161 * tree-parloops.c: Likewise.
9162 * tree-predcom.c: Likewise.
9163 * tree-pretty-print.c: Likewise.
9164 * tree-scalar-evolution.c: Likewise.
9165 * tree-ssa-live.c: Likewise.
9166 * tree-ssa-loop-im.c: Likewise.
9167 * tree-ssa-loop-ivcanon.c: Likewise.
9168 * tree-ssa-loop-ivopts.c: Likewise.
9169 * tree-ssa-loop-manip.c: Likewise.
9170 * tree-ssa-loop-niter.c: Likewise.
9171 * tree-ssa-loop-prefetch.c: Likewise.
9172 * tree-ssa-phiprop.c: Likewise.
9173 * tree-ssa-pre.c: Likewise.
9174 * tree-ssa-reassoc.c: Likewise.
9175 * tree-ssa-sccvn.c: Likewise.
9176 * tree-ssa-structalias.c: Likewise.
9177 * tree-ssa.c: Likewise.
9178 * tree-vect-data-refs.c: Likewise.
9179 * tree-vect-loop-manip.c: Likewise.
9180 * tree-vect-loop.c: Likewise.
9181 * tree-vect-patterns.c: Likewise.
9182 * tree-vect-slp.c: Likewise.
9183 * tree-vect-stmts.c: Likewise.
9184 * tree-vrp.c: Likewise.
9185 * tree.c: Likewise.
9186 * value-prof.c: Likewise.
9187 * var-tracking.c: Likewise.
9188 * varasm.c: Likewise.
9189 * vmsdbgout.c: Likewise.
9190
1f5a46fe
NS
91912010-08-19 Nathan Sidwell <nathan@codesourcery.com>
9192 Richard Guenther <richard.guenther@gmail.com>
9193
9194 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
9195 copy the src value and return a copy.
9196 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
9197 (C++ Volatiles): Adjust to describe C++ semantics only.
9198
f8fe0a4a
JM
91992010-08-20 Joseph Myers <joseph@codesourcery.com>
9200
9201 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
9202 be zero or nonzero.
9203 * doc/tm.texi: Regenerate.
9204 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
9205 * df-scan.c (df_get_exit_block_use_set), reginfo.c
9206 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
9207 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
9208 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
9209 to 1.
9210
891aa2ec
OH
92112010-08-20 Olivier Hainque <hainque@adacore.com>
9212
9213 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
9214 an extra nop past a sibling call at the very end.
9215
b98425da
BS
92162010-08-19 Bernd Schmidt <bernds@codesourcery.com>
9217
9218 PR bootstrap/45350
9219 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
9220 a comment.
9221
29e88142
NF
92222010-08-19 Nathan Froyd <froydnj@codesourcery.com>
9223
9224 * target.def (function_arg, function_incoming_arg): Remove const
9225 qualifier on CUMULATIVE_ARGS parameter.
9226 * targhooks.h (default_function_arg, default_function_incoming_arg):
9227 Likewise.
9228 * targhooks.c (default_function_arg, default_function_incoming_arg):
9229 Likewise.
9230 * config/i386/i386.c (ix86_function_arg): Likewise.
9231
a5d8253f
JJ
92322010-08-19 Jakub Jelinek <jakub@redhat.com>
9233
9234 PR target/45336
9235 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
9236 SIGN_EXTENDs or ZERO_EXTENDs.
9237
0524d2d6
BS
92382010-08-19 Bernd Schmidt <bernds@codesourcery.com>
9239
9240 PR target/42172
9241 * combine.c (combine_validate_cost): New arg I0. All callers changed.
9242 Take its cost into account if nonnull.
9243 (insn_a_feeds_b): New static function.
9244 (combine_instructions): Look for four-insn combinations.
9245 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
9246 them into account when computing all_adjacent and looking for other
9247 uses.
9248 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
9249 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
9250 (try_combine): New arg I0. Handle four-insn combinations.
9251 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
9252 like ELIM_I1.
9253
ce3beba3
JM
92542010-08-19 Jason Merrill <jason@redhat.com>
9255
9256 PR c++/45307
9257 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
9258 if ctor is empty.
9259 (gimplify_modify_expr_rhs): Adjust.
9260
fcaa4ca4
NF
92612010-08-19 Nathan Froyd <froydnj@codesourcery.com>
9262
9263 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
9264 bitmap_bit_p.
9265 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
9266 * dominance.c (iterate_fix_dominators): Likewise.
9267 * dse.c (set_usage_bits): Likewise.
9268 (set_position_unneeded, record_store): Likewise.
9269 * gimple-fold.c (get_maxval_strlen): Likewise.
9270 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
9271 * ipa-inline.c (update_caller_keys): Likewise.
9272 * ipa-split.c (verify_non_ssa_vars): Likewise.
9273 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
9274 (close_type_exposed_parameter, close_type_full_escape): Likewise.
9275 (close_addressof_down): Likewise.
9276 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
9277 (setup_allocno_left_conflicts_size): Likewise.
9278 (ira_reassign_conflict_allocnos): Likewise.
9279 (ira_reassign_pseudos): Likewise.
9280 * ira-emit.c (change_loop): Likewise.
9281 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
9282 * lto-streamer-out.c (write_symbol): Likewise.
9283 * predict.c (expr_expected_value_1): Likewise.
9284 * regstat.c (regstat_bb_compute_ri): Likewise.
9285 * sel-sched.c (create_block_for_bookkeeping): Likewise.
9286 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
9287 * stmt.c (expand_case): Likewise.
9288 * tree-eh.c (emit_eh_dispatch): Likewise.
9289 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
9290 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
9291 Likewise.
9292 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
9293 (rdg_build_components): Likewise.
9294 * tree-object-size.c (collect_object_sizes_for): Likewise.
9295 * tree-sra.c (convert_callers): Likewise.
9296 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
9297 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
9298 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
9299
f1b62c9f
UB
93002010-08-19 Uros Bizjak <ubizjak@gmail.com>
9301
9302 * config/i386/i386.md (*lea_1): Use P mode iterator.
9303 (lea add splitter): Also handle DImode operands.
9304 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
9305 predicate. Do not use ix86_lea_for_add_ok.
9306 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
9307 (lea ashift splitter): Also handle DImode operands.
9308 (DImode lea ashift splitter): Remove splitter.
9309
93102010-08-19 Uros Bizjak <ubizjak@gmail.com>
9311
9312 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
9313 ix86_binary_operator_ok.
9314
5e841c82
AB
93152010-08-19 Andrey Belevantsev <abel@ispras.ru>
9316
9317 PR rtl-optimization/44691
9318 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
f1b62c9f 9319 is not a register.
5e841c82 9320
c92f1823
IB
93212010-08-19 Ian Bolton <ian.bolton@arm.com>
9322
9323 PR target/45070
9324 * config/arm/arm.c (arm_output_epilogue): Ensure that return
9325 value of size 1-3 is handled correctly.
9326
f096c02a
IB
93272010-08-19 Ian Bolton <ian.bolton@arm.com>
9328
9329 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
9330 type for the conditional has wide enough range.
9331
0fb2f9b1
UB
93322010-08-18 Uros Bizjak <ubizjak@gmail.com>
9333
9334 PR target/45327
9335 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
9336 ix86_binary_operator_ok.
9337
21667997
UB
93382010-08-18 Uros Bizjak <ubizjak@gmail.com>
9339
9340 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
9341 <default>: Swap operands 1 and 2 for alternative 2 to use existing
9342 code to output insn mnemonic. Fix comment.
9343 (*addsi_1_zext): Add r-r-0 alternative 1.
9344 <TYPE_LEA>: Split insn to lea.
9345 <default>: Handle alternative 1.
9346 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
9347 multi-level if_then_else RTX to set "type" attribute.
9348 <default>: Handle alternative 2.
9349 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
9350 Use cond RTX instead of multi-level if_then_else RTX to set
9351 "type" attribute.
9352 <default>: Handle alternatives 2 and 4.
9353 (lea splitters): Update calls to ix86_lea_for_add_ok.
9354
9355 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
9356 argument.
9357 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
9358
480161b5
RG
93592010-08-18 Richard Guenther <rguenther@suse.de>
9360
9361 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
9362 use operand helpers.
9363
e5f5fa2d
PB
93642010-08-18 Paolo Bonzini <bonzini@gnu.org>
9365
9366 PR middle-end/45292
9367 * optabs.c (expand_bool_compare_and_swap): Expand pending
9368 pops before trying the optab.
9369
8019fcfb
YQ
93702010-08-18 Yao Qi <yao@codesourcery.com>
9371
9372 PR target/45094
21667997 9373 * config/arm/arm.c (output_move_double): Fix typo generating
8019fcfb
YQ
9374 instructions ('ldr'->'str').
9375
c701e857
MK
93762010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
9377
9378 PR rtl-optimization/42575
9379 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
9380 live ranges.
9381
029e79eb
MS
93822010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
9383
9384 * config/arm/arm-protos.h (arm_expand_sync): New.
9385 (arm_output_memory_barrier, arm_output_sync_insn): New.
9386 (arm_sync_loop_insns): New.
9387 * config/arm/arm.c (FL_ARCH7): New.
9388 (FL_FOR_ARCH7): Include FL_ARCH7.
9389 (arm_arch7): New.
9390 (arm_print_operand): Support %C markup.
9391 (arm_legitimize_sync_memory): New.
9392 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
9393 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
9394 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
9395 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
9396 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
9397 (arm_process_output_sync_insn, arm_output_sync_insn): New.
9398 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
9399 * config/arm/arm.h (struct arm_sync_generator): New.
9400 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
9401 (TARGET_HAVE_MEMORY_BARRIER): New.
9402 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
9403 * config/arm/arm.md: Include sync.md.
9404 (UNSPEC_MEMORY_BARRIER): New.
9405 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
9406 (VUNSPEC_SYNC_OP):New.
9407 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
9408 (sync_result, sync_memory, sync_required_value): New attributes.
9409 (sync_new_value, sync_t1, sync_t2): Likewise.
9410 (sync_release_barrier, sync_op): Likewise.
9411 (length): Add logic to length attribute defintion to call
9412 arm_sync_loop_insns when appropriate.
9413 * config/arm/sync.md: New file.
9414
a085a55a
JJ
94152010-08-17 Jakub Jelinek <jakub@redhat.com>
9416
9417 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
9418 ENABLE_TREE_CHECKING.
9419 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
9420 and GCC >= 4.3.
9421
1c111d0a
L
94222010-08-17 H.J. Lu <hongjiu.lu@intel.com>
9423
9424 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
9425 or optimizing for size, always avoid lea if possible.
9426
21667997 9427 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
1c111d0a 9428
e2a1fcf0
IS
94292010-08-17 Iain Sandoe <iains@gcc.gnu.org>
9430
9431 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
21667997 9432 Dunmmy function with NULL return unless the target is
e2a1fcf0 9433 OSX >= 10.6 (Darwin10).
21667997 9434
74164603 94352010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
2642f659
JH
9436
9437 * gcc.c (spec_function): Add remove-outfile.
9438 (remove_outfile_spec_function): New function.
21667997 9439 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2642f659
JH
9440 * invoke.texi (replace-outfile): Document.
9441
2c65142a
UB
94422010-08-17 Uros Bizjak <ubizjak@gmail.com>
9443
9444 PR target/45296
9445 * reginfo.c (globalize_reg): Reject stack registers.
9446
fd4a760e
RG
94472010-08-17 Richard Guenther <rguenther@suse.de>
9448
9449 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
9450 list of conditional equivalences.
9451 (free_all_edge_infos): Adjust.
9452 (record_equivalences_from_incoming_edge): Likewise.
9453 (record_cond): Likewise.
9454 (build_and_record_new_cond): Likewise.
9455 (record_conditions): Likewise.
9456 (dom_opt_leave_block): Likewise.
9457
b17b584f
KT
94582010-08-17 Kai Tietz <kai.tietz@onevision.com>
9459
9460 * doc/invoke.texi (ms-extension): Add documentation.
9461
743ad76e
RG
94622010-08-17 Richard Guenther <rguenther@suse.de>
9463
21667997 9464 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
743ad76e 9465
51f4ec66
SZ
94662010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
9467
9468 PR c/40563
9469 * c-decl.c (diagnose_uninitialized_cst_member): New function.
9470 (finish_decl): Use it to issue a -Wc++-compat warning about
9471 uninitialized const field in struct or union.
2c65142a 9472
51f4ec66
SZ
9473 (finish_struct): Use strip_array_types.
9474
3373692b
JJ
94752010-08-17 Jakub Jelinek <jakub@redhat.com>
9476
9477 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
9478 functions.
9479 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
9480 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
9481 call block_nreverse here.
9482 (blocks_nreverse): Rename decl temporary to block.
9483
c29e2982
BS
94842010-08-16 Bernd Schmidt <bernds@codesourcery.com>
9485
9486 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
9487 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
9488 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
9489 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
9490 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
9491 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
9492 thumb2_iorsi3): Delete.
9493 (orsi_notsi_si): No longer a named pattern.
9494 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
9495 * config/arm/predicates.md (shift_amount_operand): New.
9496 (mult_operator): New.
9497 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
9498 attr enabled): New.
9499 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
9500 arch matches t2.
9501 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
9502 (not_shiftsi_compare0): Likewise, renamed from
9503 arm_notsi_shiftsi_compare0.
9504 (not_shiftsi_compare0_scratch): Likweise, renamed from
9505 arm_notsi_shiftsi_compare0_scratch.
9506 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
9507 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
9508 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
9509 so that the register alternative is disabled when the shift_operator
9510 is MULT. Use "M" as the constraint for constants.
9511 (arith_shiftsi splitter): Enable for TARGET_32BIT.
9512 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
9513 constraint for constants.
9514 (arith_shiftsi_compare0_scratch): Likewise.
9515 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
9516 Handle Thumb2 alternative.
9517
c878765b
JM
95182010-08-16 Joseph Myers <joseph@codesourcery.com>
9519
9520 * doc/options.texi (NoDriverArg): Document.
9521 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
9522 -MDX and -MMDX.
9523 * opt-functions.awk (switch_flags): Handle NoDriverArg.
9524 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
9525 marking for CL_NO_DRIVER_ARG options when in the driver.
9526 * opts.h (CL_NO_DRIVER_ARG): Define.
9527 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
9528 CL_COMMON): Update values.
9529
603349bf
JM
95302010-08-16 Joseph Myers <joseph@codesourcery.com>
9531
9532 * common.opt: Add driver options.
9533 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
9534 * doc/options.texi (Driver, RejectDriver): Document.
9535 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
9536 print_prog_name, print_multi_directory, print_sysroot,
9537 print_multi_os_directory, print_multi_lib,
9538 print_sysroot_headers_suffix, report_times, combine_flag,
9539 use_pipes, wrapper_string): Remove.
9540 (save_switch, driver_unknown_option_callback,
9541 driver_wrong_lang_callback, driver_post_handling_callback,
9542 driver_handle_option): New.
9543 (spec_lang, last_language_n_infiles): Make file-scope static
9544 instead of local to process_command.
9545 (process_command): Use decode_cmdline_options_to_array and
9546 read_cmdline_option for option processing. Compute have_c in
9547 prescan of decoded options.
9548 * opt-functions.awk (switch_flags): Handle Driver and
9549 RejectDriver.
9550 (var_type, var_type_struct): Handle Separate options as generating
9551 const char * variables.
9552 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
9553 CL_TARGET to be passed by caller if required.
9554 (decode_cmdline_options_to_array): Update comment.
9555 * opts.c (complain_wrong_lang): Handle options only valid for the
9556 driver.
9557 (decode_options): Update call to decode_cmdline_options_to_array.
9558 (print_filtered_help): Ignore driver-only options.
9559 (print_specific_help): Ignore CL_DRIVER.
2c65142a 9560 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
603349bf
JM
9561 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
9562 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
9563 Update values.
9564
4b228e61
RG
95652010-08-16 Richard Guenther <rguenther@suse.de>
9566
9567 * tree-cfg.c (verify_types_in_gimple_reference): Verify
9568 TARGET_MEM_REF a bit.
9569 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
9570 (create_mem_ref_raw): Always create TMR_OFFSET, store the
9571 alias pointer type via it.
9572 (copy_mem_ref_info): Adjust.
9573 (maybe_fold_tmr): Likewise.
9574 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
9575 (reference_alias_ptr_type): Likewise.
9576 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
9577 adjust documentation of TMR_OFFSET operand.
9578 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
9579 use the alias pointer type.
9580 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
9581 initialize mem attrs but the TMR itself.
9582 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
9583 similar to MEM_REF.
9584 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
9585 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
9586 (unshare_and_remove_ssa_names): Likewise.
9587 (copy_ref_info): Adjust.
9588 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
9589 TARGET_MEM_REF case.
9590 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
9591 at TMR_ORIGINAL.
9592 * tree.h (TMR_ORIGINAL): Remove.
9593 * gimple.c (get_base_address): For TARGET_MEM_REF with a
9594 symbol return that.
9595 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
9596 with a symbol.
9597 (get_addr_base_and_unit_offset): Likewise.
9598 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
9599 TARGET_MEM_REFs.
9600 (indirect_ref_may_alias_decl_p): Likewise.
9601 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
9602
ef7e0035
UB
96032010-08-15 Uros Bizjak <ubizjak@gmail.com>
9604
9605 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
9606 with GCC version 4.6, the default setting (when not optimizing
9607 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
9608 been changed to -fomit-frame-pointer.
9609
5fc265c1
IS
96102010-08-15 Iain Sandoe <iains@gcc.gnu.org>
9611
ef7e0035 9612 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
5fc265c1
IS
9613 Darwin10. Do not link libgcc.a for Darwin >= 9.
9614
09ccff9f
GP
96152010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
9616
9617 * doc/invoke.texi (Warning Options): Fix terminology and markup
9618 in the description of how unknown warning options are handled.
9619
69f11a13
IR
96202010-08-15 Ira Rosen <irar@il.ibm.com>
9621
9622 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
9623 in basic blocks.
9624 (vect_supportable_dr_alignment): Check alignment for basic blocks.
ef7e0035 9625 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
69f11a13
IR
9626 data references.
9627 (vect_bb_vectorization_profitable_p): New function.
9628 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
9629 check if it's worthwhile to vectorize the basic block.
9630
faa832a7
AS
96312010-08-14 Anatoly Sokolov <aesok@post.ru>
9632
9633 * reload.h (register_move_cost, memory_move_secondary_cost,
9634 secondary_reload_class): Adjust prototype.
9635 * rtl.h (reg_class_subset_p): Adjust prototype.
9636 * reload.c (secondary_reload_class): Change arguments type from
9637 enum reg_class to reg_class_t. Change result type to reg_class_t.
9638 * reginfo.c (register_move_cost, reg_class_subset_p): Change
9639 arguments type from enum reg_class to reg_class_t.
9640 (memory_move_secondary_cost): Change arguments type from
9641 enum reg_class to reg_class_t. Change type of saved_flags to
9642 reg_class_t.
9643
ef7e0035 9644 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
faa832a7
AS
9645 Remove macros.
9646 (mips_cost): Remove.
9647 (struct mips_rtx_cost_data): Moved to mips.c.
9648 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
9649 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
9650 (mips_cost): Make static.
9651 (mips_canonicalize_move_class): Change argument type to reg_class_t.
9652 Change result type to reg_class_t.
9653 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
9654 type from enum reg_class to reg_class_t.
9655 (mips_register_move_cost): Make static. Change arguments
9656 type from enum reg_class to reg_class_t.
9657 (mips_memory_move_cost): New function.
9658 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9659
6d1e1a26
RS
96602010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
9661
9662 PR rtl-optimization/43358
9663 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
9664 of a single hard register, using simplify_subreg_regno to decide
9665 what that register should be.
9666
a44ecea1
MX
96672010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
9668
9669 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
9670 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
9671 (loongson_pmull<V_suffix>): Rename to...
9672 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
9673
74164603 96742010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
1b2d4118 9675
eed023cc 9676 * configure.ac: Enable -fomit-frame-pointer on darwin
1b2d4118
JH
9677 which support dwarf2.
9678 * config/i386/i386.c (override_options): Same.
9679
9b821a09
JZ
96802010-08-13 Jie Zhang <jie@codesourcery.com>
9681
ef7e0035 9682 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9b821a09 9683
644fa7ac
JM
96842010-08-12 Joseph Myers <joseph@codesourcery.com>
9685
9686 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
9687 -MMD.
9688
3cb35c12
CF
96892010-08-12 Changpeng Fang <changpeng.fang@amd.com>
9690
9691 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
9692 up dot_prod pattern searching if a stmt is outside the loop.
9693
d79389af
L
96942010-08-12 H.J. Lu <hongjiu.lu@intel.com>
9695 Uros Bizjak <ubizjak@gmail.com>
9696
9697 * config.gcc: Handle --enable-frame-pointer.
9698
9699 * configure.ac: Add --enable-frame-pointer.
9700 * configure: Regenerated.
9701
9702 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
9703 (override_options): If not configured with --enable-frame-pointer,
9704 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
9705 optimizing for size), -fasynchronous-unwind-tables and
9706 -maccumulate-outgoing-args by default.
9707
d2be8071
JJ
97082010-08-12 Jakub Jelinek <jakub@redhat.com>
9709
ef7e0035 9710 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
d2be8071 9711
a8c56818
JJ
9712 PR middle-end/45262
9713 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
9714 -a overflows. Normalize the range.
9715
2d698d3b
RG
97162010-08-12 Richard Guenther <rguenther@suse.de>
9717
9718 PR tree-optimization/45232
9719 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
9720 for types with undefined overflow.
9721 (reassociate_bb): Allow re-associating of bit and min/max
9722 operations for types with undefined overflow.
9723 * tree-ssa-forwprop.c (associate_plusminus): New function.
9724 (tree_ssa_forward_propagate_single_use_vars): Call it.
9725
1be38ccb
RG
97262010-08-12 Richard Guenther <rguenther@suse.de>
9727
9728 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
9729 * tree-ssa-alias.c (get_ptr_info): Move ...
9730 * tree-ssanames.c (get_ptr_info): ... here. Initialize
9731 align and misalign fields conservatively.
9732 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
9733 derive alignment information.
9734 (evaluate_stmt): Derive alignment information from memory
9735 allocation functions.
9736 * tree.h (get_pointer_alignment): Make unsigned.
9737 * builtins.c (get_object_alignment): Use alignment information we
9738 have computed for pointers.
9739 (get_pointer_alignment): Likewise. Make conservative, return
9740 and unsigned value.
9741 (expand_builtin_strlen): Adjust.
9742 (expand_builtin_memcmp): Likewise.
9743 (expand_builtin_strcmp): Likewise.
9744 (expand_builtin_strncmp): Likewise.
9745 (get_builtin_sync_mem): Use at least mode alignment.
9746 (fold_builtin_memset): Adjust.
9747 (fold_builtin_memory_op): Likewise.
9748 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
9749 information also dump pointer alignment knowledge.
9750 (dump_gimple_stmt): Likewise.
9751
a96ad348
UB
97522010-08-12 Uros Bizjak <ubizjak@gmail.com>
9753
9754 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
9755 (EMPTY_FIELD_BOUNDARY): Remove.
9756 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
9757
49b48605
JJ
97582010-08-12 Jakub Jelinek <jakub@redhat.com>
9759
9760 PR debug/45259
9761 * caller-save.c (save_call_clobbered_regs): Only swap notes with
9762 DEBUG_INSNs if n_regs_saved.
9763
3565ffed
WG
97642010-08-12 Wei Guozhi <carrot@google.com>
9765
9766 PR target/44999
9767 * config/arm/arm.md (andsi3): Change to zero extension if possible.
9768 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
9769
183c87cd
VM
97702010-08-11 Vladimir Makarov <vmakarov@redhat.com>
9771
9772 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
9773
9774 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
9775
cb5da135 97762010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9707eeb0
SP
9777
9778 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
9779 the case removed in the previous patch, when the only phi argument
9780 is defined in the same loop as the phi node itself. Handle it
9781 separately from the invariant case by both propagating it outside
9782 the region and replacing the phi node with an assign.
9783
cb5da135 97842010-08-11 Sebastian Pop <sebastian.pop@amd.com>
974335d6
SP
9785
9786 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
9787 constant phi nodes with one argument are is_gimple_min_invariant
9788 and SSA_NAME_IS_DEFAULT_DEF.
9789
cb5da135 97902010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
85437633
AS
9791
9792 * graphite-cloog-util.c (oppose_constraint):
9793 Extend loop counter's value range (CLOOG_ORG).
9794 (cloog_matrix_to_ppl_constraint): Same.
9795 (new_Constraint_System_from_Cloog_matrix): Same.
9796 * graphite-cloog-compat.h (matrix_num_type): New.
9797
cb5da135 97982010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
85437633
AS
9799
9800 * graphite.c (graphite_initialize): Do not initialize
9801 CLooG and initialize the Parma Polyhedra Library
9802 manually when using CLOOG_ORG.
9803 (graphite_finalize): Do not finalize CLooG and finalize
9804 the Parma Polyhedra Library manually when using CLOOG_ORG.
9805 * graphite-cloog-compat.h (cloog_initialize): Hide function
9806 when using CLOOG_ORG.
9807 (cloog_finalize): Same.
9808
cb5da135 98092010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
1461761b
AS
9810
9811 * graphite-clast-to-gimple.c (free_scattering): Change
9812 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
9813 (CLOOG_ORG).
9814 (build_cloog_prog): Same.
9815 * graphite-cloog-compat.h (cloog_domain): Removed.
9816 (cloog_scattering): New.
9817 (cloog_set_domain): Removed.
9818 (cloog_set_scattering): New.
9819 (cloog_next_domain): Removed.
9820 (cloog_next_scattering): New.
9821 (cloog_set_next_domain): Removed.
9822 (cloog_set_next_scattering): New.
9823 (CloogScatteringList): New.
9824 (CloogScattering): New.
9825 (cloog_scattering_free): New.
9826 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
9827 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
9828 New.
9829
cb5da135 98302010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
60f87855
AS
9831
9832 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
9833 CloogState.
9834 (set_cloog_options): Same.
9835 (print_clast_stmt): Same.
9836 (scop_to_clast): Same.
9837 (print_generated_program): Same.
9838 (gloog): Same.
9839 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
9840 (scop_to_clast): Extend with CloogState.
9841 * graphite-cloog-util.c: Include graphite-cloog-compat.h
9842 (new_Cloog_Domain_from_ppl_Polyhedron):
9843 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
9844 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
9845 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9846 * graphite-cloog-util.h (build_cloog_prog): Same.
9847 * graphite-cloog-copat.h (build_cloog_prog): New.
9848 (CloogState): New.
9849 (cloog_state_malloc): New.
9850 (cloog_state_free): New.
9851 (cloog_loop_malloc): New.
9852 (cloog_options_malloc): New.
9853 (cloog_statement_alloc): New.
9854 (cloog_domain_from_cloog_matrix): New.
9855 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
9856 (new_Cloog_Domain_from_ppl_Polyhedron): New.
9857
cb5da135 98582010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4431102b
AS
9859
9860 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
9861 type of NAME now depends on used CLooG version.
9862 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
9863 (gcc_type_for_clast_expr): Same.
9864 (print_clast_stmt): Replace pprint with clast_pprint.
9865 * graphite-cloog-compat.h: Provide compatibility macros for
9866 CLooG Legacy.
9867 (clast_name_p): New.
9868 (clast_expr_term): New.
9869 (clast_expr_red): New.
9870 (clast_expr_bin): New.
9871 (clast_pprint): New.
9872
cb5da135 98732010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
ac3b070a
AS
9874
9875 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
9876 compatible to newer CLooG releases (CLOOG_ORG).
9877 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
9878 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
9879 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
9880 (build_cloog_prog) : New.
9881 (cloog_program_extract_scalars): New.
9882 (cloog_program_scatter): New.
9883
cb5da135 98842010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2bbb190a
AS
9885
9886 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
9887 conditionally (CLOOG_ORG).
9888 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
9889 (cloog_statement_usr): New.
9890 (cloog_domain): Same.
9891 (cloog_set_domain): Same.
9892 (cloog_next_domain): Same.
9893 (cloog_set_next_domain): Same.
9894 (cloog_program_nb_scattdims): Same.
9895 (cloog_program_set_nb_scattdims): Same.
9896 (cloog_program_names): Same.
9897 (cloog_program_set_names): Same.
9898 (cloog_program_set_context): Same.
9899 (cloog_program_set_loop): Same.
9900 (cloog_program_blocklist): Same.
9901 (cloog_program_set_blocklist): Same.
9902 (cloog_program_scaldims): Same.
9903 (cloog_program_set_scaldims): Same.
9904 (cloog_names_nb_parameters): Same.
9905 (cloog_names_set_nb_parameters): Same.
9906 (cloog_names_parameters): Same.
9907 (cloog_names_set_parameters): Same.
9908 (cloog_names_set_nb_iterators): Same.
9909 (cloog_names_set_iterators): Same.
9910 (cloog_names_set_nb_scattering): Same.
9911 (cloog_names_set_scattering): Same.
9912 (cloog_statement_set_usr): Same.
9913 (cloog_loop_set_next): Same.
9914 (cloog_loop_set_domain): Same.
9915 (cloog_loop_set_block): Same.
9916 (cloog_block_list_next): Same.
9917 (cloog_block_list_set_next):
9918 (cloog_block_list_set_block): Same.
9919
cb5da135 99202010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5d737345
SP
9921
9922 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
9923 a bool.
9924 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
9925 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
9926 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
9927 when something has been changed.
9928 (rewrite_commutative_reductions_out_of_ssa): Same.
9929
cb5da135 99302010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4ee23fa8 9931
ab756588
SP
9932 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
9933 handle the case when def is in the sese region.
9934 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
9935 for invariant expressions.
9936 (rewrite_cross_bb_phi_deps): Removed.
9937 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
9938 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
cb5da135 9939 rewrite_cross_bb_phi_deps.
ab756588 9940
cb5da135 99412010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ab756588 9942
4ee23fa8
SP
9943 * graphite-sese-to-poly.c
9944 (rewrite_commutative_reductions_out_of_ssa_loop): Call
9945 scev_analyzable_p only on is_gimple_reg
9946
cb5da135 99472010-08-11 Sebastian Pop <sebastian.pop@amd.com>
1c2a7491
SP
9948
9949 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
9950 (rewrite_close_phi_out_of_ssa): Propagate constant values or
9951 parametric expressions outside the scop region.
9952 (rewrite_cross_bb_scalar_deps): Same.
9953 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
9954
cb5da135 99552010-08-11 Sebastian Pop <sebastian.pop@amd.com>
320532a8
SP
9956
9957 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
9958 SSA_NAME_DEF_STMT only on SSA_NAMEs.
9959
cb5da135 99602010-08-11 Sebastian Pop <sebastian.pop@amd.com>
2847388e
SP
9961
9962 * tree-scalar-evolution.c (instantiate_scev_name): Do not
9963 instantiate default definitions.
9964
cb5da135 99652010-08-11 Vladimir Kargov <kargov@gmail.com>
f4ce375d
VK
9966 Sebastian Pop <sebastian.pop@amd.com>
9967
9968 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
9969 (loop_exits_from_bb_p): New.
9970 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
9971 (loop_exits_from_bb_p): Declared.
9972 * graphite-scop-detection.c (scopdet_basic_block_info): Call
9973 loop_exits_to_bb_p.
9974
cb5da135 99752010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a7d00e71
SP
9976
9977 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
9978 extra parameter for the region. Call scev_analyzable_p.
9979 (rewrite_reductions_out_of_ssa): Update call to
9980 rewrite_close_phi_out_of_ssa.
9981 (rewrite_cross_bb_phi_deps): Same.
9982 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
9983 parameter for the region. Call scev_analyzable_p.
9984 (rewrite_commutative_reductions_out_of_ssa): Update call to
9985 rewrite_commutative_reductions_out_of_ssa_loop.
9986
cb5da135 99872010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6f23dd91
SP
9988
9989 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
9990
cb5da135 99912010-08-11 Sebastian Pop <sebastian.pop@amd.com>
87b28340
SP
9992
9993 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
9994 SSA scalar phi nodes that can be scev_analyzable_p.
9995
cb5da135 99962010-08-11 Sebastian Pop <sebastian.pop@amd.com>
3dd2dd57
SP
9997
9998 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
9999 handle SSA_NAME_IS_DEFAULT_DEF.
10000
cb5da135 100012010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a0dd1502
SP
10002
10003 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
10004
cb5da135 100052010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8af6d9cd
SP
10006
10007 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
10008 case non close-phi nodes with one argument.
10009
cb5da135 100102010-08-11 Sebastian Pop <sebastian.pop@amd.com>
f36fc876
SP
10011
10012 * sese.h (scev_analyzable_p): Scevs could be expressions without
10013 chrecs and still be scev_analyzable_p.
10014
cb5da135 100152010-08-11 Sebastian Pop <sebastian.pop@amd.com>
57fe3c87
SP
10016
10017 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10018
cb5da135 100192010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a0d1afb3
SP
10020
10021 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
10022 * cfgloop.h (struct loop): Remove single_iv field.
10023 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
10024 (scop_canonicalize_loops): Removed.
10025 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
10026 over all the loop phi nodes in loop->header.
10027 (build_poly_scop): Remove use of scop_canonicalize_loops.
10028
cb5da135 100292010-08-11 Sebastian Pop <sebastian.pop@amd.com>
dba9acfa
SP
10030
10031 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
10032 handle GIMPLE_CALL.
10033
cb5da135 100342010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8b059232
SP
10035
10036 * tree-chrec.c (chrec_apply): Should only apply to the specified
10037 variable. Also handle multivariate chains of recurrences that
10038 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
10039
cb5da135 100402010-08-11 Sebastian Pop <sebastian.pop@amd.com>
2e286fd2
SP
10041
10042 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
10043 (debug_clast_name_indexes_1): Removed.
10044 (debug_clast_name_indexes): Removed.
10045 (pbb_to_depth_to_oldiv): Removed.
10046 (build_iv_mapping): Replace the use of rename_map with iv_map.
10047 (translate_clast_user): Remove uses of rename_map. Allocate and
10048 free iv_map.
10049 (translate_clast_for_loop): Remove uses of rename_map.
10050 (translate_clast_for): Same.
10051 (translate_clast_guard): Same.
10052 (translate_clast): Same.
10053 (gloog): Same.
10054 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
10055 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
10056 * sese.c (set_rename): Now static.
10057 (rename_variables_in_stmt): Removed.
10058 (rename_uses): New.
10059 (is_parameter): Removed.
10060 (is_iv): Removed.
10061 (expand_scalar_variables_call): Removed.
10062 (expand_scalar_variables_ssa_name): Removed.
10063 (expand_scalar_variables_expr): Removed.
10064 (expand_scalar_variables_stmt): Removed.
10065 (expand_scalar_variables): Removed.
10066 (rename_variables): Removed.
10067 (remove_condition): Removed.
10068 (get_true_edge_from_guard_bb): Removed.
10069 (get_false_edge_from_guard_bb): Removed.
10070 (struct igp): Removed.
10071 (default_before_guard): Removed.
10072 (convert_for_phi_arg): Removed.
10073 (add_guard_exit_phis): Removed.
10074 (insert_guard_phis): Removed.
10075 (graphite_copy_stmts_from_block): Now also uses iv_map and a
10076 region. Do not copy conditions. Do not copy induction variables.
10077 Call rename_uses.
10078 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
10079 the translated statement. Use the iv_map for the induction
10080 variable renaming.
10081 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
10082 (set_rename): Removed declaration.
10083 (scev_analyzable_p): ...here.
10084 * tree-chrec.c (chrec_apply_map): New.
10085 * tree-chrec.h (chrec_apply_map): Declared.
10086
cb5da135 100872010-08-11 Sebastian Pop <sebastian.pop@amd.com>
e11d25e0
SP
10088
10089 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
10090 insert_loop_close_phis.
10091 * sese.c (name_defined_in_loop_p): Removed.
10092 (expr_defined_in_loop_p): Removed.
10093 (alive_after_loop): Removed.
10094 (close_phi_not_yet_inserted_p): Removed.
10095 (struct alep): Removed.
10096 (add_loop_exit_phis): Removed.
10097 (insert_loop_close_phis): Removed.
10098
cb5da135 100992010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
61298f69
AS
10100
10101 * graphite-cloog-util.c
10102 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
10103 * graphite-poly.c
10104 (psct_scattering_dim_for_loop_depth): Same.
10105
cb5da135 101062010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
a9c2ba8f
AS
10107
10108 * graphite-cloog-util.h: Added cloog.h.
10109 * graphite-blocking.c: Removed cloog.h.
10110 * graphite-dependences.c: Same.
10111 * graphite-interchange.c: Same.
10112 * graphite-poly.c: Same.
10113 * graphite-ppl.c: Same.
10114 * graphite-scop-detection.c: Same.
10115 * graphite-sese-to-poly.c:
10116 Removed cloog.h.
10117 Removed graphite-clast-to-gimple.h.
10118 (check_poly_representation): Removed (unused).
10119 * graphite-sese-to-poly.h
10120 (check_poly_representation): Removed (unused).
10121
cb5da135 101222010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
0647324a
AS
10123
10124 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
10125 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
10126 (graphite-cloog-util.o): New.
10127 (graphite-ppl.o): Added graphite-cloog-util.h.
10128 * graphite-clast-to-gimple.c:
10129 Added graphite-cloog-util.h to include statements.
10130 * graphite-cloog-util.c: New.
10131 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
10132 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10133 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10134 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10135 (insert_constraint_into_matrix): Same.
10136 (ppl_Constrain_System_number_of_constraints): Same.
10137 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
10138 (oppose_constraint): Same.
10139 (cloog_matrix_to_ppl_constraint): Same.
10140 (new_Constraint_System_from_Cloog_Matrix): Same.
10141 * graphite-cloog-util.h: New.
10142 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
10143 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10144 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10145 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10146 (insert_constraint_into_matrix): Same.
10147 * graphite-ppl.c:
10148 Added graphite-cloog-util.h to include statements.
10149 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
10150 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10151 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10152 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10153 (insert_constraint_into_matrix): Same.
10154 (ppl_Constrain_System_number_of_constraints): Same.
10155 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
10156 (oppose_constraint): Same.
10157 (cloog_matrix_to_ppl_constraint): Same.
10158 (new_Constraint_System_from_Cloog_Matrix): Same.
10159 * graphite-ppl.h:
10160 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
10161 graphite-cloog-util.h.
10162 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10163 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10164 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10165 (insert_constraint_into_matrix): Same.
10166
cb5da135 101672010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
589ac63c
AS
10168
10169 * graphite-clast-to-gimple.c
10170 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
10171 (precision_for_interval): Same.
10172 (gcc_type_for_interval): Same.
10173 (compute_type_for_level): Same.
10174 * graphite-interchange.c
10175 (lst_interchange_profitable_p): Same.
10176 * graphite-poly.c
10177 (psct_scattering_dim_for_loop_depth): Same.
10178 * graphite-ppl.c
10179 (ppl_max_for_le_pointset): Same.
10180 (ppl_min_for_le_pointset): Same.
10181
cb5da135 101822010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d3e7b889
SP
10183
10184 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
10185 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
10186
cb5da135 101872010-08-11 Sebastian Pop <sebastian.pop@amd.com>
aedede66
SP
10188
10189 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
10190 rewrite_close_phi_out_of_ssa.
10191
cb5da135 101922010-08-11 Sebastian Pop <sebastian.pop@amd.com>
f2c51113
SP
10193
10194 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
10195
cb5da135 101962010-08-11 Sebastian Pop <sebastian.pop@amd.com>
32e68db9
SP
10197
10198 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
10199 rename_map.
10200 * sese.c (debug_rename_map): Same.
10201 (get_rename): Same.
10202 (set_rename): Same.
10203 (rename_variables_in_stmt): Same.
10204 (expand_scalar_variables_call): Same.
10205 (expand_scalar_variables_ssa_name): Same.
10206 (expand_scalar_variables_expr): Same.
10207 (expand_scalar_variables_stmt): Same.
10208 (expand_scalar_variables): Same.
10209 (rename_variables): Same.
10210 (graphite_copy_stmts_from_block): Same.
10211 (copy_bb_and_scalar_dependences): Same.
10212
cb5da135 102132010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8b164754
SP
10214
10215 * graphite-clast-to-gimple.c (copy_renames): Removed.
10216 (translate_clast_for): Do not call copy_renames.
10217 (translate_clast_guard): Same.
10218
cb5da135 102192010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9773d730
SP
10220
10221 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
10222 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
10223 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
10224 before rewrite_cross_bb_scalar_deps.
10225
cb5da135 102262010-08-11 Sebastian Pop <sebastian.pop@amd.com>
cc588970
SP
10227
10228 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
10229 Early return in when flag_associative_math is not set.
10230
cb5da135 102312010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4aa9a167
SP
10232
10233 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
10234 of SSA copies on edges except for loop->latch.
10235
cb5da135 102362010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ee646fc6
SP
10237
10238 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
10239 Split out of rewrite_reductions_out_of_ssa.
10240 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
10241 Declared.
10242 * graphite.c (graphite_transform_loops): Call it.
10243
cb5da135 102442010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6a7441f5
SP
10245
10246 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
10247
cb5da135 102482010-08-11 Alexander Monakov <amonakov@ispras.ru>
6a7441f5
SP
10249
10250 * dbgcnt.def (graphite_scop): New counter.
10251 * graphite.c: Include dbgcnt.h.
10252 (graphite_transform_loops): Use new counter to limit transformations.
10253 * Makefile.in (graphite.o): Depend on DBGCNT_H.
10254
cb5da135 102552010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d4332d00
SP
10256
10257 * passes.c (init_optimization_passes): Add pass_graphite.
10258 Schedule a pass_copy_prop before pass_graphite_transforms.
10259 * timevar.def (TV_GRAPHITE): Declared.
10260 * tree-pass.h (pass_graphite): Declared.
10261 * tree-ssa-loop.c (pass_graphite): New.
10262
cb5da135 102632010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14d0e129
SP
10264
10265 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
10266 Remove calls to rename_nb_iterations and rename_sese_parameters.
10267 * graphite-clast-to-gimple.h (gloog): Update declaration.
10268 * graphite.c (graphite_transform_loops): Update call to gloog.
10269 * sese.c (rename_variables_in_expr): Removed.
10270 (rename_nb_iterations): Removed.
10271 (rename_sese_parameters): Removed.
10272 * sese.h (rename_nb_iterations): Removed.
10273 (rename_sese_parameters): Removed.
10274
cb5da135 102752010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d1ba0721
SP
10276
10277 * graphite-clast-to-gimple.c (gloog): Remove call to
10278 sese_adjust_liveout_phis.
10279 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
10280 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
10281 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
10282 rewrite_phi_out_of_ssa.
10283 * sese.c (get_vdef_before_sese): Removed.
10284 (sese_adjust_vphi): Removed.
10285 (sese_adjust_liveout_phis): Removed.
10286 * sese.h (sese_adjust_liveout_phis): Removed.
10287
cb5da135 102882010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5fed5769
SP
10289
10290 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
10291 argument for the place after which to insert the out of SSA copy.
10292 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
10293 (rewrite_phi_out_of_ssa): Same.
10294 (rewrite_cross_bb_scalar_deps): Same.
10295 (insert_copyout): Removed.
10296 (insert_copyin): Removed.
10297 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
10298 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
10299 insert_copyin.
10300
cb5da135 103012010-08-11 Sebastian Pop <sebastian.pop@amd.com>
3a7086cc
SP
10302
10303 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
10304 (rewrite_reductions_out_of_ssa): Same.
10305 (rewrite_commutative_reductions_out_of_ssa): Same.
10306 (build_poly_scop): Do not call these functions.
10307 * graphite-sese-to-poly.h (build_poly_scop): Declared.
10308 (rewrite_reductions_out_of_ssa): Declared.
10309 (rewrite_commutative_reductions_out_of_ssa): Declared.
10310 * graphite.c (graphite_transform_loops): Call on every scop
10311 rewrite_commutative_reductions_out_of_ssa before calling
10312 rewrite_reductions_out_of_ssa and build_scop_bbs.
10313
cb5da135 103142010-08-11 Sebastian Pop <sebastian.pop@amd.com>
61ca46ce
SP
10315
10316 * graphite-dependences.c (dot_deps): Make system call to dotty run
10317 in background.
10318 (dot_deps_stmt): Same.
10319 * graphite-poly.c (dot_lst): Same.
10320
cb5da135 103212010-08-11 Sebastian Pop <sebastian.pop@amd.com>
159e4616
SP
10322
10323 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
10324 phi_arg_in_outermost_loop.
10325 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
10326 (remove_invariant_phi): Same.
10327
6cbd8875
AS
103282010-08-11 Anatoly Sokolov <aesok@post.ru>
10329
10330 * target.def (output_addr_const_extra): New hook.
10331 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
10332 * doc/tm.texi: Regenerate.
10333 * targhooks.c (default_asm_output_addr_const_extra): New function.
10334 * targhooks.h (default_asm_output_addr_const_extra): Declare.
cb1b497e 10335 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6cbd8875
AS
10336 target hook.
10337
10338 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10339 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
10340 * config/i386/i386.h (output_addr_const_extra): Rename to...
10341 (i386_asm_output_addr_const_extra): ...this. Make static.
10342 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10343
51ba747a
RH
103442010-08-11 Richard Henderson <rth@redhat.com>
10345
10346 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
10347
bfd71bc1
NC
103482010-08-11 Nick Clifton <nickc@redhat.com>
10349
10350 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
10351 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
10352 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
10353 stormy16-lib2-cmpsi.c.
10354
10355 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
10356 -O2.
10357
481e1176
JM
103582010-08-11 Joseph Myers <joseph@codesourcery.com>
10359
10360 * opts.h (struct cl_option_handler_func): Make handler take
10361 cl_decoded_option structure as parameter, not individual elements.
10362 (struct cl_option_handlers): Make callbacks take cl_decoded_option
10363 structure as parameter, not individual elements.
10364 (handle_option): Take cl_decoded_option structure as parameter,
10365 not individual elements.
10366 (handle_generated_option): Declare.
10367 * opts-common.c (handle_option): Take cl_decoded_option structure
10368 as parameter, not individual elements. Update calls to callback
10369 and handler functions.
10370 (handle_generated_option): New.
10371 (read_cmdline_option): Update calls to callback functions and
10372 handle_option.
10373 * opts.c (common_handle_option, complain_wrong_lang,
10374 unknown_option_callback, post_handling_callback,
10375 lang_handle_option, target_handle_option): Take cl_decoded_option
10376 structure as parameter, not individual elements.
10377 (lang_handle_option, target_handle_option, common_handle_option):
10378 Assert option has at most one argument.
10379 (enable_warning_as_error): Call handle_generated_option instead of
10380 handle_option. Do not pass -Werror argument as argument of
10381 generated option.
10382
e5fbc9bf
JDA
103832010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10384
10385 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10386 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10387 (SUBWORD_BOOL_CAS): Likewise.
10388 (SUBWORD_SYNC_OP): Likewise.
10389 (SUBWORD_TEST_AND_SET): Likewise.
10390 (FETCH_AND_OP_WORD): Parenthesise INF_OP
10391 (SUBWORD_SYNC_OP): Likewise.
10392 (OP_AND_FETCH_WORD): Likewise.
10393
d6fa2d17
XDL
103942010-08-10 Xinliang David Li <davidxl@google.com>
10395
10396 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
10397 compute max/min offset in address.
10398
9995f209
VM
103992010-08-10 Vladimir Makarov <vmakarov@redhat.com>
10400
10401 * ira-live.c: Include sbitmap.h.
10402 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
10403 Compress live ranges even more.
10404
175a62b7
NF
104052010-08-10 Nathan Froyd <froydnj@codesourcery.com>
10406
10407 * coverage.c (ctr_labels): Delete.
10408
8f4c6e28
BS
104092010-08-10 Bernd Schmidt <bernds@codesourcery.com>
10410
10411 PR bootstrap/45177
10412 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
10413 test here from arm_gen_load_multiple_1.
10414 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
10415 multiple_operation_profitable_p.
10416
a72ae88a
NF
104172010-08-10 Nathan Froyd <froydnj@codesourcery.com>
10418
009c04bf 10419 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
a72ae88a
NF
10420 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
10421
35b15a46
RH
104222010-08-10 Richard Henderson <rth@redhat.com>
10423
10424 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
10425 after saving registers. Assert that SSE registers are only saved
10426 with a sufficiently aligned frame.
10427 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
10428 remove stack_realign_fp handling.
10429 (ix86_expand_prologue): Save int registers before stack_realign_fp,
10430 and do not mark the stack alignment as frame related.
10431 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
10432
10433 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
10434 saves when re-aligning the stack.
10435
a398224a
NF
104362010-08-10 Nathan Froyd <froydnj@codesourcery.com>
10437
10438 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
10439 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
10440 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
10441
774038e6
NF
104422010-08-10 Nathan Froyd <froydnj@codesourcery.com>
10443
10444 * dwarf2out.c (struct die_struct): Move die_tag to the end.
10445
ceddf62c
SN
104462010-08-09 Sofiane Naci <sofiane.naci@arm.com>
10447
f6aa1e0f
RR
10448 * config/arm/iterators.md: New file.
10449 * config/arm/arm.md: Include iterators.md.
10450 (QHSI): Move to new file.
10451 (LTUGEU, cnb, optab, ior_xor): Likewise.
10452 * config/arm/iwmmxt.md (VMMX): Move to new file.
10453 (VSHFT, MMX_char): Likewise.
10454 * config/arm/neon.md (VD): Move to new file.
10455 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
10456 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
10457 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
10458 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
10459 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
10460 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
10461 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
10462 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
10463 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
10464 (Is_d_reg, V_mode_nunits): Likewise.
10465 * config/arm/vec-common.md (VALL): Move to new file.
10466 (VALLW, VINT, VINTW): Likewise.
ceddf62c 10467
5466d63d
BS
104682010-08-10 Bernd Schmidt <bernds@codesourcery.com>
10469
10470 PR middle-end/45182
10471 * combine.c (make_compound_operation): Don't try to convert
10472 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
10473
e80c2726
RG
104742010-08-10 Richard Guenther <rguenther@suse.de>
10475
10476 * tree.h (get_object_alignment): Adjust prototype.
10477 * builtins.c (get_object_alignment): Return unsigned int,
10478 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
10479 and TARGET_MEM_REF properly.
10480 (get_pointer_alignment): Adjust.
10481 * emit-rtl.c (get_mem_align_offset): Adjust comment.
10482 (set_mem_attributes_minus_bitpos): Adjust.
10483 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
10484
a024390f
RG
104852010-08-10 Richard Guenther <rguenther@suse.de>
10486
10487 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
10488 (copy_prop_visit_assignment): Simplify.
10489 (copy_prop_visit_stmt): Also visit assignments from
10490 constants.
10491 (copy_prop_visit_phi_node): Use operand_equal_p.
10492
ff61e417
NF
104932010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10494
10495 * ipa-split.c (find_split_points): Free stack.
10496
5a351c3c
NF
104972010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10498
10499 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
10500 * tree.c (tree_node_kind): Delete corresponding entries.
10501
0c9510ab
L
105022010-08-09 H.J. Lu <hongjiu.lu@intel.com>
10503
10504 * alias.c (may_alias_p): Remove unused ret.
10505
c6ea834c
BM
105062010-08-09 Bingfeng Mei <bmei@broadcom.com>
10507
10508 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
10509 alias_sets_conflict_p.
10510 (walk_mems_1): Moved from alias.c.
10511 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
a96ad348 10512 in alias.c.
ef7e0035
UB
10513 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
10514 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
10515 * alias.c (walk_mems_2): Moved to ddg.c.
c6ea834c
BM
10516 (walk_mems_1): Ditto.
10517 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
10518 to ddg.c.
10519 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
10520 disambiguation.
10521 *(may_alias_p): New function to check whether two memory expression
10522 may alias or not. Currently used in buidling inter-iteration memory
10523 dependence.
10524 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
10525 (insn_alias_sets_conflict_p): Removed
10526 *rtl.h (may_alias_p): New function prototype.
a96ad348 10527
72ac05b0
NF
105282010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10529
10530 * tree.c (nreverse): Assert that we don't have a BLOCK.
10531
f38958e8
NF
105322010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10533
10534 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
10535 * config/arm/arm.c (arm_get_pcs_model): Likewise.
10536 * config/avr/avr.c (init_cumulative_args): Likewise.
10537 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
10538 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
10539 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
10540 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10541 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10542 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10543 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
10544 * dwarf2out.c (gen_subprogram_die): Likewise.
10545 * function.c (allocate_struct_function): Likewise.
10546 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
10547 (deserves_ellipsis): Delete.
10548
ec64af64
RG
105492010-08-09 Richard Guenther <rguenther@suse.de>
10550
10551 * tree-ssa-copy.c (cached_last_copy_of): Remove.
10552 (valueize_val): New function.
10553 (get_last_copy_of): Remove.
10554 (set_copy_of_val): Simplify.
10555 (dump_copy_of): Likewise.
10556 (copy_prop_visit_cond_stmt): Use valueize_val.
10557 (copy_prop_visit_phi_node): Properly handle unvisited names.
10558 Drop code managing copy-of chains.
10559 (init_copy_prop): Adjust.
10560 (fini_copy_prop): Likewise.
10561 (execute_copy_prop): Remove obsolete comment.
10562
37609bf0
RG
105632010-08-09 Richard Guenther <rguenther@suse.de>
10564
10565 PR middle-end/44632
10566 * function.c (gimplify_parameters): Do not clear addressable
10567 bit of the original parameter.
10568
3e32c761
RG
105692010-08-09 Richard Guenther <rguenther@suse.de>
10570
10571 PR middle-end/45212
10572 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
10573 alignment from MEM_REF offset only if we took it from the
10574 base object.
10575
74164603 105762010-08-09 Eric Fisher <joefoxreal@gmail.com>
cee00e22
EF
10577
10578 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
10579
b3399d18
NF
105802010-08-08 Nathan Froyd <froydnj@codesourcery.com>
10581
10582 * c-tree.h (build_arg_info): Declare.
10583 * c-decl.c (build_arg_info): Define.
10584 (get_parm_info): Call it. Delete initialization code.
10585 * c-parser.c (c_parser_parms_declarator): Likewise.
10586 (c_parser_parms_list_declaractor): Likewise.
10587
e60bf9d4
NF
105882010-08-08 Nathan Froyd <froydnj@codesourcery.com>
10589
10590 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
10591 (struct c_arg_info): Change type of tags field.
10592 * c-decl.c (grokdeclarator): Update for changed type of tags field.
10593 (get_parm_info): Likewise.
10594 (store_parm_decls_newstyle): Likewise.
10595
e7c64c7d
NF
105962010-08-08 Nathan Froyd <froydnj@codesourcery.com>
10597
10598 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
10599 (branch_island_list): Delete.
10600 (branch_islands): Declare.
10601 (add_compiler_branch_island): Adjust for branch_islands instead of
10602 branch_island_list.
10603 (macho_branch_islands): Likewise.
10604 (no_previous_def): Likewise.
10605 (get_prev_label): Likewise.
10606
cf00499e
JDA
106072010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10608
10609 PR boehm-gc/34544
10610 * gthr-posix.h (__gthread_start): Delete.
10611 (__gthread_active_init): Use pthread_default_stacksize_np instead of
10612 pthread_create to determine if hpux pthreads are active.
10613 * gthr-posix95.h (__gthread_start): Delete.
10614 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
10615
1159da44
KT
106162010-08-08 Kai Tietz <kai.tietz@onevision.com>
10617
10618 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
10619 _WIN64 not expanded.
10620
f6ddf131
UB
106212010-08-07 Uros Bizjak <ubizjak@gmail.com>
10622 H.J. Lu <hongjiu.lu@intel.com>
10623
10624 PR target/45213
10625 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
10626 to output 32bit SFmode immediate as 8 byte sign extended value.
10627
17fec01d
MS
106282010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
10629
10630 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10631 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10632 (SUBWORD_BOOL_CAS): Likewise.
10633 (SUBWORD_SYNC_OP): Likewise.
10634 (SUBWORD_TEST_AND_SET): Likewise.
10635 (FETCH_AND_OP_WORD): Parenthesise INF_OP
10636 (SUBWORD_SYNC_OP): Likewise.
10637 (OP_AND_FETCH_WORD): Likewise.
10638
b0c13111
RR
106392010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10640
f6ddf131
UB
10641 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
10642 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
10643 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
10644 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
10645 generic part.
10646 (cortex_a9_sched_adjust_cost): New function.
10647 (xscale_sched_adjust_cost): New function.
10648 * config/arm/arm-protos.h (struct tune_params): New field
10649 sched_adjust_cost.
10650 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
b0c13111 10651
e0c7ff23
EB
106522010-08-06 Eric Botcazou <ebotcazou@adacore.com>
10653
10654 PR target/44942
10655 * config/sparc/sparc.c (function_arg_advance): Always take into account
10656 the padding, if any.
10657
0b4b14ac
RG
106582010-08-06 Richard Guenther <rguenther@suse.de>
10659
10660 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
10661 (dump_lattice_value): Dump it.
10662 (get_default_value): Adjust.
10663 (get_constant_value): Likewise.
10664 (set_value_varying): Likewise.
10665 (set_lattice_value): Make sure to not go up the lattice
10666 with bitwise constant values.
10667 (get_value_for_expr): Handle ADDR_EXPRs.
10668 (value_to_double_int): New function.
10669 (get_value_from_alignment): Likewise.
10670 (do_dbg_cnt): Adjust.
10671 (ccp_lattice_meet): Handle partially constant values.
10672 (bit_value_unop_1): New function.
10673 (bit_value_binop_1): Likewise.
10674 (bit_value_unop): Likewise.
10675 (bit_value_binop): Likewise.
10676 (evaluate_stmt): Track partially constant values if
10677 flag_tree_bit_ccp is set.
10678 (ccp_fold_stmt): Dump if we folded a predicate.
10679 (ccp_visit_stmt): Adjust.
10680 * common.opt (ftree-bit-ccp): New flag.
10681 * doc/invoke.texi (ftree-bit-ccp): Document.
10682 * opts.c (decode_options): Enable bit-CCP at -O1.
10683
4942323e
AM
106842010-08-06 Alan Modra <amodra@gmail.com>
10685
10686 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
10687 and -mrelocatable-lib description.
10688
5444da31
BS
106892010-08-05 Bernd Schmidt <bernds@codesourcery.com>
10690
10691 From Martin Thuresson <martint@google.com>
10692 * postreload.c (reload_cse_simplify_operands): Use
10693 SET_REGNO_RAW instead of SET_REGNO.
10694 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
10695 SET_REGNO.
10696 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
10697 instead of SET_REGNO.
10698 * rtl.h (SET_REGNO_RAW): New macro.
10699
c04fc4f0
EB
107002010-08-05 Eric Botcazou <ebotcazou@adacore.com>
10701
10702 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
10703 computations. Fix formatting issues.
10704 (num_sign_bit_copies1): Likewise.
10705 (canonicalize_condition): Likewise.
10706
bd95721f
RH
107072010-08-05 Richard Henderson <rth@redhat.com>
10708
10709 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
10710 (floor_log2): Use clz_hwi.
10711 (exact_log2): Use ctz_hwi.
10712 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
10713 * builtins.c (fold_builtin_bitop): Use them.
10714 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10715 * combine.c (get_pos_from_mask): Use ctz_hwi.
10716 * double-int.c (double_int_ctz): Likewise.
10717 * explow.c (force_reg): Likewise.
10718 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
10719
55b324a6
RH
107202010-08-05 Richard Henderson <rth@redhat.com>
10721
10722 PR target/45189
10723 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
10724 the alignment constant is properly sign-extended.
10725
29e9efdf
RG
107262010-08-05 Richard Guenther <rguenther@suse.de>
10727
10728 * expr.c (store_expr): Use emit_block_move only if both
10729 source and target are MEMs. Use store_bit_field if only
10730 the target is a MEM.
10731
c3576fa7
RH
107322010-08-05 Richard Henderson <rth@redhat.com>
10733
55b324a6 10734 PR debug/45188
c3576fa7
RH
10735 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
10736 (INCOMING_RETURN_ADDR_RTX): Likewise.
10737 (dwarf2out_do_frame): Remove conditional compilation.
10738 (dwarf2out_frame_init): Likewise.
10739
acdb4da7
NS
107402010-08-05 Nicolas Setton <setton@adacore.com>
10741
10742 * gcov.c (flag_display_progress): New static variable.
10743 (main): Display progress info on standard output if requested.
10744 (options): Add -d/--display-progress.
10745 (print_usage): Print them.
10746 (process_args): Handle them.
10747 * doc/gcov.texi: Document them.
10748
3e66255c
MJ
107492010-08-05 Martin Jambor <mjambor@suse.cz>
10750
10751 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
10752 (ipcp_insert_stage): Redirect only edges not flagged with
10753 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
10754 discovered constants.
10755
3949c4a7
MJ
107562010-08-05 Martin Jambor <mjambor@suse.cz>
10757
10758 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
10759 (struct ipa_param_descriptor): New fields types and
10760 cannot_devirtualize.
10761 (ipa_param_cannot_devirtualize_p): New function.
10762 (ipa_param_types_vec_empty): Likewise.
10763 (ipa_make_edge_direct_to_target): Declare.
10764 * ipa-cp.c: Fixed first stage driver name in initial comment,
10765 described devirtualization there too.
10766 (ipcp_analyze_node): Call ipa_analyze_params_uses.
10767 (ipcp_print_all_lattices): Print devirtualization info.
10768 (ipa_set_param_cannot_devirtualize): New function.
10769 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
10770 lattice to BOTTOM.
10771 (ipcp_init_stage): Merged into...
10772 (ipcp_generate_summary): ...its caller.
10773 (ipcp_change_tops_to_bottom): Also process type lists.
10774 (ipcp_add_param_type): New function.
10775 (ipcp_copy_types): Likewise.
10776 (ipcp_propagate_types): Likewise.
10777 (ipcp_propagate_stage): Also propagate types.
10778 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
10779 Also return true if propagated types require it.
10780 (ipcp_update_callgraph): Dump redirection info.
10781 (ipcp_process_devirtualization_opportunities): New function.
10782 (ipcp_const_param_count): Include known type information.
10783 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
10784 on new node. Fixed formatting.
10785 * ipa-prop.c (make_edge_direct_to_target): Renamed to
10786 ipa_make_edge_direct_to_target and changed all callers. Made
10787 externally visible.
10788 (ipa_node_duplication_hook): Duplicate types vector.
10789 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
10790 redirect outgoing calls for which we can't get a decl from the
10791 statement. Check that we can get a decl from the call statement.
10792 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10793 ipa_analyze_params_uses only when ipa-cp is disabled.
10794 * tree-inline.c (get_indirect_callee_fndecl): Removed.
10795 (expand_call_inline): Do not call get_indirect_callee_fndecl.
10796 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
10797 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
10798
4caa21a1
UB
107992010-08-05 Uros Bizjak <ubizjak@gmail.com>
10800
10801 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
10802 temporary. Emit move from temporary to accum, so REG_EQUAL note will
10803 be attached to this insn in correct mode.
10804
a5b2e0ef
UB
108052010-08-05 Uros Bizjak <ubizjak@gmail.com>
10806
10807 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
10808 using REGNO of base_reg directly.
10809
36b86f4a
JZ
108102010-08-05 Jie Zhang <jie@codesourcery.com>
10811
10812 PR tree-optimization/45144
10813 * tree-sra.c (type_consists_of_records_p): Return false
10814 if the record contains bit-field.
10815
9bf40564
RH
108162010-08-04 Richard Henderson <rth@redhat.com>
10817
106c3c10
RH
10818 * config/i386/i386.c (struct ix86_frame): Remove padding and
10819 to_allocate members.
10820 (ix86_compute_frame_layout): Don't store them.
10821 (ix86_can_use_return_insn_p): Use a more direct and more obviously
10822 correct condition for the position of the stack pointer.
10823 (ix86_expand_prologue): Compute remaining stack allocation based
10824 on the ultimate stack pointer offset.
10825 (ix86_expand_epilogue): Use more obvious expressions testing for
10826 the stack pointer already pointing to the saved registers.
10827
87ec2632
RH
10828 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
10829 duplication deconstructing the frame pointer. Simplify
10830 deallocation of the local stack frame.
10831
c9f4c451
RH
10832 * reg-notes.def (CFA_EXPRESSION): New.
10833 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
10834 (dwarf2out_frame_debug_cfa_expression): New.
10835 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
10836
10837 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
10838 * config/i386/i386.c (ix86_expand_prologue): Set it.
10839 (ix86_expand_epilogue): Clear it.
10840 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
10841 context, add REG_CFA_EXPRESSION notes.
10842
ec7ded37
RH
10843 * config/i386/i386.h (struct machine_frame_state): Rename from
10844 machine_cfa_state. Add members tracking SP and FP regardless
a5b2e0ef 10845 of the current CFA register.
ec7ded37
RH
10846 (ix86_cfa_state): Remove.
10847 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
10848 and sse_reg_save_offset members.
10849 (ix86_compute_frame_layout): Set them.
10850 (gen_push): Increment sp_offset too.
10851 (choose_baseaddr_len, choose_baseaddr): New.
10852 (ix86_emit_save_reg_using_mov): New.
10853 (ix86_emit_save_regs_using_mov): Use it.
10854 (ix86_emit_save_sse_regs_using_mov): Likewise.
10855 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
10856 compare vs the saved red_zone_offset.
10857 (pro_epilogue_adjust_stack): Adjust sp_offset.
10858 (ix86_adjust_stack_and_probe): Likewise.
10859 (ix86_expand_prologue): Set up, use, and validate the new
10860 frame_state_info members. Use gen_frame_mem.
10861 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
10862 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
10863 new frame_state_info members.
10864 (ix86_emit_leave): Likewise.
10865 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
10866 out-of-range stack pointer offsets here.
10867 (ix86_emit_restore_sse_regs_using_mov): Likewise.
10868 (ix86_expand_epilogue): Use and validate the new frame_state_info
10869 members. Break up and simplify the logic selecting the
10870 restore_regs_via_mov code path. Ensure that there will be no
10871 out-of-range stack pointer offsets.
10872
17959958
RH
10873 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
10874
e8dc4658
RH
10875 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
10876 argument name to reflect the expected tree; fix indentation.
10877 (ix86_asm_output_function_label): Output the entire 32-bit
10878 ms_hook here as bytes ...
10879 (ix86_expand_prologue): ... not here as insns. Attach the
10880 unwind info for the ms_hook to a blockage insn.
10881 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
10882 (ix86_ms_bitfield_layout_p): Fix indentation.
10883 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
10884
25502041
RH
10885 * config/i386/i386.c (ix86_using_red_zone): New.
10886 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
10887 ix86_expand_prologue, ix86_force_to_memory): Use it.
10888
cdcb5f26
RH
10889 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
10890 saving the int registers.
10891
9bf40564
RH
10892 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
10893 and DWARF2_UNWIND_INFO conditional compilation.
10894
e78f1a3f
RH
108952010-08-04 Richard Henderson <rth@redhat.com>
10896
10897 PR debug/45171
10898 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
10899 an is_naming_typedef_decl.
10900
fde157f2
BS
109012010-08-04 Bernd Schmidt <bernds@codesourcery.com>
10902
10903 PR rtl-optimization/45162
10904 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
10905 * dce.c (word_dce_process_block): Likewise.
10906
33974673
SE
109072010-08-04 Steve Ellcey <sje@cup.hp.com>
10908
10909 PR target/44583
10910 * config/ia64/constraints.md (Z): New.
10911 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
10912 (xfreg_or_signed_fp01_operand): New.
10913 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
10914 with fr_reg_or_signed_fp01_operand and constraint G with Z.
10915 (subsf3): Ditto.
10916 (*maddsf4): Ditto.
10917 (*msubsf4): Ditto.
10918 (adddf3): Ditto.
10919 (adddf3_trunc): Ditto.
10920 (subdf3): Ditto.
10921 (*subdf3_trunc): Ditto.
10922 (*madddf4): Ditto.
10923 (*madddf4_trunc): Ditto.
10924 (*msubdf4): Ditto.
10925 (*msubdf4_trunc): Ditto.
10926 (addxf3): Replace xfreg_or_fp01_operand with
10927 xfreg_or_signed_fp01_operand and constraint G with Z.
10928 (*addxf3_truncsf): Ditto.
10929 (*addxf3_truncdf): Ditto.
10930 (subxf3): Ditto.
10931 (*subxf3_truncsf): Ditto.
10932 (*subxf3_truncdf): Ditto.
10933 (*maddxf4): Ditto.
10934 (*maddxf4_truncsf): Ditto.
10935 (*maddxf4_truncdf): Ditto.
10936 (*msubxf4): Ditto.
10937 (*msubxf4_truncsf): Ditto.
10938 (*msubxf4_truncdf): Ditto.
10939
55e3bc4c
RG
109402010-08-04 Richard Guenther <rguenther@suse.de>
10941
10942 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
10943 if either alias-set is zero.
10944
455e6d5b
RG
109452010-08-04 Richard Guenther <rguenther@suse.de>
10946
10947 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
10948 * tree-ssa-ccp.c: ... here.
10949 * tree-ssa-copy.c: ... and here.
a5b2e0ef 10950 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
455e6d5b
RG
10951 value_range_t): Move ...
10952 * tree-vrp.c: ... here.
10953 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
10954 (substitute_and_fold): Adjust prototype.
10955 * tree-ssa-propagate.c (replace_uses_in): Adjust.
10956 (replace_phi_args_in): Likewise.
10957 (substitute_and_fold): Take callback to query lattice instead
10958 of pointer to lattice. Replace SSA name defs with lattice
10959 values first.
10960 * tree-ssa-ccp.c (ccp_finalize): Adjust.
10961 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
10962 (get_value): New function.
10963 (fini_copy_prop): Adjust.
10964 * tree-vrp.c (vrp_finalize): Adjust.
10965
48176d81
RG
109662010-08-04 Richard Guenther <rguenther@suse.de>
10967
10968 PR middle-end/45176
10969 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
10970 points-to set for original MEM_REF.
10971
84d77ca6
RG
109722010-08-04 Richard Guenther <rguenther@suse.de>
10973
10974 * tree-ssa-ccp.c (get_constant_value): New function.
10975 (get_rhs_assign_op_for_ccp): Remove.
10976 (valueize_op): New function.
10977 (ccp_fold): Use get_constant_value and valueize_op.
10978 (fold_const_aggregate_ref): Likewise.
10979 (ccp_fold_stmt): Likewise.
10980 (visit_assignment): Simplify.
10981
552cbe64
RG
109822010-08-04 Richard Guenther <rguenther@suse.de>
10983
10984 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
10985 * double-int.h (double_int_ctz): Declare.
10986 * double-int.c (double_int_ctz): New function.
10987
74164603 109882010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
31af8367
HS
10989
10990 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
10991 Define.
10992 picochip_expand_movmemhi : Expand movmem pattern.
10993 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
10994 Declare.
10995 * config/picochip/picochip.md (movmemhi) : New pattern.
10996
f39cd38b
UB
109972010-08-03 Uros Bizjak <ubizjak@gmail.com>
10998
10999 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
11000
29b40d79
BS
110012010-08-03 Bernd Schmidt <bernds@codesourcery.com>
11002
11003 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
11004 NEG as operand of a MULT by merging it with the other operand.
11005 * combine.c (make_compound_operation): Use trunc_int_for_mode when
11006 generating a MULT with constant. Canonicalize PLUS and MINUS involving
11007 MULT.
11008 * config/arm/constraints.md (M): Examine only 32 bits of a
11009 HOST_WIDE_INT.
11010 * config/arm/predicates.md (power_of_two_operand): Likewise.
11011
051de0eb
UW
110122010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11013
11014 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
11015 non-NOTE insns.
11016
241a2b9e
JH
110172010-08-03 Jan Hubicka <jh@suse.cz>
11018
11019 * ipa-split.c (struct split_point): Add split_part_set_retval.
11020 (find_retval): Forward declare.
11021 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
11022 (consider_split): Compute current->split_part_set_retval.
11023 (visit_bb): Do not look into return value.
11024 (split_function): Handle !split_part_set_retval
11025
fc734382
MJ
110262010-08-03 Martin Jambor <mjambor@suse.cz>
11027
11028 * tree-sra.c (completely_scalarize_record): New parameter REF, create
11029 its own access->expr intead of using build_ref_for_offset.
11030
1890bccc
JM
110312010-08-03 Joseph Myers <joseph@codesourcery.com>
11032
11033 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
11034 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
f39cd38b 11035 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
1890bccc
JM
11036 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
11037 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
11038 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
11039 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
11040 DEFAULT_SWITCH_TAKES_ARG.
11041 * config/rx/rx.opt (-patch=): Remove option.
11042 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
11043 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
11044 * doc/invoke.texi (RX Options): Remove -patch=.
11045 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
11046 (option_map): Remove --profile-blocks, --quiet and --silent.
11047
dc91d892
UB
110482010-08-03 Uros Bizjak <ubizjak@gmail.com>
11049
11050 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
11051 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
11052 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
11053 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
11054 Update calls to ix86_expand_compare and ix86_expand_branch.
11055 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
11056 ix86_expand_compare.
11057 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
11058 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
11059 Make static.
11060 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
11061 and ix86_compare_op1. Update calls to ix86_expand_compare.
11062 (ix86_expand_int_movcc): Ditto.
11063 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
11064 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
11065 (ix86_expand_setcc): Ditto.
11066 (ix86_expand_compare): Remove prototype.
11067 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
11068 ix86_compare_op0 and ix86_compare_op1. Update calls
11069 to ix86_expand_branch to directly pass operands[1] and operands[2].
11070 (cbranchxf4): Ditto.
11071 (cbranch<MODEF:mode>4): Ditto.
11072 (cbranchcc4): Ditto.
11073 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
11074 Update calls to ix86_expand_setcc to directly pass operands[2] and
11075 operands[3].
11076 (cstorexf4): Ditto.
11077 (cstore<MODEF:mode>4): Ditto.
11078 (cstorecc4): Ditto.
11079
14292418
BS
110802010-08-02 Bernd Schmidt <bernds@codesourcery.com>
11081
11082 PR target/45063
11083 * caller-save.c (save_call_clobbered_regs): Remove regs from
11084 hard_regs_saved when they are set.
11085
fea8c257
UB
110862010-08-02 Uros Bizjak <ubizjak@gmail.com>
11087
11088 PR target/41089
11089 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
11090 as volatile.
11091
20769d5e
SP
110922010-08-02 Sebastian Pop <sebastian.pop@amd.com>
11093
11094 * common.opt (ftree-loop-distribute-patterns): New.
11095 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
11096 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
11097 at -O3.
11098 * tree-data-ref.c (stores_zero_from_loop): New.
11099 * tree-data-ref.h (stores_zero_from_loop): Declared.
11100 * tree-loop-distribution.c (tree_loop_distribution): Call
11101 stores_zero_from_loop.
11102 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
11103
f37e278a
BS
111042010-08-02 Bernd Schmidt <bernds@codesourcery.com>
11105
11106 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
11107 into account.
11108
906668bb
BS
11109 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
11110 * config/arm/arm.c (thumb1_code): New variable.
11111 (arm_override_options): Set it.
11112 (thumb1_final_prescan_insn): Keep track of condition code status.
11113 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
11114 jumps that depend on them.
11115 * config/arm/arm.h (thumb1_code): Declare variable.
11116 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
11117 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
11118 thumb1_cc_mode.
11119 (CC_STATUS_INIT): New macro.
11120 * config/arm/constraints.md (Pd): New constraint.
11121 * config/arm/predicates.md (noov_comparison_operator): New predicate.
11122 * config/arm/arm.md (is_thumb1): New define_attr.
11123 (conds): Set default to "clob" when generating Thumb1 code.
11124 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
11125 code are set. Use two-operand assembly syntax.
11126 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
11127 pattern.
11128 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
11129 codes are set. Use two-operand assembly syntax.
11130 (zero_extendhisi splitter): Remove constraints.
11131 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
11132 thumb1_movsf_insn): Set conds attribute as appropriate.
11133 (cbranchsi4_insn): Use condition code status from struct
11134 machine_function to determine whether the comparison can be eliminated.
11135 Discourage the alternative using high registers.
11136 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
11137 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
11138 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
11139 subsi3_cbranch): Delete.
11140 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
11141 one subtract and one cbranch insn.
11142
0bd44ba2
BS
11143 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
11144 thumb2_movdf_soft_insn): Delete patterns.
11145 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
11146 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
11147 (pool_range, neg_pool_range): Use them to define defaults.
11148 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
11149 and allow for TARGET_32BIT.
11150
37119410
BS
11151 PR target/40457
11152 * config/arm/arm.h (arm_regs_in_sequence): Declare.
11153 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
11154 load_multiple_sequence, store_multiple_sequence): Delete
11155 declarations.
11156 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
11157 declarations.
11158 * config/arm/ldmstm.md: New file.
11159 * config/arm/arm.c (arm_regs_in_sequence): New array.
11160 (load_multiple_sequence): Now static. New args SAVED_ORDER,
11161 CHECK_REGS. All callers changed.
11162 If SAVED_ORDER is nonnull, copy the computed order into it.
11163 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
11164 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
11165 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
11166 If SAVED_ORDER is nonnull, copy the computed order into it.
11167 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
11168 like REGS. Handle Thumb mode.
11169 (arm_gen_load_multiple_1): New function, broken out of
11170 arm_gen_load_multiple.
11171 (arm_gen_store_multiple_1): New function, broken out of
11172 arm_gen_store_multiple.
11173 (arm_gen_multiple_op): New function, with code from
11174 arm_gen_load_multiple and arm_gen_store_multiple moved here.
11175 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
11176 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
11177 changed.
11178 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
11179 * config/arm/predicates.md (commutative_binary_operator): New.
11180 (load_multiple_operation, store_multiple_operation): Handle more
11181 variants of these patterns with different starting offsets. Handle
11182 Thumb-1.
11183 * config/arm/arm.md: Include "ldmstm.md".
11184 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
11185 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
11186 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
11187 peepholes): Delete.
11188 * config/arm/ldmstm.md: New file.
11189 * config/arm/arm-ldmstm.ml: New file.
11190
13cc4787
BS
11191 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
11192 if statement which adds extra costs to frame-related expressions.
11193
0eeeef07
RR
111942010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11195
11196 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
11197
22db1fbc
UB
111982010-08-01 Uros Bizjak <ubizjak@gmail.com>
11199
11200 PR target/45142
11201 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
11202 alternative 2.
b146446c 11203 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
22db1fbc
UB
11204 split V4SI operands.
11205
501d087d
AS
112062010-08-01 Anatoly Sokolov <aesok@post.ru>
11207
11208 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11209 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
11210 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
11211 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
11212
da46381f
KT
112132010-07-31 Kai Tietz <kai.tietz@onevision.com>
11214
11215 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
11216 LOCAL_INCLUDE_DIR.
11217
9eab7f91
RS
112182010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
11219
11220 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
11221 used in the call to optab_for_tree_code. Fix the second
11222 is_widening_mult_p call. Check that both unwidened operands
11223 have the same sign.
11224
6601202c
JT
112252010-07-31 John Tytgat <John.Tytgat@aaug.net>
11226
11227 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
11228
08cbf291
AS
112292010-07-31 Anatoly Sokolov <aesok@post.ru>
11230
11231 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11232
cf6521b4
DD
112332010-07-30 DJ Delorie <dj@redhat.com>
11234
11235 * config/rx/predicates.md (rx_constshift_operand): New.
11236 * config/rx/rx.md (zs_cond): New.
11237 (cbranchsi4): Remove mode.
11238 (*cbranchsi4_<code>): Likewise.
11239 (*tstbranchsi4_<code>): New.
11240 (*tstbranchsi4r_<code>): New.
11241 (*tstbranchsi4m_eq): New.
11242 (*tstbranchsi4m_ne): New.
11243 (cbranchsf4): Remove mode.
11244 (*cbranchsf4_<code>): Likewise.
11245
d4e0d036
BS
112462010-07-30 Bernd Schmidt <bernds@codesourcery.com>
11247
11248 * rtlanal.c (simplify_subreg_regno): Don't treat
11249 HARD_FRAME_POINTER_REGNUM specially.
11250
34251c0e
JM
112512010-07-30 Joseph Myers <joseph@codesourcery.com>
11252
11253 * common.opt (-G): Don't define option here.
11254 * config/g.opt: New.
11255 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
11256 rs6000/powerpc and score targets.
11257 * opts.c (common_handle_option): Don't handle -G here.
11258 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
11259 * config/frv/frv.c (frv_handle_option): Handle -G.
11260 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
22db1fbc 11261 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
34251c0e
JM
11262 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
11263 * config/mips/mips.c (mips_handle_option): Handle -G.
11264 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
11265 * config/score/score.c (score_handle_option): Handle -G.
11266
2d5bfc67
AS
112672010-07-30 Anatoly Sokolov <aesok@post.ru>
11268
11269 * config/mmix/mmix.c: Include basic-block.h.
11270
f0fc0803
JJ
112712010-07-30 Jakub Jelinek <jakub@redhat.com>
11272
11273 PR debug/45055
11274 PR rtl-optimization/45137
11275 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
11276 prototypes.
11277 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
11278 New functions.
11279 * combine.c (next_nonnote_nondebug_insn): Removed.
11280 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
11281 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
11282 * sched-deps.c (sched_analyze_insn): Likewise.
11283 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
11284 * rtlanal.c (canonicalize_condition): Likewise.
11285 * postreload.c (reload_combine_recognize_pattern): Likewise.
11286 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
11287
f53ea4f0
UB
112882010-07-29 Uros Bizjak <ubizjak@gmail.com>
11289
11290 * config/i386/i386.md (int_cond): Remove code iterator.
11291 (fp_cond): Ditto.
11292 (cbranch<mode>4): Use ordered_comparison_operator predicate
11293 for operator0.
11294 (cstore<mode>4): Ditto for operator1.
8aadc2f3
UB
11295 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
11296 (add<mode>cc): ditto.
f53ea4f0 11297
1f60f74e
RG
112982010-07-30 Richard Guenther <rguenther@suse.de>
11299
11300 PR middle-end/45141
11301 * expr.c (expand_expr_real_1): Check for not handled base address.
11302
4eb3f32c
RG
113032010-07-30 Richard Guenther <rguenther@suse.de>
11304
11305 * ipa-prop.c (ipa_modify_formal_parameters): Use
11306 build_distinct_type_copy.
11307
1242723c
AG
113082010-07-30 Anthony Green <green@moxielogic.com>
11309
11310 * config/moxie/rtems.h: New file.
11311 * config.gcc: Add moxie-rtems support.
11312
25aef556
BS
113132010-07-29 Bernd Schmidt <bernds@codesourcery.com>
11314
11315 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
11316 df flags as in run_fast_df_dce.
11317
0f953f83
JJ
113182010-07-29 Jakub Jelinek <jakub@redhat.com>
11319
11320 Revert:
f53ea4f0
UB
11321 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11322
0f953f83 11323 * rtl.def (NOTE): Swap operands 4 and 5.
f53ea4f0 11324 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
0f953f83
JJ
11325 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
11326 Adjust accordingly.
f53ea4f0 11327 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
0f953f83 11328
8b522bef
JJ
113292010-07-29 Jakub Jelinek <jakub@redhat.com>
11330
11331 PR debug/45110
11332 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
11333 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
11334 (gen_subprogram_die): Likewise. Remove it when removing declaration's
11335 formal parameters.
11336 (gen_decl_die): Change return type to dw_die_ref, return what
11337 gen_formal_parameter_die returned.
11338
a1a6c2df
MJ
113392010-07-29 Martin Jambor <mjambor@suse.cz>
11340
11341 * dbgcnt.def (eipa_sra): New counter.
11342 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
11343
0c5bb946
XDL
113442010-07-29 Xinliang David Li <davidxl@google.com>
11345
11346 PR bootstrap/45119
11347 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
11348 in revision 162652.
11349
2c2fbff7
RG
113502010-07-29 Richard Guenther <rguenther@suse.de>
11351
11352 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
11353 (TV_TREE_STORE_CCP): Likewise.
11354 (TV_TREE_REDPHI): Likewise.
11355
113562010-07-29 Richard Guenther <rguenther@suse.de>
950f7f45
RG
11357
11358 * double-int.h (double_int_and_not): New function.
11359 * combine.c (try_combine): Use it.
11360 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
11361
8d074192
BS
113622010-07-29 Bernd Schmidt <bernds@codesourcery.com>
11363
11364 PR rtl-optimization/42575
11365 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
11366 Argument AU removed. All callers changed. Ignore artificial refs.
11367 Use return value of df_word_lr_simulate_defs to decide whether an insn
11368 is necessary.
11369 (fast_dce): Rename arg to WORD_LEVEL.
11370 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
11371 static.
11372 (pass_fast_rtl_byte_dce): Delete.
11373 * dce.h (run_word_dce): Declare.
11374 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
11375 All callers changed. Simplify code to only deal with two-word regs.
11376 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
11377 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
11378 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
11379 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
11380 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
11381 (df_word_lr_mark_ref): Declare.
11382 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
11383 df_word_lr_simulate_uses): Declare or rename from byte variants.
11384 (df_byte_lr_simulate_artificial_refs_at_top,
11385 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11386 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
11387 declarations.
11388 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
11389 (enum df_mm): Delete.
11390 * df-byte-scan.c: Delete file.
11391 * df-problems.c (df_word_lr_problem_data): Renamed from
11392 df_byte_lr_problem_data, all members deleted except for
11393 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
11394 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
11395 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11396 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
11397 df_byte_lr_confluence_0): Delete functions.
11398 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
11399 callers changed.
11400 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
11401 Don't initialize members that were deleted, don't try to discover data
11402 about registers. Ignore hard regs.
11403 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
11404 (df_word_lr_mark_ref): New function.
11405 (df_word_lr_bb_local_compute): Renamed from
11406 df_byte_bb_lr_local_compute; all callers changed. Use
11407 df_word_lr_mark_ref. Assert that artificial refs don't include
11408 pseudos. Ignore hard registers.
11409 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
11410 Assert that exit block uses don't contain pseudos.
11411 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
11412 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
11413 callers changed. Ignore hard regs.
11414 (df_word_lr_transfer_function): Renamed from
11415 df_byte_lr_transfer_function; all callers changed.
11416 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
11417 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
11418 changed.
11419 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
11420 callers changed.
11421 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
11422 confluence operator 0 set to NULL.
11423 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
11424 callers changed.
11425 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
11426 Return bool, true if bitmap changed or insn otherwise necessary.
11427 All callers changed. Simplify using df_word_lr_mark_ref.
11428 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
11429 all callers changed. Simplify using df_word_lr_mark_ref.
11430 * lower-subreg.c: Include "dce.h"
11431 (decompose_multiword_subregs): Call run_word_dce if df available.
11432 * Makefile.in (lower-subreg.o): Adjust dependencies.
11433 (df-byte-scan.o): Delete.
11434 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
11435
9b638c03
RG
114362010-07-29 Richard Guenther <rguenther@suse.de>
11437
11438 * tree.c (build_vector): Assert that the vector constant
11439 has enough elements.
11440 (build_vector_from_ctor): Pad with trailing zeros.
11441
1c09321c
RG
114422010-07-29 Richard Guenther <rguenther@suse.de>
11443
11444 PR tree-optimization/45120
11445 * tree-ssa-structalias.c (get_constraint_for_component_ref):
11446 Handle offset in DEREFs properly.
11447 (get_constraint_for_1): Handle MEM_REF offset properly.
11448
6befd6b0
RG
114492010-07-29 Richard Guenther <rguenther@suse.de>
11450
11451 PR middle-end/45034
11452 * convert.c (convert_to_integer): Always use an unsigned
11453 type for narrowed negate and bitwise not.
11454
61869cc9
IR
114552010-07-29 Ira Rosen <irar@il.ibm.com>
11456
11457 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
f53ea4f0 11458 to outer loop when creating reduction epilogue for double reduction,
61869cc9
IR
11459 and switch back to the inner loop when updating the phi nodes.
11460 Update uses of outer loop exit phi nodes in double reduction (instead
11461 of uses of reduction).
11462
8119a6a6
MM
114632010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
11464
11465 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
11466 popcount on power7 and parity on power6 systems.
11467 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
11468 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
11469 instructions.
11470
11471 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
11472 (UNSPEC_PARITY): Ditto.
11473 (SFDF): New iterator for SF/DF.
11474 (rreg2): New mode attribute for floating register constraint.
11475 (TARGET_FLOAT): New mode attribute for whether single/double float
11476 is supported.
11477 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
11478 pattern.
11479 (parity<mode>2_cmpb): New insn for parity on power6 and newer
11480 machines.
11481 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
11482 pattern. Add support for fcpsgn instruction added in power6.
11483 (copysignsf3): Delete.
11484 (copysigndf3): Delete.
11485 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
11486 instead of if_then_else in RTL to avoid problems with -0.
11487
11488 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
11489 of if_then_else to mirror scalar code.
11490 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
11491 rs6000.md.
11492
11493 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
11494 instead of if_then_else.
11495
18081149
XDL
114962010-07-28 Xinliang David Li <davidxl@google.com>
11497
11498 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
11499 (dump_cand): Dump var_before/after.
11500 (htab_inv_expr_eq): New function.
11501 (htab_inv_expr_hash): New function.
11502 (tree_ssa_iv_optimize_init): Support pseudo invariants.
11503 (add_candidate_1): consider base type precision.
11504 (set_use_iv_cost): New parameter.
11505 (adjust_setup_cost): Use profile information.
11506 (get_address_cost): Do not hard code width in computing address
11507 offset limits.
11508 (compare_aff_trees): New function.
11509 (get_loop_invariant_expr_id): New function.
11510 (get_computation_cost_at): New parameter and use profile information.
11511 (get_computation_cost): New parameter.
11512 (determine_use_iv_cost_generic): Pass new parameter.
11513 (determine_use_iv_cost_address): Ditto.
11514 (determine_use_iv_cost_condition): Ditto.
11515 (autoinc_possible_for_pair): Ditto.
11516 (determine_use_iv_costs): More dumps.
11517 (iv_ca_get_num_inv_exprs): New function.
11518 (iv_ca_recount_cost): Consider loop invariants in register pressure
11519 cost.
11520 (iv_ca_add_use): New parameter.
11521 (iv_ca_dump): Better dumping.
11522 (iv_ca_extend): New parameter.
11523 (try_add_cand_for): Attempt to get better partial solution.
11524 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
11525 (create_new-ivs): More dumps.
11526 (rewrite_use_compare): Ditto.
11527 (free_loop_data): More cleanup.
11528 (treee_ssa_iv_optimize_finalize): Ditto.
11529
3c5273a9
KT
115302010-07-28 Kai Tietz <kai.tietz@onevision.com>
11531
11532 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
11533 * config/i386/i386.c (ix86_profile_before_prologue): New.
11534 (override_options): Add special handling for -mfentry.
11535 (ix86_function_regparm): Likewise.
11536 (ix86_function_sseregparm): Likewise.
11537 (ix86_frame_pointer_required): Likewise.
11538 (ix86_expand_prologue): Check for ms_hook_prologue.
11539 (x86_function_profiler): Adjust mcount output.
11540 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
11541 * config/i386/i386.opt (mfentry): New.
11542 * doc/invoke.texi (mfentry): Add documentation.
11543 * doc/tm.texi: Regenerated..
11544 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
11545 * final.c (final_start_function): Replace macro
11546 PROFILE_BEFORE_PROLOGUE by target hook.
11547 * function.c (thread_prologue_and_epilogue_insns): Likewise.
11548 * target.def (profile_before_prologue): New hook.
11549 * targhooks.c (default_profile_before_prologue): New.
11550 * targhooks.h (default_profile_before_prologue): New.
11551
652c4638
JJ
115522010-07-28 Jakub Jelinek <jakub@redhat.com>
11553
05b5ea34
JJ
11554 PR debug/45105
11555 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
11556
652c4638
JJ
11557 PR debug/45103
11558 * dwarf2out.c (dwarf2out_var_location): Always consider
11559 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
11560
fb039b24
MK
115612010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
11562
11563 PR rtl-optimization/45107
11564 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
11565
7a95d078
RG
115662010-07-28 Richard Guenther <rguenther@suse.de>
11567
11568 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
11569 (set_lattice_value): Do not query an old default value.
11570 (get_value_for_expr): New function. Properly canonicalize
11571 float values.
11572 (ccp_visit_phi_node): Use it.
11573
12ffc7d5
CLT
115742010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
11575
11576 * config/arm/arm.c (arm_pcs_default): Remove static.
11577 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
11578 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
11579 (arm_pcs_default): Declare.
11580
b2a0ce24
IS
115812010-07-28 Iain Sandoe <iains@gcc.gnu.org>
11582
f53ea4f0 11583 * config/rs6000/rs6000.c (rs6000_override_options):
b2a0ce24
IS
11584 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
11585 ... to darwin_rs6000_override_options.
11586 (rs6000_return_in_memory): Update preceding comment for darwin
11587 64 bit ABI. Use TARGET_MACHO inline.
11588 (rs6000_darwin64_struct_check_p): New.
11589 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
11590 (function_arg): Likewise.
11591 (rs6000_arg_partial_bytes): Likewise.
11592 (rs6000_function_value): Likewise.
11593
74164603 115942010-07-28 Andi Kleen <ak@linux.intel.com>
c71eb2b7
AK
11595
11596 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
11597
3abd6c1a
RG
115982010-07-28 Richard Guenther <rguenther@suse.de>
11599
11600 PR middle-end/44903
11601 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
11602 targets try harder to not generate unaligned accesses.
11603
4bcaf354
MK
116042010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
11605
11606 PR rtl-optimization/45101
11607 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
11608 for gcse-las.
11609
c2cf2f4a
EB
116102010-07-28 Eric Botcazou <ebotcazou@adacore.com>
11611
11612 PR tree-optimization/44885
11613 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
11614 with non-aliased component.
11615
eea13ead
JM
116162010-07-28 Joseph Myers <joseph@codesourcery.com>
11617
11618 * config/darwin-driver.c (SWITCH_TAKES_ARG,
11619 WORD_SWITCH_TAKES_ARG): Remove.
11620 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
11621 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
11622 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
11623 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
11624 definitions from gcc.c.
11625 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
11626 defaults.h.
11627 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
11628 Move to defaults.h.
11629 * opts-common.c: Include tm.h.
11630 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
11631 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
11632 Handle more than one argument. Set canonical_option_num_elements.
11633 (decode_cmdline_options_to_array): Set
11634 canonical_option_num_elements and trailing elements of
11635 canonical_option.
11636 * opts.h (struct cl_decoded_option): Allow four elements in
11637 canonical_option. Add field canonical_option_num_elements.
11638 * Makefile.in (opts-common.o): Update dependencies.
11639
b4351367
EB
116402010-07-28 Eric Botcazou <ebotcazou@adacore.com>
11641
11642 PR middle-end/44790
11643 PR middle-end/44993
11644 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
11645 sure the base has address_mode before adding the offset.
11646
74164603 116472010-07-27 Xinliang David Li <davidxl@google.com>
b4351367 11648
880a1451
XDL
11649 * tree-flow.h (create_mem_ref): Add one new parameter.
11650 * tree-ssa-address.c (create_mem_ref): New parameter.
11651 (addr_to_parts): Ditto.
11652 (move_variant_to_index): New function.
11653 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
11654
418e920f
BS
116552010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11656
11657 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
11658 4 and 5.
11659 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
11660 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
11661 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
11662 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
11663 CODE_LABELs and NOTEs.
11664 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
11665 * combine.c (try_combine): Likewise.
11666 * ira.c (setup_prohibited_mode_move_regs): Likewise.
11667 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
11668
5f20c657
JM
116692010-07-27 Joseph Myers <joseph@codesourcery.com>
11670
11671 * coretypes.h (struct cl_option_handlers): Declare.
11672 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
11673 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
11674 * langhooks-def.h (lhd_handle_option): Declare.
11675 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
11676 * langhooks.c (lhd_handle_option): New.
11677 * langhooks.h (struct lang_hooks): Update prototype and return
11678 value type of handle_option hook.
11679 * optc-gen.awk: Generate target_flags_explicit definition for the
11680 driver.
11681 * opts-common.c: Include diagnostic.h.
11682 (handle_option): Move from opts.c. Update prototype and return
11683 value type. Use handlers structure.
11684 (read_cmdline_option): Move from opts.c. Update prototype. Use
11685 handlers structure.
11686 (set_option): Move from opts.c.
11687 * opts.c (common_handle_option): Update prototype and return value
11688 type. Update calls to handle_option and enable_warning_as_error.
11689 (unknown_option_callback, post_handling_callback,
11690 lang_handle_option, target_handle_option): New.
11691 (handle_option, read_cmdline_option): Move to opts-common.c.
11692 (read_cmdline_options): Update prototype. Update call to
11693 read_cmdline_option.
11694 (decode_options): Initialize and use handlers structure.
11695 (set_option): Move to opts-common.c.
11696 (enable_warning_as_error): Update prototype. Update call to
11697 handle_option.
11698 * opts.h (struct cl_option_handler_func, struct
11699 cl_option_handlers): New.
11700 (handle_option, enable_warning_as_error): Update prototypes.
11701 (read_cmdline_option): Declare.
11702 * Makefile.in (opts-common.o): Update dependencies.
11703
ec3728ad
MK
117042010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11705
11706 * config/arm/arm.c (params.h): Include.
11707 (arm_override_options): Tune gcse-unrestricted-cost.
11708 * config/arm/t-arm (arm.o): Define dependencies.
11709
cad9aa15
MK
117102010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11711
11712 PR target/42495
11713 PR middle-end/42574
11714 * basic-block.h (get_dominated_to_depth): Declare.
11715 * dominance.c (get_dominated_to_depth): New function, use
11716 get_all_dominated_blocks as a base.
11717 (get_all_dominated_blocks): Use get_dominated_to_depth.
11718
11719 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
11720 (hoist_exprs): Remove.
11721 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
11722 (compute_code_hoist_vbeinout): Add debug print outs.
11723 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
11724
11725 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
11726 quadratic behavior.
11727 * params.h (MAX_HOIST_DEPTH): New macro.
11728 * doc/invoke.texi (max-hoist-depth): Document.
11729
9b9ee6d3
MK
117302010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11731
11732 PR rtl-optimization/40956
11733 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
11734 constants.
11735
d37c3c62
MK
117362010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11737
11738 PR target/42495
11739 PR middle-end/42574
11740 * config/arm/arm.c (legitimize_pic_address): Use
11741 gen_calculate_pic_address pattern to emit calculation of PIC address.
11742 (will_be_in_index_register): New function.
11743 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
11744 (thumb1_legitimate_address_p): Use it provided !strict_p.
11745 * config/arm/arm.md (calculate_pic_address): New expand and split.
11746
3393e880
MK
117472010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11748
11749 PR target/42495
11750 PR middle-end/42574
11751 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
11752 * config/arm/arm.md (define_split "J", define_split "K"): Make
11753 IRA/reload friendly.
11754
eae7938e
MK
117552010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11756
11757 * gcse.c (insert_insn_end_basic_block): Update signature, remove
11758 unused checks.
11759 (pre_edge_insert, hoist_code): Update.
11760
c7c910ce
MK
117612010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11762
11763 PR target/42495
11764 PR middle-end/42574
11765 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
11766
3d489bc7
MK
117672010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11768
11769 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
11770
ce4c0015
MK
117712010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11772
11773 PR rtl-optimization/40956
11774 PR target/42495
11775 PR middle-end/42574
11776 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
11777 for hoisting.
11778 (hoist_code): Count occurences in current block too.
11779
20160347
MK
117802010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11781
11782 * gcse.c (struct expr:max_distance): New field.
11783 (doing_code_hoisting_p): New static variable.
11784 (want_to_gcse_p): Change signature. Allow constrained hoisting of
11785 simple expressions, don't change behavior for PRE. Set max_distance.
11786 (insert_expr_in_table): Set new max_distance field.
11787 (hash_scan_set): Update.
11788 (hoist_expr_reaches_here_p): Stop search after max_distance
11789 instructions.
11790 (find_occr_in_bb): New static function. Use it in ...
11791 (hoist_code): Calculate sizes of basic block before any changes are
11792 done. Pass max_distance to hoist_expr_reaches_here_p.
11793 (one_code_hoisting_pass): Set doing_code_hoisting_p.
11794
11795 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
11796 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
11797 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
11798 macros.
11799 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
11800 Document.
11801
9b774782
JL
118022010-07-27 Jeff Law <law@redhat.com>
11803 Maxim Kuvyrkov <maxim@codesourcery.com>
11804
11805 * gcse.c (compute_transpout, transpout): Remove, move logic
11806 to prune_expressions.
11807 (compute_pre_data): Move pruning of trapping expressions ...
11808 (prune_expressions): ... here. New static function.
11809 (compute_code_hoist_data): Use it.
11810 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
11811
55791fcd
XDL
118122010-07-27 Xinliang David Li <davidxl@google.com>
11813
11814 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
11815 (rewrite_use_address): Adjust iv update position when needed.
11816
62a3f636
MK
118172010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11818
11819 * dbgcnt.def (hoist_insn): New debug counter.
11820 * gcse.c (hoist_code): Use it.
11821
e2102efc
XDL
118222010-07-27 Xinliang David Li <davidxl@google.com>
11823
11824 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
11825 (niter_for_single_dom_exit): Passes additional parameter.
11826 (iv_period): Fix comments.
11827 (may_eliminate_iv): Handles multiple exit loops properly.
11828 (free_tree_niter_desc): New function.
11829 (free_loop_data): Frees up loop iteration descriptors.
11830
fea31288
JJ
118312010-07-27 Jakub Jelinek <jakub@redhat.com>
11832
f3184b4c
JJ
11833 PR target/44542
11834 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
11835 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
11836 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
11837 (expand_one_var): Don't consider DECL_ALIGN for variables for
11838 which expand_one_stack_var_at has been already called.
11839
fea31288
JJ
11840 PR testsuite/44701
11841 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
11842 constraints on IA-64.
11843
65e29588
JZ
118442010-07-27 Jie Zhang <jie@codesourcery.com>
11845
11846 PR target/44290
f53ea4f0 11847 Revert:
65e29588 11848 2010-07-23 Jie Zhang <jie@codesourcery.com>
f53ea4f0 11849
65e29588
JZ
11850 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
11851 false if ! tree_versionable_function_p.
11852
9f39bd53
JJ
118532010-07-27 Jakub Jelinek <jakub@redhat.com>
11854
11855 * dwarf2out.c (add_data_member_location_attribute): Use
11856 add_AT_unsigned instead of add_AT_int if offset is non-negative.
11857
a78e242c
BS
118582010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11859
11860 * postreload.c (try_replace_in_use): New static function.
11861 (reload_combine_recognize_const_pattern): Use it here. Allow
11862 substituting into a final add insn, and substituting into a memory
11863 reference in an insn that sets the reg.
11864
61ff2bdc
JM
118652010-07-27 Joseph Myers <joseph@codesourcery.com>
11866
11867 * common.opt (o): Add MissingArgError.
11868 * doc/options.texi (MissingArgError): Document.
11869 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
11870 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
11871 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
f53ea4f0 11872 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
61ff2bdc
JM
11873 * langhooks.h (struct lang_hooks): Remove missing_argument.
11874 * optc-gen.awk: Handle MissingArgError and output new structure
11875 field initializers.
11876 * opts.c (read_cmdline_option): Use missing_argument_error field
11877 instead of missing_argument langhook.
11878 * opts.h (struct cl_option): Add missing_argument_error field.
11879 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
11880
4e98bcaf
IS
118812010-07-27 Iain Sandoe <iains@gcc.gnu.org>
11882
11883 PR target/29090
11884 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
11885 Darwin64 ABI, for zero-sized objects.
11886
a9ab25e2
IS
118872010-07-27 Iain Sandoe <iains@gcc.gnu.org>
11888
11889 PR target/35491
11890 PR target/29090
11891
11892 Merge from Apple local 4.2.1.
11893 2005-05-11 Stan Shebs <shebs@apple.com>
11894 Fix 64-bit varargs for Darwin (Radar 4028089).
11895 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
11896 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
11897 Add argument, add case for 8-byte register half-filled with a float.
11898 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
11899 single-precision floats specially.
11900
2200fc49
IR
119012010-07-27 Ira Rosen <irar@il.ibm.com>
11902
11903 PR tree-optimization/44152
11904 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
11905 complex numbers for further check.
f53ea4f0 11906 (vect_supported_load_permutation_p): Check nodes with
2200fc49
IR
11907 complex numbers.
11908
7a9bf9a4
JM
119092010-07-27 Joseph Myers <joseph@codesourcery.com>
11910
11911 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
11912 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
11913 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
11914 (LANG_HOOKS_INITIALIZER): Add new hooks.
11915 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
11916 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
11917 and complain_wrong_lang_p. Update init_options prototype.
11918 * c-objc-common.c (c_initialize_diagnostics): First call
11919 c_common_initialize_diagnostics.
11920 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
11921 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
a691bb08 11922 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
7a9bf9a4
JM
11923 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
11924 (hook_uint_void_0): New.
11925 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
11926 (hook_uint_void_0): New.
11927 * opts-common.c (decode_cmdline_option,
a691bb08 11928 decode_cmdline_options_to_array): Also fill in canonical_option field.
7a9bf9a4
JM
11929 * opts.c (complain_wrong_lang): Use langhook to determine whether
11930 to complain instead of special-casing LTO.
11931 (decode_options): Separate lang_mask determination with
11932 option_lang_mask hook from call of init_options hook.
11933 * opts.h (struct cl_decoded_option): Add canonical_option.
11934
42694189
JJ
119352010-07-27 Jakub Jelinek <jakub@redhat.com>
11936
11937 PR tree-optimization/45083
11938 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
11939
62036819
BS
119402010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11941
11942 * postreload.c (reload_combine_recognize_const_pattern): Move test
11943 for limiting the insn movement to the right scope.
11944
2b0cb007
BS
11945 PR rtl-optimization/45051
11946 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
11947 than reg_mentioned_p.
11948
8b84c596
RH
119492010-07-26 Richard Henderson <rth@redhat.com>
11950
11951 PR target/44132
11952 * tree-emutls.c: New file.
11953 * Makefile.in (OBJS-common): Add it.
11954 * tree-pass.h (pass_ipa_lower_emutls): Declare.
11955 * passes.c (init_optimization_passes): Add it.
11956
11957 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
11958 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
11959 * expr.c (emutls_var_address): Delete.
11960 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
11961 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
11962 (emutls_finish): Delete.
11963 * toplev.c (compile_file): Don't call it.
11964 * tree.h (emutls_decl): Delete.
11965 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
11966 (emutls_finish, emutls_finalize_control_var): Delete.
11967 (emutls_object_type): Move to tree-emutls.c.
11968 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
11969 default_emutls_var_fields, get_emutls_object_type,
11970 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
11971 default_emutls_var_init): Likewise.
11972 (get_variable_section): Don't special case emutls.
11973 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
11974 default_elf_select_section, default_unique_section,
11975 default_encode_section_info): Likewise.
11976 * varpool.c (decide_is_variable_needed): Likewise.
11977 * gimple-iterator.c (update_call_edge_frequencies): New
11978 (gsi_insert_on_edge_immediate): Use it.
11979 (gsi_insert_seq_on_edge_immediate): Likewise.
11980 (gsi_commit_one_edge_insert): Likewise.
11981
11982 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
11983 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
11984 (x86_64_elf_unique_section): Likewise.
11985
b7956a5b
JH
119862010-07-26 Jan Hubicka <jh@suse.cz>
11987
11988 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
11989 GTY((skip)).
11990
b5f5d41d
AS
119912010-07-26 Anatoly Sokolov <aesok@post.ru>
11992
11993 * target.def (output_source_filename): New hook.
11994 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
11995 * doc/tm.texi: Regenerate.
11996 * toplev.c (output_file_directive) Remove function.
11997 * toplev.h (output_file_directive) Remove.
11998 * output.h (default_asm_output_source_filename,
11999 output_file_directive): Declare.
12000 * varasm.h (default_asm_output_source_filename,
12001 output_file_directive): New functions.
12002
12003 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
12004 * config/mips/mips-protos.h (mips_output_filename): Remove.
12005 * config/mips/mips.c (mips_output_filename): Make Static.
12006 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
12007
7f8ac3d7
RG
120082010-07-26 Richard Guenther <rguenther@suse.de>
12009
12010 PR tree-optimization/43784
12011 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
12012 if the destination is used by the call.
12013
edc74207
RG
120142010-07-26 Richard Guenther <rguenther@suse.de>
12015
12016 PR middle-end/45073
12017 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
12018 SSA updating on being in SSA form.
12019
bd422c4a
RG
120202010-07-26 Richard Guenther <rguenther@suse.de>
12021
12022 PR middle-end/45056
a691bb08 12023 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
bd422c4a 12024
e093ffe3
RG
120252010-07-26 Richard Guenther <rguenther@suse.de>
12026
12027 PR tree-optimization/45071
a691bb08 12028 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
e093ffe3
RG
12029 adjust op->opcode.
12030
223a9d64
N
120312010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
12032
12033 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
12034 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
12035 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
12036 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
12037 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
12038 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
12039 save_r31, return_r31, save_interrupt, return_interrupt,
12040 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
12041 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
a691bb08 12042 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
223a9d64 12043 new ABI requirements.
a691bb08 12044 (save_r6_r9, L_callt_save_r6_r9): Remove.
223a9d64
N
12045 * config/v850/predicates.md (even_reg_operand, disp23_operand,
12046 const_float_1_operand const_float_0_operand): New Predicates.
12047 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
12048 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
12049 * config/v850/t-v850: Update multilibs for new target variants.
12050 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
12051 * config/v850/t-v850e: Likewise.
12052 * config/v850/v850.c (v850_issue_rate): New.
12053 (v850_strict_argument_naming): New.
12054 (function_arg): Modify to generate a different ABI.
12055 (print_operand): Update case 'z' to support float modes.
12056 (output_move_single): Modify to generate appropriate and better
12057 assembly.
12058 (v850_float_z_comparison_operator, v850_select_cc_mode,
12059 v850_float_nz_comparison_operator, v850_gen_float_compare,
a691bb08 12060 v850_gen_compare): New functions to support comparison of float values.
223a9d64
N
12061 (ep_memory_offset): Add support for V850E2 targets.
12062 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
12063 (INTERRUPT_REGPARM_NUM): Remove.
a691bb08 12064 (compute_register_save_size): Add extra case to save/restore long call.
223a9d64
N
12065 (use_prolog_function): New function to support prologue.
12066 (expand_prologue): Add support for V850E2 targets and modified
12067 as per the current ABI requirements.
12068 (expand_epilogue): Likewise.
12069 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
12070 (construct_save_jarl): Likewise.
12071 (construct_dispose_instruction): Update as per the current ABI
12072 requirements.
12073 (construct_prepare_instruction): Likewise.
a691bb08 12074 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
223a9d64
N
12075 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
12076 (CPP_SPEC): Updated to support v850e2 targets.
12077 (STRICT_ALIGNMENT): Modified.
12078 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
12079 (FIXED_REGISTERS): Likewise.
12080 (CALL_USED_REGISTERS): Likewise.
12081 (CONDITIONAL_REGISTER_USAGE): Updated.
12082 (HARD_REGNO_MODE_OK): Updated.
12083 (reg_class): Updated to add even registers.
12084 (REG_CLASS_NAMES): Likewise.
12085 (REG_CLASS_CONTENTS): Likewise.
12086 (REGNO_REG_CLASS): Updated for CC registers.
12087 (REG_CLASS_FROM_LETTER): Added support for even registers.
12088 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
12089 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
12090 ARG_POINTER_REGNUM): Updated.
12091 (FUNCTION_ARG_ADVANCE): Define.
12092 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
12093 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
12094 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
12095 (GO_IF_LEGITIMATE_ADDRESS): Updated.
12096 (SELECT_CC_MODE): Define.
12097 (REGISTER_NAMES): Updated to add psw and fcc registers.
12098 (ADDITIONAL_REGISTER_NAMES): Updated.
12099 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
12100 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
12101 * config/v850/v850.md (define_constants): Define new constants.
12102 (type): Update store,bit1,macc,div,fpu and single attributes.
12103 (cpu): New attribute.
12104 (cc): Add set_z attribute.
12105 (unsign23byte_load, sign23byte_load, unsign23hword_load,
12106 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
a691bb08 12107 23word_store): New instructions for 23-bit displacement load and store.
223a9d64
N
12108 (movqi_internal, movhi_internal): Update the attributes.
12109 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
12110 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
12111 the attributes.
12112 (v850_tst1): Modified using CC_REGNUM.
12113 (tstsi): Remove.
12114 (cmpsi): Modified as define_expand from define_insn.
12115 (cmpsi_insn, cmpsf, cmpdf): New instructions.
12116 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
12117 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
12118 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
12119 one_cmplsi2): Clobber the CC_REGNUM register.
12120 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
12121 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
a691bb08 12122 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
223a9d64
N
12123 (setf_insn, set_z_insn, set_nz_insn): New instructions for
12124 v850e2v3 target.
12125 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
12126 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
12127 targets.
12128 (sasf_1, sasf_2): Remove.
12129 (sasf): New instruction.
12130 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
12131 targets. CC_REGNUM register is clobbered and attributes are
12132 updated.
12133 (branch_z_normal, branch_z_invert, branch_nz_normal,
12134 branch_nz_invert): New branch related instructions.
12135 (jump): Updated the attributes.
12136 (switch): Update to support new targets. CC_REGNUM register is
12137 clobbered and attributes are updated.
12138 (call_internal_short, call_internal_long, call_value_internal_short,
12139 call_value_internal_long): Updated the attributes.
12140 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
12141 clobbered and attributes are updated.
12142 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
12143 Update to support new targets. CC_REGNUM register is clobbered.
12144 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
12145 instructions.
12146 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
12147 are updated.
12148 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
12149 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
12150 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
12151 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
12152 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
12153 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
12154 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
12155 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
12156 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
12157 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
12158 point instructions defined for V850e2v3 target.
12159 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
12160 Add support for V850E2 targets and CC_REGNUM register is clobbered.
12161 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
12162 support for new targets.
12163 * config/v850/v850-modes.def: New file.
12164 * config/v850/v850.opt(mstrict-align): Remove.
12165 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
12166 mv850e2v3): New command line options for V850.
12167 * config.gcc: Update the newly added files.
12168 * doc/invoke.texi: Update the newly added command line options for
12169 V850 target.
12170
4e89a3fa
RG
121712010-07-26 Richard Guenther <rguenther@suse.de>
12172
12173 PR tree-optimization/45052
12174 * ipa-pure-const.c (check_stmt): Check volatileness.
12175
58e6223e
EB
121762010-07-25 Eric Botcazou <ebotcazou@adacore.com>
12177
12178 PR target/44707
12179 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
12180 * config/sparc/sparc.c: Include reload.h.
12181 (legitimize_tls_address): Rename into...
12182 (sparc_legitimize_tls_address): ...this.
12183 (legitimize_pic_address): Rename into...
12184 (sparc_legitimize_pic_address): ...this.
12185 (sparc_expand_move): Adjust to above renaming.
12186 (sparc_tls_referenced_p): Likewise.
12187 (sparc_legitimize_tls_address): Likewise.
12188 (sparc_legitimize_pic_address): Likewise.
12189 (sparc_legitimize_address): Likewise.
12190 (sparc_output_mi_thunk): Likewise.
12191 (sparc_legitimize_reload_address): New global function. Recognize
12192 (lo_sum (high ...) ...) patterns generated by earlier passes.
12193 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
12194
bfb7cccf
EB
121952010-07-25 Eric Botcazou <ebotcazou@adacore.com>
12196
12197 PR target/44484
12198 * config/sparc/predicates.md (memory_reg_operand): Delete.
12199 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
12200 (*sync_compare_and_swap): Encode the address form in the pattern.
12201 (*sync_compare_and_swapdi_v8plus): Likewise.
12202
aac91b74
GP
122032010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
12204
a691bb08
UB
12205 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
12206 Streamline paragraph on compatibility with the system compiler.
aac91b74 12207
a522de15
SB
122082010-07-24 Steven Bosscher <steven@gcc.gnu.org>
12209
12210 PR middle-end/45035
12211 * alias.c (true_dependence_1): Fix thinko in merge of old
12212 true_dependence and canon_true_dependence.
12213
5d7f4d9c
JH
122142010-07-23 Jan Hubicka <jh@suse.cz>
12215
12216 * lto-streamer-out.c (write_symbol): Fix visibilities of external
12217 references.
12218
3d07b7cd
LCW
122192010-07-23 Le-Chun Wu <lcwu@google.com>
12220
12221 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
12222 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
12223 and an unnecessary assignment.
12224 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
12225 self-assign warning.
12226 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
12227 unnecessary self-init.
12228
aff08b12
RG
122292010-07-23 Richard Guenther <rguenther@suse.de>
12230
12231 PR lto/43071
12232 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
12233 for -flto and -fwhopr.
12234
9b91e436
KT
122352010-07-23 Kai Tietz <kai.tietz@onevision.com>
12236
12237 PR target/41943
a691bb08 12238 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
9b91e436
KT
12239 (stmp-int-hdrs): Prefix/postfix headers by include_next.
12240 * config.gcc (user_headers_inc_next_pre): New.
12241 (user_headers_inc_next_post): Likewise.
12242 (*-w64-mingw*): Use for float.h post-fixing, and for
12243 stddef.h/stdarg.h pre-fixing by include_next.
12244 * configure.ac (user_headers_inc_next_post): New.
12245 (user_headers_inc_next_pre): New.
12246 * configure: Regenerated.
12247
16c9d3b1
RO
122482010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12249
12250 * configure.ac: Don't disable TLS on Solaris 8/9 by default
12251 Set tga_func for Solaris 2/x86 resp. SPARC.
12252 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
12253 (LIB_THREAD_LDFLAGS_SPEC): Define.
a691bb08 12254 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
16c9d3b1
RO
12255 * configure: Regenerate.
12256 * config.in: Regenerate.
12257 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
12258 -pthread, -threads, LIB_TLS_SPEC with -pthread.
12259 * doc/install.texi (Specific, *-*-solaris2*): Document use of
12260 alternate thread libraries on Solaris 8.
12261 Document TLS patch requirements.
12262 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
12263 Document tls.
12264
12265 PR target/18788
12266 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
12267 -shared.
12268
cd3f04c8
JJ
122692010-07-23 Jakub Jelinek <jakub@redhat.com>
12270
12271 * tree.h (struct tree_base): Add nameless_flag bitfield.
12272 (TYPE_NAMELESS, DECL_NAMELESS): Define.
12273 * omp-low.c (create_omp_child_function, scan_omp_parallel,
12274 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
12275 DECL_ARTIFICIAL where needed.
12276 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
12277 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
12278 has DECL_NAMELESS set.
12279
556ede65
MJ
122802010-07-23 Martin Jambor <mjambor@suse.cz>
12281
12282 PR tree-optimization/44915
12283 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
12284 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
12285 (analyze_function): Likewise.
12286
8cbeddcc
MJ
122872010-07-23 Martin Jambor <mjambor@suse.cz>
12288
12289 PR tree-optimization/44914
12290 * tree-sra.c (sra_modify_function_body): Return true if CFG was
12291 changed, add purging dead eh edges.
12292 (ipa_sra_modify_function_body): Return true if CFG was changed,
12293 simplify purging dead eh edges.
12294 (modify_function): Return true if CFG was changed.
12295 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
12296 was changed.
12297 (ipa_early_sra): Likewise.
12298
61044492
JZ
122992010-07-23 Jie Zhang <jie@codesourcery.com>
12300
12301 PR target/44290
12302 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
12303 if "naked".
12304 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
12305 false if ! tree_versionable_function_p.
12306
c59a0a1d
NF
123072010-07-23 Nathan Froyd <froydnj@codesourcery.com>
12308
12309 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
12310 * ipa-pure-const.c (special_builtlin_state): Remove
12311 BUILT_IN_ARGS_INFO case.
12312 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12313 * builtins.c (expand_builtin): Likewise.
12314 (expand_builtin_args_info): Remove.
12315 * doc/tm.texi (__builtin_args_info): Remove.
12316 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
12317 * doc/tm.text.in: Likewise.
12318
c4fcd06a
RG
123192010-07-23 Richard Guenther <rguenther@suse.de>
12320
a691bb08 12321 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
c4fcd06a
RG
12322 (lto_symtab_merge_decls_2): Likewise.
12323 * tree-ssa.c (useless_type_conversion_p): Likewise.
12324 * lto-streamer-in.c (input_gimple_stmt): Likewise.
12325 * gimple.c (gtc_visited2, gtc_ob2): Remove.
12326 (struct type_pair_d): Make same_p an array indexed by mode.
12327 Update comment.
12328 (lookup_type_pair): Update initialization.
12329 (struct sccs): Adjust same_p type.
12330 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
12331 Adjust.
12332 (print_gimple_types_stats): Likewise.
12333 * gimple.h (enum gtc_mode): New.
12334 (gimple_types_compatible_p): Adjust prototype.
12335
6afb52d3
DJ
123362010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
12337
12338 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
12339 again after processing insn.
12340
a23c4464
JZ
123412010-07-23 Jie Zhang <jie@codesourcery.com>
12342
12343 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
12344 proper words when !tree_versionable_function_p.
12345
97a73876
RG
123462010-07-23 Richard Guenther <rguenther@suse.de>
12347
12348 PR tree-optimization/45037
12349 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
12350
ed3100b2
JZ
123512010-07-23 Jie Zhang <jie@codesourcery.com>
12352
a691bb08
UB
12353 * doc/extend.texi: Remove IP2K from the description of naked attribute.
12354 Add MCORE instead.
ed3100b2 12355
a691bb08 123562010-07-10 Andi Kleen <ak@linux.intel.com>
73ce4d1e
AK
12357
12358 PR lto/44992
a691bb08 12359 * lto-opts.c (lto_write_options): Add NULL file_data argument to
73ce4d1e
AK
12360 lto_get_section_name.
12361 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
12362 * lto-streamer-out.c (produce_asm): Likewise.
12363 (copy_function): Likewise.
12364 (produce_symtab): Likewise.
12365 (produce_asm_for_decls): Likewise.
12366 * lto-streamer.c (lto_get_section_name): Add file_data argument.
12367 Rewrite to add random postfix to LTO sections.
12368 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
12369 (lto_get_section_name): Add file_data argument to prototype.
12370
a691bb08 123712010-07-10 Andi Kleen <ak@linux.intel.com>
2994ee14
AK
12372
12373 * lto-section-in.c (lto_section_name): Synchronize names
12374 with lto_get_section_name.
12375
a691bb08 123762010-07-10 Andi Kleen <ak@linux.intel.com>
090fc3f4
AK
12377
12378 * lto-opts.c (lto_read_file_options): Check for missing section.
12379
8cfd82bf
BS
123802010-07-22 Bernd Schmidt <bernds@codesourcery.com>
12381
12382 * ira.c (check_allocation): Correctly handle the case where an allocno
12383 with two objects was allocated to a single reg.
12384
1a39adae
RS
123852010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
12386
12387 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
12388 (is_widening_mult_p): Likewise.
12389 (convert_to_widen): Use them.
12390 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
12391 well as integer ones.
12392
9362286d
SB
123932010-07-22 Steven Bosscher <steven@gcc.gnu.org>
12394
12395 * alias.c (true_dependence_1): New function, merged version of
12396 true_dependence and canon_true_dependence.
12397 (true_dependence): Simplify.
12398 (canon_true_dependence): Simplify.
12399
b78cb618
RH
124002010-07-22 Richard Henderson <rth@redhat.com>
12401
12402 PR target/45027
12403 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
12404 of V4SFmode for the SSE saves; increase stack alignment if needed.
12405 (ix86_gimplify_va_arg): Don't increase stack alignment here.
12406
828f2c8b
JJ
124072010-07-22 Jakub Jelinek <jakub@redhat.com>
12408
12409 PR bootstrap/45028
12410 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
12411 call cprop_find_used_regs again via note_uses.
12412
7be7d292
EB
124132010-07-22 Eric Botcazou <ebotcazou@adacore.com>
12414
12415 * alias.c (get_alias_set): Fix formatting issues.
12416
426d6333
SE
124172010-07-22 Steve Ellcey <sje@cup.hp.com>
12418
12419 PR middle-end/44878
12420 * stmt.c (expand_value_return): Call promote_function_mode with
12421 a for_return argument of 2 when returning by reference.
12422
35ea1c5a
DS
124232010-07-22 Dodji Seketeli <dodji@redhat.com>
12424
12425 PR debug/45024
12426 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
12427 unit DIE if we can find the scope DIE.
12428
ac0ab4f7
BS
124292010-07-22 Bernd Schmidt <bernds@codesourcery.com>
12430
bd3a5d17
UB
12431 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
12432 changed. Initialize OBJECT_SUBWORD.
ac0ab4f7
BS
12433 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
12434 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
12435 all callers changed.
12436 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
12437 (finish_allocno): Likewise.
12438 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
12439 (remove_low_level_allocnos): Likewise.
12440 (update_bad_spill_attribute): Likewise.
12441 (setup_min_max_allocno_live_range_point): Likewise.
12442 (sort_conflict_id_map): Likewise.
12443 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
12444 (ior_hard_reg_conflicts): New function.
12445 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
12446 (compress_conflict_vecs): Iterate over objects, not allocnos.
12447 (ira_add_live_range_to_object): New function.
12448 (object_range_compare_func): Renamed from allocno_range_compare_func.
12449 All callers changed.
12450 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
12451 subobjects, widen the min/max range of the lowest-order object to
12452 potentially include all other such low-order objects.
12453 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
12454 (check_allocation): Likewise. Use more fine-grained tests for register
12455 conflicts.
12456 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
12457 allocno subobjects.
12458 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
12459 choices about which bits to set in each set. Don't use
12460 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
12461 using the multiple sets we computed.
12462 (push_allocno_to_stack): Iterate over allocno subobjects.
12463 (all_conflicting_hard_regs_coalesced): New static function.
12464 (setup_allocno_available_regs_num): Use it.
12465 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
12466 subobjects.
12467 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
12468 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12469 by ALLOCNO_NUM_OBJECTS.
12470 (calculate_spill_cost): Likewise.
12471 (color_pass): Express if statement in a more normal way.
12472 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
12473 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
12474 (setup_slot_coalesced_allocno_live_ranges): Likewise.
12475 (allocno_reload_assign): Likewise.
12476 (ira_reassign_pseudos): Likewise.
12477 (fast_allocation): Likewise.
12478 * ira-conflicts.c (build_conflict_bit_table): Likewise.
12479 (print_allocno_conflicts): Likewise.
12480 (ira_build_conflicts): Likewise.
12481 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
12482 callers changed. Test subword 0 of each allocno for conflicts.
12483 (build_object_conflicts): Renamed from build_allocno_conflicts. All
12484 callers changed. Iterate over allocno subobjects.
12485 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
bd3a5d17
UB
12486 * ira-int.h (struct ira_allocno): New member: num_objects.
12487 Rename object to objects and change it into an array.
ac0ab4f7
BS
12488 (ALLOCNO_OBJECT): Add new argument N.
12489 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
12490 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
12491 (ior_hard_reg_conflicts): Declare.
12492 (ira_add_live_range_to_object): Declare.
12493 (ira_allocno_object_iterator): New.
12494 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
12495 (FOR_EACH_ALLOCNO_OBJECT): New macro.
bd3a5d17
UB
12496 * ira-lives.c (objects_live): Renamed from allocnos_live; all
12497 uses changed.
ac0ab4f7 12498 (allocnos_processed): New sparseset.
bd3a5d17
UB
12499 (make_object_born): Renamed from make_allocno_born; take an
12500 ira_object_t argument. All callers changed.
12501 (make_object_dead): Renamed from make_allocno_dead; take an
12502 ira_object_t argument. All callers changed.
ac0ab4f7
BS
12503 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
12504 All callers changed.
12505 (mark_pseudo_regno_live): Iterate over allocno subobjects.
12506 (mark_pseudo_regno_dead): Likewise.
12507 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
12508 functions.
12509 (mark_ref_live): Detect subword accesses and call
12510 mark_pseudo_regno_subword_live as appropriate.
12511 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
12512 (process_bb_nodes_live): Deal with object-related updates first; set
12513 and test bits in allocnos_processed to avoid computing allocno
12514 statistics more than once.
12515 (create_start_finish_chains): Iterate over objects, not allocnos.
12516 (print_object_live_ranges): New function.
12517 (print_allocno_live_ranges): Use it.
12518 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
12519 and objects_live.
12520
d4398a43
RG
125212010-07-22 Richard Guenther <rguenther@suse.de>
12522
12523 PR lto/42451
12524 * gimple.c (gtc_next_dfs_num): New global.
12525 (struct sccs): Make value a union, add integer same_p member.
12526 (gtc_visit): New function.
12527 (gimple_types_compatible_p_1): New function, split out from ...
12528 (gimple_types_compatible_p): ... here. Start a DFS walk here.
12529 (iterative_hash_gimple_type): Adjust for sccs change.
12530
56a42add
MJ
125312010-07-22 Martin Jambor <mjambor@suse.cz>
12532
12533 PR tree-optimization/44891
12534 * tree-sra.c: Include gimple-pretty-print.h.
12535 (replace_uses_with_default_def_ssa_name): Renamed to
12536 get_repl_default_def_ssa_name, return the new SSA name instead of
12537 replacing the old one.
12538 (sra_modify_assign): Dump a message when removing a load, if the LHS
12539 is an SSA_NAME, do not do any propagation, just set the RHS to a
12540 default definition SSA NAME, type convert if necessary.
12541 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
12542
5ccbfc1f
RG
125432010-07-22 Richard Guenther <rguenther@suse.de>
12544
12545 PR tree-optimization/45017
12546 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
12547 TYPE_PRECISION of integral types in addition to size.
12548
14ee5f0a
MK
125492010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
12550
12551 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
12552 when no C library is specified.
12553
93c594a3
MJ
125542010-07-22 Martin Jambor <mjambor@suse.cz>
12555
12556 * ipa-prop.h (struct ipa_node_params): Updated comment.
12557 (struct ipa_edge_args): Likewise.
12558 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
12559
02ec6988
MJ
125602010-07-22 Martin Jambor <mjambor@suse.cz>
12561
12562 * cgraphunit.c (verify_edge_count_and_frequency): New function.
12563 (verify_cgraph_node): Verify frequencies of indirect edges.
12564 * tree-inline.c (tree_function_versioning): Update frequencies of
12565 indirect edges.
12566
f67325e8
RR
125672010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12568
a557f9cc 12569 PR target/43698
a691bb08
UB
12570 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
12571 Set *arm_rev to be predicable.
f67325e8 12572
50eb566f
IS
125732010-07-22 Iain Sandoe <iains@gcc.gnu.org>
12574
12575 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
12576 (LINK_COMMAND_SPEC_A): New.
12577 (DSYMUTIL): New.
12578 (DSYMUTIL_SPEC): New.
12579 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
12580 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
12581
3b2ee170
IS
125822010-07-22 Iain Sandoe <iains@gcc.gnu.org>
12583
12584 * calls.c (load_register_parameters): Move check for zero
bd3a5d17 12585 sized items so that only the call to
3b2ee170
IS
12586 mem_overlaps_already_clobbered_arg_p () is protected.
12587
37512c66
JH
125882010-07-22 Jan Hubicka <jh@suse.cz>
12589
12590 * ipa-pure-const.c (varying_state): Break out from ...
12591 (get_function_state): ... here; always return varying_state
12592 when state would be NULL otherwise.
12593 (remove_node_data): Do not free varying state.
12594
08bd6876
BS
125952010-07-22 Bernd Schmidt <bernds@codesourcery.com>
12596
12597 PR bootstrap/44970
12598 PR middle-end/45009
12599 * postreload.c: Include "target.h".
12600 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
12601 into account.
12602 (fixup_debug_insns): Don't copy the rtx.
a691bb08
UB
12603 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
12604 Don't copy when replacing. Call fixup_debug_insns in the case where
12605 we merged one add with another.
12606 (reload_combine_recognize_pattern): Fail if there aren't any uses.
12607 Try harder to determine whether we're picking a valid index register.
12608 Don't set store_ruid for an insn we're going to scan in the
12609 next iteration.
08bd6876
BS
12610 (reload_combine): Remove unused code.
12611 (reload_combine_note_use): When updating use information for
12612 an old insn, ignore a use that occurs after store_ruid.
12613 * Makefile.in (postreload.o): Update dependencies.
12614
dbb94435
BS
12615 * function.c (record_hard_reg_sets): Restrict the previous change
12616 to cases where the incoming nominal mode is the same as the
12617 incoming promoted mode and everything happens in MODE_INT.
12618
fcc71c6c
JJ
126192010-07-21 Jakub Jelinek <jakub@redhat.com>
12620
12621 PR debug/45015
12622 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
12623 ASM_OPERANDS_OUTPUT_IDX.
12624 (adjust_insn): For inline asm with multiple sets ensure first
12625 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
12626 the insn.
12627
650b5329
RH
126282010-07-21 Richard Henderson <rth@redhat.com>
12629
12630 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
12631 comparison for avoiding xmm register saves. Emit the xmm register
12632 saves explicitly.
12633 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
12634 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
12635 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
12636 Remove patterns and the associated splitters.
12637
7c6dafac
CF
126382010-07-21 Changpeng Fang <changpeng.fang@amd.com>
12639
12640 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
12641 and imagine parts of a complex, so that they can have the same
12642 base and fall into the same group.
12643
60f6be5a
RG
126442010-07-21 Richard Guenther <rguenther@suse.de>
12645
12646 PR lto/45018
12647 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
12648 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
12649 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
12650
75a75e91
MJ
126512010-07-21 Martin Jambor <mjambor@suse.cz>
12652
12653 PR tree-optimization/44900
12654 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
12655 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
12656
426797b2
BS
126572010-07-21 Bernd Schmidt <bernds@codesourcery.com>
12658
12659 PR middle-end/44738
12660 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
12661
35e3a6e9
RG
126622010-07-21 Richard Guenther <rguenther@suse.de>
12663
12664 PR middle-end/45013
12665 * tree-ssa.c (useless_type_conversion_p): Dispatch to
12666 gimple_types_compatible_p only when in lto.
12667 * gimple.c (gimple_types_compatible_p): Use canonical types
12668 to speed up comparison.
12669
3f2930d8
RG
126702010-07-21 Richard Guenther <rguenther@suse.de>
12671
12672 * tree-flow.h (referenced_var): Move define ...
12673 * tree-flow-inline.h (referenced_var): ... here as an inline
12674 function. Assert here ...
12675 * tree-dfa.c (referenced_var_lookup): ... instead of here.
12676 * tree-ssa.c (maybe_optimize_var): Check if the variable
12677 is in referenced vars.
12678 (execute_update_addresses_taken): Remove old broken check.
12679 * gimple-pretty-print.c (pp_points_to_solution): Use
12680 referenced_var_lookup.
12681 * tree-into-ssa.c (dump_decl_set): Likewise.
12682
370ae599
JJ
126832010-07-21 Jakub Jelinek <jakub@redhat.com>
12684
12685 PR debug/45003
a691bb08 12686 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
370ae599
JJ
12687 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
12688 ZERO_EXTEND here.
12689
7703295f
RH
126902010-07-20 Richard Henderson <rth@redhat.com>
12691
12692 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
12693
16737e76
BS
126942010-07-20 Bernd Schmidt <bernds@codesourcery.com>
12695
12696 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
12697 computing the sum of the stack pointer and a large constant.
12698 * config/arm/constraints.md (M): Remove superfluous parentheses.
12699 (Pc): New constraint.
12700
1b47fe3f
JJ
127012010-07-20 Jakub Jelinek <jakub@redhat.com>
12702
12703 PR debug/45006
12704 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
12705 operand's type if exp is tcc_unary class tree.
12706
97c56ee3
NF
127072010-07-20 Nathan Froyd <froydnj@codesourcery.com>
12708
12709 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
12710 Reverse sense of if_then_else condition.
12711
d95016e0
NF
127122010-07-20 Nathan Froyd <froydnj@codesourcery.com>
12713
12714 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
12715 * config/rs6000/rs6000.c (rs6000_override_options): Set
12716 rs6000_block_move_inline_limit appropriately.
12717 (expand_block_move): Use rs6000_block_move_inline_limit.
12718 * doc/invoke.texi (mblock-move-inline-limit): Document.
12719
caa4a250
BS
127202010-07-20 Bernd Schmidt <bernds@codesourcery.com>
12721
12722 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
12723 FROM and TO. All callers changed. Don't look for tracked uses,
12724 just scan the RTL for DEBUG_INSNs and substitute.
12725 (reload_combine_recognize_pattern): Call fixup_debug_insns.
12726 (reload_combine): Ignore DEBUG_INSNs.
12727
68eaf35c
JJ
127282010-07-20 Jakub Jelinek <jakub@redhat.com>
12729
d2d57152
JJ
12730 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
12731 depth to 8 from 5.
12732
68eaf35c
JJ
12733 PR debug/45003
12734 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
12735 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
12736 instead of the result's type.
12737
720151ca
RG
127382010-07-20 Richard Guenther <rguenther@suse.de>
12739
12740 PR tree-optimization/44977
12741 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
12742 SSA form.
12743
f5d6836a
RG
127442010-07-20 Richard Guenther <rguenther@suse.de>
12745
12746 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
12747 (lto_symtab_merge_decls_2): Likewise.
12748 * gimple.h (gimple_types_compatible_p): Declare.
12749 * gimple.c (gimple_queue_type_fixup): Remove.
12750 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
bd3a5d17 12751 (gimple_compatible_complete_and_incomplete_type_p): New function.
f5d6836a
RG
12752 (gimple_types_compatible_p): Adjust.
12753 (gimple_register_type): Remove type fixup code.
12754 (print_gimple_types_stats): Adjust.
12755 (free_gimple_type_tables): Likewise.
12756 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
12757 * tree-ssa.c (useless_type_conversion_p): Likewise.
12758
ad650c92
RG
127592010-07-20 Richard Guenther <rguenther@suse.de>
12760
12761 PR middle-end/44971
12762 PR middle-end/44988
12763 * tree-ssa.c (maybe_optimize_var): New function split out from ...
12764 (execute_update_addresses_taken): ... here.
12765 (non_rewritable_mem_ref_base): Likewise.
12766 (execute_update_addresses_taken): Do not iterate over all referenced
12767 vars but just all local decls and parms.
12768 Properly check call and asm arguments and rewrite call arguments.
12769
2c8f43e6
MK
127702010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
12771
12772 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
12773 to top level.
12774 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
12775 definitions ...
12776 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
12777 New macro.
12778 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
12779
b08e0339
RS
127802010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12781
12782 * gengtype.c (start_root_entry): New function, split out from
12783 write_root. Check whether V is null and raise an error if so.
12784 (write_field_root): Check for V being null. Don't raise an error here;
12785 set V to null instead.
12786 (write_root): Update comment above function. Use start_root_entry.
12787
e74780a3
XDL
127882010-07-19 Xinliang David Li <davidxl@google.com>
12789
12790 PR testsuite/44932
bd3a5d17
UB
12791 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
12792 def edges.
e74780a3
XDL
12793 (find_uninit_use): Add dump.
12794 (is_use_properly_guarded): Ditto.
12795 (warn_uninitialized_phi): Ditto.
12796 (execute_late_warn_uninitialized): Ditto.
12797
8b4c365c
RG
127982010-07-19 Richard Guenther <rguenther@suse.de>
12799
12800 PR middle-end/44941
12801 * expr.c (emit_block_move_hints): Move zero size check first.
12802 Move asserts to more useful places.
12803 * calls.c (load_register_parameters): Check for zero size.
12804
157be8f6
RH
128052010-07-19 Richard Henderson <rth@redhat.com>
12806
12807 * tree-optimize.c (execute_all_early_local_passes): New. Change
12808 cgraph_state here ...
12809 (execute_early_local_optimizations): ... not here. Remove.
12810 (pass_early_local_passes, pass_all_early_optimizations): Update.
12811
b1d5eee8
BS
128122010-07-19 Bernd Schmidt <bernds@codesourcery.com>
12813
12814 * postreload.c (reload_combine_closest_single_use): Ignore the
12815 number of uses for DEBUG_INSNs.
12816 (fixup_debug_insns): New static function.
12817 (reload_combine_recognize_const_pattern): Use it. Don't let the
12818 main loop be affected by DEBUG_INSNs.
12819 Really disallow moving adds past a jump insn.
12820 (reload_combine_recognize_pattern): Don't update use_ruid here.
12821 (reload_combine_note_use): Do it here.
12822 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
12823
0be955e7 128242010-07-19 Bingfeng Mei <bmei@broadcom.com>
157be8f6 12825
0be955e7 12826 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
bd3a5d17
UB
12827 of a loop.
12828 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
0be955e7 12829
9005471b
IS
128302010-07-19 Iain Sandoe <iains@gcc.gnu.org>
12831
12832 * config/i386/darwin.h: Define darwin_emit_branch_islands.
12833 (TARGET_MACHO_BRANCH_ISLANDS): New.
12834 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
12835 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
12836 default value.
12837 * config/i386/i386.c (output_pic_addr_const): Do not emit
12838 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
12839 (x86_output_mi_thunk): Adjust symbol creation.
12840 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
12841 Remove out of date comment.
12842 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
bd3a5d17
UB
12843 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12844 (DARWIN_GENERATE_ISLANDS): Ditto.
9005471b
IS
12845 (output_call): Do not emit branch islands unless
12846 darwin_emit_branch_islands is set.
12847 * config/darwin.c: Declare darwin_emit_branch_islands.
12848 (machopic_indirect_data_reference): Do not emit unless
12849 darwin_emit_branch_islands is set.
12850 (darwin_override_options): Set darwin_emit_branch_islands
12851 where it is needed.
bd3a5d17 12852 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9005471b 12853
39354b3b
RO
128542010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12855
12856 * doc/sourcebuild.texi (Effective-Target Keywords): Document
12857 sse_runtime, sse2_runtime.
12858
93f63c68
RS
128592010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
12860
12861 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
12862 low half of a single-register SCmode return value before ORing
12863 it with the high half.
12864 * config/mips/mips16.S (MERGE_GPRf): Likewise.
12865
84aa7cea
JDA
128662010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12867
12868 PR target/44805
12869 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
12870 on all targets.
12871
dc0d5a57
BS
128722010-07-17 Bernd Schmidt <bernds@codesourcery.com>
12873
12874 PR target/42235
12875 * postreload.c (reload_cse_move2add): Return bool, true if anything.
12876 changed. All callers changed.
12877 (move2add_use_add2_insn): Likewise.
12878 (move2add_use_add3_insn): Likewise.
12879 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
12880 reload_combine.
12881 (RELOAD_COMBINE_MAX_USES): Bump to 16.
12882 (last_jump_ruid): New static variable.
12883 (struct reg_use): New members CONTAINING_MEM and RUID.
12884 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
12885 (reload_combine_split_one_ruid, reload_combine_split_ruids,
12886 reload_combine_purge_insn_uses, reload_combine_closest_single_use
12887 reload_combine_purge_reg_uses_after_ruid,
12888 reload_combine_recognize_const_pattern): New static functions.
12889 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
12890 is true for our reg and that we have available index regs.
12891 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
12892 callers changed. Use them to initialize fields in struct reg_use.
12893 (reload_combine): Initialize last_jump_ruid. Be careful when to
12894 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
12895 Call reload_combine_recognize_const_pattern.
12896 (reload_combine_note_store): Update REAL_STORE_RUID field.
12897
d4404fee
JM
128982010-07-16 Jason Merrill <jason@redhat.com>
12899
12900 * Makefile.in (opts-common.o): Depend on options.h.
12901
6a4825bd
NF
129022010-07-16 Nathan Froyd <froydnj@codesourcery.com>
12903
12904 * tree.c (build_common_builtin_nodes): Use build_function_type_list
12905 instead of build_function_type.
12906 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
12907 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12908
c5af628d
NF
129092010-07-16 Nathan Froyd <froydnj@codesourcery.com>
12910
12911 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
12912 do all the work.
12913 (rs6000_emit_int_cmove): Use function pointers for insn generation.
12914 Don't force values into registers unnecessarily.
12915 (output_isel): Assert that we're not given conditions we can't handle.
12916 Delete corresponding code.
12917 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
12918 scc_comparison_operator constraint. Permit 0 for the consequent
12919 operand. Permit any GPR for the alternative operand.
12920 (isel_unsigned_<mode>): Likewise.
12921
88ad03c2
JJ
129222010-07-16 Jakub Jelinek <jakub@redhat.com>
12923
12924 PR target/44942
12925 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
12926 argument to const_tree.
12927 * config/i386/i386.c (function_arg_advance): If padding needs to be
12928 inserted before argument, increment cum->words by number of padding
12929 words as well.
12930 (contains_aligned_value_p): Change argument to const_tree.
12931 (ix86_function_arg_boundary): Change second argument to const_tree.
12932
71008de4
BS
129332010-07-16 Bernd Schmidt <bernds@codesourcery.com>
12934
12935 PR target/42235
12936 * function.c (record_hard_reg_sets): New static function.
12937 (assign_parm_setup_reg): If an optab for extending exists and the
12938 generated code clobbbers no hard regs, emit the insn directly and
12939 create a REG_EQUIV note.
12940
f7587ed0
NF
129412010-07-15 Nathan Froyd <froydnj@codesourcery.com>
12942
12943 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
12944 TREE_CHAIN.
12945 * c-typeck.c (push_init_level): Likewise.
12946 (process_init_element): Likewise.
12947
9a9d280e
AS
129482010-07-15 Anatoly Sokolov <aesok@post.ru>
12949
12950 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
12951 (integer_three_node): Add.
12952 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
12953 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
12954 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
12955 of call build_int_cst.
12956 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
12957 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
12958 (find_interesting_uses_address): Ditto.
12959 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
12960 * tree-eh.c (lower_eh_constructs_2): Ditto.
12961 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
12962 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
12963 * expmed.c (expand_divmod): Ditto.
12964 * tree-mudflap.c (mx_register_decls): Ditto.
12965 * varasm.c (array_size_for_constructor): Ditto.
12966 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
12967 * c-parser.c (c_parser_postfix_expression): Ditto.
12968
67bb0206
BS
129692010-07-15 Bernd Schmidt <bernds@codesourcery.com>
12970
12971 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
12972 New static variables.
12973 (reload_combine_recognize_pattern): New static function, broken out
12974 of reload_combine.
12975 (reload_combine): Use it. Only initialize first_index_reg and
12976 last_index_reg once.
12977
c5f77dcb
RH
129782010-07-15 Richard Henderson <rth@redhat.com>
12979
12980 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
12981 when done.
12982
ef8fc6c2
JH
129832010-07-15 Jan Hubicka <jh@suse.cz>
12984
bd3a5d17
UB
12985 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
12986 comdats for broken gold.
12987 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
ef8fc6c2 12988
3d894a8e
NF
129892010-07-15 Nathan Froyd <froydnj@codesourcery.com>
12990
12991 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
12992
910ad8de
NF
129932010-07-15 Nathan Froyd <froydnj@codesourcery.com>
12994
12995 * tree.h (DECL_CHAIN): Define.
12996 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
12997 * c-decl.c: Likewise.
12998 * c-parser.c: Likewise.
12999 * c-typeck.c: Likewise.
13000 * cfgexpand.c: Likewise.
13001 * cgraph.c: Likewise.
13002 * cgraphunit.c: Likewise.
13003 * combine.c: Likewise.
13004 * config/alpha/alpha.c: Likewise.
13005 * config/arm/arm.c: Likewise.
13006 * config/frv/frv.c: Likewise.
13007 * config/i386/i386.c: Likewise.
13008 * config/i386/winnt-cxx.c: Likewise.
13009 * config/ia64/ia64.c: Likewise.
13010 * config/iq2000/iq2000.c: Likewise.
13011 * config/mep/mep.c: Likewise.
13012 * config/mips/mips.c: Likewise.
13013 * config/pa/som.h: Likewise.
13014 * config/rs6000/rs6000.c: Likewise.
13015 * config/s390/s390.c: Likewise.
13016 * config/sh/sh.c: Likewise.
13017 * config/sh/symbian-cxx.c: Likewise.
13018 * config/sparc/sparc.c: Likewise.
13019 * config/spu/spu.c: Likewise.
13020 * config/stormy16/stormy16.c: Likewise.
13021 * config/vxworks.c: Likewise.
13022 * config/xtensa/xtensa.c: Likewise.
13023 * coverage.c: Likewise.
13024 * dbxout.c: Likewise.
13025 * dwarf2out.c: Likewise.
13026 * emit-rtl.c: Likewise.
13027 * expr.c: Likewise.
13028 * function.c: Likewise.
13029 * gimple-low.c: Likewise.
13030 * gimple-pretty-print.c: Likewise.
13031 * gimplify.c: Likewise.
13032 * integrate.c: Likewise.
13033 * ipa-inline.c: Likewise.
13034 * ipa-prop.c: Likewise.
13035 * ipa-split.c: Likewise.
13036 * ipa-struct-reorg.c: Likewise.
13037 * ipa-type-escape.c: Likewise.
13038 * langhooks.c: Likewise.
13039 * lto-cgraph.c: Likewise.
13040 * omp-low.c: Likewise.
13041 * stor-layout.c: Likewise.
13042 * tree-cfg.c: Likewise.
13043 * tree-complex.c: Likewise.
13044 * tree-dfa.c: Likewise.
13045 * tree-dump.c: Likewise.
13046 * tree-inline.c: Likewise.
13047 * tree-mudflap.c: Likewise.
13048 * tree-nested.c: Likewise.
13049 * tree-object-size.c: Likewise.
13050 * tree-pretty-print.c: Likewise.
13051 * tree-sra.c: Likewise.
13052 * tree-ssa-live.c: Likewise.
13053 * tree-ssa-loop-niter.c: Likewise.
13054 * tree-ssa-math-opts.c: Likewise.
13055 * tree-ssa-reassoc.c: Likewise.
13056 * tree-ssa-sccvn.c: Likewise.
13057 * tree-ssa-structalias.c: Likewise.
13058 * tree-tailcall.c: Likewise.
13059 * tree-vrp.c: Likewise.
13060 * tree.c: Likewise.
13061 * var-tracking.c: Likewise.
13062 * varasm.c: Likewise.
13063
643afedb
UW
130642010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13065
13066 PR target/44877
13067 * config/spu/spu.c (spu_expand_builtin_1): Allow references
13068 (as well as pointers) as argument to mask_for_load builtins.
13069
0ba0772b
RB
130702010-07-15 Richard Guenther <rguenther@suse.de>
13071
13072 PR tree-optimization/44946
13073 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
13074 with accessing only padding properly.
13075
02ee7bea
JH
130762010-07-15 Jan Hubicka <jh@suse.cz>
13077
0ba0772b
RB
13078 * ipa.c (function_and_variable_visibility): Variables marked as used
13079 should not be localized.
02ee7bea 13080
99fecd47
JH
130812010-07-15 Jan Hubicka <jh@suse.cz>
13082
13083 * cgraph.c: Include lto-streamer.h
13084 (change_decl_assembler_name): Work when assembler name hash is at place.
bd3a5d17
UB
13085 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
13086 be sure to rename it to avoid name clash.
99fecd47
JH
13087 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
13088 Localize hidden symbols only when locally defined.
13089
53f00dde
UB
130902010-07-15 Uros Bizjak <ubizjak@gmail.com>
13091
13092 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
13093
8ffadef9
MG
130942010-07-15 Magnus Granberg <zorry@gentoo.org>
13095 Kevin F. Quinn <kevquinn@gentoo.org>
13096
53f00dde
UB
13097 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
13098 * common.opt: Add -Wtrampolines.
13099 * doc/invoke.texi: Add -Wtrampolines.
8ffadef9 13100
5cb55204
JZ
131012010-07-15 Jie Zhang <jie@codesourcery.com>
13102
13103 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
13104 cortex_a8_issue_ls.
13105
4c4837a3
DK
131062010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
13107
13108 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
13109 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
13110
588c71da
UW
131112010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13112
13113 * config/spu/spu.c (reg_names): Remove prototype.
13114 (call_used_regs): Likewise.
13115
a9c5db80
DK
131162010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
13117
13118 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
13119 "unused" with attribute "used".
13120 (__JCR_END__): Likewise.
13121 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
13122 "used" attribute.
13123 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
13124
61593e5e
RG
131252010-07-14 Richard Guenther <rguenther@suse.de>
13126
13127 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
13128 (maybe_fixup_decls): Likewise.
13129 (input_gimple_stmt): Do not fixup anything.
13130 * lto-streamer-out.c (output_gimple_stmt): Make sure all
13131 non-automatic variable uses are wrapped inside a MEM_REF.
13132
fc7fcda1
RH
131332010-07-14 Richard Henderson <rth@redhat.com>
13134
13135 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
13136 for functions.
13137 * varasm.c (assemble_variable): Remove early exit for functions;
13138 assert that we're given a variable.
13139
eab3f92e
JZ
131402010-07-14 Jie Zhang <jie@codesourcery.com>
13141
13142 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
13143 cortex_a8_default when neon_type is not none.
13144
402464a0
BS
131452010-07-14 Bernd Schmidt <bernds@codesourcery.com>
13146
13147 * lower-subreg.c (subreg_context): New static bitmap.
13148 (decompose_multiword_subregs): Allocate and free it.
13149 (find_decomposable_subregs): Set a bit in it for a register that
13150 occurs in a subreg that changes mode but not size.
13151 (can_decompose_p): Test it instead of non_decomposable_context.
13152
bf9899d4
RG
131532010-07-14 Richard Guenther <rguenther@suse.de>
13154
13155 PR tree-optimization/44824
13156 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
13157 is_gimple_mem_ref_addr.
13158 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
13159 non-decl_address_invariant_p addresses.
13160
b1c8622e
BS
131612010-07-14 Bernd Schmidt <bernds@codesourcery.com>
13162
13163 * reload.c (find_reloads): Revert code to penalize small register
13164 classes that was brought in with the IRA merge.
13165
2bd6311d
RG
131662010-07-14 Richard Guenther <rguenther@suse.de>
13167
13168 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
13169 as base of ARRAY_REFs.
13170
f051cb5d
RG
131712010-07-14 Richard Guenther <rguenther@suse.de>
13172
13173 PR middle-end/44930
13174 * tree-pretty-print.c (do_niy): Do not print a newline.
13175
a49ae217
BS
131762010-07-14 Bernd Schmidt <bernds@codesourcery.com>
13177
13178 * ira-int.h (struct ira_object): New.
53f00dde 13179 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
a49ae217
BS
13180 (struct ira_allocno): Remove members min, max,
13181 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
13182 conflict_allocnos_num and conflict_vec_p. Add new member object.
13183 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
13184 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
13185 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
13186 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
13187 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
13188 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
13189 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
13190 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
13191 an ira_object_t rather than ira_allocno_t. All uses changed.
13192 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
13193 contains a vector of ira_object_t; all uses changed.
13194 (ira_objects_num): Declare variable.
13195 (ira_create_allocno_object): Declare function.
13196 (ira_conflict_vector_profitable_p): Adjust prototype.
13197 (ira_allocate_conflict_vec): Renamed from
13198 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
13199 (ira_allocate_object_conflicts): Renamed from
13200 ira_allocate_allocno_conflicts; first arg now ira_object_t.
13201 (struct ira_object_iterator): New.
13202 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
13203 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
13204 to conflict_vec_p. All uses changed.
13205 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
13206 Changed to take into account that conflicts are now tracked for
13207 objects.
53f00dde
UB
13208 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
13209 Args changed to accept ira_object_t. All uses changed.
a49ae217
BS
13210 (allocnos_conflict_p): New static function.
13211 (collected_conflict_objects): Renamed from collected_allocno_objects;
13212 now a vector of ira_object_t. All uses changed.
13213 (build_conflict_bit_table): Changed to take into account that
13214 conflicts are now tracked for objects.
13215 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
13216 (print_allocno_conflicts, ira_build_conflicts): Likewise.
13217 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
13218 setup_allocno_left_conflicts_size, allocno_reload_assign,
13219 fast_allocation): Likewise.
13220 * ira-lives.c (make_hard_regno_born, make_allocno_born)
13221 process_single_reg_class_operands, process_bb_node_lives): Likewise.
13222 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
13223 Likewise.
13224 * ira-build.c (ira_objects_num): New variable.
13225 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
13226 contains a vector of ira_object_t; all uses changed.
13227 (ira_object_id_map_vec): Corresponding change.
13228 (object_pool): New static variable.
13229 (initiate_allocnos): Initialize it.
13230 (finish_allocnos): Free it.
13231 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
13232 New functions.
13233 (ira_create_allocno): Don't set members that were removed.
13234 (ira_set_allocno_cover_class): Don't change conflict hard regs.
13235 (merge_hard_reg_conflicts): Changed to take into account that
13236 conflicts are now tracked for objects.
13237 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
13238 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
13239 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
13240 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
13241 setup_min_max_conflict_allocno_ids, ): Likewise.
53f00dde 13242 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
a49ae217
BS
13243 to ira_object_t; all callers changed.
13244 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
13245 to ira_object_t, all callers changed.
13246 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
13247 to ira_object_t, all callers changed.
13248 (conflict_check, curr_conflict_check_tick): Renamed from
13249 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
13250 changed.
13251 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
13252 arg changed to ira_object_t, all callers changed.
13253 (create_cap_allocno): Call ira_create_allocno_object.
13254 (finish_allocno): Free the corresponding object.
13255 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
13256 callers changed. Adjusted for dealing with objects.
13257 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
13258 dealing with objects.
13259 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
13260
53f00dde
UB
13261 * ira-int.h (struct live_range): Rename allocno member to object
13262 and change type to ira_object_t.
9140d27b
BS
13263 (struct ira_object): New member live_ranges.
13264 (struct ira_allocno): Remove member live_ranges.
13265 (ALLOCNO_LIVE_RANGES): Remove.
13266 (OBJECT_LIVE_RANGES): New macro.
13267 (ira_create_live_range, ira_copy_live_range_list,
13268 ira_merge_live_range_list, ira_live_ranges_intersect_p,
13269 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
13270 * ira-build.c (ira_create_object): Initialize live ranges here.
13271 (ira_create_allocno): Not here.
13272 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
13273 changed to ira_object_t, all callers changed.
13274 (copy_live_range): Rename from copy_allocno_live_range, all callers
13275 changed.
53f00dde
UB
13276 (ira_copy_live_range_list): Rename from
13277 ira_copy_allocno_live_range_list, all callers changed.
9140d27b
BS
13278 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
13279 all callers changed.
13280 (ira_live_ranges_intersect_p): Rename from
13281 ira_allocno_live_ranges_intersect_p, all callers changed.
13282 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
13283 callers changed.
13284 (ira_finish_live_range_list): Rename from
13285 ira_finish_allocno_live_range_list, all callers changed.
13286 (change_object_in_range_list): Rename from change_allocno_in_range_list,
13287 last arg changed to ira_object_t, all callers changed.
13288 (finish_allocno): Changed to expect live ranges in the allocno's object.
13289 (move_allocno_live_ranges, copy_allocno_live_ranges,
13290 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
13291 ira_flattening, ira_build): Likewise.
13292 * ira-color.c (allocnos_have_intersected_live_ranges_p,
13293 slot_coalesced_allocno_live_ranges_intersect,
13294 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
13295 * ira-conflicts.c (build_conflict_bit_table): Likewise.
13296 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
13297 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
13298 make_allocno_dead, create_start_finish_chains,
13299 remove_some_program_points_and_update_live_ranges,
13300 ira_debug_live_range_list): Likewise.
13301
fa86d337
BS
13302 * ira-int.h (ira_object_conflict_iterator): Rename from
13303 ira_allocno_conflict_iterator.
13304 (ira_object_conflict_iter_init): Rename from
13305 ira_allocno_conflict_iter_init, second arg changed to
13306 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
13307 FOR_EACH_ALLOCNO_CONFLICT.
13308 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
13309 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
13310 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
13311 * ira-conflicts.c (print_allocno_conflicts): Likewise.
13312
c31c32f9
JR
133132010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
13314
13315 PR other/44874
13316 * tree-dump.c (dump_options): Add enumerate_locals entry.
13317 Add TDF_NOID exclusion to all entry.
13318 * tree-dump.h (dump_enumerated_decls): Declare.
13319 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
13320 Don't display type uid.
13321 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
13322 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
13323 * tree-ssa-live.c: Include gimple.h.
13324 (numbered_tree_d): New struct.
13325 (numbered_tree): New typedef.
13326 (DEF_VEC_O (numbered_tree): New.
13327 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
13328 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
13329 (dump_enumerated_decls): Likewise.
13330 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
13331 debug info and flag_dump_final_insns, call dump_enumerated_decls.
13332 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
13333 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
13334
d1465187
RS
133352010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
13336
13337 * expmed.h (MAX_BITS_PER_WORD): Move to...
13338 * defaults.h (MAX_BITS_PER_WORD): ...here.
13339
0685e770
DD
133402010-07-13 DJ Delorie <dj@redhat.com>
13341
13342 * config/h8300/h8300.c (h8300_init_once): Default to
13343 -fstrict_volatile_bitfields.
13344
13345 * config/sh/sh.c (sh_override_options): Default to
13346 -fstrict_volatile_bitfields.
13347
13348 * config/rx/rx.c (rx_option_override): New.
13349
13350 * config/m32c/m32c.c (m32c_override_options): Default to
13351 -fstrict_volatile_bitfields.
13352
3bb06db4
NF
133532010-07-13 Nathan Froyd <froydnj@codesourcery.com>
13354
13355 * tree.h (build_function_call_expr): Delete.
13356 (build_call_expr_loc_array): New function.
13357 (build_call_expr_loc_vec): New function.
13358 * tree-flow.h (struct omp_region): Change type of ws_args field
13359 to a VEC.
13360 * builtins.c (build_function_call_expr): Delete.
13361 (build_call_expr_loc_array): New function.
13362 (build_call_expr_loc): Call it. Use XALLOCAVEC.
13363 (build_call_expr): Likewise.
13364 (build_call_expr_loc_vec): New function.
13365 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
13366 build_function_call_expr.
13367 * expr.c (emutls_var_address): Likewise.
13368 * varasm.c (emutls_common_1): Likewise.
13369 * omp-low.c (expand_omp_atomic_mutex): Likewise.
13370 (expand_omp_taskreg): Adjust for new type of region->ws_args.
13371 (get_ws_args_for): Return a VEC instead of a tree.
13372 (expand_parallel_call): Call build_call_expr_loc_vec instead of
13373 build_function_call_expr.
13374 * stor-layout.c (self_referential_size): Likewise.
13375
c55c061a
JJ
133762010-07-13 Jakub Jelinek <jakub@redhat.com>
13377
13378 PR testsuite/44701
13379 * recog.c (constrain_operands): Allow side-effects in memory
13380 operands if either < or > constraint is used, rather than if
13381 both < and > is used.
13382
2eb0b984
RG
133832010-07-13 Richard Guenther <rguenther@suse.de>
13384
13385 PR middle-end/44911
13386 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
13387 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
13388 without name.
13389
535b951f
KK
133902010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
13391
13392 PR target/44761
13393 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
13394 to variable emited.
13395 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
13396 * config/sh/sh.md (symGOT_load): Likewise.
13397 (symDTPOFF2reg): Likewise.
13398 (symTPOFF2reg): Likewise.
13399
6d06590d
RR
134002010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13401
13402 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
13403 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
13404
ea2d8f12
RO
134052010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13406
13407 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
13408 explanation.
13409 Find ucontext_t * on Solaris 11.
13410 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
13411 Handle new Solaris 11 __sighndlr patterns.
13412
2fed2012
JJ
134132010-07-13 Jakub Jelinek <jakub@redhat.com>
13414
13415 PR debug/44901
13416 * vec.h (VEC_block_remove): Fix comment.
13417 * tree-ssa-live.c (remove_unused_locals): Don't use
13418 VEC_unordered_remove on local_decls, instead replace a single
13419 vector element in each iteration if at least one element had
13420 to be removed and VEC_truncate at the end.
13421 * omp-low.c (expand_omp_taskreg): Likewise.
13422
cc343f65
MLI
134232010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
13424
13425 * c-decl.c (finish_function): Fix typo in comment.
a691bb08 13426
5676e87d
L
134272010-07-12 H.J. Lu <hongjiu.lu@intel.com>
13428
13429 PR bootstrap/44921
13430 * postreload.c (move2add_use_add3_insn): Silence gcc warning
13431 on min_regno.
13432
8556f58f
JJ
134332010-07-12 Jakub Jelinek <jakub@redhat.com>
13434
13435 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
13436 (simplify_stmt_using_ranges): Use it.
13437
8dc9f5bd
UW
134382010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13439
13440 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
13441 member. Do not mark as GTY(()).
13442 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
13443 (spu_builtin_decls): New static variable.
13444 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
13445 (spu_init_builtins): Likewise.
13446 (spu_builtin_mul_widen_even): Likewise.
13447 (spu_builtin_mul_widen_odd): Likewise.
13448 (spu_builtin_mask_for_load): Likewise.
13449 (spu_builtin_vec_perm): Likewise.
13450 * config/spu/spu-c.c: Include "target.h".
13451 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
13452 of using spu_builtins[].fndecl.
13453
ac9b0eea
RS
134542010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13455
13456 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
13457 imply -minterlink-mips16.
13458
5aa62249
RS
134592010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13460
13461 * config/mips/mips.h (mips16_globals): Declare.
13462 (SWITCHABLE_TARGET): Define.
13463 * config/mips/mips.c: Include target-globals.h.
13464 (mips16_globals): New variable.
13465 (mips_set_mips16_mode): Use save_target_globals and
13466 restore_target_globals instead of target_reinit.
13467
77f55879
RS
134682010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13469
13470 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
13471 to say that the function can be called more than once.
13472 * target-globals.c (save_target_globals): Call init_reg_sets.
13473
76ee381a
RS
134742010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13475
13476 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
13477 * bb-reorder.h: New file.
13478 * bb-reorder.c (default_target_bb_reorder): New variable.
13479 (this_target_bb_reorder): New conditional variable.
13480 (uncond_jump_length): Redefine as a macro.
13481 * target-globals.h (this_target_bb_reorder): Declare.
13482 (target_globals): Add a bb_reorder field.
13483 (restore_target_globals): Copy the bb_reorder field to
13484 this_target_bb-reorder.
13485 * target-globals.c: Include bb-reorder.h.
13486 (default_target_globals): Initialize the bb_reorder field.
13487 (save_target_globals): Likewise.
13488
7c6811fe
RS
134892010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13490
13491 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
13492 * gcse.h: New file.
13493 * gcse.c: Include gcse.h.
13494 (default_target_gcse): New variable.
13495 (this_target_gcse): New conditional variable.
13496 (can_copy): Redefine as a macro.
13497 (can_copy_init_p): New macro.
13498 (can_copy_p): Remove can_copy_init_p.
13499 * target-globals.h (this_target_gcse): Declare.
13500 (target_globals): Add a gcse field.
53f00dde 13501 (restore_target_globals): Copy the gcse field to this_target_gcse.
7c6811fe
RS
13502 * target-globals.c: Include gcse.h.
13503 (default_target_globals): Initialize the gcse field.
13504 (save_target_globals): Likewise.
13505
15e7b94f
RS
135062010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13507
13508 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
13509 and x_ira_prohibited_mode_move_regs_initialized_p.
13510 (ira_prohibited_mode_move_regs): Redefine as a macro.
13511 * ira.c (ira_prohibited_mode_move_regs): Delete.
13512 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
13513
cc14227f
RS
135142010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13515
13516 * reload.h (target_reload): Add x_cached_reg_save_code and
13517 x_cached_reg_restore_code.
13518 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
13519 Redefine as macros.
13520
fa19795e
RS
135212010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13522
13523 * Makefile.in (target-globals.o): Depend on builtins.h.
13524 * builtins.h: New file.
13525 * builtins.c: Include builtins.h.
13526 (default_target_builtins): New variable.
13527 (this_target_builtins): New conditional variable.
13528 (apply_args_mode, apply_result_mode): Redefine as macros.
13529 * target-globals.h (this_target_builtins): Declare.
13530 (target_globals): Add a builtins field.
13531 (restore_target_globals): Copy the builtins field to
13532 this_target_builtins.
13533 * target-globals.c: Include builtins.h.
13534 (default_target_globals): Initialize the builtins field.
13535 (save_target_globals): Likewise.
13536
c371bb73
RS
135372010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13538
13539 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
13540 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
13541 from expmed.c.
13542 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
13543 (alg_hash, alg_hash_used_p): New macros.
13544 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
13545 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
13546 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
13547
aa1c5d72
RS
135482010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13549
13550 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
13551 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
13552 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
13553 (this_op_costs, costs_classes): Redefine as macros.
13554 (record_reg_classes): Don't take op_costs as a parameter.
13555 (record_operand_costs): Likewise. Update calls to record_reg_classes.
13556 (scan_one_insn): Update call to record_operand_costs.
13557
afcc66c4
RS
135582010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13559
13560 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
13561 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
13562 (target_ira_int): New structure.
13563 (default_target_ira_int): Declare.
13564 (this_target_ira_int): Declare as a variable or define as a macro.
13565 (ira_reg_mode_hard_regset, ira_register_move_cost)
13566 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
13567 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
13568 (prohibited_class_mode_regs, ira_important_classes_num)
13569 (ira_important_classes, ira_reg_class_intersect)
13570 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
13571 (ira_reg_class_union): Redefine as macros.
13572 * ira.h (target_ira): New structure.
13573 (default_target_ira): Declare.
13574 (this_target_ira): Declare as a variable or define as a macro.
13575 (ira_available_class_regs, ira_hard_regno_cover_class)
13576 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
13577 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
13578 (ira_class_hard_regs_num): Redefine as macros.
13579 * ira.c (default_target_ira, default_target_ira_int): New variables.
13580 (this_target_ira, this_target_ira_int): New conditional variables.
13581 (ira_reg_mode_hard_regset, ira_memory_move_cost)
13582 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
13583 (ira_class_subset_p): Delete.
13584 (no_unit_alloc_regs): Redefine as a macro.
13585 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
13586 (ira_class_hard_regs_num, ira_class_hard_reg_index)
13587 (ira_available_class_regs): Delete.
13588 (alloc_reg_class_subclasses): Redefine as a macro.
13589 (ira_reg_class_cover_size, ira_reg_class_cover)
13590 (ira_important_classes_num, ira_important_classes)
13591 (ira_important_class_nums, ira_class_translate): Delete.
13592 (cover_class_order): Document the variable's lifetime.
13593 (reorder_important_classes): Don't set ira_important_class_nums.
13594 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
13595 (ira_reg_class_super_classes, ira_reg_class_union)
13596 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
13597 Delete.
13598 (setup_reg_class_nregs): Don't set ira_max_regs.
13599 (prohibited_class_mode_regs): Delete.
13600 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
13601 (target_globals): Add ira and ira_int fields.
13602 (restore_target_globals): Copy the ira field to this_target_ira
13603 and the ira_int field to this_target_ira_int.
13604 * target-globals.c: Include ira-int.h.
13605 (default_target_globals): Initialize the ira and ira_int fields.
13606 (save_target_globals): Likewise.
13607
4391924a
RS
136082010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13609
13610 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
13611 * cfgloop.h (target_cfgloop): New structure.
13612 (default_target_cfgloop): Declare.
13613 (this_target_cfgloop): Declare as a variable or define as a macro.
13614 (target_avail_regs, target_clobbered_regs, target_res_regs)
13615 (target_reg_cost, target_spill_cost): Redefine as macros.
13616 * cfgloopanal.c (default_target_cfgloop): New variable.
13617 (this_target_cfgloop): New conditional variable.
13618 (target_avail_regs, target_clobbered_regs, target_res_regs)
13619 (target_reg_cost, target_spill_cost): Delete.
13620 * target-globals.h (this_target_cfgloop): Declare.
13621 (target_globals): Add a cfgloop field.
13622 (restore_target_globals): Copy the cfgloop field to
13623 this_target_cfgloop.
13624 * target-globals.c: Include cfgloop.h.
13625 (default_target_globals): Initialize the cfgloop field.
13626 (save_target_globals): Likewise.
13627
9d86796b
RS
136282010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13629
13630 * regs.h (target_regs): Add x_direct_load, x_direct_store and
13631 x_float_extend_from_mem.
13632 (direct_load, direct_store, float_extend_from_mem): New macros.
13633 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
13634
3e9c326a
RS
136352010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13636
13637 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
13638 (target-globals.o): Depend on $(LIBFUNCS_H).
13639 * libfuncs.h: Include hashtab.h.
13640 (libfunc_entry): Moved from optabs.c.
13641 (target_libfuncs): New structure.
13642 (default_target_libfuncs): Declare.
13643 (this_target_libfuncs): Declare as a variable or define as a macro.
13644 (libfunc_table): Redefine as a macro.
13645 * optabs.c (default_target_libfuncs): New variable.
13646 (this_target_libfuncs): New conditional variable.
13647 (libfunc_table): Delete.
13648 (libfunc_entry): Moved to optabs.h.
13649 (libfunc_hash): Redefine as a macro.
13650 (hash_libfunc, eq_libfunc): Fix comments.
13651 (init_optabs): Use libfunc_hash to detect cases where the function
13652 has already been called. Clear the hash table instead of
13653 recreating it.
13654 * target-globals.h (this_target_libfuncs): Declare.
13655 (target_globals): Add a libfuncs field.
13656 (restore_target_globals): Copy the libfuncs field to
13657 this_target_libfuncs.
13658 * target-globals.c: Include libfuncs.h.
13659 (default_target_globals): Initialize the libfuncs field.
13660 (save_target_globals): Likewise.
13661
9f7f1892
RS
136622010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13663
13664 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
13665 in all dependency lists.
13666
4bcbfa03
RS
136672010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13668
13669 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
13670 * optabs.h (target_optabs): New structure.
13671 (default_target_optabs): Declare.
13672 (this_target_optabs): Declare as a variable or define as a macro.
13673 (optab_table, convert_optab_table, direct_optab_table): Redefine
13674 as macros.
13675 * optabs.c (default_target_optabs): New variable.
13676 (this_target_optabs): New conditional variable.
13677 (optab_table, convert_optab_table, direct_optab_table): Delete.
13678 * target-globals.h (this_target_optabs): Declare.
13679 (target_globals): Add a optabs field.
13680 (restore_target_globals): Copy the optabs field to
13681 this_target_optabs.
13682 * target-globals.c: Include expr.h and optabs.h.
13683 (default_target_globals): Initialize the optabs field.
13684 (save_target_globals): Likewise.
13685
b6609375
RS
136862010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13687
13688 * flags.h (target_flagstate): Add x_flag_excess_precision.
13689 (flag_excess_precision): Redefine as a macro.
13690 * toplev.c (flag_excess_precision): Delete.
13691
bcbaaba1
RS
136922010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13693
13694 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
13695 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
13696 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
13697 (no_caller_save_reg_set): Redefine as a macro.
13698 * reload.h (target_reload): Add x_caller_save_initialized_p and
13699 x_regno_save_mode.
13700 (caller_save_initialized_p): Redefine as a macro.
13701 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
13702 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
13703 (regno_save_mode): Redefine as a macro.
13704
462f85ce
RS
137052010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13706
13707 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
13708 * expmed.h: New file.
13709 * expmed.c (default_target_costs): New variable.
13710 (this_target_costs): New conditional variable.
13711 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
13712 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
13713 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
13714 * target-globals.h (this_target_expmed): Declare.
13715 (target_globals): Add a expmed field.
13716 (restore_target_globals): Copy the expmed field to
13717 this_target_expmed.
13718 * target-globals.c: Include expmed.h.
13719 (default_target_globals): Initialize the expmed field.
13720 (save_target_globals): Likewise.
13721
d474db84
RS
137222010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13723
13724 * Makefile.in (target-globals.o): Depend on reload.h.
13725 * reload.h (target_reload): New structure.
13726 (default_target_reload): Declare.
13727 (this_target_reload): Declare as a variable or define as a macro.
13728 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
13729 * reload1.c (default_target_reload): New variable
13730 (this_target_reload): New conditional variable.
13731 (indirect_symref_ok, double_reg_address_ok): Delete.
13732 (spill_indirect_levels): Redefine as a macro.
13733 * target-globals.h (this_target_reload): Declare.
13734 (target_globals): Add a reload field.
13735 (restore_target_globals): Copy the reload field to
13736 this_target_reload.
13737 * target-globals.c: Include hard-reg-set.h.
13738 (default_target_globals): Initialize the reload field.
13739 (save_target_globals): Likewise.
13740
7bf84454
RS
137412010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13742
13743 * rtl.h (target_rtl): Add x_static_reg_base_value.
13744 * alias.c (static_reg_base_value): Redefine as a macro.
13745
360d045b
RS
137462010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13747
13748 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
13749 (GTFILES): Remove reginfo.c.
13750 * rtl.h (target_rtl): Add x_top_of_stack.
13751 (top_of_stack): New macro.
13752 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
13753 (top_of_stack): Delete.
13754
55e78c8c
RS
137552010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13756
53f00dde
UB
13757 * regs.h (target_regs): Add x_hard_regs_of_mode,
13758 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
13759 x_may_move_out_cost and x_last_mode_for_init_move_cost.
55e78c8c
RS
13760 (have_regs_of_mode, contains_reg_of_mode, move_cost)
13761 (may_move_in_cost, may_move_out_cost): Redefine as macros.
13762 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
13763 (may_move_in_cost, may_move_out_cost): Delete.
13764 (last_mode_for_init_move_cost): Redefine as a macro.
13765
6642445b
RS
137662010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13767
13768 * hard-reg-set.h (target_hard_regs): New structure.
13769 (default_target_hard_regs): Declare.
13770 (this_target_hard_regs): Declare as a variable or define as a macro.
13771 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
13772 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
13773 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
13774 (reg_class_size, reg_class_subclasses, reg_class_subunion)
13775 (reg_class_superunion, reg_names): Redefine as macros.
13776 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
13777 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
13778 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
13779 (reg_class_contents, reg_class_size, reg_class_subclasses)
13780 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
13781 (default_target_hard_regs): New variable
13782 (this_target_hard_regs, initial_call_really_used_regs)
13783 (initial_reg_alloc_order): New conditional variables.
13784 (initial_reg_names): New variable.
13785 (init_reg_sets): Assert that initial_call_really_used_regs,
13786 initial_reg_alloc_order and initial_reg_names
13787 are all the same size as their variable counterparts. Use them to
13788 initialize those counterparts.
13789 * target-globals.h (this_target_hard_regs): Declare.
13790 (target_globals): Add a hard_regs field.
13791 (restore_target_globals): Copy the hard_regs field to
13792 this_target_hard_regs.
13793 * target-globals.c: Include hard-reg-set.h.
13794 (default_target_globals): Initialize the hard_regs field.
13795 (save_target_globals): Likewise.
13796
5fb0e246
RS
137972010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13798
13799 * Makefile.in (target-globals.o): Depend on $(RTL_H).
bd3a5d17 13800 * rtl.h (target_rtl): New structure.
5fb0e246
RS
13801 (default_target_rtl): Declare.
13802 (this_target_rtl): Declare as a variable or define as a macro.
13803 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
13804 Redefine as macros.
13805 * emit-rtl.c (default_target_rtl): New variable.
13806 (this_target_rtl): New conditional variable.
13807 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
13808 (return_address_pointer_rtx): Delete.
13809 (initial_regno_reg_rtx): New macro.
13810 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
13811 (init_emit_regs): Likewise.
13812 * target-globals.h (this_target_rtl): Declare.
13813 (target_globals): Add a rtl field.
13814 (restore_target_globals): Copy the rtl field to this_target_rtl.
13815 * target-globals.c: Include rtl.h.
13816 (default_target_globals): Initialize the rtl field.
13817 (save_target_globals): Likewise.
13818
939dcd0d
RS
138192010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13820
13821 * Makefile.in (target-globals.o): Depend on $(REGS_H).
13822 * regs.h (target_reg_modes): New structure.
13823 (default_target_reg_modes): Declare.
13824 (this_target_reg_modes): Declare as a variable or define as a macro.
13825 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
13826 * reginfo.c (default_target_reg_modes): New variable.
13827 (this_target_reg_modes): New conditional variable.
13828 (hard_regno_nregs, reg_raw_mode): Delete.
13829 * target-globals.h (this_target_regs): Declare.
13830 (target_globals): Add a regs field.
13831 (restore_target_globals): Copy the regs field to this_target_regs.
13832 * target-globals.c: Include regs.h.
13833 (default_target_globals): Initialize the regs field.
13834 (save_target_globals): Likewise.
13835
3bd36029
RS
138362010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13837
13838 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
13839 * doc/tm.texi: Regenerate.
13840 * Makefile.in (OBJS-common): Add target-globals.o.
13841 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
13842 and target-globals.h.
13843 (target-globals.o): New rule.
13844 (GTFILES): Include $(srcdir)/target-globals.h.
13845 * defaults.h (SWITCHABLE_TARGET): Define.
13846 * gengtype.c (open_base_files): Add target-globals.h to the
13847 list of includes.
13848 * target-globals.h: New file.
13849 * target-globals.c: Likewise.
13850
13851 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
13852 * flags.h (target_flag_state): New structure.
13853 (default_target_flag_state): Declare.
13854 (this_target_flag_state): Declare as a variable or define as a macro.
13855 (align_loops_log): Redefine as a macro.
13856 (align_loops_max_skip, align_jumps_log): Likewise.
13857 (align_jumps_max_skip, align_labels_log): Likewise.
13858 (align_labels_max_skip, align_functions_log): Likewise.
13859 * toplev.c (default_target_flag_state): New variable.
13860 (this_target_flag_state): New conditional variable.
13861 (align_loops_log): Delete.
13862 (align_loops_max_skip, align_jumps_log): Likewise.
13863 (align_jumps_max_skip, align_labels_log): Likewise.
13864 (align_labels_max_skip, align_functions_log): Likewise.
13865 * target-globals.h (this_target_flag_state): Declare.
13866 (target_globals): Add a flag_state field.
13867 (restore_target_globals): Copy the flag_state field to
13868 this_target_flag_state.
13869 * target-globals.c: Include flags.h.
13870 (default_target_globals): Initialize the flag_state field.
13871 (save_target_globals): Likewise.
13872
7beb0596
JZ
138732010-07-12 Jie Zhang <jie@codesourcery.com>
13874
13875 * postreload.c (reg_symbol_ref[]): New.
13876 (move2add_use_add2_insn): New.
13877 (move2add_use_add3_insn): New.
13878 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
13879 (move2add_note_store): Likewise.
13880
ea19b1ec
JR
138812010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
13882
13883 PR rtl-optimization/44752
13884 * genautomata.c (main): Don't emit an empty file even if there
13885 is no automaton.
13886
e2b4f103
RO
138872010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13888
13889 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
13890 ix86_solaris_return_in_memory.
13891 * config/i386-protos.h: Reflect this.
13892 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13893 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13894 Move ...
13895 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
13896
fb2f8cf8
JZ
138972010-07-12 Jie Zhang <jie@codesourcery.com>
13898
13899 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
13900 align the stack when it's going to be saved.
13901
8f89ba7c
RO
139022010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13903
13904 PR pch/14940
13905 * config/host-solaris.c (mmap_fixed): New function.
13906 (sol_gt_pch_get_address): Use it.
13907 (sol_gt_pch_use_address): Likewise.
13908
ae6a0535
RO
139092010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13910
13911 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13912 pentiumpro on Solaris 8 and 9/x86.
13913 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
13914 Document SSE/SSE2 support.
13915 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
13916
e56d9a76
AK
139172010-07-12 Andi Kleen <ak@linux.intel.com>
13918
13919 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
13920 instead of gcc_assert to print better error message for multiple
13921 prevailing defs.
13922
9db335b9
UB
139232010-07-12 Uros Bizjak <ubizjak@gmail.com>
13924
13925 * config/i386/i386.c (ix86_asm_output_function_label): Change format
13926 string placeholder from 0x%x to %#x.
13927 (ix86_code_end): Use putc to output '\n'.
13928 (ix86_print_operand) <case ';'>: Use putc to output ';'.
13929
23b488ad
KT
139302010-07-11 Kai Tietz <kai.tietz@onevision.com>
13931
13932 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
13933 in directive -export.
13934
a56b31ca
AS
139352010-07-10 Anatoly Sokolov <aesok@post.ru>
13936
13937 * reginfo.h (reg_classes_intersect_p): Change arguments type to
13938 reg_class_t.
13939 * rtl.h (reg_classes_intersect_p): Adjust prototype.
13940
13941 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13942 Remove macros.
13943 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
13944 rs6000_memory_move_cost): Remove
13945 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
13946 TARGET_MEMORY_MOVE_COST): Define.
13947 (rs6000_register_move_cost): Make static. Change arguments type from
13948 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
13949 (rs6000_memory_move_cost): Make static. Change arguments type from
13950 'enum reg_class' to reg_class_t.
13951
bec922f0
SL
139522010-07-10 Sandra Loosemore <sandra@codesourcery.com>
13953
13954 PR middle-end/42505
13955 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
13956 lookup code into....
13957 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
13958 new functions.
13959 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
13960 * cfgloopanal.c (target_clobbered_regs): Define.
13961 (init_set_costs): Initialize target_clobbered_regs.
13962 (estimate_reg_pressure_cost): Add call_p argument. When true,
13963 adjust the number of available registers to exclude the
13964 call-clobbered registers.
13965 * cfgloop.h (target_clobbered_regs): Declare.
13966 (estimate_reg_pressure_cost): Adjust declaration.
13967 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
13968 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
13969 (determine_set_costs): Dump target_clobbered_regs.
13970 (loop_body_includes_call): New function.
13971 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
13972 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
13973 call_p flag through.
13974 (best_gain_for_invariant): Likewise.
13975 (find_invariants_to_move): Likewise.
13976 (move_single_loop_invariants): Likewise, using already-computed
13977 has_call field.
13978
ccf134c7
RG
139792010-07-10 Richard Guenther <rguenther@suse.de>
13980 Joern Rennecke <joern.rennecke@embecosm.com>
13981
13982 PR debug/44832
9db335b9 13983 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
ccf134c7
RG
13984 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
13985 unless they have DECL_IGNORED_P set.
13986
bcee752e
RG
139872010-07-10 Richard Guenther <rguenther@suse.de>
13988
13989 PR lto/44889
13990 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
13991 helper function.
13992 (gimple_types_compatible_p): Similar to pointed-to
13993 types allow and merge a mix of complete and incomplete aggregate.
13994 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
13995 (iterative_hash_gimple_type): Adjust for that.
13996
7e9b9697
RS
139972010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
13998
13999 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
14000
058bfe53
IS
140012010-07-10 Iain Sandoe <iains@gcc.gnu.org>
14002
14003 PR objc/44140
14004 * config/darwin.c (output_objc_section_asm_op): Save and restore
14005 section when outputting ObjC section list.
14006
b772114c
JH
140072010-07-09 Jan Hubicka <jh@suse.cz>
14008
9db335b9
UB
14009 * lto-streamer-out.c (produce_symtab): Do not write alias
14010 cgraph/varpool nodes.
b772114c 14011
7e97ee1a
JH
140122010-07-09 Jan Hubicka <jh@suse.cz>
14013
14014 * tree-inline.c (declare_return_variable): Fix ICE while
14015 inlining DECL_BY_VALUE function not in SSA form
14016
0bbe50f6
CF
140172010-07-09 Changpeng Fang <changpeng.fang@amd.com>
14018
14019 PR tree-optimization/44576
14020 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
14021 New. Pull out from is_loop_prefetching_profitable to implement
14022 the trip count to ahead ratio heuristic.
14023 (mem_ref_count_reasonable_p): New. Pull out from
14024 is_loop_prefetching_profitable to implement the instruction to
14025 memory reference ratio heuristic. Also consider not reasonable if
14026 the memory reference count is above a threshold (to avoid
14027 explosive compilation time.
14028 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
14029 is_loop_prefetching_profitable to implement the instruction to
14030 prefetch ratio heuristic.
14031 (is_loop_prefetching_profitable): Removed.
14032 (loop_prefetch_arrays): Distribute the cost analysis across the
14033 function to allow early exit of the prefetch analysis.
14034 is_loop_prefetching_profitable is splitted into three functions,
14035 with each one called as early as possible.
14036 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
14037 number of memory references in a loop is considered too many.
14038
c033690d
BS
140392010-07-09 Bernd Schmidt <bernds@codesourcery.com>
14040
9db335b9
UB
14041 * reload.c (find_reloads): Don't clear badop if we have a winreg
14042 alternative, but not win, and the class only has fixed regs.
c033690d
BS
14043 * hard-reg-set.h (class_only_fixed_regs): Declare.
14044 * reginfo.c (class_only_fixed_regs): New array.
14045 (init_reg_sets_1): Initialize it.
14046 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
14047 discourage alternatives using the stack pointer.
14048
0879e7b3
BS
14049 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
14050
1744c800
BS
14051 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
14052
95da5cf9
BS
14053 * config/arm/arm.md (cbranchqi4): Fix array size.
14054 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
14055 calculating length.
14056
e8edaf95
RG
140572010-07-09 Richard Guenther <rguenther@suse.de>
14058
14059 * gimple.c (struct type_fixup_s): New struct and VEC type.
14060 (gimple_register_type_fixups): New static global.
14061 (gimple_queue_type_fixup): New function.
14062 (gimple_types_compatible_p): Queue type fixups instead of
14063 applying them here.
14064 (gimple_register_type): Apply queued fixups for the
14065 canonical type. Empty the type fixup queue.
14066
7085bfb6
UB
140672010-07-09 Uros Bizjak <ubizjak@gmail.com>
14068
14069 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
14070 * configure: Regenerate.
abcb0bd9 14071 * config.in: Ditto.
7085bfb6 14072
85e693aa
JJ
140732010-07-09 Jakub Jelinek <jakub@redhat.com>
14074 Denys Vlasenko <dvlasenk@redhat.com>
14075 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14076
14077 PR tree-optimization/28632
14078 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
14079 (extract_range_from_binary_expr): Further optimize
14080 BIT_AND_EXPR and BIT_IOR_EXPR.
14081
59ee2304
SP
140822010-07-09 Sebastian Pop <sebastian.pop@amd.com>
14083
14084 * tree-if-conv.c (fold_or_predicates): New.
14085 (add_to_predicate_list): Call it.
14086
38a178dd
RG
140872010-07-09 Richard Guenther <rguenther@suse.de>
14088
14089 PR middle-end/44890
14090 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
14091 if base is a pointer.
14092 * tree-cfg.c (verify_expr): Update MEM_REF checking.
14093
c8aa02cc
MM
140942010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
14095
14096 PR target/44877
14097 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
14098 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
14099 builtin mask for load/store builtins.
14100
4bade865
UB
141012010-07-09 Uros Bizjak <ubizjak@gmail.com>
14102
14103 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
14104 for "lock addl".
14105 * configure: Regenerate.
14106 * config/i386/i386.c (ix86_print_operand) <case ';'>:
14107 Remove TARGET_MACHO.
14108
2c9ccc21
PB
141092010-07-09 Peter Bergner <bergner@vnet.ibm.com>
14110
14111 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
14112 default ISA flags.
14113 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
14114
5c9fae0d
TV
141152010-07-09 Tom de Vries <tjvries@xs4all.nl>
14116
14117 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
14118
7085bfb6 141192010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
099379da
HS
14120
14121 * config/picochip/picochip.md (commsTestPort): Emit more
14122 efficient sequence for tstport instruction.
14123
f55a7cbc
UB
141242010-07-09 Uros Bizjak <ubizjak@gmail.com>
14125
14126 * config/i386/i386.c (ix86_veclib_handler): Make static.
14127
dbfcc059
RG
141282010-07-09 Richard Guenther <rguenther@suse.de>
14129
14130 PR tree-optimization/44852
14131 * tree-ssa-alias.c: Include toplev.h for exact_log2.
14132 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
14133 in MEM_REF.
14134 (indirect_refs_may_alias_p): Likewise.
14135 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
14136
ca1316d2
RG
141372010-07-09 Richard Guenther <rguenther@suse.de>
14138
14139 PR tree-optimization/44882
14140 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
14141 sets do conflict.
14142 (vectorizable_load): Likewise.
14143
e784c52c
BS
141442010-07-09 Bernd Schmidt <bernds@codesourcery.com>
14145
14146 PR target/40657
14147 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
14148 All callers changed.
14149 Handle the case when we're called for the epilogue.
14150 (thumb_unexpanded_epilogue): Use it.
14151 (thumb1_expand_epilogue): Likewise.
14152
ac285648
JJ
141532010-07-09 Jakub Jelinek <jakub@redhat.com>
14154
14155 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
14156 both ranges are range_int_cst_p with non-negative minimum,
14157 try harder to derive smaller range.
14158
79a3f089
MLI
141592010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
14160
14161 * genrecog.c: Include diagnostic-core.h before toplev.h.
14162 * genoutput.c: Likewise.
14163 * genextract.c: Likewise.
14164 * genautomata.c: Likewise.
14165 * genemit.c: Likewise.
14166 * genpeep.c: Likewise.
14167 * genattrtab.c: Likewise.
14168 * genconditions.c: Likewise.
14169 * genpreds.c: Likewise.
14170
f55a7cbc 141712010-07-08 Andi Kleen <ak@linux.intel.com>
1df15c3d
AK
14172
14173 * lto-section-in.c (lto_section_name): Add missing comma.
14174
930572b9
AS
141752010-07-08 Anatoly Sokolov <aesok@post.ru>
14176
14177 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
14178 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
14179 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
14180 (ia64_override_options): Rename to...
14181 (ia64_option_override): ... this one. Make static.
14182
5951297a
EB
141832010-07-08 Eric Botcazou <ebotcazou@adacore.com>
14184
14185 PR middle-end/44843
14186 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
14187 pointed-to type of the offset in a MEM_REF to compute the alignment.
14188
135a687e
KT
141892010-07-08 Kai Tietz <kai.tietz@onevision.com>
14190
2784ed9c
KT
14191 * final.c (final_scan_insn): Replace
14192 TARGET_UNWIND_INFO macro check by unwind_emit
14193 hook NULL check.
14194 * targhooks.c (default_unwind_emit): Removed.
14195 * targhooks.h (default_unwind_emit): Likewise.
14196 * target.def (unwind_emit): Set default value to NULL.
14197
135a687e
KT
14198 * config/i386/i386-protos.h (ix86_asm_output_function_label):
14199 New prototype.
14200 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
14201 for NULL fntype argument and allow 64-bit targets.
14202 (ix86_asm_output_function_label): New function.
14203 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
14204 (ix86_handle_fndecl_attribute): Likewise.
14205 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
14206 * doc/doc/tm.texi: Regenerated.
14207 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
14208 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
14209 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
14210 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
14211 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
14212 * config/elfos.h: Likewise.
14213 * config/i386/cygming.h: Likewise.
14214 * config/netbsd-aout.h: Likewise.
14215 * config/openbsd.h: Likewise.
14216 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
14217 by ix86_asm_output_function_label function call.
14218 * varasm.c (assemble_start_function): Use
14219 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
14220
09411461
JH
142212010-07-08 Jan Hubicka <jh@suse.cz>
14222
14223 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
14224 New function.
14225 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
14226 Declare.
14227 * ipa-cp.c (ipcp_estimate_growth): Use it.
14228 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
14229 Likewise.
14230
72109b25
JH
142312010-07-08 Jan Hubicka <jh@suse.cz>
14232
14233 * tree-inline.c (declare_return_variable): Allocate annotation for new
14234 temporary.
14235
d89e5e20
SP
142362010-07-08 Sebastian Pop <sebastian.pop@amd.com>
14237
14238 PR tree-optimization/44710
14239 * tree-if-conv.c (parse_predicate): New.
14240 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
14241 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
14242
384a5197
SP
142432010-07-08 Sebastian Pop <sebastian.pop@amd.com>
14244
14245 * common.opt (ftree-loop-if-convert): New flag.
14246 * doc/invoke.texi (ftree-loop-if-convert): Documented.
14247 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
14248 when flag_tree_loop_if_convert is set.
14249
f8e1995a
UB
142502010-07-08 Uros Bizjak <ubizjak@gmail.com>
14251
14252 * config/i386/i386.c: Use short syntax for function calls
14253 through function pointers.
14254 * config/i386/i386.md: Ditto.
14255
a80903ff
EB
142562010-07-08 Eric Botcazou <ebotcazou@adacore.com>
14257
14258 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
14259
d0c422cb
RG
142602010-07-08 Richard Guenther <rguenther@suse.de>
14261
14262 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
14263 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
14264
b298f924
JJ
142652010-07-08 Jakub Jelinek <jakub@redhat.com>
14266
14267 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
14268 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
14269 (loc_list_from_tree): Likewise.
14270 (output_loc_operands): Handle outputting DW_OP_const[48]u
14271 with loc->dtprel set.
14272 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
14273
5dde3b01
JH
142742010-07-08 Jan Hubicka <jh@suse.cz>
14275
14276 * ipa.c: Include pointer-set.h
14277 (cgraph_externally_visible_p): New attribute ALIASED;
14278 when in LTO, hidden symbols are local unless they are aliased.
14279 (function_and_variable_visibility): Compute aliased nodes;
14280 handle LTO and hidden symbol on functions and vars.
14281 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
14282 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
14283
2de710b9
EB
142842010-07-08 Eric Botcazou <ebotcazou@adacore.com>
14285
14286 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14287 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14288 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14289 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14290 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14291 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
14292 (ix86_gen_probe_stack_range): Likewise.
14293 (override_options): Set them.
14294 (ix86_target_stack_probe): New function.
14295 (ix86_compute_frame_layout): Force use of push instructions to
14296 save registers if stack checking with probes is enabled.
14297 (get_scratch_register_on_entry): New function.
14298 (release_scratch_register_on_entry): Likewise.
14299 (ix86_adjust_stack_and_probe): Likewise.
14300 (output_adjust_stack_and_probe): Likewise.
14301 (ix86_emit_probe_stack_range): Likewise.
14302 (output_probe_stack_range): Likewise.
14303 (ix86_expand_prologue): Emit stack checking code if static built-in
14304 stack checking is enabled.
14305 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
14306 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
14307 (output_adjust_stack_and_probe): Likewise.
14308 (output_probe_stack_range): Likewise.
14309 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14310 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
14311 TARGET_STACK_PROBE.
14312 (allocate_stack_worker_64): Likewise.
14313 (allocate_stack): Likewise.
14314 (adjust_stack_and_probe): New insn.
14315 (probe_stack_range): Likewise.
14316
f076deba
RG
143172010-07-08 Richard Guenther <rguenther@suse.de>
14318
14319 PR tree-optimization/44831
14320 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
14321 a MEM_REF preserving TBAA info of the original dereference.
4bade865 14322 Dereference the original pointer if the address is not invariant.
f076deba
RG
14323 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
14324 at least one invariant address that we are going to dereference.
14325
20ede5c6
RG
143262010-07-08 Richard Guenther <rguenther@suse.de>
14327
14328 PR tree-optimization/44861
14329 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
14330 information when building MEM_REFs.
14331 (vectorizable_load): Likewise.
14332 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
14333
80edb36c
EB
143342010-07-08 Eric Botcazou <ebotcazou@adacore.com>
14335
14336 * config/sol2-c.c: Do not include diagnostic-core.h.
14337
2e1ec94f
RR
143382010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14339
1df15c3d 14340 PR bootstrap/44768
2e1ec94f
RR
14341 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
14342 with respect to current_function_decl. Pass decl of the function.
14343 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
14344 * ipa-inline.c (compute_inline_parameters): Pass decl to
14345 estimated_stack_frame_size.
14346
a03a9774
RG
143472010-07-08 Richard Guenther <rguenther@suse.de>
14348
14349 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14350 New function.
14351 (valueize_refs): Call it.
14352
e73cfe5d
RG
143532010-07-08 Richard Guenther <rguenther@suse.de>
14354
14355 PR rtl-optimization/44838
14356 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
14357 SSA form do not use pointer equivalence.
14358
51d49bc2
EB
143592010-07-08 Eric Botcazou <ebotcazou@adacore.com>
14360
14361 * dwarf2out.c (AT_linkage_name): Delete.
14362 (add_linkage_attr): New function.
14363 (add_linkage_name): Call it to emit the linkage attribute.
14364 (dwarf2out_finish): Likewise.
14365 (move_linkage_attr): Explicitly accept both attribute variants.
14366
718f9c0f
MLI
143672010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
14368
14369 * toplev.h: Do not include diagnostic-core.h.
14370 Include diagnostic-core.h in every file that includes toplev.h.
14371 * c-tree.h: Do not include toplev.h.
14372 * pretty-print.h: Update comment.
14373 * Makefile.in: Update dependencies.
14374 * alias.c: Include diagnostic-core.h in every file that includes
14375 toplev.h.
14376 * attribs.c: Likewise.
14377 * auto-inc-dec.c: Likewise.
14378 * bb-reorder.c: Likewise.
14379 * bt-load.c: Likewise.
14380 * caller-save.c: Likewise.
14381 * calls.c: Likewise.
14382 * cfg.c: Likewise.
14383 * cfganal.c: Likewise.
14384 * cfgbuild.c: Likewise.
14385 * cfgcleanup.c: Likewise.
14386 * cfghooks.c: Likewise.
14387 * cfgloop.c: Likewise.
14388 * combine.c: Likewise.
14389 * config/alpha/alpha.c: Likewise.
14390 * config/arc/arc.c: Likewise.
14391 * config/arm/arm.c: Likewise.
14392 * config/arm/pe.c: Likewise.
14393 * config/avr/avr.c: Likewise.
14394 * config/bfin/bfin.c: Likewise.
14395 * config/cris/cris.c: Likewise.
14396 * config/crx/crx.c: Likewise.
14397 * config/darwin-c.c: Likewise.
14398 * config/darwin.c: Likewise.
14399 * config/fr30/fr30.c: Likewise.
14400 * config/frv/frv.c: Likewise.
14401 * config/h8300/h8300.c: Likewise.
14402 * config/host-darwin.c: Likewise.
14403 * config/i386/i386.c: Likewise.
14404 * config/i386/netware.c: Likewise.
14405 * config/i386/nwld.c: Likewise.
14406 * config/i386/winnt-cxx.c: Likewise.
14407 * config/i386/winnt-stubs.c: Likewise.
14408 * config/i386/winnt.c: Likewise.
14409 * config/ia64/ia64-c.c: Likewise.
14410 * config/ia64/ia64.c: Likewise.
14411 * config/iq2000/iq2000.c: Likewise.
14412 * config/lm32/lm32.c: Likewise.
14413 * config/m32c/m32c-pragma.c: Likewise.
14414 * config/m32c/m32c.c: Likewise.
14415 * config/m32r/m32r.c: Likewise.
14416 * config/m68hc11/m68hc11.c: Likewise.
14417 * config/m68k/m68k.c: Likewise.
14418 * config/mcore/mcore.c: Likewise.
14419 * config/mep/mep-pragma.c: Likewise.
14420 * config/mep/mep.c: Likewise.
14421 * config/mmix/mmix.c: Likewise.
14422 * config/mn10300/mn10300.c: Likewise.
14423 * config/moxie/moxie.c: Likewise.
14424 * config/pa/pa.c: Likewise.
14425 * config/pdp11/pdp11.c: Likewise.
14426 * config/picochip/picochip.c: Likewise.
14427 * config/rs6000/rs6000-c.c: Likewise.
14428 * config/rs6000/rs6000.c: Likewise.
14429 * config/rx/rx.c: Likewise.
14430 * config/s390/s390.c: Likewise.
14431 * config/score/score.c: Likewise.
14432 * config/score/score3.c: Likewise.
14433 * config/score/score7.c: Likewise.
14434 * config/sh/sh.c: Likewise.
14435 * config/sh/symbian-base.c: Likewise.
14436 * config/sh/symbian-c.c: Likewise.
14437 * config/sh/symbian-cxx.c: Likewise.
14438 * config/sol2-c.c: Likewise.
14439 * config/sol2.c: Likewise.
14440 * config/sparc/sparc.c: Likewise.
14441 * config/spu/spu.c: Likewise.
14442 * config/stormy16/stormy16.c: Likewise.
14443 * config/v850/v850-c.c: Likewise.
14444 * config/v850/v850.c: Likewise.
14445 * config/vax/vax.c: Likewise.
14446 * config/vxworks.c: Likewise.
14447 * config/xtensa/xtensa.c: Likewise.
14448 * convert.c: Likewise.
14449 * cse.c: Likewise.
14450 * cselib.c: Likewise.
14451 * dbgcnt.c: Likewise.
14452 * dbxout.c: Likewise.
14453 * ddg.c: Likewise.
14454 * dominance.c: Likewise.
14455 * emit-rtl.c: Likewise.
14456 * explow.c: Likewise.
14457 * expmed.c: Likewise.
14458 * fixed-value.c: Likewise.
14459 * fold-const.c: Likewise.
14460 * fwprop.c: Likewise.
14461 * gcse.c: Likewise.
14462 * ggc-common.c: Likewise.
14463 * ggc-page.c: Likewise.
14464 * ggc-zone.c: Likewise.
14465 * gimple-low.c: Likewise.
14466 * gimplify.c: Likewise.
14467 * graph.c: Likewise.
14468 * haifa-sched.c: Likewise.
14469 * ifcvt.c: Likewise.
14470 * implicit-zee.c: Likewise.
14471 * integrate.c: Likewise.
14472 * ira-build.c: Likewise.
14473 * ira-color.c: Likewise.
14474 * ira-conflicts.c: Likewise.
14475 * ira-costs.c: Likewise.
14476 * ira-lives.c: Likewise.
14477 * ira.c: Likewise.
14478 * lists.c: Likewise.
14479 * loop-doloop.c: Likewise.
14480 * loop-iv.c: Likewise.
14481 * lto-opts.c: Likewise.
14482 * lto-symtab.c: Likewise.
14483 * main.c: Likewise.
14484 * modulo-sched.c: Likewise.
14485 * optabs.c: Likewise.
14486 * params.c: Likewise.
14487 * plugin.c: Likewise.
14488 * postreload-gcse.c: Likewise.
14489 * postreload.c: Likewise.
14490 * predict.c: Likewise.
14491 * profile.c: Likewise.
14492 * real.c: Likewise.
14493 * regcprop.c: Likewise.
14494 * reginfo.c: Likewise.
14495 * regmove.c: Likewise.
14496 * reorg.c: Likewise.
14497 * resource.c: Likewise.
14498 * rtl.c: Likewise.
14499 * rtlanal.c: Likewise.
14500 * sched-deps.c: Likewise.
14501 * sched-ebb.c: Likewise.
14502 * sched-rgn.c: Likewise.
14503 * sdbout.c: Likewise.
14504 * sel-sched-dump.c: Likewise.
14505 * sel-sched-ir.c: Likewise.
14506 * simplify-rtx.c: Likewise.
14507 * stmt.c: Likewise.
14508 * stor-layout.c: Likewise.
14509 * store-motion.c: Likewise.
14510 * targhooks.c: Likewise.
14511 * tree-cfg.c: Likewise.
14512 * tree-cfgcleanup.c: Likewise.
14513 * tree-dump.c: Likewise.
14514 * tree-eh.c: Likewise.
14515 * tree-inline.c: Likewise.
14516 * tree-nomudflap.c: Likewise.
14517 * tree-object-size.c: Likewise.
14518 * tree-optimize.c: Likewise.
14519 * tree-outof-ssa.c: Likewise.
14520 * tree-phinodes.c: Likewise.
14521 * tree-profile.c: Likewise.
14522 * tree-ssa-ccp.c: Likewise.
14523 * tree-ssa-coalesce.c: Likewise.
14524 * tree-ssa-live.c: Likewise.
14525 * tree-ssa-loop-niter.c: Likewise.
14526 * tree-ssa-loop-prefetch.c: Likewise.
14527 * tree-ssa-loop.c: Likewise.
14528 * tree-ssa-structalias.c: Likewise.
14529 * tree-ssa-uninit.c: Likewise.
14530 * tree-ssa.c: Likewise.
14531 * tree-vect-data-refs.c: Likewise.
14532 * tree-vect-loop-manip.c: Likewise.
14533 * tree-vect-loop.c: Likewise.
14534 * tree-vect-patterns.c: Likewise.
14535 * tree-vect-stmts.c: Likewise.
14536 * tree-vrp.c: Likewise.
14537 * varasm.c: Likewise.
14538 * vec.c: Likewise.
14539 * web.c: Likewise.
14540 * xcoffout.c: Likewise.
14541
647565f6
RS
145422010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
14543
14544 * gengtype.c (write_field_root): New function.
14545 (write_root): Use it.
14546
88c1612f
WG
145472010-07-07 Wei Guozhi <carrot@google.com>
14548
14549 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14550 of lowest bits to lshift/compare): Add a missing line.
14551
ece53c91
WG
145522010-07-07 Wei Guozhi <carrot@google.com>
14553
14554 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14555 of lowest bits to lshift/compare): New.
14556
9730bc27
TT
145572010-07-07 Tom Tromey <tromey@redhat.com>
14558
14559 * doc/tm.texi: Update.
14560 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
14561 Add @hook.
14562 * target.def (want_debug_pub_sections): New hook.
14563 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
14564 * dwarf2out.c (add_pubname_string): Check
14565 targetm.want_debug_pub_sections.
14566 (add_pubname): Likewise.
14567 (add_pubtype): Likewise.
14568
f5d5226b
JZ
145692010-07-07 Jie Zhang <jie@codesourcery.com>
14570
14571 * genautomata.c (output_automata_list_min_issue_delay_code):
14572 Correctly decompress min_issue_delay.
14573
71df5a7e
BS
145742010-07-07 Bernd Schmidt <bernds@codesourcery.com>
14575
14576 PR rtl-optimization/44404
14577 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
14578 possible, use reg_overlap_mentioned_p instead.
14579
f625098e
DS
145802010-07-07 Duncan Sands <baldrick@free.fr>
14581
14582 PR middle-end/41355
14583 * tree.c (build_function_type_skip_args): Copy the original type using
1df15c3d 14584 build_distinct_type_copy rather than copy_node.
f625098e 14585
ab33bd5c
L
145862010-07-07 H.J. Lu <hongjiu.lu@intel.com>
14587
14588 PR target/44850
14589 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
14590 revision 161876.
14591 (ix86_expand_prologue): Likewise.
14592 (ix86_handle_fndecl_attribute): Likewise.
14593 (ix86_asm_declare_function_name): Likewise.
14594 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14595 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14596 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
4bade865 14597 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
ab33bd5c
L
14598 * doc/extend.texi: Likewise.
14599
5e86e540
L
146002010-07-07 H.J. Lu <hongjiu.lu@intel.com>
14601
14602 PR target/44844
14603 * config/i386/i386.md (rdrand<mode>): Changed to expand to
14604 retry if the carry flag isn't valid.
14605 (rdrand<mode>_1): New.
14606
0ee95c43
RG
146072010-07-07 Richard Guenther <rguenther@suse.de>
14608
14609 PR middle-end/44790
14610 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
14611 for expanding the constant offset for MEM_REFs.
14612
523968bf
RG
146132010-07-07 Richard Guenther <rguenther@suse.de>
14614
14615 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
14616 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
14617 * gimple.h (is_gimple_operand): Remove.
14618 * gimple.c (is_gimple_operand): Likewise.
14619 (walk_gimple_op): Fix wi->val_only setting for calls.
14620 * tree-cfg.c (verify_gimple_call): Fix argument validation.
14621 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
14622 invalid gimple calls.
14623
86353474
JH
146242010-07-06 Jan Hubicka <jh@suse.cz>
14625
14626 * lto-cgraph.c (output_cgraph): Add missing declaration.
14627
b0d9e663
JH
146282010-07-06 Jan Hubicka <jh@suse.cz>
14629
14630 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
14631 partition.
14632
38be945b
AO
146332010-07-06 Alexandre Oliva <aoliva@redhat.com>
14634
14635 * doc/gimple.texi (GIMPLE_DEBUG): Document.
14636 * doc/rtl.texi (Debug Information): New node.
14637 (NOTE_INSN_VAR_LOCATION): Document.
14638 (debug_insn): Likewise.
14639 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
14640
6938f93f
JH
146412010-07-07 Jan Hubicka <jh@suse.cz>
14642
4bade865 14643 With parts by Richard Guenther.
6938f93f
JH
14644
14645 PR middle-end/44813
14646 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
14647 for functions passed by reference.
14648 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
14649 in memory when passed by reference.
14650 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
14651 beggining.
14652 * ipa-split.c (split_function): Cleanup way return value is passed;
14653 handle SSA DECL_BY_REFERENCE retvals.
14654 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
14655 DECL_BY_REFERENCE is set.
14656 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
14657 find_what_p_points_to): Handle RESULT_DECL.
14658 * tree-inline.c (declare_return_variable): Get new entry_block argument;
14659 when passing by reference ensure that RESULT_DECL is gimple_val.
14660 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
14661 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
14662
325d7997
BS
146632010-07-07 Bernd Schmidt <bernds@codesourcery.com>
14664
14665 PR rtl-optimization/44787
14666 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
14667 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
14668
e10aaec0
JH
146692010-07-06 Jan Hubicka <jh@suse.cz>
14670
14671 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
14672 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
14673 with body can prevail.
14674 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
14675 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
14676 * cgraph.c (cgraph_get_node_or_alias): New function.
14677 * cgraph.h (cgraph_get_node_or_alias): Declare.
14678
4bbf141c
KT
146792010-07-06 Kai Tietz <kai.tietz@onevision.com>
14680
14681 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
14682 support.
14683 (ix86_expand_prologue): Likewise.
14684 (ix86_handle_fndecl_attribute): Likewise.
14685 (ix86_asm_declare_function_name): New function for
14686 ASM_DECLARE_FUNCTION_NAME.
14687 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
14688 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
14689 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
14690 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
14691 * doc/extend.texi: Adjust documentation about ms_hook_prologue
14692 attribute.
14693
9aa5922d
UB
146942010-07-06 Uros Bizjak <ubizjak@gmail.com>
14695
14696 * config/i386/i386.md (immediate_operand): New mode attribute.
f8e1995a 14697
9aa5922d
UB
14698 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
14699 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
14700 using P mode iterator.
14701 (pro_epilogue_adjust_stack_di_2): Rename from
14702 pro_epilogue_adjust_stack_rex64_2.
14703
14704 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
14705
147062010-07-06 Uros Bizjak <ubizjak@gmail.com>
14707
14708 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
14709 through gen_mov_insv_1 function pointer.
14710 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
14711 gen_truncxf<mode>2 through gen_truncxf function pointer.
14712 (remainder<mode>3): Ditto.
14713 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
14714 (allocate_stack): Call gen_allocate_stack_worker_64 or
14715 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
14716 function pointer.
14717 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
14718 function pointer.
14719
147202010-07-06 Uros Bizjak <ubizjak@gmail.com>
14721
14722 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
14723 operand constraint instead of <r><i>m.
14724
dfb88126
RG
147252010-07-06 Richard Guenther <rguenther@suse.de>
14726
14727 PR middle-end/44828
14728 * convert.c (convert_to_integer): Watch out for overflowing
14729 MULT_EXPR as well.
14730
c5d1f058
JH
147312010-07-05 Jan Hubicka <jh@suse.cz>
14732
14733 * lto-streamer.c (write_symbol_vec): Rename to ...
14734 (write_symbol) ... this one; write only symbol given and when
14735 present in cache. Sanity check that what is defined is present
14736 in cgraph/varpool with body/finalized decl.
14737 (write_symbols_of_kind): Remove.
14738 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
14739 pairs to produce symtab.
14740 (produce_asm_for_decls): Update call of produce_symtab; don't do so
14741 when doing WPA streaming.
14742
6e4da084
JH
147432010-07-05 Jan Hubicka <jh@suse.cz>
14744
14745 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
14746 function is still available to fold into.
14747
c021f10b
NF
147482010-07-05 Nathan Froyd <froydnj@codesourcery.com>
14749
14750 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
14751 * function.h (struct_function): Change type of local_decls field
14752 to a VEC.
14753 (add_local_decl): New function.
14754 (FOR_EACH_LOCAL_DECL): New macro.
14755 * cfgexpand.c (init_vars_expansion): Adjust for new type of
14756 cfun->local_decls.
14757 (estimated_stack_frame_size): Likewise.
14758 (expand_used_vars): Likewise.
14759 * cgraphbuild.c (build_cgraph_edges): Likewise.
14760 * function.c (instantiate_decls_1): Likewise.
14761 * ipa-struct-reorg.c (build_data_structure): Likewise.
14762 * ipa-type-escape.c (analyze_function): Likewise.
14763 * lto-streamer-in.c (input_function): Likewise.
14764 * lto-streamer-out.c (output_function): Likewise.
14765 * tree-ssa-live.c (remove_unused_locals): Likewise.
14766 * tree.c (free_lang_data_in_decl): Likewise.
14767 (find_decls_types_in_node): Likewise.
14768 * omp-low.c (remove_exit_barrier): Likewise.
14769 (expand_omp_taskreg): Likewise.
14770 (list2chain): Rename to...
14771 (vec2chain): ...this. Adjust.
14772 * cgraphunit.c (assemble_thunk): Call add_local_decl.
14773 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
14774 * gimple-low.c (record_vars_into): Likewise.
14775 * tree-inline.c (remap_decls): Likewise.
14776 (declare_return_variable): Likewise.
14777 (declare_inline_vars): Likewise.
14778 (copy_forbidden): Adjust for new type of cfun->local_decls.
14779 (add_local_variables): New function.
14780 (expand_call_inline): Call it.
14781 (tree_function_versioning): Likewise.
14782
4ee89d5f
L
147832010-07-05 H.J. Lu <hongjiu.lu@intel.com>
14784
14785 AVX Programming Reference (June, 2010)
14786 * config/i386/cpuid.h (bit_F16C): New.
14787 (bit_RDRND): Likewise.
14788 (bit_FSGSBASE): Likewise.
14789
14790 * config/i386/i386-builtin-types.def: Add
14791 "DEF_FUNCTION_TYPE (UINT16)", function types for
14792 float16 <-> float conversions and
14793 "DEF_FUNCTION_TYPE (VOID, UINT64)".
14794
14795 * config/i386/i386-c.c (ix86_target_macros_internal): Support
14796 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
14797 OPTION_MASK_ISA_F16C.
14798
14799 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
14800 (OPTION_MASK_ISA_RDRND_SET): Likewise.
14801 (OPTION_MASK_ISA_F16C_SET): Likewise.
14802 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
14803 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
14804 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
14805 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
9aa5922d 14806 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
4ee89d5f
L
14807 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
14808 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
14809 (override_options): Handle them.
9aa5922d 14810 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
4ee89d5f
L
14811 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
14812 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
14813 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
14814 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
14815 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
14816 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
14817 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
14818 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
14819 (bdesc_args): Likewise.
14820 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
14821 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
14822 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
14823 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
14824 Handle non-memory store.
14825
14826 * config/i386/i386.h (TARGET_FSGSBASE): New.
14827 (TARGET_RDRND): Likewise.
14828 (TARGET_F12C): Likewise.
14829
14830 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
14831 (UNSPEC_VCVTPS2PH): Likewise.
14832 (UNSPECV_RDFSBASE): Likewise.
14833 (UNSPECV_RDGSBASE): Likewise.
14834 (UNSPECV_WRFSBASE): Likewise.
14835 (UNSPECV_WRGSBASE): Likewise.
14836 (UNSPECV_RDRAND): Likewise.
14837 (rdfsbase<mode>): Likewise.
14838 (rdgsbase<mode>): Likewise.
14839 (wrfsbase<mode>): Likewise.
14840 (wrgsbase<mode>): Likewise.
14841 (rdrand<mode>): Likewise.
14842
14843 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
14844
14845 * config/i386/immintrin.h (_rdrand_u16): New.
14846 (_rdrand_u32): Likewise.
14847 (_readfsbase_u32): Likewise.
14848 (_readfsbase_u64): Likewise.
14849 (_readgsbase_u32): Likewise.
14850 (_readgsbase_u64): Likewise.
14851 (_writefsbase_u32): Likewise.
14852 (_writefsbase_u64): Likewise.
14853 (_writegsbase_u32): Likewise.
14854 (_writegsbase_u64): Likewise.
14855 (_rdrand_u64): Likewise.
14856 (_cvtsh_ss): Likewise.
14857 (_mm_cvtph_ps): Likewise.
14858 (_mm256_cvtph_ps): Likewise.
14859 (_cvtss_sh): Likewise.
14860 (_mm_cvtps_ph): Likewise.
14861 (_mm256_cvtps_ph): Likewise.
14862
14863 * config/i386/sse.md (vcvtph2ps): New.
14864 (*vcvtph2ps_load): Likewise.
14865 (vcvtph2ps256): Likewise.
14866 (vcvtps2ph): Likewise.
14867 (*vcvtps2ph): Likewise.
14868 (*vcvtps2ph_store): Likewise.
14869 (vcvtps2ph256): Likewise.
14870
14871 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
14872
14873 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
14874
3341aeda
JR
148752010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
14876
14877 PR bootstrap/44512
14878 * genenums.c (main): Output include of insn-constants.h
14879 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
14880
71b2fd74
UB
148812010-07-05 Uros Bizjak <ubizjak@gmail.com>
14882
14883 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
14884 (override_options): Initialize it.
14885 (ix86_expand_prologue): Use it.
14886
938650d8
JJ
148872010-07-05 Jakub Jelinek <jakub@redhat.com>
14888
14889 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
14890
88e06841
AS
148912010-07-05 Anatoly Sokolov <aesok@post.ru>
14892
14893 * double-int.h (fit_double_type): Remove declaration.
14894 * double-int.c (fit_double_type): Remove function.
14895 * tree.h (int_fits_type_p): Adjust prototype.
14896 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
14897 instead of fit_double_type.
14898 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
14899 instead of fit_double_type and build_int_cst_wide.
14900 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
14901 instead of fit_double_type and build_int_cst_wide.
14902 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
14903 of fit_double_type.
14904
92eb4438
JH
149052010-07-05 Jan Hubicka <jh@suse.cz>
14906
14907 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
14908 in_other_partition.
14909 * lto-cgraph.c (referenced_from_other_partition_p,
14910 reachable_from_other_partition_p): Use in_other_partition flags.
14911 (output_node, output_varpool_node): COMDAT nodes always have private
14912 copies and thus are never used from other partition.
14913
69e18c09
AS
149142010-07-05 Anatoly Sokolov <aesok@post.ru>
14915
14916 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
14917 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
14918 * config/ia64/ia64.c Include reload.h.
14919 (ia64_memory_move_cost): New function.
14920 (TARGET_MEMORY_MOVE_COST): Define.
14921 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
14922 memory_move_cost.
14923
16ad8025
SL
149242010-07-05 Sandra Loosemore <sandra@codesourcery.com>
14925
14926 PR middle-end/42505
16ad8025
SL
14927 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
14928 comments about cost model.
14929 (try_add_cand_for): Add second strategy for choosing initial set
14930 based on original IVs, controlled by ORIGINALP argument.
14931 (get_initial_solution): Add ORIGINALP argument.
14932 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
14933 (find_optimal_iv_set): Try two different strategies for choosing
14934 the IV set, and return the one with lower cost.
14935
bdf0f819
RG
149362010-07-05 Richard Guenther <rguenther@suse.de>
14937
9aa5922d 14938 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
bdf0f819 14939
a41e5e86
RG
149402010-07-05 Richard Guenther <rguenther@suse.de>
14941
14942 * tree.c (reference_alias_ptr_type): New function.
14943 * tree.h (reference_alias_ptr_type): Declare.
14944 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
14945 allow non-TARGET_MEM_REF new refs.
94dbbc81 14946 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
a41e5e86
RG
14947 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
14948 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
14949 (create_mem_ref): Get alias pointer type. Adjust calls to
14950 create_mem_ref_raw.
14951 (maybe_fold_tmr): Likewise.
14952 * tree-flow.h (create_mem_ref): Adjust prototype.
14953
f2896bc9
JJ
149542010-07-05 Jakub Jelinek <jakub@redhat.com>
14955
14956 PR c++/44808
14957 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
14958 *from_p is VAR_DECL.
14959
cfe6dea2
NF
149602010-07-05 Nathan Froyd <froydnj@codesourcery.com>
14961
14962 * tree.h (build_call_list): Remove.
14963 * tree.c (build_call_list): Remove.
14964
e22f7f31
RB
149652010-07-05 Richard Guenther <rguenther@suse.de>
14966
14967 * double-int.h (double_int_sub): Declare.
14968 * double-int.c (double_int_sub): New function.
14969 * dwarf2out.c (field_byte_offset): Use it.
14970 * fixed-value.c (do_fixed_add): Likewise.
14971 (do_fixed_multiply): Likewise.
14972 (do_fixed_divide): Likewise.
14973 * tree-predcom.c (add_ref_to_chain): Likewise.
14974 (determine_roots_comp): Likewise.
14975 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
14976
989ea525
NF
149772010-07-05 Nathan Froyd <froydnj@codesourcery.com>
14978
14979 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
14980 implementations.
14981
7ec6356e
BS
149822010-07-05 Bernd Schmidt <bernds@codesourcery.com>
14983
14984 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
14985 * arm-modes.def (CC_NOTB): Don't define.
14986 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
14987 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
14988 (LTUGEU): New code_iterator.
14989 (cnb, optab): New corresponding code_attrs.
14990 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
14991 to canonical form. Operands 1 and 2 are commutative. Parametrize
14992 using LTUGEU.
14993 (addsi3_carryin_shift_<optab>): Likewise.
14994 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
14995 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
14996 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
94dbbc81
UB
14997 (subsi3_compare): Renamed from subsi3_compare0_c.
14998 Change CC_NOTB to CC.
7ec6356e
BS
14999 (arm_subsi3_insn): Allow constants for operand 0.
15000 (compare_scc peephole for eq case): New.
15001 (compare_scc splitters): Change CC_NOTB to CC.
15002
75421dcd
RG
150032010-07-05 Richard Guenther <rguenther@suse.de>
15004
15005 * tree-ssa-loop-im.c (for_each_index): Do not handle
15006 ALIGN_INDIRECT_REF.
15007 (gen_lsm_tmp_name): Likewise.
15008 * tree-dump.c (dequeue_and_dump): Likewise.
15009 * tree-pretty-print.c (dump_generic_node): Likewise.
15010 (op_code_prio): Likewise.
15011 (op_symbol_code): Likewise.
15012 * tree.c (staticp): Likewise.
15013 (build1_stat): Likewise.
15014 * tree.h (INDIRECT_REF_P): Likewise.
15015 * fold-const.c (maybe_lvalue_p): Likewise.
15016 (operand_equal_p): Likewise.
15017 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15018 (ao_ref_init_from_vn_reference): Likewise.
15019 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
15020 (find_interesting_uses_address): Likewise.
15021 * dwarf2out.c (loc_list_from_tree): Likewise.
15022 * gimplify.c (gimplify_expr): Likewise.
15023 * tree-eh.c (tree_could_trap_p): Likewise.
15024 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
15025 * cfgexpand.c (expand_debug_expr): Likewise.
15026 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15027 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
15028 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
15029 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
15030 * tree-ssa-operands.c (get_expr_operands): Likewise.
15031 * expr.c (safe_from_p): Likewise.
15032 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
15033 * tree-vect-data-refs.c (vect_setup_realignment): Build
15034 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
15035 * tree-vect-stmts.c (vectorizable_load): Likewise.
15036 * tree.def (ALIGN_INDIRECT_REF): Remove.
15037
5d657263
RG
150382010-07-05 Richard Guenther <rguenther@suse.de>
15039
15040 PR tree-optimization/44784
15041 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
15042 for inserted stmts.
15043 (find_or_generate_expression): Fix SCCVN insertion check.
15044
3cd0d4fa
NS
150452010-07-05 Nathan Sidwell <nathan@codesourcery.com>
15046
15047 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
15048 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
15049 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
15050 directives.
15051
9940b13c
IR
150522010-07-05 Ira Rosen <irar@il.ibm.com>
15053
15054 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
15055 statements that are not vectorized.
15056 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
94dbbc81 15057 in INSIDE_COST.
9940b13c 15058
e4dde839
MP
150592010-07-05 Mikael Pettersson <mikpe@it.uu.se>
15060
15061 PR bootstrap/44820
15062 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
15063
e3061843
RB
150642010-07-05 Richard Guenther <rguenther@suse.de>
15065
15066 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
15067 RESULT_DECLs properly.
15068
c2a78352
L
150692010-07-04 H.J. Lu <hongjiu.lu@intel.com>
15070
15071 PR rtl-optimization/44695
15072 * config/i386/i386.md (extract_code): Removed.
15073 (<u>divmodqi4): Likewise.
15074 (divmodqi4): New.
15075 (udivmodqi4): Likewise.
94dbbc81 15076 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
c2a78352
L
15077 (udivmodhiqi3): Likewise.
15078
4aa1c0d5
JH
150792010-07-04 Jan Hubicka <jh@suse.cz>
15080
15081 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
15082
a05541a9
JH
150832010-07-04 Jan Hubicka <jh@suse.cz>
15084
94dbbc81
UB
15085 * cgraphunit.c (init_cgraph): Only initialize dump file if it
15086 is not already initialized.
a05541a9 15087
f9621cc4
RS
150882010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
15089
15090 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
15091 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
15092 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
15093 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
15094 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
15095 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
15096 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
15097 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
15098 (sync_new_nand_optab): Redefine as macros.
15099 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
15100 Delete.
15101 (direct_optab_index): New enum.
15102 (direct_optab_d): New structure.
15103 (direct_optab): New typedef.
15104 (direct_optab_table): Declare.
15105 (direct_optab_handler, set_direct_optab_handler): New functions.
15106 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
15107 (sync_lock_release_optab): New macros.
15108 * optabs.c (direct_optab_table): New variable.
15109 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
15110 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
15111 cmpstr_optab and cmpstrn_optab.
15112 (emit_conditional_move): Likewise for movcc_optab.
15113 (can_conditionally_move_p): Likewise for movcc_gen_code.
15114 (init_insn_codes): Clear direct_optab_table.
15115 (init_optabs): Don't initialize the new "direct optabs" here.
15116 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
15117 vcond_gen_code.
15118 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
15119 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
15120 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
15121 (expand_sync_operation): Likewise other sync_*_optabs.
15122 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
15123 to sync_compare_and_swap_optab.
15124 (expand_sync_lock_test_and_set): Use direct_optab_handler for
15125 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
15126 to the names of both.
15127 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
15128 cmpstr_optab and cmpstrn_optab.
15129 (expand_builtin_lock_release): Likewise sync_lock_release.
15130 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
15131 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
15132 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
15133 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
15134 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
15135 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
15136 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
15137 (sync_lock_test_and_set, sync_lock_release): Delete.
15138 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
15139 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
15140 * genopinit.c (optabs): Use set_direct_optab_handler for the new
15141 macro optabs.
15142 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
15143 the "optab" local variable. Use direct_optab_handler for optab and
15144 sync_compare_and_swap_optab.
15145 * reload1.c (reload_in_optab, reload_out_optab): Delete.
15146 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
15147 reload_in_optab and reload_out_optab.
15148 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
15149 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15150 * config/pa/pa.c (pa_secondary_reload): Likewise.
15151 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
15152 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
15153 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
15154 (VMSupportsCS8_builtin): Likewise.
15155
596455ce
RS
151562010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
15157
15158 * optabs.h (optab_handlers): Change type of insn_code to int.
15159 (optab_handler, set_optab_handler, convert_optab_handler)
15160 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
15161 CODE_FOR_nothing".
15162 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
15163 (init_insn_codes): Zero both the above arrays.
15164 (init_optabs): Never call init_insn_codes first time around.
15165
947131ba
RS
151662010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
15167
15168 * optabs.h (optab_handler, convert_optab_handler): Turn into
15169 inline functions that return an insn code.
15170 (set_optab_handler, set_convert_optab_handler): New functions.
15171 * builtins.c: Replace optab_handler(X)->insn_code with
15172 optab_handler or set_optab_handler thoughout. Likewise
15173 convert_optab_handler(X)->insn_code with convert_optab_handler
15174 and set_convert_optab_handler.
15175 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
15176 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
15177 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
15178 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
15179 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
15180 config/spu/spu.c: Likewise.
15181
47e5ff44
KK
151822010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
15183
15184 PR target/44531
15185 * config.gcc (sh*-*-*): Use regular expressions instead of
15186 the 'i' modifier for sed substitutions.
15187
abbd64b9
JS
151882010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
15189
15190 * gimple.c (gimple_body): Comments added.
15191
7f5ad6d7
RG
151922010-07-04 Richard Guenther <rguenther@suse.de>
15193
15194 PR middle-end/44809
15195 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
15196 of an INDIRECT_REF.
15197
17fc049f
RG
151982010-07-04 Richard Guenther <rguenther@suse.de>
15199
15200 PR tree-optimization/44479
15201 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
15202 extra SSA name copy statements which preserves points-to
15203 information.
15204 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
15205 Copy points-to information for all pointers. Properly handle
15206 MEM_REFs.
15207 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
15208 copy statements.
15209 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
15210 dependency.
15211
72aa3dca
RG
152122010-07-04 Richard Guenther <rguenther@suse.de>
15213
15214 PR middle-end/44785
15215 * tree-inline.c (initialize_inlined_parameters): Do not
15216 re-use pointer-map slot over remap_type call.
15217
ef2a9157
RG
152182010-07-04 Richard Guenther <rguenther@suse.de>
15219
15220 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
15221
4fa4929e
RG
152222010-07-04 Richard Guenther <rguenther@suse.de>
15223
15224 PR tree-optimization/44656
15225 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
15226 again after value-replacing in the defintions lhs.
15227
720f5239
IR
152282010-07-04 Ira Rosen <irar@il.ibm.com>
15229 Revital Eres <eres@il.ibm.com>
15230
94dbbc81 15231 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
720f5239
IR
15232 Document new arguments.
15233 * doc/tm.texi: Regenerate.
15234 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
15235 Handle unaligned store.
15236 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
15237 * target.def (builtin_vectorization_cost): Add new arguments.
15238 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
15239 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
15240 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
15241 (vect_vfa_segment_size): Fix indentation.
15242 * tree-vectorizer.h (struct _vect_peel_info): New.
15243 (struct _vect_peel_extended_info): New.
15244 (struct _loop_vec_info): Add new field for peeling hash table and a
15245 macro for its access.
15246 (VECT_MAX_COST): Define.
15247 (vect_get_load_cost): Declare.
94dbbc81 15248 (vect_get_store_cost, vect_get_known_peeling_cost,
720f5239
IR
15249 vect_get_single_scalar_iteraion_cost): Likewise.
15250 (vect_supportable_dr_alignment): Add new argument.
15251 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
15252 field.
15253 (destroy_loop_vec_info): Free peeling hash table.
15254 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
15255 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
15256 vect_analyze_slp. Fix indentation.
15257 (vect_get_single_scalar_iteraion_cost): New function.
15258 (vect_get_known_peeling_cost): Likewise.
94dbbc81
UB
15259 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
15260 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
720f5239
IR
15261 statement. Move outside cost calculation inside unknown peeling case.
15262 Call vect_get_known_peeling_cost for known amount of peeling.
15263 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
15264 reference to the print message of forced alignment.
94dbbc81 15265 (vect_verify_datarefs_alignment): Update call to
720f5239
IR
15266 vect_supportable_dr_alignment.
15267 (vect_get_data_access_cost): New function.
15268 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
15269 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
15270 vect_peeling_hash_choose_best_peeling): Likewise.
15271 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
15272 to store all the accesses in the loop and find best possible access to
15273 align using peeling for known alignment case. For unknown alignment
15274 check if stores are preferred or if peeling is worthy.
15275 (vect_find_same_alignment_drs): Analyze pairs of loads too.
15276 (vect_supportable_dr_alignment): Add new argument and check aligned
94dbbc81 15277 accesses according to it.
720f5239 15278 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
94dbbc81 15279 (cost_for_stmt): Call vect_get_stmt_cost.
720f5239 15280 (vect_model_simple_cost): Likewise.
94dbbc81 15281 (vect_model_store_cost): Call vect_get_stmt_cost. Call
720f5239
IR
15282 vect_get_store_cost to calculate the cost of the statement.
15283 (vect_get_store_cost): New function.
94dbbc81 15284 (vect_model_load_cost): Call vect_get_stmt_cost. Call
720f5239
IR
15285 vect_get_load_cost to calculate the cost of the statement.
15286 (vect_get_load_cost): New function.
15287 (vectorizable_store): Update call to vect_supportable_dr_alignment.
15288 (vectorizable_load): Likewise.
94dbbc81 15289 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
720f5239
IR
15290 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
15291 arguments. Handle unaligned store.
15292 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
15293 (rs6000_builtin_support_vector_misalignment): Return true for word and
15294 double word alignments for VSX.
94dbbc81 15295 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
720f5239
IR
15296 vect_supportable_dr_alignment and builtin_vectorization_cost.
15297
d3ca3d6b
JDA
152982010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15299
15300 PR target/44597
15301 * config/pa/predicates.md (prefetch_cc_operand): Remove.
15302 (prefetch_nocc_operand): Likewise.
15303 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
15304 (prefetch_20): New insn.
15305 (prefetch_cc): Remove.
15306 (prefetch_nocc): Likewise.
15307
4d451982
MLI
153082010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
15309
15310 * expr.c (vector_mode_valid_p): Move to c-common.c.
15311 * expr.h (vector_mode_valid_p): Do not declare here.
15312 * system.h: Poison GCC_EXPR_H in front-ends.
15313 * Makefile.in: Update dependencies.
15314
3a0c7e3a
JDA
153152010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15316
15317 PR target/44705
15318 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
15319
f029db69
JH
153202010-07-03 Jan Hubicka <jh@suse.cz>
15321
15322 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
15323 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
15324 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
15325 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
15326 Likewise.
15327
15328 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
15329 Update timevars.V
15330 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
15331 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
15332 TV_IPA_LTO_DECL_OUT): New.
15333 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
15334
9b8051b4
JH
153352010-07-03 Jan Hubicka <jh@suse.cz>
15336
15337 * ipa-inline.c (update_edge_key): Break out from ...
15338 update_callers_keys): ... here;
15339 (update_callee_keys): Update only the edges from caller to callee.
15340 (update_all_calle_keys): Do what update_calle_keys did.
15341 (decide_inlining_of_small_functions): Avoid recomputing of all
15342 callees when badness increase.
15343
7c4f0041
JZ
153442010-07-03 Jie Zhang <jie@codesourcery.com>
15345
15346 * config/arm/arm.c (arm_attr_length_move_neon): New.
15347 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
15348 * config/arm/neon.md (define_mode_attr V_slen): Remove.
15349 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
15350 to compute length attribute.
15351
4e6f5666
JZ
153522010-07-03 Jie Zhang <jie@codesourcery.com>
15353
15354 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
15355 as predicate for operand 1 and remove its constraint.
15356 * config/arm/predicates.md (vfp_register_operand): New.
94dbbc81 15357 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
4e6f5666
JZ
15358 (*push_fp_multi): Likewise.
15359
6687b740
EB
153602010-07-03 Eric Botcazou <ebotcazou@adacore.com>
15361
15362 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
15363
153642010-07-03 Jan Hubicka <jh@suse.cz>
bd7f30a1
JH
15365
15366 * config/i386/i386.c (override_options): Revert accidental commit.
15367
3f59fa1c
LCW
153682010-07-02 Le-Chun Wu <lcwu@google.com>
15369
e2cb8da2 15370 PR c++/44128
3f59fa1c
LCW
15371 * doc/invoke.texi: Update documentation of -Wshadow.
15372
73160ba9
DJ
153732010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
15374 Julian Brown <julian@codesourcery.com>
74164603 15375 Sandra Loosemore <sandra@codesourcery.com>
73160ba9
DJ
15376
15377 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
15378 comparisons. Adjust to take both operands.
15379 (arm_select_cc_mode): Handle DImode comparisons.
15380 (arm_gen_compare_reg): Generate a scratch register for DImode
15381 comparisons which require one. Use xor for Thumb equality checks.
15382 (arm_const_double_by_immediates): New.
15383 (arm_print_operand): Allow 'Q' and 'R' for constants.
15384 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
15385 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
15386 arm_canonicalize_comparison.
15387 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
15388 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
15389 prototype.
15390 (arm_const_double_by_immediates): Declare.
15391 * config/arm/constraints.md (Di): New constraint.
15392 * config/arm/predicates.md (arm_immediate_di_operand)
15393 (arm_di_operand, cmpdi_operand): New.
15394 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
15395 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
15396 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
15397 (cstoredi4): Handle non-Cirrus also.
15398
400cfcf5 153992010-07-02 Julian Brown <julian@codesourcery.com>
74164603 15400 Sandra Loosemore <sandra@codesourcery.com>
400cfcf5
JB
15401
15402 PR target/43703
400cfcf5
JB
15403 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
15404 (smax<mode>3): Disable for NEON float modes when
15405 flag_unsafe_math_optimizations is false.
15406 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
15407 (*mul<mode>3_neon)
15408 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
15409 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
15410 for NEON float modes when flag_unsafe_math_optimizations is false.
94dbbc81
UB
15411 (quad_halves_<code>v4sf): Only enable if
15412 flag_unsafe_math_optimizations is true.
400cfcf5
JB
15413 * doc/invoke.texi (ARM Options): Add note about floating point
15414 vectorization requiring -funsafe-math-optimizations.
15415
bab53516
SL
154162010-07-02 Sandra Loosemore <sandra@codesourcery.com>
15417 Julian Brown <julian@codesourcery.com>
15418
15419 * config/arm/neon.md (UNSPEC_VABA): Delete.
15420 (UNSPEC_VABAL): Delete.
15421 (UNSPEC_VABS): Delete.
15422 (UNSPEC_VMUL_N): Delete.
15423 (adddi3_neon): New.
15424 (subdi3_neon): New.
15425 (mul<mode>3add<mode>_neon): Make the pattern named.
15426 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
15427 (neon_vadd<mode>): Replace with define_expand, and move the remaining
15428 unspec parts...
15429 (neon_vadd<mode>_unspec): ...to this.
15430 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
15431 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
15432 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
15433 (neon_vaba<mode>): Rewrite in terms of vabd.
15434 (neon_vabal<mode>): Rewrite in terms of vabdl.
15435 (neon_vabs<mode>): Rewrite without unspec.
15436 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
15437 (*arm_subdi3): Likewise.
15438 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
15439 No_op attribute to disable assembly output checks.
15440 * config/arm/arm_neon.h: Regenerated.
15441 * doc/arm-neon-intrinsics.texi: Regenerated.
15442
556e9ba0
JH
154432010-07-02 Jan Hubicka <jh@suse.cz>
15444
e2cb8da2
EB
15445 * ipa-split.c (split_function): For aggregate values, set the return
15446 slot optimization bit. When passing DECL_BY_REFERENCE, produce
a557f9cc 15447 *<retval> = fncall.part ().
556e9ba0
JH
15448 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
15449
b3b7bbce
SL
154502010-07-02 Sandra Loosemore <sandra@codesourcery.com>
15451
15452 * config/arm/neon.md (UNSPEC_VAND): Delete.
15453 (UNSPEC_VBIC): Delete.
15454 (UNSPEC_VCLZ): Delete.
15455 (UNSPEC_VCNT): Delete.
15456 (UNSPEC_VEOR): Delete.
15457 (UNSPEC_VORN): Delete.
15458 (UNSPEC_VORR): Delete.
15459 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
15460 core registers too.
15461 (anddi3_neon): Likewise.
15462 (orndi3_neon): Likewise.
15463 (bicdi3_neon): Likewise.
15464 (xordi3_neon): Likewise.
15465 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
15466 rid of unspec and handle unused operand.
15467 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
15468 * config/arm/predicates.md (imm_for_neon_logic_operand):
15469 Require TARGET_NEON.
15470 (imm_for_neon_inv_logic_operand): Likewise.
94dbbc81 15471 * config/arm/arm.md (define_split for logical_binary_operator):
b3b7bbce
SL
15472 Disable for NEON registers.
15473 (anddi3): Add new define_expand, and rename the insn. Disable
15474 this insn for NEON, where anddi3_neon now applies.
15475 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
15476 (iordi3): As for anddi3.
15477 (xordi3): Likewise.
15478 * config/arm/neon.ml (Vand): Split DImode variants and mark them
15479 as No_op to disable testing for exact instruction match.
15480 (Vorr): Likewise.
15481 (Veor): Likewise.
15482 (Vbic): Likewise.
15483 (Vorn): Likewise.
15484 * config/arm/arm_neon.h: Regenerated.
15485 * doc/arm-neon-intrinsics.texi: Regenerated.
15486
260c8ba3
EB
154872010-07-02 Eric Botcazou <ebotcazou@adacore.com>
15488
15489 * expr.h (emit_stack_probe): Declare.
15490 * explow.c (emit_stack_probe): Make global.
15491 (anti_adjust_stack_and_probe): Fix comments.
15492 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15493 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15494 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15495 * config/sparc/sparc.c: Include except.h.
15496 (sparc_emit_probe_stack_range): New function.
15497 (output_probe_stack_range): Likewise.
15498 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
15499 built-in stack checking is enabled.
15500 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
15501 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15502 (probe_stack_range): New insn.
15503
e4f1aef1
RG
155042010-07-02 Richard Guenther <rguenther@suse.de>
15505
15506 PR target/43958
15507 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
15508 for argument alignment.
15509
2094f1fc
JH
155102010-07-02 Jan Hubicka <jh@suse.cz>
15511
e2cb8da2
EB
15512 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
15513 walk backwards from entry_bb to check only those basic block of header
2094f1fc
JH
15514 that might lead to execution of split part.
15515 (consider_split) ... here.
15516 (find_return_bb): Allow assignment in return BB.
15517 (find_retval): New.
260c8ba3
EB
15518 (split_function): Fix name of cloned function; take care of updating
15519 return value in return_bb containing move.
2094f1fc 15520
2dc8bd76
AS
155212010-07-02 Andreas Schwab <schwab@linux-m68k.org>
15522
15523 PR target/44771
15524 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
15525 used variable insn.
15526
0acba2b4
EB
155272010-07-02 Eric Botcazou <ebotcazou@adacore.com>
15528
15529 * implicit-zee.c (combine_reaching_defs): Fix long lines.
15530 (is_set_with_extension_DI): Delete.
15531 (struct zero_extend_info): New structure.
f4a4b582 15532 (add_removable_zero_extend): New function.
0acba2b4
EB
15533 (find_removable_zero_extends): Use note_stores to find SETs.
15534 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
15535
14e444c3
CF
155362010-07-02 Changpeng Fang <changpeng.fang@amd.com>
15537
15538 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
15539 is_miss_rate_acceptable. Pull total_positions computation
15540 out of the loops. Early return if miss_positions exceeds
15541 the acceptable threshold.
15542 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
15543 is_miss_rate_acceptable after renaming of compute_miss_rate.
15544
a245c04b
CF
155452010-07-02 Changpeng Fang <changpeng.fang@amd.com>
15546
15547 PR middle-end/44576
15548 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
15549 of 1000) for miss rate if the address diference is greater than or
15550 equal to the cache line size (the two reference will never hit the
15551 same cache line).
15552
18e8200f
BS
155532010-07-02 Bernd Schmidt <bernds@codesourcery.com>
15554
15555 PR target/42835
15556 * config/arm/arm-modes.def (CC_NOTB): New mode.
15557 * config/arm/arm.c (get_arm_condition_code): Handle it.
15558 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
15559 * config/arm/arm.md (subsi3_compare0_c): New pattern.
15560 (compare_scc): Now a define_and_split. Add a number of extra
15561 splitters before it.
15562
e4c6a07a
BS
15563 PR target/42172
15564 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
15565 and ZERO_EXTEND.
15566 (arm_rtx_costs_1): Likewise.
15567 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
15568 * config/arm/arm.md (is_arch6): New attribute.
15569 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
15570 extendqisi2): Tighten the code somewhat, avoiding invalid
15571 RTL to occur in the expander patterns.
15572 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
15573 (thumb1_zero_extendhisi2_v6): Delete.
15574 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
15575 (thumb1_extendhisi2_v6): Delete.
15576 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
15577 (thumb1_extendqisi2_v6): Delete.
15578 (zero_extendhisi2 for register input splitter): New.
15579 (zero_extendqisi2 for register input splitter): New.
15580 (thumb1_extendhisi2 for register input splitter): New.
15581 (extendhisi2 for register input splitter): New.
15582 (extendqisi2 for register input splitter): New.
15583 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
15584 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
15585 and add support for a register alternative requiring a split.
15586 (thumb1_zero_extendqisi2): Likewise.
15587 (arm_zero_extendqisi2): Likewise.
15588 (arm_extendhisi2): Likewise.
15589 (arm_extendqisi2): Likewise.
15590
a277dd9b
SL
155912010-07-02 Sandra Loosemore <sandra@codesourcery.com>
15592
15593 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
15594 instead of an unspec.
15595 (neon_expand_vector_init): Likewise.
15596 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
15597 (UNSPEC_VDUP_LANE): Delete.
15598 (UNSPEC VDUP_N): Delete.
15599 (UNSPEC_VGET_HIGH): Delete.
15600 (UNSPEC_VGET_LANE): Delete.
15601 (UNSPEC_VGET_LOW): Delete.
15602 (UNSPEC_VMVN): Delete.
15603 (UNSPEC_VSET_LANE): Delete.
15604 (V_double_vector_mode): New.
15605 (vec_set<mode>_internal): Make code emitted match that for the
15606 corresponding intrinsics.
15607 (vec_setv2di_internal): Likewise.
15608 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
15609 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
15610 (neon_vset_lane<mode>): Combine double and quad patterns and
15611 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
15612 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
15613 (neon_vdup_n<mode>): Rewrite RTL without unspec.
15614 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
15615 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
15616 with neon_vdup_lanev2di, adjusting the pattern from the latter
15617 to be predicable for consistency.
15618 (neon_vdup_lane<mode>_internal): New.
15619 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
15620 to avoid using an unspec.
15621 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
15622 (neon_vdup_lanev2di): Turn into a define_expand.
15623 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
15624 (neon_vget_high<mode>): Replace with....
15625 (neon_vget_highv16qi): New pattern using canonical RTL.
15626 (neon_vget_highv8hi): Likewise.
15627 (neon_vget_highv4si): Likewise.
15628 (neon_vget_highv4sf): Likewise.
15629 (neon_vget_highv2di): Likewise.
15630 (neon_vget_low<mode>): Replace with....
15631 (neon_vget_lowv16qi): New pattern using canonical RTL.
15632 (neon_vget_lowv8hi): Likewise.
15633 (neon_vget_lowv4si): Likewise.
15634 (neon_vget_lowv4sf): Likewise.
15635 (neon_vget_lowv2di): Likewise.
15636
15637 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
15638 test for this emitting vmov.
15639 (Vset_lane): Likewise.
15640 (Vdup_n): Likewise.
15641 (Vmov_n): Likewise.
15642
15643 * doc/arm-neon-intrinsics.texi: Regenerated.
15644
8c98c2a6
SL
156452010-07-02 Sandra Loosemore <sandra@codesourcery.com>
15646
15647 * config/arm/neon.md (vec_extractv2di): Correct error in register
15648 numbering to reconcile with neon_vget_lanev2di.
15649
90fa9e17
RG
156502010-07-02 Richard Guenther <rguenther@suse.de>
15651
15652 * tree-ssa-structalias.c (pt_solution_set_var): New function.
15653 * tree-ssa-alias.h (pt_solution_set_var): Declare.
15654 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
15655 points-to information.
15656
c3ac3ddf
CB
156572010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
15658
15659 * config/s390/s390.c (override_options): Adopt prefetching
15660 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
15661
b144ba9d
JH
156622010-07-02 Jan Hubicka <jh@suse.cz>
15663
15664 * df-problems.c (df_kill_notes): Do not collect dead notes.
15665 (df_set_note): Just call add_reg_note.
15666 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
15667 df_create_unused_note): Do not deal with lists of old notes.
15668 (df_note_bb_compute): Likewise.
15669
fca821b5
RG
156702010-07-02 Richard Guenther <rguenther@suse.de>
15671
15672 * tree-ssa-structalias.c (find_func_aliases): Handle
15673 pointer alignment via BIT_AND_EXPR.
15674 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
15675
19368333
RG
156762010-07-02 Richard Guenther <rguenther@suse.de>
15677
15678 * tree-data-ref.c (initialize_data_dependence_relation): Handle
15679 mismatching number of dimensions properly.
15680
1a4fc49d
UW
156812010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15682
15683 PR target/44707
15684 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
15685 (lo_sum (high ...) ...) patterns generated by earlier passes.
15686
c18dc5cc
RO
156872010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15688
15689 * doc/install.texi (Prerequisites): Document Perl requirement on
15690 Solaris 2.
15691 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
15692
7dd536f1
RG
156932010-07-02 Richard Guenther <rguenther@suse.de>
15694
15695 PR middle-end/44777
15696 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
15697
450997ef
JH
156982010-07-02 Jan Hubicka <jh@suse.cz>
15699
15700 PR middle-end/44706
15701 * predict.c (predict_paths_for_bb): Handle case when control dependence
15702 BB has only abnormal edges.
15703
3fa39831
RG
157042010-07-02 Richard Guenther <rguenther@suse.de>
15705
15706 PR tree-optimization/44748
15707 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
15708 the embedded conversion in MEM_REFs.
15709
5a5bd694
MLI
157102010-07-01 López-Ibáñez <manu@gcc.gnu.org>
15711
15712 * reload.c: Include toplev.h.
15713 * recog.c: Likewise.
15714 * Makefile.in: Adjust dependencies.
15715
3aa05bb6
JJ
157162010-07-01 Jakub Jelinek <jakub@redhat.com>
15717
15718 PR debug/44694
15719 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
15720 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
15721
e3ccfc8b
RG
157222010-07-01 Richard Guenther <rguenther@suse.de>
15723
15724 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
15725 types for offsets.
15726
c689f757
JR
157272010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
15728
15729 PR target/44732
15730 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
94dbbc81 15731 Fix argument types.
c21fc181 15732
cc9568ba
BS
157332010-07-01 Bernd Schmidt <bernds@codesourcery.com>
15734
15735 PR target/44727
15736 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15737 Make sure operand 0 dies.
15738
70f34814
RG
157392010-07-01 Richard Guenther <rguenther@suse.de>
15740
15741 PR middle-end/42834
15742 PR middle-end/44468
15743 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
15744 * doc/generic.texi (References to storage): Document MEM_REF.
15745 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
15746 (print_call_name): Likewise.
15747 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
15748 (build_simple_mem_ref_loc): New function.
15749 (mem_ref_offset): Likewise.
15750 * tree.h (build_simple_mem_ref_loc): Declare.
15751 (build_simple_mem_ref): Define.
15752 (mem_ref_offset): Declare.
15753 * fold-const.c: Include tree-flow.h.
15754 (operand_equal_p): Handle MEM_REF.
15755 (build_fold_addr_expr_with_type_loc): Likewise.
15756 (fold_comparison): Likewise.
15757 (fold_unary_loc): Fold
15758 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
15759 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
15760 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
15761 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
15762 (ptr_deref_may_alias_ref_p_1): Likewise.
15763 (ao_ref_base_alias_set): Properly differentiate base object for
15764 offset and TBAA.
15765 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
15766 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
15767 (indirect_refs_may_alias_p): Likewise.
15768 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
15769 chasing code.
15770 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
15771 (call_may_clobber_ref_p_1): Likewise.
15772 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
15773 * expr.c (expand_assignment): Handle MEM_REF.
15774 (store_expr): Handle MEM_REFs from STRING_CSTs.
15775 (store_field): If expanding a MEM_REF of a non-addressable
15776 decl use bitfield operations.
15777 (get_inner_reference): Handle MEM_REF.
15778 (expand_expr_addr_expr_1): Likewise.
15779 (expand_expr_real_1): Likewise.
15780 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
15781 * alias.c (ao_ref_from_mem): Handle MEM_REF.
15782 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
15783 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
15784 (dr_analyze_indices): Likewise.
15785 (dr_analyze_alias): Likewise.
15786 (object_address_invariant_in_loop_p): Likewise.
15787 * gimplify.c (mark_addressable): Handle MEM_REF.
15788 (gimplify_cond_expr): Build MEM_REFs.
15789 (gimplify_modify_expr_to_memcpy): Likewise.
15790 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
15791 (gimple_fold_indirect_ref): Adjust.
15792 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
15793 * tree.def (MEM_REF): New tree code.
15794 * tree-dfa.c: Include toplev.h.
15795 (get_ref_base_and_extent): Handle MEM_REF.
15796 (get_addr_base_and_unit_offset): New function.
15797 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
15798 * gimple-fold.c (may_propagate_address_into_dereference): Handle
15799 MEM_REF.
15800 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
15801 accesses if the array has just one dimension. Remove always true
15802 parameter. Do not require type compatibility here.
15803 (maybe_fold_offset_to_component_ref): Remove.
15804 (maybe_fold_stmt_indirect): Remove.
15805 (maybe_fold_reference): Remove INDIRECT_REF handling.
15806 Fold back to non-MEM_REF.
15807 (maybe_fold_offset_to_address): Simplify. Deal with type
15808 mismatches here.
15809 (maybe_fold_reference): Likewise.
15810 (maybe_fold_stmt_addition): Likewise. Also handle
15811 &ARRAY + I in addition to &ARRAY[0] + I.
15812 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
15813 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
15814 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
15815 * tree-ssa.c (useless_type_conversion_p): Make most pointer
15816 conversions useless.
15817 (warn_uninitialized_var): Handle MEM_REF.
15818 (maybe_rewrite_mem_ref_base): New function.
15819 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
15820 to SSA form.
15821 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
15822 INDIRECT_REF handling.
15823 (copy_tree_body_r): Handle MEM_REF.
15824 * gimple.c (is_gimple_addressable): Adjust.
15825 (is_gimple_address): Likewise.
15826 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
15827 invariant base are invariant.
15828 (is_gimple_min_lval): Adjust.
15829 (is_gimple_mem_ref_addr): New function.
15830 (get_base_address): Handle MEM_REF.
15831 (count_ptr_derefs): Likewise.
15832 (get_base_loadstore): Likewise.
15833 * gimple.h (is_gimple_mem_ref_addr): Declare.
15834 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
15835 * tree-cfg.c (verify_address): New function, split out from ...
15836 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
15837 the address operand of MEM_REFs. Verify MEM_REFs. Reject
15838 INDIRECT_REFs.
15839 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
15840 INDIRECT_REF. Allow conversions.
15841 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
15842 a register does not change its size.
15843 (verify_types_in_gimple_reference): Verify MEM_REF.
15844 (verify_gimple_assign_single): Disallow INDIRECT_REF.
15845 Handle MEM_REF.
15846 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
15847 New.
15848 (mark_address_taken): Handle MEM_REF.
15849 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
15850 (get_asm_expr_operands): Pass opf_not_non_addressable.
15851 (get_expr_operands): Handle opf_[not_]non_addressable.
15852 Handle MEM_REF. Remove INDIRECT_REF handling.
bd3a5d17 15853 * tree-vrp.c (check_array_ref): Handle MEM_REF.
70f34814
RG
15854 (search_for_addr_array): Likewise.
15855 (check_array_bounds): Likewise.
15856 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
15857 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
15858 (ref_always_accessed_p): Likewise.
15859 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
15860 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
15861 Handle MEM_REF.
15862 * cgraphbuild.c (mark_load): Properly check for NULL result
15863 from get_base_address.
15864 (mark_store): Likewise.
15865 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
15866 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
15867 handling for MEM_REF.
15868 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
15869 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
15870 * builtins.c (stabilize_va_list_loc): Use the function ABI
15871 valist type if we couldn't canonicalize the argument type.
15872 Always dereference with the canonical va-list type.
15873 (maybe_emit_free_warning): Handle MEM_REF.
15874 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
15875 memmove to memcpy.
15876 * builtins.c (fold_builtin_memory_op): Use ref-all types
15877 for all memcpy foldings.
15878 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
15879 (build_outer_var_ref): Likewise.
15880 (scan_omp_1_op): Likewise.
15881 (lower_rec_input_clauses): Likewise.
15882 (lower_lastprivate_clauses): Likewise.
15883 (lower_reduction_clauses): Likewise.
15884 (lower_copyprivate_clauses): Likewise.
15885 (expand_omp_atomic_pipeline): Likewise.
15886 (expand_omp_atomic_mutex): Likewise.
15887 (create_task_copyfn): Likewise.
15888 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
15889 Remove old union trick. Initialize constant offsets.
15890 (ao_ref_init_from_vn_reference): Likewise. Do not handle
15891 INDIRECT_REF. Init base_alias_set properly.
94dbbc81 15892 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
70f34814
RG
15893 (vn_reference_fold_indirect): Adjust for MEM_REFs.
15894 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
15895 for ARRAY_REFs.
15896 (may_insert): Remove.
15897 (visit_reference_op_load): Do not test may_insert.
15898 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
15899 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
15900 a field to store the constant offset this op applies.
15901 (run_scc_vn): Adjust prototype.
15902 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
15903 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
15904 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
15905 bother about volatile qualifiers on pointers.
15906 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
15907 * tree-ssa-loop-ivopts.c
94dbbc81 15908 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
70f34814
RG
15909 (strip_offset_1): Likewise.
15910 (find_interesting_uses_address): Replace INDIRECT_REF handling with
15911 MEM_REF handling.
15912 (get_computation_cost_at): Likewise.
15913 * ipa-pure-const.c (check_op): Handle MEM_REF.
15914 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
15915 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
15916 and constants.
15917 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
15918 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
15919 (eliminate_local_variables_1): Likewise.
15920 (create_call_for_reduction_1): Likewise.
15921 (create_loads_for_reductions): Likewise.
15922 (create_loads_and_stores_for_name): Likewise.
15923 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
15924 (ssa_accessed_in_tree): Handle MEM_REF.
15925 (ssa_accessed_in_assign_rhs): Likewise.
15926 (update_type_size): Likewise.
15927 (analyze_accesses_for_call_stmt): Likewise.
15928 (analyze_accesses_for_assign_stmt): Likewise.
15929 (transform_access_sites): Likewise.
15930 (transform_allocation_sites): Likewise.
15931 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
15932 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
15933 not handle INDIRECT_REF.
15934 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
15935 (cond_store_replacement): Likewise.
15936 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15937 MEM_REF, no not handle INDIRECT_REFs.
15938 (insert_into_preds_of_block): Properly initialize avail.
15939 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
15940 for ARRAY_REFs. Properly handle reference lookups that
15941 require a bit re-interpretation.
15942 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
70f34814
RG
15943 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
15944 (build_ref_for_offset_1): Remove.
15945 (build_ref_for_offset): Build MEM_REFs.
15946 (gate_intra_sra): Disable for now.
15947 (sra_ipa_modify_expr): Handle MEM_REF.
15948 (ipa_early_sra_gate): Disable for now.
15949 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
15950 MEM_REF handling.
15951 (disqualify_base_of_expr): Likewise.
15952 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
15953 MEM_REF handling.
15954 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
15955 Use mem_ref_offset. Remove bogus folding.
94dbbc81 15956 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
70f34814
RG
15957 (make_fancy_name_1): Add support for MEM_REF.
15958 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
15959 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
15960 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
15961 (compute_complex_ancestor_jump_func): Likewise.
15962 (ipa_analyze_virtual_call_uses): Likewise.
15963 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
15964 INDIRECT_REF folding with more generalized MEM_REF folding.
15965 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
15966 (forward_propagate_addr_into_variable_array_index): Also handle
15967 &ARRAY + I in addition to &ARRAY[0] + I.
15968 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
15969 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
15970 creates assignments with overlap.
15971 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
15972 (get_frame_field): Likewise.
15973 (get_nonlocal_debug_decl): Likewise.
15974 (convert_nonlocal_reference_op): Likewise.
15975 (struct nesting_info): Add mem_refs pointer-set.
15976 (create_nesting_tree): Allocate it.
15977 (convert_local_reference_op): Insert to be folded mem-refs.
15978 (fold_mem_refs): New function.
94dbbc81 15979 (finalize_nesting_tree_1): Perform defered folding of mem-refs
70f34814
RG
15980 (free_nesting_tree): Free the pointer-set.
15981 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
15982 (vectorizable_load): Likewise.
15983 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
15984 (propagate_with_phi): Likewise.
15985 * tree-object-size.c (addr_object_size): Handle MEM_REFs
15986 instead of INDIRECT_REFs.
15987 (compute_object_offset): Handle MEM_REF.
15988 (plus_stmt_object_size): Handle MEM_REF.
15989 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
15990 for &MEM_REF.
15991 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
15992 (symbol_marked_for_renaming): Likewise.
15993 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
15994 (fold-const.o): Add $(TREE_FLOW_H).
15995 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
15996 (find_func_clobbers): Likewise.
15997 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
15998 (decompose_access): Likewise.
15999 (replace_field_acc): Likewise.
16000 (replace_field_access_stmt): Likewise.
16001 (insert_new_var_in_stmt): Likewise.
16002 (get_stmt_accesses): Likewise.
16003 (reorg_structs_drive): Disable.
16004 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
16005 (ix86_canonical_va_list_type): Likewise.
16006
a87cf97e
JR
160072010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
16008
16009 PR other/44566
16010 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
16011 * target.def (struct gcc_target): Replace enum reg_class with
16012 reg_class_t in hook argument / return types.
16013 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
16014 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
16015 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
16016 * targhooks.h (default_branch_target_register_class): Likewise.
16017 (default_ira_cover_classes, default_secondary_reload): Likewise.
16018 (default_memory_move_cost, default_register_move_cost): Likewise.
16019 * targhooks.c (default_branch_target_register_class): Likewise.
16020 (default_ira_cover_classes, default_secondary_reload): Likewise.
16021 (default_memory_move_cost, default_register_move_cost): Likewise.
16022 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
16023 * bt-load.c (branch_target_load_optimize): Likewise.
16024 * ira.c (setup_cover_and_important_classes): Likewise.
16025 * ira-costs.c (copy_cost): Likewise.
16026 * reload1.c (emit_input_reload_insns): Likewise.
16027 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
16028 * config/frv/frv.c (frv_secondary_reload): Likewise.
16029 * config/s390/s390.c (s390_secondary_reload): Likewise.
16030 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
16031 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
16032 (ix86_register_move_cost): Likewise.
16033 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
16034 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
16035 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
16036 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
16037 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
16038 (rs6000_ira_cover_classes): Likewise.
16039 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
16040 * config/picochip/picochip-protos.h (picochip_secondary_reload):
16041 Likewise.
16042 * config/pa/pa.c (pa_secondary_reload): Likewise.
16043 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
16044 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
16045 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
16046 * doc/tm.texi: Regenerate.
16047
6e44d26e
SP
160482010-06-30 Sebastian Pop <sebastian.pop@amd.com>
16049
16050 PR bootstrrap/44726
16051 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
16052 use.
16053 (build_alias_set_optimal_p): Likewise.
16054 (build_base_obj_set_for_drs): Likewise.
16055
f6170701
JR
160562010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
16057
16058 * target.def: Remove comment about licensing problems of function
16059 declarations.
16060
ad78130c
JR
16061 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
16062 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
16063 * doc/tm.texi: Regenerate.
16064
89356d17
JR
16065 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
16066 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
16067
07a5b2bc
JR
16068 * target.def (enum_va_list_p): Use DEFHOOK.
16069 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
16070 Rename ptype to ptree.
16071 * doc/tm.texi: Regenerate.
16072
08914aaa
JR
16073 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
16074 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
16075 * doc/tm.texi: Regenerate.
16076
911852ff
JR
16077 * target.def (memory_move_cost): Use DEFHOOK.
16078 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
16079 Rename regclass AKA class to rclass.
16080 * doc/tm.texi: Regenerate.
16081
56cb42ea
JR
16082 * target.def (pragma_parse): Use DEFHOOK.
16083 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
16084 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
16085 * doc/tm.texi: Regenerate.
16086
ec9f85e5
JR
16087 * target.def (pass_by_reference): Use DEFHOOK.
16088 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
16089 * doc/tm.texi: Regenerate.
16090
d66f5459
JR
16091 * target.def (resolve_overloaded_builtin): Rename params to arglist.
16092 Use DEFHOOK.
16093 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
16094 * doc/tm.texi: Regenerate.
16095
893d13d5
JR
16096 * target.def (return_pops_args): Use DEFHOOK.
16097 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
16098 Rename stack-size to size.
16099 * doc/tm.texi: Regenerate.
16100
c06bbdf7
JR
16101 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
16102 last-sched_cycle to last_clock, cur_cycle to clock.
16103 * doc/tm.texi.in: Use @hook.
16104 * doc/tm.texi: Regenerate.
16105
4d00d5dd
JR
16106 * target.def (print_operand, print_operand_address): Update comment.
16107 (print_operand_punct_valid_p): Likewise.
16108
0cbd9993
MLI
161092010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
16110
16111 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
16112 to rtl.h.
16113 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
94dbbc81 16114 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
0cbd9993
MLI
16115 * rtl-error.h: New.
16116 * regrename.c: Do not include toplev.h. Include rtl-error.h.
16117 * rtl-error.c: Likewise.
16118 * reload.c: Likewise.
16119 * recog.c: Likewise.
16120 * sel-sched.c: Likewise.
16121 * function.c: Likewise.
16122 * reg-stack.c: Likewise.
16123 * cfgrtl.c: Likewise.
16124 * reload1.c: Likewise.
16125 * final.c: Include rtl-error.
16126 * Makefile.in: Adjust dependencies.
16127
8a9c1ae6
JH
161282010-06-30 Jan Hubicka <jh@suse.cz>
16129
16130 PR middle-end/PR44706
16131 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
16132 to return the value.
16133
8a1561bc
MM
161342010-06-30 Michael Matz <matz@suse.de>
16135
16136 PR bootstrap/44699
16137 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
16138 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
16139 a gimple reg, attach the original VDEF to the last store in the
16140 sequence.
16141
8a1dabd5
IS
161422010-06-30 Iain Sandoe <iains@gcc.gnu.org>
16143
16144 PR other/44034
16145 * config/darwin.c (darwin_override_options): Use renamed
16146 targetm.asm_out.emit_unwind_label.
16147
dcad005d
BS
161482010-06-30 Bernd Schmidt <bernds@codesourcery.com>
16149
16150 PR tree-optimization/39799
16151 * tree-inline.c (remap_ssa_name): Initialize variable only if
16152 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16153
1d468b06
NF
161542010-06-30 Nathan Froyd <froydnj@codesourcery.com>
16155
16156 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
16157
501d1a70
RG
161582010-06-30 Richard Guenther <rguenther@suse.de>
16159
16160 PR target/44722
16161 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
16162 against oscillation with reverse peephole2.
16163
ed1db000
L
161642010-06-30 H.J. Lu <hongjiu.lu@intel.com>
16165
16166 PR target/44721
16167 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16168 Fix last commit.
16169
aea8fc97
NC
161702010-06-30 Nick Clifton <nickc@redhat.com>
16171
16172 * config/rx/rx-modes.def: New file.
16173 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
16174 (CC_REGNUM): Define.
16175 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
16176 register.
16177 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
16178 (SELECT_CC_MODE): Define.
16179 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
16180 (reg:CC CC_REG) instead of (cc0).
16181 (attr "cc"): Delete.
16182 (cbranchsi4): Do not split compare and branch here. Instead move
16183 it to...
16184 (cbranchsi4_<code>): ... here. New patterns.
16185 (cmpsi): Call rx-compare_redundant to find out if it is necessary
16186 to emit the compare instruction.
16187 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
16188 cc_status flags.
16189 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
16190 FIRST_PSEUDO_REGNUM.
16191 (rx_expand_prologue, rx_expand_epilogue): Likewise.
16192 (rx_notice_update_cc): Delete.
16193 (rx_cc_modes_compatible): New function.
16194 (flags_needed_for_conditional): New function.
16195 (flags_from_mode): New function.
16196 (rx_compare_redundant): New function - scans backwards through
94dbbc81 16197 insn list to find out if condition flags are already set correctly.
aea8fc97
NC
16198 (TARGET_CC_MODES_COMPATIBLE): Define.
16199 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
16200
16201 * config/rx/rx.h (BRANCH_COST): Define.
16202 (REGISTER_MOVE_COST): Define.
94dbbc81 16203 * config/rx/predicates (rx_source_operand): Allow all constant types.
aea8fc97
NC
16204 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
16205 (tstsi4): New pattern.
16206 * config/rx/rx.c (rx_memory_move_cost): Define.
16207 (TARGET_MEMORY_MOVE_COST): Define.
16208
6662d794
MLI
162092010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
16210
16211 * tree.h (block_may_fallthru): Declare here.
16212 * tree-flow.h (block_may_fallthru): Do not declare here.
16213 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
16214 bitmap.h
16215 * Makefile.in (c-typeck.o): Update dependencies.
16216
9de9cbaf
JJ
162172010-06-30 Jakub Jelinek <jakub@redhat.com>
16218
16219 PR debug/44694
16220 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
16221 * cselib.c (cfa_base_preserved_regno): New static variable.
16222 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
16223 of REGNO (cfa_base_preserved_val->locs->loc).
16224 (cselib_preserve_cfa_base_value): Add regno argument, set
16225 cfa_base_preserved_regno to it.
16226 (cselib_invalidate_regno): Allow removal of registers other than
16227 cfa_base_preserved_regno from cfa_base_preserved_val.
16228 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
16229 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
16230 of MEM addresses, if not on LHS.
16231 (reverse_op): Don't add reverse ops for cfa_base_rtx.
16232 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
16233
ee932b8f
BS
162342010-06-30 Bernd Schmidt <bernds@codesourcery.com>
16235
16236 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
16237 static variables.
16238 (peep2_buf_position): New static function.
16239 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
16240 peephole2_optimize): Use it.
16241 (peep2_attempt, peep2_update_life): New static functions, broken out
16242 of peephole2_optimize.
16243 (peep2_fill_buffer): New static function.
16244 (peephole2_optimize): Change the main loop to try to fill the buffer
16245 with the maximum number of insns before matching them against
16246 peepholes. Use a forward scan. Remove special case for targets with
16247 conditional execution.
16248 * genrecog.c (change_state): Delete dead code.
16249 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16250 Rewrite so as not to expect the second insn to have had a peephole
16251 applied yet.
16252
4d64faec
NF
162532010-06-29 Nathan Froyd <froydnj@codesourcery.com>
16254
16255 * genhooks.c (emit_findices): Cast field precision to int.
16256 (emit_documentation): Likewise.
16257
0287000a
JJ
162582010-06-29 Jakub Jelinek <jakub@redhat.com>
16259
087fa34b
JJ
16260 PR tree-optimization/43801
16261 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
16262 if old_decl was DECL_ONE_ONLY.
16263
0287000a
JJ
16264 PR debug/44668
16265 * dwarf2out.c (add_accessibility_attribute): New function.
16266 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
16267 instead of adding DW_AT_accessibility manually.
16268 (gen_enumeration_type_die, gen_struct_or_union_type_die,
16269 gen_typedef_die): Use it.
16270
6a07b007
DR
162712010-06-29 Douglas B Rupp <rupp@gnat.com>
16272
16273 * vmsdbgout.c (full_name): Just output the file name if not native.
16274
6ca45368
DR
162752010-06-29 Douglas B Rupp <rupp@gnat.com>
16276
16277 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
16278 (funcnam_table): New static table.
16279 (funcnum_table): New static table.
16280 (write_rtnbeg): Write value saved in funcnum_table.
16281 (write_rtnend): Write value saved in funcnum_table.
16282 (vmsdbgout_begin_function): Save current function info in
16283 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
16284 (vmsdbgout_finish): Iterate over funcnum_table.
16285
528b7aa4
DR
162862010-06-29 Douglas B Rupp <rupp@gnat.com>
16287
16288 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
16289 (vmsdbgout_type_decl): Declare
16290 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
16291 (FUNC_EPILOGUE_LABEL): New macro
16292 (vmsdbgout_begin_epilogue): New function.
16293 (vmsdbgout_type_decl): New function.
16294
cb488ce1
DR
162952010-06-29 Douglas B Rupp <rupp@gnat.com>
16296
16297 * vmsdbg.h: Update copyright.
16298
b313b165
DR
162992010-06-29 Douglas B Rupp <rupp@gnat.com>
16300
16301 * vmsdbg.h (DST_K_TBG): New DST constant.
16302 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
16303 (write_modbeg): Cast module_language to avoid warning.
16304 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
16305
38f8b050
JR
163062010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
16307
16308 PR other/44034
16309 * target.def, doc/tm.texi.in, genhooks.c: New files.
16310 * target.h: Instead of defining individual hook members,
16311 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
16312 include target.def.
16313 * target-def.h: Instead of defining individual hook initializers,
16314 include target-hooks-def.h.
16315 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
16316 targetm.live_on_entry -> targetm.extra_live_on_entry
16317 targetm.sched.md_finish ->targetm.sched.finish
16318 targetm.sched.md_init -> targetm.sched.init
16319 targetm.sched.md_init_global -> targetm.sched.init_global
16320 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
16321 targetm.asm_out.except_table_label ->
16322 targetm.asm_out.emit_except_table_label
16323 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
16324 targetm.target_help -> targetm.help
16325 targetm.vectorize.builtin_support_vector_misalignment ->
16326 targetm.vectorize.support_vector_misalignment
16327 targetm.file_start_app_off -> targetm.asm_file_start_app_off
16328 targetm.file_start_file_directive ->
16329 targetm.asm_file_start_file_directive
16330 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
16331 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
eed023cc 16332 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
38f8b050
JR
16333 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
16334 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
16335 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
16336 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
16337 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
16338 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
16339 * Makefile.in (TARGET_H): Depend on target.def.
16340 (TARGET_DEF_H): Depend on target-hooks-def.h.
16341 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
16342 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
16343 * doc/tm.texi: Regenerate.
16344
e82a40fc
JR
16345 * Makefile.in (s-tm-texi): Remove stray tab / rule.
16346
7ecb00a6
JR
16347 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
16348 (targetm.sched.init): Likewise.
16349
3fc7cd18
NF
163502010-06-29 Nathan Froyd <froydnj@codesourcery.com>
16351
16352 PR bootstrap/44713
16353 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
16354 (function_arg_advance_32): Const-ify TYPE parameter.
16355 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
16356 (ix86_function_arg_advance): Change type of NAMED to bool.
16357 (function_arg_32): Const-ify CUM and TYPE parameters.
16358 (function_arg_64): Likewise. Change type of NAMED to bool.
16359 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
16360 to bool.
16361 (ix86_function_arg): Change type of NAMED to bool.
16362 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
16363 last argument as a bool.
16364
74f7912a
JR
163652010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
16366
16367 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
16368 (OVERRIDE_OPTIONS): Add note of obsolescence.
16369 Replace references with references to TARGET_OPTION_OVERRIDE.
16370 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
16371 the macro).
16372 * targhooks.c (default_target_option_override): New function.
16373 * targhooks.h (default_target_option_override): Declare.
16374 * target.h (struct gcc_target): Add override member to
9afcc09d 16375 target_option member.
74f7912a
JR
16376 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
16377 targetm.target_option.override call.
16378 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
16379 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
16380
20a6bb58
JH
163812010-06-29 Jan Hubicka <jh@suse.cz>
16382
16383 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
16384
b35366ce
JH
163852010-06-29 Jan Hubicka <jh@suse.cz>
16386
16387 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
16388 unreachable.
16389 (rebuild_frequencies): New function.
16390 * predict.h (rebuild_frequencies): Declare.
16391 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
16392 entry block and edge reaching new_entry.
94dbbc81
UB
16393 (tree_function_versioning): When doing partial cloning, rebuild
16394 frequencies when done.
b35366ce
JH
16395 * passes.c (execute_function_todo): Use rebild_frequencies.
16396
50b56694
RG
163972010-06-29 Richard Guenther <rguenther@suse.de>
16398
16399 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
16400 * tree-flow.h (enum noalias_state): Remove.
16401 (struct var_ann_d): Remove noalias_state member.
16402
810c4bf4
BS
164032010-06-29 Bernd Schmidt <bernds@codesourcery.com>
16404
16405 PR target/43902
16406 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
16407 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
16408 (maddhidi4): Likewise.
16409
3df41baf
BS
16410 Revert parts of the change for PR25130.
16411 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
16412 MEM_ALIAS_SET.
16413
3c07301f
NF
164142010-06-29 Nathan Froyd <froydnj@codesourcery.com>
16415
16416 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
16417 targetm.calls.function_incoming_arg, and
16418 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
16419 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
16420 * target.h (struct gcc_target): Add function_arg_advance,
16421 function_arg, and function_incoming_arg fields.
16422 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
16423 (TARGET_FUNCTION_INCOMING_ARG): Define.
16424 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
16425 and TARGET_FUNCTION_INCOMING_ARG.
16426 * targhooks.h (default_function_arg_advance): Declare.
16427 (default_function_arg, default_function_incoming_arg): Declare.
16428 * targhooks.c (default_function_arg_advance): New function.
16429 (default_function_arg, default_function_incoming_arg): New function.
16430 * config/i386/i386.c (function_arg_advance): Rename to...
16431 (ix86_function_arg_advance): ...this. Make static.
16432 (function_arg): Rename to...
16433 (ix86_function_arg): ...this. Make static.
16434 (TARGET_FUNCTION_ARG_ADVANCE): Define.
16435 (TARGET_FUNCTION_ARG): Define.
16436 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
16437 (FUNCTION_ARG): Delete.
16438 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
16439 (function_arg): Delete prototype.
16440
079e7538
NF
164412010-06-29 Nathan Froyd <froydnj@codesourcery.com>
16442
16443 * reginfo.c (init_reg_sets_1): Adjust comments.
16444 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
16445 * calls.c (prepare_call_address): Likewise.
16446 (emit_call_1): Use targetm.calls.return_pops_args.
16447 (expand_call): Likewise.
16448 * function.c (assign_parms): Likewise.
16449 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
16450 * target.h (struct gcc_target) [struct calls]: Add
16451 return_pops_args field.
16452 * targhooks.h (default_return_pops_args): Declare.
16453 * targhooks.c (default_return_pops_args): Define.
16454 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
16455 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
16456 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
16457 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
16458 documentation.
16459 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
16460 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
16461 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
16462 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
16463 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
16464 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
16465 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
16466 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
16467 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
16468 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
16469 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
16470 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
16471 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
16472 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
16473 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
16474 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
16475 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
16476 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
16477 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
16478 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
16479 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
16480 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
16481 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
16482 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
16483 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
16484 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
16485 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
16486 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
16487 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
16488 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
16489 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
16490 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
16491 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
16492 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
16493 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
16494 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
16495 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
16496 * config/i386/i386.c (ix86_return_pops_args): Make static.
16497 Constify arguments.
16498 (TARGET_RETURN_POPS_ARGS): Define.
16499 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
16500 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
16501 (TARGET_RETURN_POPS_ARGS): Define.
16502 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
16503 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
16504 (TARGET_RETURN_POPS_ARGS): Define.
16505
ea184343
RG
165062010-06-29 Richard Guenther <rguenther@suse.de>
16507
16508 PR middle-end/44667
16509 * tree-inline.c (initialize_inlined_parameters): Make sure
16510 to remap the inlined parameter variable substitutions types.
16511
5dfebe0a
EB
165122010-06-29 Eric Botcazou <ebotcazou@adacore.com>
16513
16514 PR rtl-optimization/44659
16515 * combine.c (make_compound_operation) <SUBREG>: Do not return the
16516 result of force_to_mode if it partially re-expanded the compound.
16517
6b5c2d6c
JH
165182010-06-28 Jan Hubicka <jh@suse.cz>
16519
16520 PR middle-end/44671
5dfebe0a
EB
16521 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
16522 RESULT_DECL.
6b5c2d6c 16523
9589f23e
AS
165242010-06-28 Anatoly Sokolov <aesok@post.ru>
16525
16526 * double-int.h (force_fit_type_double): Remove declaration.
16527 * double-int.c (force_fit_type_double): Move to tree.c.
16528 * tree.h (force_fit_type_double): Declare.
16529 * tree.h (force_fit_type_double): Moved from double-int.c. Use
16530 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
16531 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
16532 * convert.c (convert_to_pointer): Adjust call to
16533 force_fit_type_double.
16534 * tree-vrp.c (extract_range_from_assert,
16535 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
16536 * fold-const.c: Update comment.
16537 (int_const_binop, fold_convert_const_int_from_int,
16538 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
16539 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
16540 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
16541 round_up_loc): Adjust call to force_fit_type_double.
16542
5dfebe0a 165432010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
dfecaf59
PT
16544
16545 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
16546
bb8e5dca
MJ
165472010-06-28 Martin Jambor <mjambor@suse.cz>
16548
16549 * tree-sra.c (convert_callers): New parameter, change fndecls of
16550 recursive calls.
16551 (modify_function): Pass the old decl to convert_callers.
16552
f5d3b855
MJ
165532010-06-28 Martin Jambor <mjambor@suse.cz>
16554
16555 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
16556 ipa_check_create_node_params and ipa_initialize_node_params with
16557 checking asserts they are not necessary.
16558
4021f4a1
JH
165592010-06-28 Jan Hubicka <jh@suse.cz>
16560
16561 PR tree-optimization/44687
16562 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
16563
621f4189
MJ
165642010-06-28 Martin Jambor <mjambor@suse.cz>
16565
16566 PR c++/44535
16567 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
16568 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
16569 instead of BINFO_BASE_BINFO.
16570
fe2ef088
MM
165712010-06-28 Michael Matz <matz@suse.de>
16572
16573 PR middle-end/44592
16574 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
16575 proper VDEF chain for intermediate stores in the sequence.
16576
f0cc75e0
JH
165772010-06-28 Jan Hubicka <jh@suse.cz>
16578
16579 PR tree-optimization/44357
94dbbc81
UB
16580 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
16581 uninlinable functions.
f0cc75e0 16582
5dfebe0a 165832010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
3c005e6c
PT
16584
16585 * config.gcc (powerpc*-*-*): Handle titan.
16586 * config/rs6000/rs6000.c (titan_cost): New costs.
16587 (rs6000_override_options): Add "titan" to processor_target_table.
16588 Add Titan to branch alignment logic.
16589 Correctly set rs6000_cost for titan.
16590 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
16591 * config/rs6000/titan.md: New file.
16592 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
94dbbc81 16593
40523581
NF
165942010-06-28 Nathan Froyd <froydnj@codesourcery.com>
16595
16596 * tree-browser.c (TB_history_stack): Convert to a VEC.
16597 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
16598 (TB_history_prev): Likewise.
16599
04924d6a
NF
166002010-06-28 Nathan Froyd <froydnj@codesourcery.com>
16601
16602 * vec.h (vec_heap_free): Add parentheses around free.
16603
3b06d379
SB
166042010-06-28 Steven Bosscher <steven@gcc.gnu.org>
16605
16606 * system.h: Poison GCC_EXCEPT_H for front-end files.
16607
16608 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
16609 langhook.
16610 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
16611 Define to NULL by default.
16612 * except.h: Define GCC_EXCEPT_H.
16613 (doing_eh): Remove prototype.
16614 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
16615 (lang_protect_cleanup_actions): Remove.
16616 * except.c (lang_protect_cleanup_actions): Remove.
16617 (doing_eh): Remove.
16618 (gen_eh_region): Don't check doing_eh here.
16619 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
16620 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
16621 instead of lang_protect_cleanup_actions.
16622 * omp-low.c (maybe_catch_exception): Likewise.
16623 * Makefile.in: Update dependencies.
16624
5dfebe0a 166252010-06-28 Bingfeng Mei <bmei@broadcom.com>
6d41cd02 16626
94dbbc81
UB
16627 * cgraph.h (struct varpool_node): new used_from_object_file flag.
16628 (struct cgraph_local_info): new used_from_object_file flag.
16629 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
16630 (cgraph_clone_node): initialize used_from_object_file.
16631 (cgraph_create_virtual_clone): initialize used_from_object_file.
16632 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
16633 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
16634 when compiling with -fwhole-program.
16635 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
6d41cd02 16636 internal resolver.
94dbbc81
UB
16637 * ipa.c (function_and_variable_visibility): Set externally_visible
16638 flag of varpool_node if used_from_object_file flag is set.
16639 (cgraph_externally_visible_p): check used_from_object_file flag.
16640 * doc/invoke.texi (-fwhole-program option): Change description of
16641 externally_visible attribute accordingly.
16642 * doc/extend.texi (externally_visible): Ditto.
6d41cd02 16643
7802ca7c
JH
166442010-06-27 Jan Hubicka <jh@suse.cz>
16645
16646 * params.def (max-inline-insns-auto): Default to 40.
16647 * doc/invoke.texi (max-inline-insns-auto): Document the change.
16648
d402c33d
JH
166492010-06-27 Jan Hubicka <jh@suse.cz>
16650
16651 PR middle-end/44671
16652 PR middle-end/44686
5dfebe0a
EB
16653 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
16654 signature change.
d402c33d
JH
16655 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
16656 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
16657
de8f4b07
AS
166582010-06-27 Anatoly Sokolov <aesok@post.ru>
16659
16660 * target.h (struct gcc_target): Add register_move_cost field.
16661 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
16662 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
16663 * targhooks.c (default_register_move_cost): New function.
16664 * targhooks.h (default_register_move_cost): Declare function.
16665 * defaults.h (REGISTER_MOVE_COST): Delete.
16666 * ira-int.h (ira_register_move_cost): Update comment.
bd3a5d17 16667 * ira.c (ira_register_move_cost): Update comment.
de8f4b07
AS
16668 * reload.h (register_move_cost): Declare.
16669 * reginfo.c (register_move_cost): New function.
16670 (move_cost): Update comment.
16671 (init_move_cost, memory_move_secondary_cost): Replace
16672 REGISTER_MOVE_COST with register_move_cost.
16673 * postreload.c (reload_cse_simplify_set): (Ditto.).
16674 * reload.c (find_valid_class, find_reloads): (Ditto.).
16675 * reload1.c (choose_reload_regs): (Ditto.).
16676 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
16677 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
16678 * doc/md.texi (can_create_pseudo_p): Update documentation.
16679
16680 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16681 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16682 * config/i386/i386.h (ix86_memory_move_cost): Make static.
16683 (TARGET_MEMORY_MOVE_COST): Define.
16684
16685 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
16686 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
16687 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
16688 (TARGET_MEMORY_MOVE_COST): Define.
16689
533e50f6
RG
166902010-06-27 Richard Guenther <rguenther@suse.de>
16691
16692 PR tree-optimization/44683
16693 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
16694 false edge from the inverted condition.
16695
11af16ef
RG
166962010-06-27 Richard Guenther <rguenther@suse.de>
16697
16698 PR middle-end/44684
16699 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
16700 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
16701 for register LHS. Or non-store assignments.
16702
d9816849
EB
167032010-06-26 Eric Botcazou <ebotcazou@adacore.com>
16704
16705 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
16706 (sparc_emit_set_const64): Likewise. Remove disabled code.
16707 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
16708 (sparc_emit_set_const64): Likewise.
16709
2639084e
CM
167102010-06-26 Catherine Moore <clm@codesourcery.com>
16711
16712 * config/mips/mips.md (alu_type): New attribute.
16713 (type): Infer type from alu_type.
16714 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
16715 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
16716 *subsi3_extended, negsi2, negdi2, *low<mode>,
16717 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
16718 xor<mode>3, *nor<mode>3,
16719 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
16720 *zero_extendhi_truncqi): Set alu_type instead of type.
16721
df453731
DR
167222010-06-26 Douglas B Rupp <rupp@gnat.com>
16723
16724 * config/alpha/alpha.c (alpha_need_linkage): Adjust
6a02864a 16725 splay_tree_new_ggc call.
df453731
DR
16726 (alpha_use_linkage): Likewise.
16727
d5d8b111
JM
167282010-06-26 Joseph Myers <joseph@codesourcery.com>
16729
16730 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
16731 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
16732 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
16733 (static_specs): Remove switches_need_spaces.
16734 (process_command, do_self_spec): Hardcode handling "-o" instead of
16735 checking switches_need_spaces.
16736 * system.h (SWITCHES_NEED_SPACES): Poison.
16737
2706a615
RG
167382010-06-26 Richard Guenther <rguenther@suse.de>
16739
16740 PR tree-optimization/44393
16741 * tree-loop-distribution.c (generate_loops_for_partition): Fix
16742 stmt removal and VOP renaming.
16743 (generate_memset_zero): Remove redundant stmt updating.
16744 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
16745 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
16746
8b3057b3
JH
167472010-06-26 Jan Hubicka <jh@suse.cz>
16748
16749 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
16750 edges comming from header are equivalent.
16751 (visit_bb): Handle PHIs correctly.
16752 * tree-inline.c (copy_phis_for_bb): Be able to copy
16753 PHI from entry edge.
94dbbc81 16754 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
8b3057b3 16755
6bfd4302
RB
167562010-06-26 Richard Guenther <rguenther@suse.de>
16757
16758 PR middle-end/44674
16759 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
16760 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
16761
922e1882
JM
167622010-06-26 Joseph Myers <joseph@codesourcery.com>
16763
16764 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
16765 add_infile, alloc_switch): New.
16766 (process_command): Remove variable lang_n_infiles. Process
16767 options in a single pass. Use new functions for allocating
16768 infiles and switches arrays. Properly skip operands of
16769 -Xpreprocessor and -Xassembler.
16770
8cf9feca
JH
167712010-06-26 Jan Hubicka <jh@suse.cz>
16772
16773 PR middle-end/44671
6bfd4302
RB
16774 * cgraphunit.c (cgraph_function_versioning): Remove wrong
16775 cgraph_make_decl_local call; fix typo copying RTL data.
8cf9feca 16776
f6052f86
DD
167772010-06-25 DJ Delorie <dj@redhat.com>
16778
16779 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
16780 (m32c_output_aligned_common): Likewise.
16781 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
16782 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16783 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
16784 (m32c_register_pragmas): Register it.
16785 * config/m32c/m32c.c (m32c_get_pragma_address): New.
16786 (m32c_insert_attributes): Set #pragma address decls volatile.
16787 (pragma_entry_eq): New.
16788 (pragma_entry_hash): New.
16789 (m32c_note_pragma_address): New.
16790 (m32c_get_pragma_address): New.
16791 (m32c_output_aligned_common): New.
16792 * doc/extend.texi: Document the new pragma.
16793
16794 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
16795 also.
16796 * config/m32c/predicates.md (m32c_any_operand): Check the code
16797 instead of memory_operand so as to allow matching volatile MEMs.
16798 (m32c_nonimmediate_operand): Likewise.
16799 (mra_operand): Allow volatiles.
16800
e0a80069
AO
168012010-06-25 Alexandre Oliva <aoliva@redhat.com>
16802
16803 PR debug/44610
16804 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
16805 address if the offset is unknown.
16806
8e7745dc
DR
168072010-06-25 Douglas B Rupp <rupp@gnat.com>
16808
16809 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
16810 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
16811 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
16812 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
16813 to ia64_start_function. Invoke it.
16814 * config/ia64/ia64.c (ia64_start_function): Call new function
16815 dwarf2out_vms_debug_main_pointer.
16816
5c8b27d7
SP
168172010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16818
16819 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
16820 statements computing the true predicate.
16821
29caa68a
SP
168222010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16823
16824 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
16825 to boolean_true_node.
16826 (reset_bb_predicate): New.
16827 (predicate_bbs): Call reset_bb_predicate.
16828
0f741287
SP
168292010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16830
16831 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
16832 (tree_if_conversion): Returns true when something has been changed.
16833 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
16834 changed something.
16835
53aa40a8
SP
168362010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16837
16838 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
16839 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
16840 * tree-if-conv.c: Include dbgcnt.h.
16841 (tree_if_conversion): Use if_conversion_tree to count the number of
16842 if-convertible loops.
16843
1fbb509a
CF
168442010-06-25 Changpeng Fang <changpeng.fang@amd.com>
16845
16846 * common.opt (fprefetch-loop-arrays): Re-define
16847 -fprefetch-loop-arrays as a tri-state option with the initial
16848 value of -1.
16849 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
16850 pass only when flag_prefetch_loop_arrays > 0.
16851 * toplev.c (process_options): Note that, with tri-states,
16852 flag_prefetch_loop_arrays>0 means prefetching is enabled.
16853 * config/i386/i386.c (override_options): Enable prefetching at -O3
16854 for a set of CPUs that sw prefetching is helpful.
16855 (software_prefetching_beneficial_p): New. Return TRUE if software
16856 prefetching is beneficial for the given CPU.
16857
97f43086
L
168582010-06-25 H.J. Lu <hongjiu.lu@intel.com>
16859
16860 PR rtl-optimization/44326
16861 * implicit-zee.c (find_removable_zero_extends): Replace
16862 INSN_P with NONDEBUG_INSN_P.
16863
062c604f
MJ
168642010-06-25 Martin Jambor <mjambor@suse.cz>
16865
16866 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
16867 (struct ipa_node_params): Removed the modification_analysis_done flag.
16868 (ipa_is_param_modified): Removed.
16869 (ipa_analyze_node): Declare.
16870 (ipa_compute_jump_functions): Remove declaration.
16871 (ipa_count_arguments): Likewise.
16872 (ipa_detect_param_modifications): Likewise.
16873 (ipa_analyze_params_uses): Likewise.
16874 * ipa-prop.c (struct param_analysis_info): New type.
16875 (visit_store_addr_for_mod_analysis): Removed.
16876 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
16877 moved down in the file.
16878 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
16879 (ipa_count_arguments): Made static.
16880 (mark_modified): New function.
16881 (is_parm_modified_before_call): New function.
16882 (compute_pass_through_member_ptrs): New parameter parms_info, call
16883 is_parm_modified_before_call instead of ipa_is_param_modified.
16884 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
16885 it to compute_pass_through_member_ptrs.
16886 (ipa_compute_jump_functions): New parameter parms_info, pass it to
16887 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
16888 on the callee if it is analyzed. Made static.
16889 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
16890 is_parm_modified_before_call instead of ipa_is_param_modified.
16891 (ipa_analyze_call_uses): New parameter parms_info, pass it to
16892 ipa_analyze_indirect_call_uses.
16893 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
16894 ipa_analyze_call_uses.
16895 (ipa_analyze_params_uses): New parameter parms_info, pass it to
16896 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
16897 (ipa_analyze_node): New function.
16898 (ipa_print_node_params): Do not dump the modified flag.
16899 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
16900 it. Do not stream the modified parameter flag.
16901 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
16902 it. Do not stream the modified parameter flag.
16903 * ipa-cp.c (ipcp_analyze_node): Removed.
16904 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
16905 with only a call to ipa_analyze_node.
16906 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
16907 node with only a call to ipa_analyze_node.
53aa40a8 16908
212580ff
MLI
169092010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
16910
16911 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
53aa40a8 16912
3e485f62
JH
169132010-06-25 Jan Hubicka <jh@suse.cz>
16914
16915 * tree-pass.h (pass_split_functions): Declare.
16916 * opts.c (decode_options): Enable function splitting at -O2
16917 * timevar.def (TV_IPA_FNSPLIT): New macro.
16918 * ipa-split.c: New file.
16919 * common.opt (-fpartial-inlining): New flag.
16920 * Makefile.in (ipa-split.o): New object file.
16921 * passes.c (init_optimization_passes): Add ipa-split.
16922 * params.def (partial-inlining-entry-probability): New parameters.
16923 * doc/invoke.texi (-fpartial-inlining): New.
16924
12947319
MLI
169252010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
16926
16927 PR 44665
16928 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
16929 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
16930 (gimplify_expr): Likewise.
53aa40a8 16931
8aa29647
MJ
169322010-06-25 Martin Jambor <mjambor@suse.cz>
16933
16934 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
16935 statements instead of bailing out on them.
16936 (ipa_analyze_indirect_call_uses): Do not require that loads from the
16937 parameter are in the same BB as the condition. Update comments.
16938
8ba0479e
JJ
169392010-06-25 Jakub Jelinek <jakub@redhat.com>
16940
7a2eceff
JJ
16941 PR middle-end/43866
16942 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
16943 true or always false, return NULL_TREE.
16944 (tree_unswitch_single_loop): Optimize conditions even when reaching
16945 max-unswitch-level parameter. If num > 0, optimize first all conditions
16946 using entry checks, then do still reachable block discovery and consider
16947 only conditions in still reachable basic blocks in the loop.
16948
8ba0479e
JJ
16949 PR tree-optimization/44539
16950 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
16951 the call doesn't have LHS, but has VDEF.
16952
d6841109
JM
169532010-06-25 Joseph Myers <joseph@codesourcery.com>
16954
16955 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
16956 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
94dbbc81 16957 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
d6841109
JM
16958 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
16959 * system.h (MODIFY_TARGET_NAME): Poison.
16960
4c9d416e
AM
169612010-06-25 Alan Modra <amodra@gmail.com>
16962
16963 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
16964 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
16965 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
16966 CMODEL_LARGE as default.
16967 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
16968 (offsettable_ok_by_alignment): Delete.
16969 (rs6000_emit_move): Remove mcmodel=medium optimization.
16970
0354c0c7
BS
169712010-06-25 Bernd Schmidt <bernds@codesourcery.com>
16972
16973 With large parts from Jim Wilson:
16974 PR target/43902
16975 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
16976 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16977 * optabs.c (optab_for_tree_code): Likewise.
16978 (expand_widen_pattern_expr): Likewise.
16979 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
16980 out of execute_optimize_widening_mul.
16981 (convert_plusminus_to_widen): New function.
16982 (execute_optimize_widening_mul): Use the two new functions.
16983 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
16984 Remove code to generate widening multiply-accumulate. Add support
16985 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16986 * gimple-pretty-print.c (dump_ternary_rhs): New function.
16987 (dump_gimple_assign): Call it when appropriate.
16988 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
16989 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
16990 (expand_gimple_stmt_1): Likewise.
16991 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
16992 WIDEN_MULT_MINUS_EXPR.
16993 * tree-ssa-operands.c (get_expr_operands): Likewise.
16994 * tree-inline.c (estimate_operator_cost): Likewise.
16995 * gimple.c (extract_ops_from_tree_1): Renamed from
16996 extract_ops_from_tree. Add new arg for a third operand; fill it.
16997 (gimple_build_assign_stat): Support operations with three operands.
16998 (gimple_build_assign_with_ops_stat): Likewise.
16999 (gimple_assign_set_rhs_from_tree): Likewise.
17000 (gimple_assign_set_rhs_with_ops_1): Renamed from
17001 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
17002 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
17003 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
17004 WIDEN_MULT_MINUS_EXPR.
17005 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
17006 (extract_ops_from_tree_1): Adjust declaration.
17007 (gimple_assign_set_rhs_with_ops_1): Likewise.
17008 (gimple_build_assign_with_ops): Pass NULL for last operand.
17009 (gimple_build_assign_with_ops3): New macro.
17010 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
17011 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
17012 functions.
17013 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
17014 (verify_gimple_assign): Call it.
17015 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
17016 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
17017 functions for dealing with three-operand statements.
17018 * tree.c (commutative_ternary_tree_code): New function.
17019 * tree.h (commutative_ternary_tree_code): Declare it.
5dfebe0a
EB
17020 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
17021 ternary statements.
0354c0c7
BS
17022 (gimple_assign_nonzero_warnv_p): Likewise.
17023 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
17024 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
17025 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
17026 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
17027 (struct hashtable_expr): New member ternary in the union.
17028 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
17029 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
17030 (iterative_hash_hashable_expr): Likewise.
17031 (print_expr_hash_elt): Handle EXPR_TERNARY.
17032 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
17033 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
17034 statements. Handle GIMPLE_TERNARY_RHS.
17035
38f78b0c
JH
170362010-06-25 Jan Hubicka <jh@suse.cz>
17037
17038 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
17039
09a1e889
SZ
170402010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
17041
17042 PR c/44517
17043 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
17044 parameters are not good.
17045 (c_parser_parameter_declaration): Error unknown type name if the type
17046 name can't start declaration specifiers.
17047
418f840c
JM
170482010-06-25 Joseph Myers <joseph@codesourcery.com>
17049
17050 * gcc.c (translate_options): Don't mention +e in comment.
17051 (process_command): Don't handle +e specially.
17052
dd2e0807
BS
170532010-06-25 Bernd Schmidt <bernds@codesourcery.com>
17054
17055 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
17056
3c55880a
BS
17057 * ira-build.c (merge_hard_reg_conflicts): New function.
17058 (create_cap_allocno, copy_info_to_removed_store_destinations,
17059 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
17060 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
17061 (remove_unnecessary_allocnos, remove_low_level_allocnos)
17062 copy_nifo_to_removed_store_destination): Use them.
17063 * ira-lives.c (make_hard_regno_born): New function, split out of
17064 make_regno_born.
17065 (make_allocno_born): Likewise.
17066 (make_hard_regno_dead): New function, split out of make_regno_dead.
17067 (make_allocno_dead): Likewise.
17068 (inc_register_pressure): New function, split out of set_allocno_live.
17069 (dec_register_pressure): New function, split out of clear_allocno_live.
17070 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
17071 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
17072 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
17073 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
17074 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
17075 mark_pseudo_regno_live.
17076 (process_bb_node_lives): Use mark_pseudo_regno_live,
17077 make_hard_regno_born and make_allocno_dead.
17078 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
17079 set_allocno_live, clear_allocno_live): Delete functions.
17080
029da7d4
BS
17081 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
17082 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
17083 functions.
17084 (ira_flattening): Use ira_parent_allocno.
17085 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
17086 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
17087
6300cb73
BS
17088 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
17089 statement.
17090
42ce1cc4
BS
17091 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
17092 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
17093 minmax_set_iter_cond, minmax_set_iter_next,
17094 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
17095 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
17096 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
17097 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
17098 uses changed.
17099
b14151b5
BS
17100 * ira-int.h (struct live_range, live_range_t): Renamed from struct
17101 ira_allocno_live_range and allocno_live_range_t; all uses changed.
17102 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
17103 All uses changed.
17104
8850383b
RE
171052010-06-24 Richard Earnshaw <rearnsha@arm.com>
17106
17107 * thumb2.md (thumb2_tlobits_cbranch): Delete.
17108 (peephole2 to convert zero_extract/compare of single bit to
17109 lshift/compare): New.
17110
43a5d30b
AS
171112010-06-24 Anatoly Sokolov <aesok@post.ru>
17112
17113 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
17114 recursive call and call to 'int_const_binop'.
17115 (build_range_check, fold_cond_expr_with_comparison, unextend,
17116 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
17117 multiple_of_p): Adjust call to const_binop.
17118
b1c6d018
UB
171192010-06-24 Uros Bizjak <ubizjak@gmail.com>
17120
17121 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
17122 determine size of XFmode operand.
17123 (XFmode extended DFmode push splitter): Ditto.
17124 (XFmode extended SFmode push splitter): Ditto.
17125
da0ae970
L
171262010-06-24 H.J. Lu <hongjiu.lu@intel.com>
17127
17128 PR target/44588
17129 * config/i386/i386.md (extract_code): New.
17130 (<u>divmodqi4): Likewise.
17131 (divmodhiqi3): Likewise.
17132 (udivmodhiqi3): Likewise.
17133 (<u>divqi3): Remvoved.
17134
54f044eb
JJ
171352010-06-24 Jakub Jelinek <jakub@redhat.com>
17136
17137 PR middle-end/44492
17138 * recog.h (struct recog_data): Add is_asm field.
17139 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
17140 present in constraints of inline-asm operand and memory operand
17141 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
17142 (extract_insn): Initialize recog_data.is_asm.
17143 * doc/md.texi (Constraints): Document operand side-effect rules.
17144
d166d4c3
AK
171452010-06-24 Andi Kleen <ak@linux.intel.com>
17146
b1c6d018
UB
17147 * c-parser.c (c_parser_conditional_expression): Call
17148 warn_for_omitted_condop.
17149 * doc/invoke.texi: Document omitted condop warning.
d166d4c3 17150
b27c1cde
NC
171512010-06-24 Nick Clifton<nickc@redhat.com>
17152
17153 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
17154 insn in the sequence is a jump insn before setting its label.
17155
2dcef31e
AM
171562010-06-24 Alan Modra <amodra@gmail.com>
17157
17158 * collect2.c (main): Match exactly --version and --help.
17159
5f4a67a5
DD
171602010-06-24 DJ Delorie <dj@redhat.com>
17161
17162 * config/m32c/m32c-pragma.c: Don't include rtl.h.
17163
bc051083
UB
171642010-06-23 Uros Bizjak <ubizjak@gmail.com>
17165
b1c6d018 17166 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
bc051083
UB
17167 using X87MODEF mode iterator.
17168 (pushsf splitter): Macroize splitter using P mode iterator.
17169 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
17170 mode iterator.
17171
17172 (*movxf_internal): Rename from *movxf_integer.
17173 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
17174 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
17175 (*movdf_internal): Rename from *movdf_integer.
17176 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
17177 (*movsf_internal): Rename from *movdf_1.
17178
cde8534c
BS
171792010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
17180
bd3a5d17 17181 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
cde8534c
BS
17182 (const_gimple_seq_node): Removed typedefs.
17183
bd3a5d17 17184 * gimple.h (gimple_seq_node_d, gimple_seq_node)
cde8534c
BS
17185 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
17186
9b2133cd
L
171872010-06-23 H.J. Lu <hongjiu.lu@intel.com>
17188
17189 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
17190 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
17191 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
17192 and CODE_FOR_vec_extract_lo_v4df.
17193
17194 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
17195 Changed to define_insn_and_split.
17196 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
17197 (vec_extract_lo_v16hi): Likewise.
17198 (vec_extract_lo_v32qi): Likewise.
17199 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
17200 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
17201
82c0295a
JR
172022010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
17203
f52d94aa 17204 PR target/44640
82c0295a
JR
17205 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
17206 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
17207 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
17208 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
17209 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
17210
f52d94aa 17211 PR target/44640
bec02c18
JR
17212 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
17213
f12c802a
JR
17214 PR other/44644
17215 * df-core.c (struct df): Rename to df_d.
17216 * df.h (struct df): Likewise.
17217 * dse.h (struct df): Remove forward declaration.
17218 * recog.h (struct insn_data): Rename to:
17219 (struct_insn_data_d). Adjusted all users.
17220
1004318e
AC
172212010-06-23 Arnaud Charlet <charlet@adacore.com
17222
422f3939 17223 PR ada/22220
1004318e
AC
17224 * doc/install.texi: Update requirements to build GNAT.
17225
f878882b
AS
172262010-06-22 Andreas Schwab <schwab@linux-m68k.org>
17227
17228 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
17229 enum type.
17230 (m68k_sched_attr_opx_type): Remove unreachable return.
17231 (m68k_sched_attr_opy_type): Likewise.
17232 (m68k_sched_attr_size): Likewise.
17233 (sched_get_opxy_mem_type): Likewise.
17234 (m68k_sched_attr_op_mem): Likewise.
17235
8d2adc24
EB
172362010-06-22 Eric Botcazou <ebotcazou@adacore.com>
17237
17238 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
17239 new statement and adjust VDEF only if necessary. Remove superfluous
17240 call to maybe_clean_or_replace_eh_stmt.
17241 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
17242 copy the flags.
17243 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
17244 * tree-inline.c (copy_bb): ...and not there.
17245
ca3e07b4
CC
172462010-06-22 Cary Coutant <ccoutant@google.com>
17247
17248 * dwarf2out.c (is_nested_in_subprogram): New function.
17249 (should_move_die_to_comdat): Use it.
17250 (copy_ancestor_tree): Don't mark DIEs here.
17251 (copy_decls_walk): Start walk from root of newly-added tree;
17252 mark DIEs here instead.
17253
153b6955
L
172542010-06-22 H.J. Lu <hongjiu.lu@intel.com>
17255
17256 * config/i386/i386.md (unit): Also check sseishft1.
17257
b074e783
JH
172582010-06-22 Jan Hubicka <jh@suse.cz>
17259
8d2adc24
EB
17260 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
17261 enabled.
b074e783 17262
1a0f3fa1
JH
172632010-06-22 Jan Hubicka <jh@suse.cz>
17264
8d2adc24
EB
17265 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
17266 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
17267 Return true if something changed.
1a0f3fa1 17268 * df.h (df_confluence_function_n): Return bool.
8d2adc24
EB
17269 * df-core.c (df_worklist_propagate_forward,
17270 df_worklist_propagate_backward): Track changes and ages.
1a0f3fa1
JH
17271 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
17272 track ages.
17273 * dse.c (dse_confluence_n): Return always true.
17274
172752010-06-22 Jan Hubicka <jh@suse.cz>
07309d58
UB
17276
17277 * bitmap.c (bitmap_clear_bit): Micro optimize.
17278
a8ecfc9f
UB
172792010-06-22 Uros Bizjak <ubizjak@gmail.com>
17280
17281 * config/i386/i386.md (SWI1248x): New mode iterator.
17282 (SWI48x): Ditto.
17283 (SWI12): Ditto.
17284 (SWI24): Ditto.
bc051083 17285
a8ecfc9f
UB
17286 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
17287 SWI1248x mode iterator.
17288 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
17289 using SWI124 mode iterator.
17290 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
17291 mode iterator.
17292 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
17293 *pushdi2_prologue_rex64 using P mode iterator.
17294 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
17295 using SWI48 mode iterator.
17296 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
17297 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
17298 using SWI1248x mode iterator.
17299 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
17300 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
17301 SWI48 mode iterator.
17302 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
17303 iterator.
17304 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
17305 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
17306 SWI12 mode iterator.
17307 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
17308 SWI12 mode iterator.
17309 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
17310 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
17311 SWI24 mode iterator.
17312 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
17313 SWI48 mode iterator.
17314 (mov<mode>_insn_1): New expander.
17315 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
17316 using SWI48x mode iterator.
17317
17318 (*movoi_internal_avx): Rename from *movoi_internal.
17319 (*movti_internal_rex64): Rename from *movti_rex64.
17320 (*movti_internal_sse): Rename from *movti_sse.
17321 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
17322 (*movdi_internal): Rename from *movdi_2.
17323 (*movsi_internal): Rename from *movsi_1.
17324 (*movhi_internal): Rename from *movhi_1.
17325 (*movqi_internal): Rename from *movqi_1.
17326
17327 (insv): Update the call to gen_movsi_insv_1 for rename.
17328 * config/i386/i386.c (promote_duplicated_reg): Ditto.
17329
0d6a035d
JH
173302010-06-22 Jan Hubicka <jh@suse.cz>
17331
17332 * passes.c (execute_function_todo): Move call of statistics_fini_pass
17333 to ...
17334 (execute_todo) ... this one.
17335
8d2547f2
AM
173362010-06-22 Alan Modra <amodra@gmail.com>
17337
17338 PR target/44364
17339 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17340 * caller-save.c (insert_restore, insert_save): Use non-validate
17341 form of adjust_address.
17342
e92abd50
JDA
173432010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17344
17345 PR target/39690
a181e869 17346 * config/pa/pa.c (override_options): Disable
e92abd50
JDA
17347 -freorder-blocks-and-partition.
17348
c1b157a6
L
173492010-06-21 H.J. Lu <hongjiu.lu@intel.com>
17350
17351 PR target/44615
17352 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
17353
17354 * config/i386/i386.md (type): Add sseishft1
17355
17356 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
17357 (ppro_insn_load): Likewise.
17358 (ppro_insn_store): Likewise.
17359 (ppro_insn_both): Likewise.
17360
17361 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
17362 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
17363 for type.
17364 (*vec_extractv2di_1_avx): Likewise.
17365 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
17366 type. Remove atom_unit.
17367 (*vec_extractv2di_1_sse2): Likewise.
17368
cd7fe53b
DD
173692010-06-21 DJ Delorie <dj@redhat.com>
17370
17371 * diagnostic.h (diagnostic_classification_change_t): New.
17372 (diagnostic_context): Add history and push/pop list.
17373 (diagnostic_push_diagnostics): Declare.
17374 (diagnostic_pop_diagnostics): Declare.
17375 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
17376 from pragmas in a history chain instead of the global table.
17377 (diagnostic_push_diagnostics): New.
17378 (diagnostic_pop_diagnostics): New.
17379 (diagnostic_report_diagnostic): Scan history chain to find state
17380 of diagnostics as of the diagnostic location.
17381 * opts.c (set_option): Pass UNKNOWN_LOCATION to
17382 diagnostic_classify_diagnostic.
17383 (enable_warning_as_error): Likewise.
17384 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
17385 use in the history chain.
cd7fe53b
DD
17386 * doc/extend.texi: Document pragma GCC diagnostic changes.
17387
d34b4f64
JJ
173882010-06-21 Jakub Jelinek <jakub@redhat.com>
17389
5ec96609
JJ
17390 * dwarf2out.c (add_linkage_name): New function. Don't add
17391 anything to DW_TAG_member DIEs.
17392 (add_name_and_src_coords_attributes): Use it.
17393 (gen_variable_die): Call it for C++ static data members if
17394 specification is DW_TAG_member.
17395
f0057424
JJ
17396 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
17397 C++ char16_t and char32_t.
17398
2e1e8c5d
JJ
17399 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
17400 * genattrtab.c: Include vecprim.h.
17401 (cached_attrs, cached_attr_count, attrs_seen_once,
17402 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
17403 attrs_cached_after): New variables.
17404 (find_attrs_to_cache): New function.
17405 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
17406 (write_test_expr): Add attrs_cached argument, return it too,
17407 attempt to cache non-const attributes used more than once in
17408 a single case handling.
17409 (write_attr_get): Use find_attrs_to_cache, for caching candidates
17410 emit cached_* variables. Adjust write_attr_set callers.
17411 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
17412 to find attributes that should be cached in this block. Adjust
17413 write_test_expr callers.
17414 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
17415 callers.
17416 (make_automaton_attrs): Adjust write_test_expr caller.
17417
2b21299c
JJ
17418 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
17419 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
17420 (make_automaton_attrs): If find_tune_attr returns non-NULL,
17421 write separate internal_dfa_insn_code_* and insn_default_latency_*
17422 functions for each attribute's value and emit init_sched_attrs
17423 function and function pointers.
17424 * genattr.c (const_attrs, reservations): New variables.
17425 (gen_attr): Add const attributes to const_attrs vector.
17426 (check_tune_attr, find_tune_attr): New functions.
17427 (main): Add reservations to reservations vector. If find_tune_attr
17428 returns true, add prototype for init_sched_attrs and make
17429 internal_dfa_insn_code and insn_default_latency function pointers,
17430 otherwise define init_sched_attrs as dummy macro.
17431 * cfgexpand.c: Include insn-attr.h.
17432 (gimple_expand_cfg): Call init_sched_attrs.
17433
5e88be0d 17434 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
d34b4f64 17435
529e5fc9
JJ
17436 PR target/44575
17437 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
17438 va_arg from a set of register save slots into a temporary,
17439 if the container is bigger than type size, do the copying
17440 using smaller mode or using memcpy.
17441
67477881
JJ
17442 PR bootstrap/44426
17443 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
17444 prototype.
17445 (sel_print_to_dot): Remove macro.
17446 (sel_print): Likewise. New prototype.
17447 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
17448 (sel_print): New function.
17449
babc4728
RO
174502010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17451
17452 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
17453 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
17454
31e727b0
NC
174552010-06-21 Nick Clifton <nickc@redhat.com>
17456
17457 * config/rx/rx.h (PTRDIFF_TYPE): Define.
17458 (SMALL_REGISTER_CLASS): Define (to zero).
17459 (PRINT_OPERAND): Delete.
17460 (PRINT_OPERAND_ADDRESS): Delete.
17461 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
17462 (rx_print_operand_address): Delete prototype.
17463 * config/rx/rx.c (rx_print_operand): Make static.
17464 Allow %H and %L to handle CONST_DOUBLEs.
17465 (rx_print_operand_address): Make static.
17466 (rx_gen_move_template): Rename local variable 'template' to
17467 out_template.
5e88be0d 17468 (rx_function_arg): Do not pass unknown sized objects in registers.
31e727b0
NC
17469 (TARGET_PRINT_OPERAND): Define.
17470 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17471
b361b153
JK
174722010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
17473
17474 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
17475
7916a546
KT
174762010-06-21 Kai Tietz <kai.tietz@onevision.com>
17477
17478 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
17479 stack-alignment for simple leaf-functions.
17480
339325b3
AO
174812010-06-20 Alexandre Oliva <aoliva@redhat.com>
17482
17483 * doc/install.texi: Document bootstrap-lto.
17484
7254364e
AO
174852010-06-20 Alexandre Oliva <aoliva@redhat.com>
17486
17487 PR debug/44248
17488 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
17489 (input_function): Drop them here, if VTA is disabled.
17490
dedd9d05
UB
174912010-06-20 Uros Bizjak <ubizjak@gmail.com>
17492
17493 PR target/44546
17494 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
17495 New predicate.
5e88be0d 17496 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
dedd9d05
UB
17497 ix86_swapped_fp_comparsion_operator instead of
17498 ix86_fp_comparison_operator.
17499
17500 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
17501 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
17502 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
17503 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
17504 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
17505 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
17506
6e2f1956
JM
175072010-06-20 Joseph Myers <joseph@codesourcery.com>
17508
17509 PR other/32998
17510 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
17511 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
17512 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
17513 (decode_cmdline_option): Update for this return value. Set
17514 orig_option_with_args_text field. Set arg field for unknown
17515 options. Make static.
17516 (decode_cmdline_options_to_array): New.
17517 (prune_options): Update handling of find_opt return value.
17518 * opts.c (read_cmdline_option): Take decoded option. Return void.
17519 (read_cmdline_options): Take decoded options.
17520 (decode_options): Add parameters for decoded options. Use
17521 decode_cmdline_options_to_array. Use decoded options for -O
17522 scan. Use integral_argument for -O parameters. Update call to
17523 read_cmdline_options.
dedd9d05 17524 (enable_warning_as_error): Update handling of find_opt return value.
6e2f1956
JM
17525 * opts.h: Update comment on unknown options.
17526 (struct cl_decoded_option): Update comments on opt_index and arg.
17527 Add orig_option_with_args_text.
17528 (decode_cmdline_option): Remove.
17529 (decode_cmdline_options_to_array): Declare.
17530 (decode_options): Update prototype.
17531 * toplev.c (save_argv): Remove.
17532 (save_decoded_options, save_decoded_options_count): New.
17533 (read_integral_parameter): Remove.
17534 (print_switch_values): Use decoded options.
dedd9d05 17535 (toplev_main): Don't set save_argv. Update call to decode_options.
6e2f1956 17536 * toplev.h (read_integral_parameter): Remove.
dedd9d05 17537 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
6e2f1956 17538
e6bfe8a2
RE
175392010-06-19 Richard Earnshaw <rearnsha@arm.com>
17540
17541 PR target/44072
17542 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
17543 immediate.
17544 * constraints.md (Pw, Px): New constraints.
17545 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
17546
1c154a23
L
175472010-06-19 H.J. Lu <hongjiu.lu@intel.com>
17548
17549 * config/i386/sse.md (fma4modesuffixf4): Removed.
17550 (ssemodesuffixf2s): Likewise.
17551 (ssemodesuffixf4): Likewise.
17552 (ssemodesuffixf2c): Likewise.
17553 (ssescalarmodesuffix2s): Likewise.
17554 (avxmodesuffixf2c): Likewise.
17555 (ssemodesuffix): New.
17556 (ssescalarmodesuffix): Likewise.
17557 Update patterns with ssemodesuffix and ssescalarmodesuffix.
17558
5a2983ce
PH
175592010-06-19 Philip Herron <herron.philip@googlemail.com>
17560
a8ecfc9f 17561 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
5a2983ce 17562
fae76410
L
175632010-06-18 H.J. Lu <hongjiu.lu@intel.com>
17564
17565 * stor-layout.c (debug_rli): Remove unused local variables.
17566
d36d83e9
EB
175672010-06-18 Eric Botcazou <ebotcazou@adacore.com>
17568
17569 PR rtl-optimization/40900
17570 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
17571 original expression for later reuse.
17572 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
17573 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
17574
fd7de64c
AS
175752010-06-18 Anatoly Sokolov <aesok@post.ru>
17576
17577 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
17578 double_int_fits_in_uhwi_p): Implement as static inline.
17579 (double_int_xor): New inline function.
17580 (double_int_lrotate, double_int_rrotate, double_int_max,
17581 double_int_umax, double_int_smax, double_int_min, double_int_umin,
17582 double_int_smin): Declare.
17583 (lrotate_double, rrotate_double): Remove declaration.
17584 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
17585 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
17586 (double_int_lrotate, double_int_rrotate, double_int_max,
17587 double_int_umax, double_int_smax, double_int_min, double_int_umin,
17588 double_int_smin): New function.
17589 * fold-const.c (int_const_binop): Clean up, use double_int_*
17590 functions.
17591 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
17592 double_int_* and immed_double_int_const functions.
17593
bc87224e
NF
175942010-06-18 Nathan Froyd <froydnj@codesourcery.com>
17595
17596 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
17597 * function.c (types_used_by_cur_var_decl): Likewise.
a8ecfc9f 17598 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
bc87224e 17599
76d971cc
NF
176002010-06-18 Nathan Froyd <froydnj@codesourcery.com>
17601
17602 * tree.h (record_layout_info): Change type of pending_statics field
17603 to a VEC.
17604 * stor-layout.c (start_record_layout): Store NULL into
17605 pending_statics.
17606 (debug_rli): Call debug_vec_tree instead of debug_tree.
17607 (place_field): Likewise.
17608 (finish_record_layout): Likewise.
17609
9628d8f6
AM
176102010-06-18 Alan Modra <amodra@gmail.com>
17611
17612 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
17613
8ccfe1ab
JDA
176142010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17615
17616 PR target/43740
dedd9d05
UB
17617 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
17618 for SET source operand from SET destination operand.
8ccfe1ab 17619
60de8907
BS
176202010-06-17 Bernd Schmidt <bernds@codesourcery.com>
17621
17622 PR rtl-optimization/39871
17623 * reload1.c (init_eliminable_invariants): For flag_pic, disable
17624 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
17625 (function_invariant_p): Rule out a plus of frame or arg pointer with
17626 a SYMBOL_REF.
17627 * ira.c (find_reg_equiv_invariant_const): Likewise.
17628
d398d903
GN
176292010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
17630
17631 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
17632 print_operand_address and puts to output the operand for CONST.
17633
654bbfea
JJ
176342010-06-17 Jakub Jelinek <jakub@redhat.com>
17635
17636 PR debug/44572
17637 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
17638 hook.
17639
11d259f0
NF
176402010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17641
17642 * v850-protos.h (print_operand): Delete.
17643 (print_operand_address): Delete.
17644 * v850.h (PRINT_OPERAND): Delete.
17645 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17646 (PRINT_OPERAND_ADDRESS): Delete.
17647 * v850.c (print_operand_address): Rename to...
17648 (v850_print_operand_address): ...this. Make static. Call
17649 v850_print_operand.
17650 (print_operand): Rename to...
17651 (v850_print_operand): ...this. Make static. Call
17652 v850_print_operand_address.
17653 (v850_print_operand_punct_valid_p): New function.
17654 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17655 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17656
9e94b957
NF
176572010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17658
17659 * config/sh/sh-protos.h (print_operand): Delete.
17660 (print_operand_address): Delete.
17661 * config/sh/sh.h (PRINT_OPERAND): Delete.
17662 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17663 (PRINT_OPERAND_ADDRESS): Delete.
17664 * config/sh/sh.c (sh_print_operand_address): Make static.
17665 (sh_print_operand): Make static. Call sh_print_operand_address
17666 and sh_print_operand.
17667 (sh_print_operand_punct_valid_p): New function.
17668 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17669 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17670
349f851e
NF
176712010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17672
17673 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
17674 (mcore_print_operand_address): Delete.
17675 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
17676 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17677 (PRINT_OPERAND_ADDRESS): Delete.
17678 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
17679 (mcore_print_operand): Make static.
17680 (mcore_print_operand_punct_valid_p): New function.
17681 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
17682 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17683
efe554e4
NF
176842010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17685
17686 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
17687 (print_operand_address): Delete.
17688 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
17689 (PRINT_OPERAND_ADDRESS): Delete.
17690 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
17691 static.
17692 (m68hc11_print_operand): Make static.
17693 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17694
c73035c7
NF
176952010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17696
17697 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
17698 (m32r_print_operand_address): Delete.
17699 * config/m32r/m32r.h (m32r_punct_chars): Delete.
17700 (PRINT_OPERAND): Delete.
17701 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17702 (PRINT_OPERAND_ADDRESS): Delete.
17703 * config/m32r/m32r.c (m32r_punct_chars): Make static.
17704 (m32r_print_operand_address): Make static.
17705 (m32r_print_operand): Make static.
17706 (m32r_print_operand_punct_valid_p): New function.
17707 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17708 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17709
bf7c1408
NF
177102010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17711
17712 * config/iq2000/iq2000-protos.h (print_operand): Delete.
17713 (print_operand_address): Delete.
17714 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
17715 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17716 (PRINT_OPERAND_ADDRESS): Delete.
17717 (iq2000_print_operand_punct): Delete.
17718 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
17719 (iq2000_print_operand_address): Make static.
17720 (iq2000_print_operand): Make static.
17721 (iq2000_print_operand_punct_valid_p): New function.
17722 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17723 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17724
0fb30cb7
NF
177252010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17726
17727 * config/frv/frv-protos.h (frv_print_operand): Delete.
17728 (frv_print_operand_address): Delete.
17729 * config/frv/frv.h (PRINT_OPERAND): Delete.
17730 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17731 (PRINT_OPERAND_ADDRESS): Delete.
17732 * config/frv/frv.c (frv_print_operand_address): Make static.
17733 (frv_print_operand): Make static.
17734 (frv_print_operand_punct_valid_p): New function.
17735 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17736 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17737
bfdb7b70
NF
177382010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17739
17740 * tree.h (vec_member): Declare.
17741 * tree.c (vec_member): Define.
17742
3a620661
RG
177432010-06-17 Richard Guenther <rguenther@suse.de>
17744
17745 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
17746 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
17747
498c378f
RG
177482010-06-17 Richard Guenther <rguenther@suse.de>
17749
17750 * tree-inline.c (declare_return_variable): Remove bogus code.
17751
bd2e63a1
RG
177522010-06-17 Richard Guenther <rguenther@suse.de>
17753
17754 * gimplify.c (gimplify_bind_expr): Always promote complex
17755 and vector variables to registers if possible.
17756
7fa5296e
RG
177572010-06-17 Richard Guenther <rguenther@suse.de>
17758
17759 * expr.c (get_inner_reference): Use double_int for bit_offset
17760 calculation.
17761
6a78b724
DD
177622010-06-16 DJ Delorie <dj@redhat.com>
17763
17764 * common.opt (-fstrict-volatile-bitfields): new.
17765 * doc/invoke.texi: Document it.
17766 * fold-const.c (optimize_bit_field_compare): For volatile
17767 bitfields, use the field's type to determine the mode, not the
17768 field's size.
17769 * expr.c (expand_assignment): Likewise.
17770 (get_inner_reference): Likewise.
17771 (expand_expr_real_1): Likewise.
17772 * expmed.c (store_fixed_bit_field): Likewise.
17773 (extract_bit_field_1): Likewise.
17774 (extract_fixed_bit_field): Likewise.
17775
f1071b12
RG
177762010-06-16 Richard Guenther <rguenther@suse.de>
17777
dedd9d05 17778 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
f1071b12 17779
67ad2ae7
DR
177802010-06-16 Douglas B Rupp <rupp@gnat.com>
17781
17782 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
17783 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
17784 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
17785 * debug.c: Likewise.
17786 * sdbout.c: Likewise.
17787 * vmsdbgout.c: Likewise.
17788 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
17789 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
17790 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
17791 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
17792 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
17793 * dwarf2out.c (dw_fde_struct): New fields
17794 dw_fde_vms_{end,begin}_prologue.
17795 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
17796 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
17797 (dwarf2out_vms_end_prologue): New function.
17798 (dwarf2out_vms_begin_epilogue): New function.
17799 (dw_val_struct): New value dw_val_class_vms_delta.
17800 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
17801 begin_epilogue for VMS.
17802 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
17803 new static functions.
17804 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
dedd9d05 17805 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
67ad2ae7
DR
17806 static functions.
17807 (print_die): New case dw_val_class_vms_delta.
17808 (attr_checksum): Likewise.
17809 (same_dw_val_p: Likewise.
17810 (size_of_die): Likewise.
17811 (value_format): Likewise.
17812 (output_die): Likewise.
17813 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
17814 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
17815 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
17816 dwarf2out_cfi_begin_epilogue
17817 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
17818
ed5c4a10
NF
178192010-06-16 Nathan Froyd <froydnj@codesourcery.com>
17820
17821 * config/cris/cris-protos.h (cris_print_operand): Delete.
17822 (cris_print_operand_address): Delete.
17823 * config/cris/cris.h (PRINT_OPERAND): Delete.
17824 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17825 (PRINT_OPERAND_ADDRESS): Delete.
17826 * config/cris/cris.c (cris_print_operand_address): Make static.
17827 (cris_print_operand): Make static.
17828 (cris_print_operand_punct_valid_p): New function.
17829 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17830 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17831
616c557d
NF
178322010-06-16 Nathan Froyd <froydnj@codesourcery.com>
17833
17834 * config/arm/arm-protos.h (arm_print_operand): Delete.
17835 (arm_print_operand_address): Delete.
17836 * config/arm/arm.h (PRINT_OPERAND): Delete.
17837 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17838 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
17839 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
a8ecfc9f 17840 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
616c557d
NF
17841 (arm_print_operand): Make static.
17842 (arm_print_operand_punct_valid_p): New function.
17843 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17844 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17845
c249a7bc
NC
178462010-06-16 Nick Clifton <nickc@redhat.com>
17847
17848 * config/rx/constraints.md (NEGint4): New constraint.
17849 * config/rx/rx.md (attr cc): Add set_zsc.
17850 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
17851 initialised.
17852 (cmpsf): Likewise.
17853 (call_internal): Clobber the cc0 register.
17854 (call_value_internal): Likewise.
17855 (cstoresi4): Likewise.
17856 (movsieq): Likewise.
17857 (movsine): Likewise.
17858 (addsi3): Add alternative to handle small negative constants.
17859 (sunsi3): Likewise.
17860 (addsi3): Do not set the O bit in the cc0 register.
17861 (adddi3): Likewise.
17862 (subsi3): Likewise.
17863 (subdi3): Likewise.
17864 (andsi3): Reorder alternatives to prefer shorter forms.
17865 (mulsi3): Likewise.
17866 (iorsi3): Likewise.
17867 (negsi2): Note that the cc0 flags are set.
17868 (rotlsi3): Note that only the Z and S bits are set in cc0.
17869 (lshrsi3): Likewise.
17870 (ashlsi3): Likewise.
17871 (subsf3): Use %Q for the MEM operand.
17872 (fix_truncsfsi2): Likewise.
17873 (floatsisf2): Likewise.
17874 (bitset): Remove early clobber from destination.
17875 (bitset_in_memory): Likewise.
17876 (lrintsf2): Clobber the cc0 register.
dedd9d05 17877 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
c249a7bc
NC
17878 (rx_print_operand): Handle %N.
17879
f75aa51c
JH
178802010-06-16 Jan Hubicka <jh@suse.cz>
17881
17882 * df-core.c (df_compact_blocks): Free problem_temps vector.
17883
29be3835
MJ
178842010-06-16 Martin Jambor <mjambor@suse.cz>
17885
17886 PR tree-optimization/43905
17887 * tree-sra.c: Include tree-inline.h.
17888 (create_abstract_origin): Removed.
17889 (modify_function): Version the call graph node instead of creating
17890 abstract origins and dealing with same_body aliases.
17891 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
17892 function is versionable.
17893 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
17894
e7bfcf35
MK
178952010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
17896
17897 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
17898 (CHOOSE_DYNAMIC_LINKER): Update.
17899
f582a3aa
UB
179002010-06-15 Uros Bizjak <ubizjak@gmail.com>
17901
17902 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
17903 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
17904 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
17905 *prefetch_3dnow_rex.
17906
e4f7c483
AS
179072010-06-15 Anatoly Sokolov <aesok@post.ru>
17908
17909 * target.h (struct asm_out):Add declare_constant_name field.
17910 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17911 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
17912 * output.h (default_asm_declare_constant_name): Declare.
17913 (assemble_label): Update prototype.
17914 * varasm.c (assemble_constant_contents): Use
17915 targetm.asm_out.declare_constant_name target hook.
17916 (assemble_label): Add 'file' argument.
17917 (default_asm_declare_constant_name): New function.
17918 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
17919 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
17920 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
17921
17922 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
17923 * config/darwin.c (darwin_asm_declare_constant_name): New function.
17924 (machopic_output_indirection): Update assemble_label argument list.
17925 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
17926 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17927
6ab4e307
SP
179282010-06-15 Sebastian Pop <sebastian.pop@amd.com>
17929
17930 PR middle-end/44391
17931 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
17932 size_one_node for pointer types. Do not call gmp_cst_to_tree.
17933
7fc1dad6
RG
179342010-06-15 Richard Guenther <rguenther@suse.de>
17935
17936 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
17937
50416c61 179382010-06-15 Paul Brook <paul@codesourcery.com>
6ab4e307 17939
50416c61
PB
17940 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
17941 hard-float ABI.
17942
15bbc165
AO
179432010-06-15 Alexandre Oliva <aoliva@redhat.com>
17944
17945 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
17946 don't get a vector type for output.
17947
79943d19
JJ
179482010-06-15 Jakub Jelinek <jakub@redhat.com>
17949
17950 PR fortran/44536
17951 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
17952 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
17953 (LANG_HOOKS_DECLS): Add it.
17954 * gimplify.c (omp_notice_variable): Call
17955 lang_hooks.decls.omp_report_decl.
17956
eed5f58a
MJ
179572010-06-15 Martin Jambor <mjambor@suse.cz>
17958
17959 PR lto/44464
17960 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
17961 on the newly dead SSA name.
17962
070b27da
AM
179632010-06-15 Alan Modra <amodra@gmail.com>
17964
17965 * doc/invoke.texi: Add mcmodel to powerpc options.
17966 * configure.ac: Add HAVE_LD_LARGE_TOC test.
17967 * configure: Regenerate.
17968 * config.in: Regenerate.
17969 * config/rs6000/linux64.opt (mcmodel): New.
17970 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
9628d8f6 17971 (TARGET_CMODEL, SET_CMODEL): Define.
070b27da
AM
17972 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
17973 select CMODEL_MEDIUM default.
17974 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
17975 (TARGET_CMODEL): Define default.
17976 * config/rs6000/rs6000.c (cmodel): New variable.
17977 (rs6000_explicit_options): Add cmodel field.
17978 (rs6000_handle_option): Handle -mcmodel.
17979 (create_TOC_reference): Add largetoc_reg param. Generate high,
17980 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
17981 (rs6000_delegitimize_address): Recognise new toc reference rtl
17982 and minimal-toc rtl.
17983 (rs6000_legitimize_reload_address): Handle new toc references.
17984 (print_operand_address): Handle legitimate_constant_pool_address_p
17985 match before lo_sum.
17986 (rs6000_eliminate_indexed_memrefs): Tidy.
17987 (rs6000_emit_move): Tweak threshold for inlining constants.
17988 Keep rs6000_emit_allocate_stack large stack frame offsets
17989 loaded into r0 inline.
17990 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
17991 (tocrel_base, tocrel_offset): New variables.
17992 (toc_relative_expr_p): Set them here.
f582a3aa 17993 (print_operand_address): Skip over any offset on constant pool address.
070b27da
AM
17994 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
17995 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
17996 (offsettable_ok_by_alignment): New function.
17997 (rs6000_emit_move): Address suitably aligned local symbol_refs
17998 relative to the toc pointer for -mcmodel=medium.
17999 (legitimate_constant_pool_address_p): Make param const_rtx. Add
18000 strict param. Allow lo_sum version of addressing. Verify reg
18001 used for -mminimal-toc and -mcmodel != small. Update all callers.
18002 * config/rs6000/constraints.md: Update for above change.
18003 * config/rs6000/predicates.md: Likewise.
18004 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
18005 code.
18006 (tls_gd): Split for -mcmodel=medium/large.
18007 (tls_gd_high, tls_gd_low): New.
18008 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
18009 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
18010 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
18011 (largetoc_high, largetoc_low): New.
18012 (cmptf_internal2): Add clobber.
18013 * config/rs6000/rs6000-protos.h: Update.
18014
d5058523
CF
180152010-06-14 Changpeng Fang <changpeng.fang@amd.com>
18016
18017 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
18018 true if no prefetch is going to be generated for a given group.
18019 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
18020 estimate the prefetch_count.
18021 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
18022 prefetch count by considering the unroll_factor and prefetch_mod
18023 for is_loop_prefetching_profitable.
18024
33d67485
AS
180252010-06-14 Andreas Schwab <schwab@linux-m68k.org>
18026
18027 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
18028 anything if the argument is not a MEM.
18029
22963fee
AO
180302010-06-14 Alexandre Oliva <aoliva@redhat.com>
18031
18032 PR debug/43650
18033 PR debug/44181
18034 PR debug/44247
18035 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
18036 debug stmts.
18037 (canonicalize_loop_ivs): Likewise.
18038
c11b0b3b
AO
180392010-06-14 Alexandre Oliva <aoliva@redhat.com>
18040
18041 PR debug/43656
18042 * haifa-sched.c (setup_insn_reg_pressure_info,
18043 update_register_pressure): Reject debug insns.
18044 (ready_sort): Don't setup reg pressure for debug insns.
18045 (schedule_insn): Don't update reg pressure for debug insns.
18046
2465dcc2
RG
180472010-06-14 Richard Guenther <rguenther@suse.de>
18048
18049 * lto-streamer.c (cached_bp): Remove.
18050 (bitpack_delete): Likewise.
18051 (bitpack_create): Likewise.
18052 (bp_get_next_word): Likewise.
18053 (bp_pack_value, bp_unpack_value): Move ...
18054 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
18055 Re-implement.
18056 (struct bitpack_d): Likewise.
18057 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
18058 New inline functions.
18059 * lto-streamer-out.c (lto_output_bitpack): Remove.
f582a3aa 18060 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
2465dcc2
RG
18061 (pack_value_fields): Adjust.
18062 (lto_write_tree): Likewise.
18063 (output_gimple_stmt): Likewise.
18064 (output_function): Likewise.
18065 * lto-streamer-in.c (input_gimple_stmt): Adjust.
18066 (input_function): Likewise.
f582a3aa 18067 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
2465dcc2
RG
18068 (lto_input_bitpack): Remove.
18069 (lto_materialize_tree): Adjust.
18070 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
18071 * lto-cgraph.c (lto_output_edge): Adjust.
18072 (lto_output_node): Likewise.
18073 (lto_output_varpool_node): Likewise.
18074 (lto_output_ref): Likewise.
18075 (input_node): Likewise.
18076 (input_varpool_node): Likewise.
18077 (input_ref): Likewise.
18078 (input_edge): Likewise.
18079 (output_node_opt_summary): Likewise.
18080 (input_node_opt_summary): Likewise.
18081 * ipa-pure-const.c (pure_const_write_summary): Likewise.
18082 (pure_const_read_summary): Likewise.
18083 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
18084 (ipa_read_indirect_edge_info): Likewise.
18085 (ipa_write_node_info): Likewise.
18086 (ipa_read_node_info): Likewise.
18087
808081b4
L
180882010-06-14 H.J. Lu <hongjiu.lu@intel.com>
18089
18090 PR target/44534
f582a3aa 18091 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
808081b4
L
18092 (vec_extract_lo_v16hi): Likewise.
18093 (vec_extract_lo_v32qi): Likewise.
18094
5bca794b
JJ
180952010-06-14 Jakub Jelinek <jakub@redhat.com>
18096
aa493694
JJ
18097 PR bootstrap/44426
18098 * tree.h (build_call_expr): Don't define as vararg macro, instead
18099 add a prototype.
18100 * builtins.c (build_call_nofold): Remove.
18101 (expand_builtin_int_roundingfn, expand_builtin_pow,
18102 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
18103 expand_builtin_memset_args, expand_builtin_strcmp,
18104 expand_builtin_strncmp, expand_builtin_memory_chk): Use
18105 build_call_nofold_loc instead of build_call_nofold.
18106 (build_call_expr): New function.
18107
8ab7d796 18108 PR tree-optimization/44508
f582a3aa 18109 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
8ab7d796
JJ
18110 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
18111 don't eliminate trivially dead stmts.
18112 * tree-vrp.c (vrp_finalize): Pass false as last argument
18113 to substitute_and_fold.
18114 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
18115 to substitute_and_fold.
18116 * tree-ssa-ccp.c (ccp_finalize): Likewise.
18117
5bca794b
JJ
18118 PR bootstrap/44509
18119 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
5bca794b 18120
c1e822d5
IR
181212010-06-14 Ira Rosen <irar@il.ibm.com>
18122
6ab4e307 18123 PR tree-optimization/44507
c1e822d5
IR
18124 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
18125 to build initial vector for BIT_AND_EXPR.
18126 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
18127
ce71b410
JJ
181282010-06-14 Jakub Jelinek <jakub@redhat.com>
18129
18130 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
18131 adjust z10prop set_attr.
18132
7a40b8b1
JH
181332010-06-13 Jan Hubicka <jh@suse.cz>
18134
18135 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
18136 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
18137 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
223c6c5d
EB
18138 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
18139 datastructure checks into checking asserts.
7a40b8b1
JH
18140 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
18141 * tree-ssa-sccvn.c (VN_INFO): Likewise.
18142 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
18143 df_ref_create_structure): Likewise.
18144 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
18145 pool_free): Use gcc_checking_assert.
18146 * alias.c (get_alias_set): Likewise.
18147 * var-tracking.c (variable_htab_free, shared_hash_copy,
18148 canonicalize_values_mark, variable_merge_over_cur): Likewise.
18149 * lto-streamer.c (bp_unpack_value): Likewise.
18150
4a2ac96f
RG
181512010-06-13 Richard Guenther <rguenther@suse.de>
18152
18153 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
18154 Do not stream but initialize TYPE_CANONICAL to NULL.
18155 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
18156 * gimple.c (gimple_types_compatible_p): Disregard
18157 TYPE_STRUCTURAL_EQUALITY_P.
18158 (gimple_register_type): Use TYPE_CANONICAL as cache.
18159 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
18160 before registering common types.
18161 * config/i386/i386.c (ix86_function_arg_boundary): Do not
18162 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
18163 * tree.h (TYPE_CANONICAL): Clarify documentation.
18164
ba90d838
AS
181652010-06-13 Anatoly Sokolov <aesok@post.ru>
18166
18167 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18168 LIBCALL_VALUE): Remove macros.
18169 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
18170 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18171 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18172 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
18173 (ia64_function_value): Make static. Handle receiving the function
18174 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
18175
9fcb01de
JH
181762010-06-12 Jan Hubicka <jh@suse.cz>
18177
18178 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
18179 at correct place.
18180
f63a6726
BS
181812010-06-12 Bernd Schmidt <bernds@codesourcery.com>
18182
18183 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
18184
e285df08
JH
181852010-06-12 Jan Hubicka <jh@suse.cz>
18186
18187 * df-core.c (df_clear_bb_info): New function.
18188 (df_set_blocks): bb_info is always allocated.
18189 (df_get_bb_info): Use block_info_elt_size.
18190 (df_set_bb_info): Likewise.
18191 (df_compact_blocks): Update for new block_info.
18192 (grow_bb_info): New function.
18193 * df-problems.c (df_grow_bb_info): Move to df-core.c
18194 (df_rd_set_bb_info): Remove.
18195 (df_rd_free_bb_info): Do not free block pool.
18196 (df_rd_alloc): Do not create pool, use check for
18197 obstack presence instead of NULL pointer for new blocks.
18198 (df_rd_free): DO not free alloc pool; clear block_info.
18199 (problem_RD): Add size of block info structure.
18200 (df_lr_set_bb_info): Remove.
18201 (df_lr_free_bb_info): Do not free block pool.
18202 (df_lr_alloc): Do not create pool, use check for
18203 obstack presence instead of NULL pointer for new blocks.
18204 (df_lr_free): DO not free alloc pool; clear block_info.
18205 (problem_LR): Add size of block info structure.
18206 (df_live_set_bb_info): Remove.
18207 (df_live_free_bb_info): Do not free block pool.
18208 (df_live_alloc): Do not create pool, use check for
18209 obstack presence instead of NULL pointer for new blocks.
18210 (df_live_free): DO not free alloc pool; clear block_info.
18211 (problem_LIVE): Add size of block info structure.
18212 (problem_CHAIN): Add size of block info structure.
18213 (df_byte_lr_set_bb_info): Remove.
18214 (df_byte_lr_free_bb_info): Do not free block pool.
18215 (df_byte_lr_alloc): Do not create pool, use check for
18216 obstack presence instead of NULL pointer for new blocks.
18217 (df_byte_lr_free): DO not free alloc pool; clear block_info.
18218 (problem_BYTE_LR): Add size of block info structure.
18219 (problem_NOTE): Add size of block info structure.
18220 (df_byte_MD_set_bb_info): Remove.
18221 (df_byte_MD_free_bb_info): Do not free block pool.
18222 (df_byte_MD_alloc): Do not create pool, use check for
18223 obstack presence instead of NULL pointer for new blocks.
18224 (df_byte_MD_free): DO not free alloc pool; clear block_info.
18225 (problem_BD): Add size of block info structure.
18226 * df-scan.c (df_scan_free_internal): Free block pool.
18227 (df_scan_set_bb_info): Remove.
18228 (df_scan_free_bb_info): Check for artificial_defs instead
18229 of bb_info being non-NULL.
18230 (df_scan_alloc): DO not create df_scan_block pool.
18231 (problem_SCAN): Set size of block info.
18232 (df_bb_refs_record): Do not allocate bb_info.
18233 * df.h (df_problem): Add block_info_elt_size.
18234 (struct dataflow): Change block_info to void *.
18235 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
18236 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
18237 in-line structures.
18238
02d635a2
JH
182392010-06-12 Jan Hubicka <jh@suse.cz>
18240
18241 PR tree-optimize/44485
223c6c5d
EB
18242 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
18243 containing use of return value of noreturn function.
02d635a2 18244
153a3027
AS
182452010-06-12 Anatoly Sokolov <aesok@post.ru>
18246
18247 * targhooks.c (default_function_value): Don't use
18248 FUNCTION_OUTGOING_VALUE.
18249 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
18250 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
18251
48b09a92
KH
182522010-06-12 Kazu Hirata <kazu@codesourcery.com>
18253
f582a3aa
UB
18254 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
18255 Add crtfastmath.o to extra_parts.
48b09a92
KH
18256 * config/mips/crtfastmath.c: New.
18257 * config/mips/linux.h (ENDFILE_SPEC): New.
18258
b53cd1c5
SP
182592010-06-12 Sebastian Pop <sebastian.pop@amd.com>
18260
18261 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
18262 old_type in parameter.
18263 (gcc_type_for_value): Update call to gcc_type_for_interval.
18264 (compute_type_for_level_1): Renamed compute_type_for_level.
18265 Update call to gcc_type_for_interval.
18266
fcfbd84e
JM
182672010-06-11 Joseph Myers <joseph@codesourcery.com>
18268
18269 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
f582a3aa 18270 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
fcfbd84e 18271
5d4b393f
JM
182722010-06-11 Joseph Myers <joseph@codesourcery.com>
18273
18274 * opts-common.c: Include options.h.
18275 (integral_argument): Move from opts.c.
18276 (decode_cmdline_option): New. Based on read_cmdline_option.
18277 * opts.c (integral_argument): Move to opts-common.c.
18278 (read_cmdline_option): Move most contents to
18279 decode_cmdline_option. Use %qs in diagnostics.
18280 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
18281 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
18282 decode_cmdline_option): New.
18283
b79a08f6
UB
182842010-06-11 Uros Bizjak <ubizjak@gmail.com>
18285
18286 PR target/44481
18287 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
f582a3aa 18288 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
b79a08f6
UB
18289 (partiysi2_cmp): Ditto.
18290 (*partiyhi2_cmp): Ditto.
18291 (*parityqi2_cmp): Remove.
18292
d5568f03
JH
182932010-06-11 Jan Hubicka <jh@suse.cz>
18294
b79a08f6
UB
18295 * bitmap.h (bmp_iter_next_bit): New.
18296 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
d5568f03 18297
5914a70f 182982010-06-11 Sandra Loosemore <sandra@codesourcery.com>
f582a3aa 18299 Eric Botcazou <ebotcazou@adacore.com>
5914a70f
SL
18300
18301 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
18302 computed cost.
18303
ed9955f9
UB
183042010-06-11 Uros Bizjak <ubizjak@gmail.com>
18305
18306 * config/i386/i386.md (unspec): New define_c_enum.
18307 (unspecv): Ditto.
18308
8e680db5
JJ
183092010-06-10 Jakub Jelinek <jakub@redhat.com>
18310
8e680db5
JJ
18311 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
18312
7b14477e
SP
183132010-06-11 Sebastian Pop <sebastian.pop@amd.com>
18314
18315 PR middle-end/44483
18316 * tree-if-conv.c (bb_predicate_s): New struct.
18317 (bb_predicate_p): New.
18318 (bb_has_predicate): New.
18319 (bb_predicate): New.
18320 (set_bb_predicate): New.
18321 (bb_predicate_gimplified_stmts): New.
18322 (set_bb_predicate_gimplified_stmts): New.
18323 (add_bb_predicate_gimplified_stmts): New.
18324 (init_bb_predicate): New.
18325 (free_bb_predicate): New.
18326 (is_predicated): Use bb_predicate.
18327 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
18328 (predicate_bbs): Same. Gimplify the condition of the basic blocks
18329 before processing their successors.
18330 (clean_predicate_lists): Removed.
18331 (find_phi_replacement_condition): Use bb_predicate.
18332 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
18333 computations.
18334 (insert_gimplified_predicates): New.
18335 (combine_blocks): Call insert_gimplified_predicates.
18336 (tree_if_conversion): Call free_bb_predicate instead of
18337 clean_predicate_lists.
18338
f6e47b26 183392010-10-11 Paul Brook <paul@codesourcery.com>
ed9955f9 18340
f6e47b26
PB
18341 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
18342 * config/arm/arm.c (all_architectures): Change v7e-m default to
18343 cortexm4.
18344 * config/arm/arm-cores.def: Add cortex-m4.
18345 * config/arm/arm-tune.md: Regenerate.
18346
0a42aa4e
JH
183472010-06-11 Jan Hubicka <jh@suse.cz>
18348
18349 * ipa-pure-const.c (special_builtlin_state): New function.
18350 (check_call): Use it instead of special casign BUILT_IN_RETURN.
18351 (propagate_pure_const): Use it.
18352
d725a1a5
JH
183532010-06-11 Jan Hubicka <jh@suse.cz>
18354
18355 * df-problems.c (df_live_scratch): Convert to bitmap_head.
18356 (df_live_alloc): Initialize df_live_scratch when initializing
18357 problem_data.
18358 (df_live_transfer_function): Update uses of df_live_scratch.
18359 (df_live_free): Free problem_data; clear df_live_scratch before
18360 releasing the obstack.
18361 (df_md_free): Free problem data.
18362
7ea6b6cf
JH
183632010-06-11 Jan Hubicka <jh@suse.cz>
18364
18365 * doc/invoke.texi (Wsuggest-attribute): Document.
18366 (Wmissing-noreturn): Remove.
18367 * ipa-pure-const.c (warn_function_noreturn): New function.
18368 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
18369 warn_missing_noreturn.
18370 * common.opt (Wsuggest-attribute=noreturn): New.
18371 * tree-flow.h (warn_function_noreturn): Declare.
18372 * tree-cfg.c (execute_warn_function_noreturn): Use
18373 warn_function_noreturn.
18374 (gate_warn_function_noreturn): New.
18375 (pass_warn_function_noreturn): Update.
18376
2ee3cb35
MLI
183772010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
18378
18379 * c-typeck.c (handle_warn_cast_qual): Add loc
18380 parameter. Improve warning message.
18381 (build_c_cast): Pass location to handle_warn_cast_qual.
18382
3d25c396
UB
183832010-06-11 Uros Bizjak <ubizjak@gmail.com>
18384
18385 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
18386 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
18387 insn mnemonic.
18388 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
18389
b66a8c5d
DS
183902010-06-10 Dodji Seketeli <dodji@redhat.com>
18391
18392 Fix bootstap on mips
18393 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
18394 be naming typedefs.
18395
10d291f6
KT
183962010-06-11 Kai Tietz <kai.tietz@onevision.com>
18397
18398 * system.h (helper_const_non_const_cast): New inline for
18399 gcc version <= 4.0.
18400 (CONST_CAST2): For gcc version <= 4.0 use
18401 new helper to do const/non-const casting.
18402
0fe60a1b
RS
184032010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18404
18405 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
18406 * Makefile.in (OBJS-common): Include insn-enums.o.
18407 (insn-enums.o): New rule.
18408 (simple_generated_c): Add insn-enums.c.
18409 (build/genenums.o): New rule.
18410 (genprogmd): Add "enums".
18411 * genconstants.c (print_enum_type): Declare a C string array
18412 for each enum.
18413 * genenums.c: New file.
18414 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
18415 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
18416 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
18417
8f4fe86c
RS
184182010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18419
18420 * doc/md.texi (define_enum_attr): Document.
18421 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
18422 * read-md.h (lookup_enum_type): Declare.
18423 * read-md.c (lookup_enum_type): New function.
18424 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
18425 * genattrtab.c (attr_desc): Add an enum_name field.
18426 (evaluate_eq_attr): Take the associated attribute as argument.
18427 Get the enum prefix from the enum_name field, if defined.
18428 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
18429 (simplify_test_exp): Pass attr to evaluate_eq_attr.
18430 (add_attr_value): New function, split out from...
18431 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
18432 (write_test_expr): Pass attr to evaluate_eq_attr.
18433 (write_attr_get): Use the enum_name as the enum tag, if defined.
18434 (write_attr_valueq): Use the enum_name as a prefix, if defined.
18435 (find_attr): Initialize enum_name.
18436 (main): Handle DEFINE_ENUM_ATTR.
18437 * gensupport.c (process_rtx): Likewise.
18438 * config/mips/mips.h (mips_tune_attr): Delete.
18439 * config/mips/mips.md (cpu): Use define_attr_enum.
18440
24609606
RS
184412010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18442
18443 * doc/md.texi (define_c_enum, define_enum): Document.
18444 * read-md.h (md_constant): Add a parent_enum field.
18445 (enum_value, enum_type): New structures.
18446 (upcase_string, traverse_enum_types): Declare.
18447 * read-md.c (enum_types): New variable.
18448 (upcase_string, add_constant): New functions.
18449 (handle_constants): Don't create the hash table here.
18450 Use add_constant.
18451 (traverse_md_constants): Don't check for a null md_constants.
18452 (decimal_string, handle_enum, traverse_enum_types): New functions.
18453 (read_md_files): Initialize md_constants and md_enums.
18454 * genconstants.c (print_md_constant): Ignore info argument.
18455 Only print constants that belong to no enum.
18456 (print_enum_type): New function.
18457 (main): Don't pass stdout to print_md_constant. Call print_enum_type
18458 for each defined enum type.
18459 * config/mips/mips.md (processor): New define_enum.
18460 (unspec): New define_c_enum.
18461 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
18462 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
18463 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
18464 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
18465 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
18466 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
18467 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
18468 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
18469 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
18470 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
18471 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
18472 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
18473 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
18474 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
18475 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
18476 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
18477 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
18478 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
18479 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
18480 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
18481 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
18482 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
18483 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18484 (UNSPEC_RDDSP): Move to mips-dsp.md.
18485 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
18486 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
18487 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
18488 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
18489 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
18490 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
18491 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
18492 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
18493 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
18494 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
18495 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
18496 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
18497 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
18498 Moved to mips-dspr2.md.
18499 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
18500 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
18501 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
223c6c5d 18502 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24609606
RS
18503 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
18504 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
18505 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18506 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18507 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18508 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
223c6c5d
EB
18509 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18510 UNSPEC_LOONGSON_PSADBH)
24609606
RS
18511 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18512 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18513 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
18514 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18515 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18516 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
223c6c5d 18517 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24609606
RS
18518 (cpu): Update comment.
18519 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
18520 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
18521 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
18522 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
223c6c5d
EB
18523 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
18524 UNSPEC_LOONGSON_PCMPEQ)
18525 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
18526 UNSPEC_LOONGSON_PINSR_0)
24609606
RS
18527 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18528 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18529 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18530 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
223c6c5d
EB
18531 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18532 UNSPEC_LOONGSON_PSADBH)
24609606
RS
18533 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18534 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18535 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
18536 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18537 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18538 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18539 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
18540 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
18541 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
18542 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
18543 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
18544 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
18545 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
18546 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
18547 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
18548 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
18549 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
18550 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
18551 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
18552 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
18553 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
18554 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
18555 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
18556 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
18557 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
18558 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
18559 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18560 (UNSPEC_RDDSP): Moved from mips.md.
18561 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
18562 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
18563 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
18564 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
18565 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
18566 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
18567 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
18568 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
18569 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
18570 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
18571 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
18572 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
18573 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
18574 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
18575 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
18576 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
18577 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
18578 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
18579 (UNSPEC_SCC): Moved from mips.md.
18580 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
18581 "processor_type" to "processor".
18582 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
18583 * config/mips/mips.h (processor_type): Delete.
18584 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
18585 "processor_type" to "processor".
18586
c513ce77
RS
185872010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18588
18589 * configure.ac (tm_include_list): Add insn-constants.h.
18590 * configure: Regenerate.
18591 * Makefile.in (GTM_H): Move insn-constants.h here from...
18592 (TM_H): ...here.
18593 * mkconfig.sh: Remove special handling for insn-constants.h.
18594
9b68b6ea
RS
185952010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18596
18597 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
18598 (BUILD_MD): ...this new variable.
18599 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
18600 that include the old contents of simple_generated_h and
18601 simple_generated_c.
18602 (simple_generated_h, simple_generated_c): Include them. Add
18603 insn-constants.h.
18604 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
18605 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
18606 Remove these dependencies from the main rule and include
18607 insn-conditions.md in the command line only if it appears
18608 in the dependency list.
18609 (insn-constants.h, s-constants): Delete.
18610 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
18611 or gensupport.h.
18612 (build/genmddeps.o): Likewise.
18613 (genprogrtl): New variable that contains everything from genprogmd
18614 except mddeps and constants.
18615 (genprogmd): Redefine in terms of genprogrtl. Make these programs
18616 depend on $(BUILD_MD)
18617 (genprog): New variable. Make these programs depend on
18618 $(BUILD_ERRORS).
18619 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
18620 (main): Use read_md_files instead of init_rtx_reader_args.
18621 * genconstants.c: As for genmddeps.c.
18622 * read-md.h (read_skip_construct): Declare.
18623 * read-md.c (read_skip_construct): New function.
18624 (handle_file): Allow a null handle_directive, skipping the
18625 construct if so.
18626 (parse_include): Update the comment accordingly.
18627
600ab3fc
RS
186282010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18629
18630 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
18631 * genmddeps.c: Include read-md.h.
18632 (main): Call init_rtx_reader_args instead of init_md_reader_args.
18633 * genattr.c (main): Likewise.
18634 * genattrtab.c (main): Likewise.
18635 * genautomata.c (main): Likewise.
18636 * gencodes.c (main): Likewise.
18637 * genconditions.c (main): Likewise.
18638 * genconfig.c (main): Likewise.
18639 * genconstants.c (main): Likewise.
18640 * genemit.c (main): Likewise.
18641 * genextract.c (main): Likewise.
18642 * genflags.c (main): Likewise.
18643 * genopinit.c (main): Likewise.
18644 * genoutput.c (main): Likewise.
18645 * genpeep.c (main): Likewise.
18646 * genrecog.c (main): Likewise.
18647 * genpreds.c (main): Likewise.
18648 * gensupport.h (in_fname): Move to read-md.h.
18649 (init_md_reader_args_cb): Rename to...
18650 (init_rtx_reader_args_cb): ...this and return a bool.
18651 (init_md_reader_args): Rename to...
18652 (init_rtx_reader_args): ...this and return a bool.
18653 (include_callback): Move to read-md.h.
18654 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
18655 (file_name_list, first_dir_md_include): Move to read-md.c
18656 (first_bracket_include): Delete unused variable.
18657 (last_dir_md_include): Move to read-md.c.
18658 (process_include): Delete, moving code to read-md.c:handle_include.
18659 (process_rtx): Don't handle INCLUDE.
18660 (save_string): Delete.
18661 (rtx_handle_directive): New function.
18662 (init_md_reader_args_cb): Rename to...
18663 (init_rtx_reader_args_cb): ...this and return a boolean success value.
18664 Use read_md_args.
18665 (init_md_reader_args): Rename to...
18666 (init_rtx_reader_args): ...this and return a boolean success value.
18667 * rtl.def (INCLUDE): Delete.
18668 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
18669 argument.
18670 * read-rtl.c (read_conditions): Don't gobble ')' here.
18671 (read_mapping): Likewise.
18672 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
18673 Handle top-level non-rtx constructs here rather than in read_rtx_1.
18674 Store the whole queue in *X. Remove call to init_md_reader.
18675 (read_rtx_1): Rename to...
18676 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
18677 Don't handle top-level non-rtx constructs here. Don't handle (nil)
18678 here.
18679 (read_nested_rtx): New function. Handle (nil) here rather than
18680 in read_rtx_code.
18681 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
18682 gobble ')' here.
18683 * read-md.h (directive_handler_t): New type.
18684 (in_fname, include_callback): Moved from read-md.h.
18685 (read_constants, init_md_reader): Delete.
18686 (read_md_files): Declare.
18687 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
18688 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
18689 from gensupport.c.
18690 (read_constants): Rename to...
18691 (handle_constants): ...this. Don't gobble ')' here.
18692 (handle_include, handle_file, handle_toplevel_file)
18693 (parse_include): New functions, mostly taken from gensupport.c.
18694 (init_md_reader): Subsume into...
18695 (read_md_files): ...this new function.
18696
7f7c467f
RS
186972010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18698
18699 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
18700 (unread_char): Decrement read_md_lineno after putting back '\n'.
18701 * read-md.c (fatal_with_file_and_line): Push back any characters
18702 that we decide not to add to the context.
18703 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
18704 fatal_expected_char in cases where '/' ends a line (for example).
18705 (read_name): Don't increment read_md_lineno here.
18706 (read_escape): Likewise.
18707 (read_quoted_string): Likewise.
18708 (read_braced_string): Likewise.
18709
9f418533
RS
187102010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18711
18712 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
18713 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
18714 * genconstants.c: Include read-md.h.
18715 * read-rtl.c (md_constants): Move to read-md.c.
18716 (md_name): Move to read-md.h.
18717 (initialize_iterators): Use leading_string_hash instead of def_hash
18718 and leading_string_eq_p instead of def_name_eq_p.
18719 (read_name): Move to read-md.c.
18720 (def_hash, def_name_eq_p): Delete.
18721 (read_constants, traverse_md_constants): Move to read-md.c.
18722 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
18723 * read-md.h: Include hashtab.h.
18724 (md_name): Moved from read-rtl.c.
18725 (md_constant): Moved from read-md.h.
18726 (leading_string_hash, leading_string_eq_p, read_name)
18727 (read_constants, traverse_md_constants): Declare.
18728 * read-md.c (md_constants): Moved from read-rtl.c.
18729 (leading_string_hash, leading_string_eq_p): New functions.
18730 (read_name, read_constants, traverse_md_constants): Moved from
18731 read-rtl.c.
18732
82f8e3fd
RS
187332010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18734
18735 * read-rtl.c (md_name): New structure.
18736 (read_name): Take an md_name instead of a buffer pointer.
18737 Use the "string" field instead of strcpy when expanding constants.
18738 (read_constants): Remove the tmp_char argument. Update the calls
18739 to read_name, using two local name buffers instead of the tmp_char
18740 argument. Merge the constant-creation code.
18741 (read_conditions): Remove the tmp_char argument. Update the calls
18742 to read_name, using a local name buffer instead of the tmp_char
18743 argument.
18744 (read_mapping): Replace tmp_char variable with a local name buffer.
18745 Update the calls to read_name.
18746 (read_rtx_1): Likewise. Update the calls to read_constants and
18747 read_conditions.
18748
bb933490
RS
187492010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18750
18751 * Makefile.in (build/read-md.o): Depend on errors.h.
18752 * read-md.h (error_with_line): Declare.
18753 * read-md.c: Include errors.h.
18754 (message_with_line_1): New function, extracted from...
18755 (message_with_line): ...here.
18756 (error_with_line): New function.
18757 * genattrtab.c: If a call to message_with_line is followed by
18758 "have_error = 1;", replace both statements with a call to
18759 error_with_line.
18760 * genoutput.c: Likewise.
18761 * genpreds.c: Likewise.
18762 * genrecog.c: If a call to message_with_line is followed by
18763 "error_count++;", replace both statements with a call to
18764 error_with_line.
18765 (errorcount): Delete.
18766 (main): Don't check it.
18767 * gensupport.c: If a call to message_with_line is followed by
18768 "errors = 1;", replace both statements with a call to error_with_line.
18769 (errors): Delete.
18770 (process_define_cond_exec): Check have_error instead of errors.
18771 (init_md_reader_args_cb): Likewise. Don't set errors.
18772
c5e88b39
RS
187732010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18774
18775 * read-md.h (read_md_file): Declare.
18776 (read_char, unread_char): New functions.
18777 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18778 (read_quoted_string, read_string): Remove FILE * argument.
18779 * read-md.c (read_md_file): New variable.
18780 (read_md_filename, read_md_lineno): Update comments and remove
18781 unnecessary initialization.
18782 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18783 (read_escape, read_quoted_string, read_braced_string, read_string):
18784 Remove FILE * argument. Update calls accordingly, using read_char
18785 and unread_char instead of getc and ungetc.
18786 * rtl.h (read_rtx): Remove FILE * argument.
18787 * read-rtl.c (iterator_group): Remove FILE * argument from
18788 "find_builtin".
18789 (iterator_traverse_data): Remove "infile" field.
18790 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
18791 (add_mapping, read_name, read_constants, read_conditions)
18792 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
18793 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
18794 Remove file arguments from all calls, using read_char and unread_char
18795 instead of getc and ungetc.
18796 * gensupport.c (process_include): Preserve read_md_file around
18797 the include. Set read_md_file to the handle of the included file.
18798 Update call to read_rtx.
18799 (init_md_reader_args_cb): Set read_md_file to the handle of the file
18800 and remove local FILE *. Update calls to read_rtx.
18801
d2a3ce4e
RS
188022010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18803
18804 * read-md.h (read_rtx_lineno): Rename to...
18805 (read_md_lineno): ...this.
18806 (read_rtx_filename): Rename to...
18807 (read_md_filename): ...this.
18808 (copy_rtx_ptr_loc): Rename to...
18809 (copy_md_ptr_loc): ...this.
18810 (print_rtx_ptr_loc): Rename to...
18811 (print_md_ptr_loc): ...this.
18812 * read-md.c: Likewise. Update references after renaming.
18813 (string_obstack): Replace RTL with MD in comment.
18814 (set_rtx_ptr_loc): Rename to...
18815 (set_md_ptr_loc): ...this.
18816 (get_rtx_ptr_loc): Rename to...
18817 (get_md_ptr_loc): ...this.
18818 * genconditions.c: Update references after renaming.
18819 * genemit.c: Likewise.
18820 * genoutput.c: Likewise.
18821 * genpreds.c: Likewise.
18822 * gensupport.c: Likewise.
18823 * read-rtl.c: Likewise.
18824
10692477
RS
188252010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18826
18827 * Makefile.in (READ_MD_H): New variable.
18828 (BUILD_RTL): Add build/read-md.o.
18829 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
18830 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
18831 (build/genattrtab.o, build/genconditions.o build/genemit.o)
18832 (build/genextract.o, build/genflags.o, build/genoutput.o)
18833 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
18834 (build/read-md.o): New rule.
18835 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
18836 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
18837 * coretypes.h: ...here.
18838 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
18839 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
18840 * genattr.c: Include read-md.h.
18841 * genattrtab.c: Likewise.
18842 * genconditions.c: Likewise.
18843 * genemit.c: Likewise.
18844 * genextract.c: Likewise.
18845 * genflags.c: Likewise.
18846 * genoutput.c: Likewise.
18847 * genpreds.c: Likewise.
18848 * genrecog.c: Likewise.
18849 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
18850 (join_c_conditions, print_c_condition, read_rtx_filename)
18851 (read_rtx_lineno): Move to read-md.h.
18852 * read-rtl.c: Include read-md.h.
18853 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
18854 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
18855 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
18856 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
18857 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
18858 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
18859 (read_braced_string, read_string): Move to read-md.c.
18860 (read_rtx): Move some initialization to init_md_reader and call
18861 init_md_reader here.
18862 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
18863 Move to read-md.h.
18864 * gensupport.c: Include read-md.h.
3d25c396 18865 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
10692477
RS
18866 * read-md.h, read-md.c: New files.
18867
feab9982
AS
188682010-06-10 Anatoly Sokolov <aesok@post.ru>
18869
18870 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18871 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18872 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
18873 * config/moxie/moxie.c (moxie_function_value): Make static.
18874 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
18875 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18876
567a4beb
MJ
188772010-06-10 Martin Jambor <mjambor@suse.cz>
18878
18879 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
18880 * dbgcnt.def (tree_sra): New counter.
18881 * tree-sra.c: Include dbgcnt.h.
18882 (gate_intra_sra): Check tree_sra debug counter.
18883
591d4f4a
MJ
188842010-06-10 Martin Jambor <mjambor@suse.cz>
18885
18886 PR tree-optimization/44258
18887 * tree-sra.c (build_access_subtree): Return false iff there is a
18888 partial overlap.
18889 (build_access_trees): Likewise.
18890 (analyze_all_variable_accesses): Disqualify candidates if
18891 build_access_trees returns true for them.
18892
b933b33a
AO
188932010-06-10 Alexandre Oliva <aoliva@redhat.com>
18894
18895 PR debug/41371
18896 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
18897 tail-recurse into canonical node. Fast-forward over
18898 non-canonical VALUEs.
18899
ff534e89
L
189002010-06-10 H.J. Lu <hongjiu.lu@intel.com>
18901
18902 PR boostrap/44470
18903 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
18904 (*addsi_1_zext) <TYPE_LEA>: Likewise.
18905 (add lea splitter): Likewise.
18906 (add_zext lea splitter): Likewise.
18907
1cb42611
JM
189082010-06-10 Joseph Myers <joseph@codesourcery.com>
18909
18910 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
18911
29aba2bb
JH
189122010-06-10 Jan Hubicka <jh@suse.cz>
18913
18914 * df-problems.c (df_live_problem_data): Add live_bitmaps.
18915 (df_live_alloc): Initialize problem data and live_osbtacks.
18916 (df_live_finalize): Remove obstack, problem data; do not
18917 clear all bitmaps.
18918 (df_live_top_dump, df_live_bottom_dump): Do not dump old
18919 data when not allocated.
18920 (df_live_verify_solution_start): Do not allocate problem data.
18921 (df_live_verify_solution_end): Check if out is allocated.
18922 (struct df_md_problem_data): New structure.
18923 (df_md_alloc): Allocate problem data.
18924 (df_md_free): Free problem data; do not clear bitmaps.
18925
bfa912a8
JB
189262010-06-10 Jan Beulich <jbeulich@novell.com>
18927
2aa9a961 18928 PR bootstrap/37304
bfa912a8
JB
18929 * configure.ac: Replace $() with ${} when intending to expand
18930 variables rather than invoking commands.
18931 * configure: Re-generate.
18932
21d9971a
JH
189332010-06-10 Jan Hubicka <jh@suse.cz>
18934
fea87e28 18935 PR rtl-optimization/44460
3d25c396
UB
18936 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
18937 TYPE_NEEDS_CONSTRUCTING sanity check.
21d9971a 18938
07a67d6a
GP
189392010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
18940
18941 * doc/include/fdl.texi: Move to GFDL version 1.3.
18942
18943 * doc/cpp.texi: Move to GFDL version 1.3.
18944 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
18945 * doc/gccint.texi: Move to GFDL version 1.3.
18946 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
18947 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
18948 * doc/invoke.texi: Move to GFDL version 1.3.
18949
15e80fc3
JH
189502010-06-09 Jan Hubicka <jh@suse.cz>
18951
18952 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
18953 Break out from ...
18954 (propagate) ... here; swap the order.
18955
377002a9
JH
189562010-06-09 Jan Hubicka <jh@suse.cz>
18957
18958 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
18959 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
18960 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
18961 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
18962
50814135
CF
189632010-06-09 Changpeng Fang <changpeng.fang@amd.com>
18964
18965 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
18966 Do not the gather memory reference in the outer loop if the step
18967 is not a constant.
18968
f7963a7c
CF
189692010-06-09 Changpeng Fang <changpeng.fang@amd.com>
18970
3d25c396
UB
18971 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
18972 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
18973 8 to 4. Minor change of the related comments.
f7963a7c 18974
7472eb13
SP
189752010-06-09 Sebastian Pop <sebastian.pop@amd.com>
18976
18977 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
18978 the scev analysis when the variable is not used outside the loop
18979 in a close phi node: call compute_overall_effect_of_inner_loop.
18980
c12e2a5f
SP
189812010-06-09 Sebastian Pop <sebastian.pop@amd.com>
18982
18983 * graphite-sese-to-poly.c (single_pred_cond): Renamed
18984 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
18985 (build_sese_conditions_before): Renamed call to single_pred_cond.
18986 (build_sese_conditions_after): Same.
18987
072edf07
SP
189882010-06-09 Sebastian Pop <sebastian.pop@amd.com>
18989
18990 * graphite-poly.h: Fix comments and indentation.
18991 * graphite-sese-to-poly.c: Same.
18992 (build_sese_conditions_before): Compute stmt and gbb only when needed.
18993 * tree-chrec.c: Fix comments and indentation.
18994 (tree-ssa-loop-niter.c): Same.
18995
642d55de
EB
189962010-06-09 Eric Botcazou <ebotcazou@adacore.com>
18997
18998 PR rtl-optimization/42461
18999 * dce.c (deletable_insn_p): Return true for const or pure calls again.
19000 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
19001
a2b709cc
JH
190022010-06-09 Jan Hubicka <jh@suse.cz>
19003
19004 * bitmap.c (bitmap_and): Walk array forward.
19005 (bitmap_and_compl_into): Likewise.
19006 (bitmap_xor): Likewise.
19007 (bitmap_xor_into): Likewise.
19008 (bitmap_equal_p): Likewise.
19009 (bitmap_intersect_p): Likewise.
19010 (bitmap_intersect_compl_p): Likewise.
19011 (bitmap_ior_and_into): Likewise.
19012 (bitmap_elt_copy): Likewise.
19013 (bitmap_and_compl): Likewise.
19014 (bitmap_elt_ior): Likewise.
19015
807303cf
DK
190162010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
19017
19018 * opts-common.c (prune_options): Ensure replacement argv array
19019 is correctly terminated by a NULL entry.
19020
06795261
JH
190212010-06-09 Jan Hubicka <jh@suse.cz>
19022
19023 * cgraph.h (varpool_first_static_initializer,
19024 varpool_next_static_initializer): Make checking only when
19025 checking enabled.
19026 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
19027 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
19028 gcc_assert to gcc_checking_assert.
3d25c396
UB
19029 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
19030 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
06795261 19031 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
3d25c396
UB
19032 op_iter_init_phiuse, op_iter_init_phidef,
19033 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
19034 gcc_checking_assert.
06795261
JH
19035 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
19036 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
19037 partition_is_global, live_on_entry, live_on_exit,
19038 live_merge_and_clear): Likewise.
19039 * system.h (gcc_checking_assert): New macro.
19040 * gimple.h (set_bb_seq): Use gcc_checking_assert.
19041
8d681dbf
JM
190422010-06-09 Jason Merrill <jason@redhat.com>
19043
19044 * Makefile.in (TAGS): Collect tags info from c-family.
19045
2bc0a660
JH
190462010-06-09 Jan Hubicka <jh@suse.cz>
19047
19048 * gimple.h (gcc_gimple_checking_assert): New macro.
3d25c396
UB
19049 (gimple_set_def_ops, gimple_set_use_ops,
19050 gimple_set_vuse, gimple_set_vdef,
19051 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
19052 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
19053 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
19054 gimple_asm_output_op, gimple_asm_output_op_ptr,
19055 gimple_asm_set_output_op, gimple_asm_clobber_op,
19056 gimple_asm_set_clobber_op, gimple_asm_label_op,
19057 gimple_asm_set_label_op, gimple_try_set_kind,
19058 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
19059 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
19060 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
19061 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
19062 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
19063 gimple_omp_for_set_initial, gimple_omp_for_final,
19064 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
19065 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
19066 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
19067 conditional with ENABLE_GIMPLE_CHECKING.
19068 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2bc0a660 19069
6521ac85
SL
190702010-06-09 Sandra Loosemore <sandra@codesourcery.com>
19071
19072 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
19073 (get_computation_cost_at): Use it.
19074 (determine_use_iv_cost_condition): Likewise.
19075 (determine_iv_cost): Likewise.
19076
76c85743
RG
190772010-06-09 Richard Guenther <rguenther@suse.de>
19078
19079 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
19080 replace constants.
19081
5d7eb7e2
KT
190822010-06-09 Kai Tietz <kai.tietz@onevision.com>
19083
19084 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
19085
1536b6ab
MJ
190862010-06-09 Martin Jambor <mjambor@suse.cz>
19087
19088 PR tree-optimization/44423
19089 * tree-sra.c (dump_access): Dump also grp_assignment_read.
19090 (analyze_access_subtree): Pass negative allow_replacements to children
19091 if the current type is scalar.
19092
f52d94aa 190932010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
2d7f5f9b
JR
19094
19095 PR testsuite/42843
19096 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
19097 * doc/plugins.texi (Plugin license check): Update information
19098 on type of plugin_is_GPL_compatible.
19099 * Makefile.in (PLUGINCC): Define as $(COMPILER).
19100 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
19101
eef5973d
BS
191022010-06-09 Bernd Schmidt <bernds@codesourcery.com>
19103
19104 * config/arm/arm.c (thumb2_reorg): New function.
19105 (arm_reorg): Call it.
19106 * config/arm/thumb2.md (define_peephole2 for flag clobbering
19107 arithmetic operations): Delete.
19108
2cc0672a
EW
191092010-06-09 Edmar Wienskoski <edmar@freescale.com>
19110
19111 PR target/44067
19112 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
19113 e500v2 target.
19114
f1c3bf86
JR
191152010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
19116
2d7f5f9b 19117 PR plugins/44459
f1c3bf86
JR
19118 * gcc-plugin.h: Encapsulate all declarations in extern "C".
19119
a7280dfb
JH
191202010-06-08 Jan Hubicka <jh@suse.cz>
19121
19122 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
19123 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
19124
e89065a1
SL
191252010-06-08 Sandra Loosemore <sandra@codesourcery.com>
19126
19127 PR tree-optimization/39874
19128 PR middle-end/28685
19129 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
19130 Declare.
19131 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
19132 same_bool_result_p): New.
19133 (and_var_with_comparison, and_var_with_comparison_1,
19134 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
19135 (or_var_with_comparison, or_var_with_comparison_1,
19136 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
19137 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
19138 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
19139 of combine_comparisons.
19140 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
19141
c547eb0d
AS
191422010-06-08 Anatoly Sokolov <aesok@post.ru>
19143
19144 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19145 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
55f9fe15
AS
19146 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
19147 pdp11_function_value_regno_p): New functions.
c547eb0d
AS
19148 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19149 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19150
29a551b3
KH
191512010-06-08 Kazu Hirata <kazu@codesourcery.com>
19152
19153 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
19154 Thumb-2 in the MINUS case.
19155
a9429e29
LB
191562010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
19157
19158 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
19159
19160 * doc/gty.texi (GTY Options): Document typed GC allocation and
19161 variable_size GTY option.
19162
19163 * ggc-internal.h: New.
19164
19165 * ggc.h: Update copyright year.
19166 (digit_string): Move to stringpool.c.
19167 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
19168 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
19169 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
19170 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
19171 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
19172 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
19173 (ggc_force_collect, ggc_get_size, ggc_statistics)
19174 (ggc_print_common_statistics): Move to ggc-internal.h.
19175 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
19176 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
19177 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
19178 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
19179 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
19180 (ggc_alloc_zone_pass_stat): Remove.
19181 (ggc_internal_alloc_stat, ggc_internal_alloc)
19182 (ggc_internal_cleared_alloc_stat): New.
19183 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
19184 (ggc_internal_vec_alloc_stat)
19185 (ggc_internal_cleared_vec_alloc_stat)
19186 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
19187 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
19188 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
19189 (ggc_cleared_alloc_ptr_array_two_args): New.
19190 (htab_create_ggc, splay_tree_new_ggc): Redefine.
19191 (ggc_splay_alloc): Change the type of the first argument to
19192 enum gt_types_enum.
19193 (ggc_alloc_string): Make macro.
19194 (ggc_alloc_string_stat): New.
19195 (ggc_strdup): Redefine.
19196 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
19197 (ggc_alloc_rtvec_sized): New.
19198 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
19199 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
19200 (ggc_internal_cleared_alloc_zone_stat)
19201 (ggc_internal_zone_alloc_stat)
19202 (ggc_internal_zone_cleared_alloc_stat)
19203 (ggc_internal_zone_vec_alloc_stat)
19204 (ggc_alloc_zone_rtx_def_stat)
19205 (ggc_alloc_zone_tree_node_stat)
19206 (ggc_alloc_zone_cleared_tree_node_stat)
19207 (ggc_alloc_cleared_gimple_statement_d_stat): New.
19208
19209 * ggc-common.c: Include ggc-internal.h.
19210 (ggc_internal_cleared_alloc_stat): Rename from
19211 ggc_alloc_cleared_stat.
19212 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
19213 (ggc_calloc): Remove.
19214 (ggc_cleared_alloc_htab_ignore_args): New.
19215 (ggc_cleared_alloc_ptr_array_two_args): New.
19216 (ggc_splay_alloc): Add obj_type parameter.
19217 (init_ggc_heuristics): Formatting fixes.
19218
19219 * ggc-none.c: Update copyright year.
19220 (ggc_alloc_stat): Rename to ggc_alloc_stat.
19221 (ggc_alloc_cleared_stat): Rename to
19222 ggc_internal_cleared_alloc_stat.
19223 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
19224
19225 * ggc-page.c: Update copyright year. Include ggc-internal.h.
19226 Remove references to ggc_alloc in comments.
19227 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
19228 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
19229 (new_ggc_zone, destroy_ggc_zone): Remove.
19230 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
19231
19232 * ggc-zone.c: Include ggc-internal.h. Remove references to
19233 ggc_alloc in comments.
19234 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
19235 (ggc_internal_alloc_zone_pass_stat): New.
19236 (ggc_internal_cleared_alloc_zone_stat): New.
19237 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
19238 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
19239 (new_ggc_zone, destroy_ggc_zone): Remove.
19240
19241 * stringpool.c: Update copyright year. Include ggc-internal.h
19242 (digit_vector): Make static.
19243 (digit_string): Moved from ggc.h.
19244 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
19245 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
19246
19247 * Makefile.in (GGC_INTERNAL_H): New.
19248 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
19249 $(GGC_INTERNAL_H) to dependencies.
19250
19251 * gentype.c: Update copyright year.
19252 (walk_type): Accept variable_size GTY option.
19253 (USED_BY_TYPED_GC_P): New macro.
19254 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
19255 whitespace at the end of strings.
19256 (get_type_specifier, variable_size_p): New functions.
19257 (alloc_quantity, alloc_zone): New enums.
19258 (write_typed_alloc_def): New function.
19259 (write_typed_struct_alloc_def): Likewise.
19260 (write_typed_typed_typedef_alloc_def): Likewise.
19261 (write_typed_alloc_defns): Likewise.
19262 (output_typename, write_splay_tree_allocator_def): Likewise.
19263 (write_splay_tree_allocators): Likewise.
19264 (main): Call write_typed_alloc_defns and
19265 write_splay_tree_allocators.
19266
19267 * lto-streamer.h (lto_file_decl_data_ptr): New.
19268
19269 * passes.c (order): Define using cgraph_node_ptr.
19270
19271 * strinpool.c (struct string_pool_data): Declare nested_ptr using
19272 ht_identifier_ptr.
19273
19274 * gimple.h (union gimple_statement_d): Likewise.
19275
19276 * rtl.h (struct rtx_def): Likewise.
19277 (struct rtvec_def): Likewise.
19278
19279 * tree.h (union tree_node): Likewise.
19280
19281 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
19282
19283 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
19284
19285 * tree-scalar-evolution.c (scev_initialize): Likewise.
19286
19287 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
19288
19289 * dwarf2asm.c (dw2_force_const_mem): Likewise.
19290
19291 * omp-low.c (lower_omp_critical): Likewise.
19292
19293 * bitmap.h (struct bitmap_head_def): Update comment to not
19294 reference ggc_alloc.
19295
19296 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
19297
19298 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
19299
19300 * ipa-prop.c (duplicate_ggc_array): Rename to
19301 duplicate_ipa_jump_func_array. Use typed GC allocation.
19302 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
19303
19304 * gimple.c (gimple_alloc_stat): Use
19305 ggc_alloc_cleared_gimple_statement_d_stat.
19306
19307 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
19308
19309 * tree.c (make_node_stat): Use
19310 ggc_alloc_zone_cleared_tree_node_stat.
19311 (make_tree_vec_stat): Likewise.
19312 (build_vl_exp_stat): Likewise.
19313 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
19314 (make_tree_binfo_stat): Likewise.
19315 (tree_cons_stat): Likewise.
19316
19317 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
19318 (shallow_copy_rtx_stat): Likewise.
19319 (make_node_stat): Likewise.
19320
19321 * lto-symtab.c: Fix comment.
19322
19323 * tree-cfg.c (create_bb): Update comment to not reference
19324 ggc_alloc_cleared.
3d25c396 19325 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
a9429e29
LB
19326
19327 * varpool.c (varpool_node): Use typed GC allocation.
19328 (varpool_extra_name_alias): Likewise.
19329
19330 * varasm.c (emutls_decl): Likewise.
19331 (get_unnamed_section): Likewise.
19332 (get_noswitch_section): Likewise.
19333 (get_section): Likewise.
19334 (get_block_for_section): Likewise.
19335 (build_constant_desc): Likewise.
19336 (create_constant_pool): Likewise.
19337 (force_const_mem): Likewise.
19338
19339 * tree.c (build_vl_exp_stat): Likewise.
19340 (build_real): Likewise.
19341 (build_string): Likewise.
19342 (decl_debug_expr_insert): Likewise.
19343 (decl_value_expr_insert): Likewise.
19344 (type_hash_add): Likewise.
19345 (build_omp_clause): Likewise.
19346
19347 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
19348
19349 * tree-ssa.c (init_tree_ssa): Likewise.
19350
19351 * tree-ssa-structalias.c (heapvar_insert): Likewise.
19352
19353 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
19354
19355 * tree-ssa-loop-niter.c (record_estimate): Likewise.
19356
19357 * tree-ssa-alias.c (get_ptr_info): Likewise.
19358
19359 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
19360
19361 * tree-phinodes.c (allocate_phi_node): Likewise.
19362
19363 * tree-iterator.c (tsi_link_before): Likewise.
19364 (tsi_link_after): Likewise.
19365
19366 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
19367
19368 * tree-dfa.c (create_var_ann): Likewise.
19369
19370 * tree-cfg.c (create_bb): Likewise.
19371
19372 * toplev.c (alloc_for_identifier_to_locale): Likewise.
19373 (general_init): Likewise.
19374
19375 * stringpool.c (stringpool_ggc_alloc): Likewise.
19376 (gt_pch_save_stringpool): Likewise.
19377
19378 * sese.c (if_region_set_false_region): Likewise.
19379
19380 * passes.c (do_per_function_toporder): Likewise.
19381
19382 * optabs.c (set_optab_libfunc): Likewise.
19383 (set_conv_libfunc): Likewise.
19384
19385 * lto-symtab.c (lto_symtab_register_decl): Likewise.
19386
19387 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
19388 (input_eh_region): Likewise.
19389 (input_eh_lp): Likewise.
19390 (make_new_block): Likewise.
19391 (unpack_ts_real_cst_value_fields): Likewise.
19392
19393 * lto-section-in.c (lto_new_in_decl_state): Likewise.
19394
19395 * lto-cgraph.c (input_node_opt_summary): Likewise.
19396
19397 * loop-init.c (loop_optimizer_init): Likewise.
19398
19399 * lambda.h (lambda_vector_new): Likewise.
19400
19401 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
19402
19403 * ira.c (update_equiv_regs): Likewise.
19404
19405 * ipa.c (cgraph_node_set_new): Likewise.
19406 (cgraph_node_set_add): Likewise.
19407 (varpool_node_set_new): Likewise.
19408 (varpool_node_set_add): Likewise.
19409
19410 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
19411 (duplicate_ipa_jump_func_array): Likewise.
19412 (ipa_read_node_info): Likewise.
19413
19414 * ipa-cp.c (ipcp_create_replace_map): Likewise.
19415
19416 * integrate.c (get_hard_reg_initial_val): Likewise.
19417
19418 * gimple.c (gimple_alloc_stat): Likewise.
19419 (gimple_build_omp_for): Likewise.
19420 (gimple_seq_alloc): Likewise.
19421 (gimple_copy): Likewise.
19422
19423 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
19424 (gsi_insert_after_without_update): Likewise.
19425
19426 * function.c (add_frame_space): Likewise.
19427 (insert_temp_slot_address): Likewise.
19428 (assign_stack_temp_for_type): Likewise.
19429 (allocate_struct_function): Likewise.
19430 (types_used_by_var_decl_insert): Likewise.
19431
19432 * except.c (init_eh_for_function): Likewise.
19433 (gen_eh_region): Likewise.
19434 (gen_eh_region_catch): Likewise.
19435 (gen_eh_landing_pad): Likewise.
19436 (add_call_site): Likewise.
19437
19438 * emit-rtl.c (get_mem_attrs): Likewise.
19439 (get_reg_attrs): Likewise.
19440 (start_sequence): Likewise.
19441 (init_emit): Likewise.
19442
19443 * dwarf2out.c (new_cfi): Likewise.
19444 (queue_reg_save): Likewise.
19445 (dwarf2out_frame_init): Likewise.
19446 (new_loc_descr): Likewise.
19447 (find_AT_string): Likewise.
19448 (new_die): Likewise.
19449 (add_var_loc_to_decl): Likewise.
19450 (clone_die): Likewise.
19451 (clone_as_declaration): Likewise.
19452 (break_out_comdat_types): Likewise.
19453 (new_loc_list): Likewise.
19454 (loc_descriptor): Likewise.
19455 (add_loc_descr_to_each): Likewise.
19456 (add_const_value_attribute): Likewise.
19457 (tree_add_const_value_attribute): Likewise.
19458 (add_comp_dir_attribute): Likewise.
19459 (add_name_and_src_coords_attributes): Likewise.
19460 (lookup_filename): Likewise.
19461 (store_vcall_insn): Likewise.
19462 (dwarf2out_init): Likewise.
19463
19464 * dbxout.c (dbxout_init): Likewise.
19465
19466 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
19467
19468 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
19469
19470 * config/score/score7.c (score7_output_external): Likewise.
19471
19472 * config/score/score3.c (score3_output_external): Likewise.
19473
19474 * config/s390/s390.c (s390_init_machine_status): Likewise.
19475
19476 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
19477 (rs6000_init_machine_status): Likewise.
19478 (output_toc): Likewise.
19479
19480 * config/pa/pa.c (pa_init_machine_status): Likewise.
19481 (get_deferred_plabel): Likewise.
19482
19483 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
19484
19485 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
19486
19487 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
19488
19489 * config/mep/mep.c (mep_init_machine_status): Likewise.
19490 (mep_note_pragma_flag): Likewise.
19491
19492 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
19493
19494 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
19495
19496 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
19497
19498 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
19499 (i386_pe_maybe_record_exported_symbol): Likewise.
19500
19501 * config/i386/i386.c (get_dllimport_decl): Likewise.
19502 (ix86_init_machine_status): Likewise.
19503 (assign_386_stack_local): Likewise.
19504
19505 * config/frv/frv.c (frv_init_machine_status): Likewise.
19506
19507 * config/darwin.c (machopic_indirection_name): Likewise.
19508
19509 * config/cris/cris.c (cris_init_machine_status): Likewise.
19510
19511 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
19512
19513 * config/avr/avr.c (avr_init_machine_status): Likewise.
19514
19515 * config/arm/arm.c (arm_init_machine_status): Likewise.
19516
19517 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
19518 (alpha_need_linkage): Likewise.
19519 (alpha_use_linkage): Likewise.
19520
19521 * cgraph.c (cgraph_allocate_node): Likewise.
19522 (cgraph_create_edge_1): Likewise.
19523 (cgraph_create_indirect_edge): Likewise.
19524 (cgraph_add_asm_node): Likewise.
19525
19526 * cfgrtl.c (init_rtl_bb_info): Likewise.
19527
19528 * cfgloop.c (alloc_loop): Likewise.
19529 (rescan_loop_exit): Likewise.
19530
19531 * cfg.c (init_flow): Likewise.
19532 (alloc_block): Likewise.
19533 (unchecked_make_edge): Likewise.
19534
19535 * c-parser.c (c_parse_init): Likewise.
19536 (c_parse_file): Likewise.
19537
19538 * c-decl.c (bind): Likewise.
19539 (record_inline_static): Likewise.
19540 (push_scope): Likewise.
19541 (make_label): Likewise.
19542 (lookup_label_for_goto): Likewise.
19543 (finish_struct): Likewise.
19544 (finish_enum): Likewise.
19545 (c_push_function_context): Likewise.
19546
19547 * bitmap.c (bitmap_element_allocate): Likewise.
19548 (bitmap_gc_alloc_stat): Likewise.
19549
19550 * alias.c (record_alias_subset): Likewise.
19551 (init_alias_analysis): Likewise.
19552
49c8958b 195532010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
3d25c396 19554
49c8958b
SZ
19555 * fold-const.c (fold_comparison): Remove redundant parenthesis.
19556 * tree-inline.c (expand_call_inline): Pass translated return value of
19557 cgraph_inline_failed_string to diagnostic function.
19558
5dfebe0a 195592010-06-08 Andrew Pinski <pinskia@gmail.com>
6a8f4e12
AP
19560 Shujing Zhao <pearly.zhao@oracle.com>
19561
19562 PR c/37724
19563 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
19564 implicit bad conversions is initialization.
19565 (error_init): Use gmsgid instead of msgid for argument name and change
19566 the call for error.
19567 (pedwarn_init): Use gmsgid instead of msgid for argument name and
19568 change the call for pedwarn.
19569 (warning_init): Use gmsgid instead of msgid for argument name and
19570 change the call for warning.
19571
6e9e0126
NF
195722010-06-07 Nathan Froyd <froydnj@codesourcery.com>
19573
6a8f4e12 19574 * config/mips/mips-protos.h (mips_print_operand): Delete.
6e9e0126
NF
19575 (mips_print_operand_address): Delete.
19576 * config/mips/mips.h (mips_print_operand_punct): Delete.
19577 (PRINT_OPERAND): Delete.
19578 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19579 (PRINT_OPERAND_ADDRESS): Delete.
19580 * config/mips/mips.c (mips_print_operand_punct): Make static.
19581 (mips_print_operand_address): Make static.
19582 (mips_print_operand): Make static. Call
19583 mips_print_operand_punct_valid_p.
19584 (mips_print_operand_punct_valid_p): New function.
19585 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19586 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19587
f2eff9f8
JH
195882010-06-07 Jan Hubicka <jh@suse.cz>
19589
19590 PR middle-end/44454
19591 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
19592 are allocated.
19593
10575b5d
KK
195942010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
19595
19596 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
19597 name of RECORD.
19598
659b24d6
RO
195992010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19600
19601 * doc/sourcebuild.texi (Effective-Target Keywords, Other
19602 attributes): Document gas.
19603
390b2b32
UB
196042010-06-07 Uros Bizjak <ubizjak@gmail.com>
19605
19606 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
19607 <TYPE_LEA>: Split instruction.
19608 <default>: Remove alternative 2 handling.
19609 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
19610 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
19611 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
19612
19613 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
19614 (ashift_zext lea splitter): Use DImode for multiplication.
19615
19616 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
19617 to generate addition.
19618
5498f011
JM
196192010-06-07 Joseph Myers <joseph@codesourcery.com>
19620
19621 * common.opt (fira-verbose): Use Var.
19622 (fpcc-struct-return): Use Init instead of VarExists.
19623 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
19624 toplev.c.
19625 * flags.h (flag_signed_char, flag_short_enums,
19626 flag_pcc_struct_return, flag_ira_verbose,
3d25c396 19627 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
5498f011 19628 * toplev.c (flag_detailed_statistics, flag_signed_char,
390b2b32 19629 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
5498f011
JM
19630 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
19631 * toplev.h (flag_crossjumping, flag_if_conversion,
19632 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
19633 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
19634 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
19635 flag_cprop_registers, time_report, flag_ira_loop_pressure,
19636 flag_ira_coalesce, flag_ira_move_spills,
19637 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
19638
e7f96023
JH
196392010-06-07 Jan Hubicka <jh@suse.cz>
19640
f2580bd8
L
19641 * df-core.c (df_analyze_problem): Do verification after allocation.
19642
e7f96023
JH
19643 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
19644 (df_lr_alloc): Initialize problem data; move bitmaps to
19645 lr_bitmaps obstack.
19646 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
19647 (df_lr_verify_solution_start): Do not initialize problem data;
19648 allocate bitmaps in lr_bitmaps.
19649 (df_lr_verify_solution_end): Do not free problem data.
19650
f10ea640
JH
196512010-06-07 Jan Hubicka <jh@suse.cz>
19652
19653 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
19654 if caller is noreturn.
19655 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
19656 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
19657 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
19658 * ipa-pure-const.c (check_decl): Add IPA parameter.
19659 (state_from_flags): New function.
19660 (better_state, worse_state): New functions.
19661 (check_call): When in IPA mode, do not care about callees.
19662 (check_load, check_store): Update.
19663 (check_ipa_load, check_ipa_store): New.
19664 (check_stmt): When in IPA mode, use IPA checkers.
19665 (analyze_function): Use state_from_flags.
19666 (propagate): Check indirect edges and references.
19667
5e52ffc4
KH
196682010-06-07 Kazu Hirata <kazu@codesourcery.com>
19669
19670 PR rtl-optimization/44404
19671 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
3d25c396 19672 of count_occurrences to see if it's safe to modify mem_insn.
5e52ffc4 19673
ae0595b0
RG
196742010-06-07 Richard Guenther <rguenther@suse.de>
19675
19676 * gimplify.c (gimplify_cleanup_point_expr): For empty body
19677 and EH-only cleanup drop the cleanup instead of inserting it
19678 unconditionally.
19679
35e1a5e7
IR
196802010-06-07 Ira Rosen <irar@il.ibm.com>
19681
19682 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
19683 documentation.
19684 * targhooks.c (default_builtin_vectorization_cost): New function.
19685 * targhooks.h (default_builtin_vectorization_cost): Declare.
19686 * target.h (enum vect_cost_for_stmt): Define.
19687 (builtin_vectorization_cost): Change argument and comment.
19688 * tree-vectorizer.h: Remove cost model macros.
19689 * tree-vect-loop.c: Include target.h.
19690 (vect_get_cost): New function.
19691 (vect_estimate_min_profitable_iters): Replace cost model macros with
19692 calls to vect_get_cost.
19693 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
19694 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
19695 default implementation.
19696 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
19697 calls to target hook builtin_vectorization_cost.
19698 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
19699 Likewise.
19700 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
19701 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
19702 implementation to return costs.
19703 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
19704 * config/spu/spu.h: Remove vectorizer cost model macros.
19705 * config/i386/i386.h: Likewise.
19706 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
19707 a call to target hook builtin_vectorization_cost.
19708
81c566c2
ST
197092010-06-06 Sriraman Tallam <tmsriram@google.com>
19710
19711 PR target/44319
19712 * config/i386/i386.c (override_options): Turn zee pass on for level 2
19713 and above and defer till target is known.
19714 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
19715 turn off otherwise.
390b2b32 19716
a7e3698d
JH
197172010-05-25 Jan Hubicka <jh@suse.cz>
19718
19719 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
19720 (df_compact_blocks): Likewise.
19721 * df.h (struct df): Turn hardware_regs_used,
19722 regular_block_artificial_uses, eh_block_artificial_uses,
19723 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
19724 bitmap_head.
19725 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
19726 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
19727 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
19728 df_scan_blocks, df_insn_delete, df_insn_rescan,
19729 df_insn_rescan_debug_internal, df_insn_rescan_all,
19730 df_process_deferred_rescans, df_process_deferred_rescans,
19731 df_notes_rescan, df_get_call_refs, df_get_call_refs,
19732 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
19733 df_record_entry_block_defs, df_record_exit_block_uses,
19734 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
19735 df_scan_verify): Update.
19736
e62b90b4
DS
197372010-05-25 Dodji Seketeli <dodji@redhat.com>
19738
19739 PR c++/44188
19740 * c-common.c (is_typedef_decl): Move this definition ...
19741 * tree.c (is_typedef_decl): ... here.
eed023cc 19742 (typdef_variant_p): Move definition here from cp/tree.c.
e62b90b4
DS
19743 * c-common.h (is_typedef_decl): Move this declaration ...
19744 * tree.h (is_typedef_decl): ... here.
eed023cc 19745 (typedef_variant_p): Move declaration here from cp/cp-tree.h
e62b90b4
DS
19746 * dwarf2out.c (is_naming_typedef_decl): New function.
19747 (gen_tagged_type_die): Split out of ...
19748 (gen_type_die_with_usage): ... this function. When an anonymous
19749 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
19750 is emitted for the typedef.
19751 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
19752 anonymous tagged types.
19753
04087cd0
MLI
197542010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
19755
19756 PR c/20000
390b2b32 19757 * c-decl.c (grokdeclarator): Delete warning.
04087cd0 19758
f7b4a383
EB
197592010-06-06 Eric Botcazou <ebotcazou@adacore.com>
19760
19761 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
19762 newly built CALL_EXPR.
df2a52a6
EB
19763 * tree-profile.c (tree_profiling): Don't profile functions produced
19764 for built-in stuff.
f7b4a383 19765
346967d1
SB
197662010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
19767
19768 PR bootstrap/44427
19769 PR bootstrap/44428
3333e146 19770 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
346967d1
SB
19771 endianness-independent.
19772
39dabefd
SB
197732010-06-05 Steven Bosscher <steven@gcc.gnu.org>
19774
19775 * c-common.c: Move to c-family/.
19776 * c-common.def: Likewise.
19777 * c-common.h: Likewise.
19778 * c-cppbuiltin.c: Likewise.
19779 * c-dump.c: Likewise.
19780 * c-format.c: Likewise.
19781 * c-format.h : Likewise.
19782 * c-gimplify.c: Likewise.
19783 * c-lex.c: Likewise.
19784 * c-omp.c: Likewise.
19785 * c.opt: Likewise.
19786 * c-opts.c: Likewise.
19787 * c-pch.c: Likewise.
19788 * c-ppoutput.c: Likewise.
19789 * c-pragma.c: Likewise.
19790 * c-pragma.h: Likewise.
19791 * c-pretty-print.c: Likewise.
19792 * c-pretty-print.h: Likewise.
19793 * c-semantics.c: Likewise.
19794 * stub-objc.c: Likewise.
19795
19796 * gengtype.c (get_file_langdir): Special-case files in c-family/.
19797 (get_output_file_with_visibility): Fix name for c-common.h.
19798 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
19799
19800 * c-tree.h: Update include path for moved files.
19801 * c-lang.c: Likewise.
19802 * c-lang.h: Likewise.
19803 * c-parser.c: Likewise.
19804 * c-convert.c: Likewise.
19805 * c-decl.c: Likewise.
19806 * c-objc-common.c: Likewise.
19807 * configure.ac: Make sure c-family/ exists in the build directory.
19808 * configure: Regenerate.
19809 * Makefile.in: Update paths for moved files. Regroup files per
19810 location and update dependencies. Move generated_files down after
19811 ALL_GTFILES_H.
19812
19813 * config/spu/spu-c.c: Update paths for moved files.
19814 * config/mep/mep-pragma.c: Likewise.
19815 * config/darwin-c.c: Likewise.
19816 * config/i386/msformat-c.c: Likewise.
19817 * config/i386/i386-c.c: Likewise.
19818 * config/avr/avr-c.c: Likewise.
19819 * config/sol2-c.c: Likewise.
19820 * config/ia64/ia64-c.c: Likewise.
19821 * config/rs6000/rs6000-c.c: Likewise.
19822 * config/arm/arm.c: Likewise.
19823 * config/arm/arm-c.c: Likewise.
19824 * config/h8300/h8300.c: Likewise.
19825 * config/v850/v850-c.c: Likewise.
19826
19827 * config/t-darwin: Fix dependencies for moved files.
19828 * config/t-sol2: Fix dependencies for moved files.
19829 * config/mep/t-mep: Fix dependencies for moved files.
19830 * config/ia64/t-ia64: Fix dependencies for moved files.
19831 * config/rs6000/t-rs6000: Fix dependencies for moved files.
19832 * config/v850/t-v850: Fix dependencies for moved files.
19833 * config/v850/t-v850e: Fix dependencies for moved files.
19834
19835 * config/m32c/m32c-pragma.c
19836
19837 * po/exgettext: Look in c-family/ also.
19838
ad06ee51
EB
198392010-06-05 Eric Botcazou <ebotcazou@adacore.com>
19840
19841 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
19842 (mark_control_dependent_edges_necessary): Call it instead of marking
19843 the last statement manually.
19844 (propagate_necessity): Likewise.
19845
0fc555fb
JH
198462010-06-05 Jan Hubicka <jh@suse.cz>
19847
6903fcbd
L
19848 * basic-block.h (compute_dominance_frontiers): Updated.
19849 (compute_idf): Likewise.
19850
0fc555fb
JH
19851 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
19852 for dominance frontiers.
3d25c396 19853 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
0fc555fb
JH
19854 (insert_updated_phi_nodes_for): Likewise.
19855 (update_ssa): Likewise.
19856 * cfganal.c (compute_dominance_frontiers_1): Likewise.
19857 (compute_dominance_frontiers): Likewise.
19858 (compute_idf): Likewise.
19859 * df-problems.c (df_md_local_compute): Likewise.
19860
f5c21ef3
AS
198612010-06-05 Anatoly Sokolov <aesok@post.ru>
19862
19863 * target.h (struct gcc_target): Add memory_move_cost field.
19864 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
19865 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
19866 * targhooks.c (default_memory_move_cost): New function.
19867 * targhooks.h (default_memory_move_cost): Declare function.
19868 * reload.h (memory_move_cost): Declare.
19869 (memory_move_secondary_cost): Change type of 'in' argument to bool.
19870 * reginfo.c (memory_move_cost): New function.
19871 (memory_move_secondary_cost): Change type of 'in' argument to bool.
19872 * ira.h (ira_memory_move_cost): Update comment.
bd3a5d17 19873 * ira.c (ira_memory_move_cost): Update comment.
f5c21ef3
AS
19874 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
19875 with memory_move_cost.
19876 * postreload.c (reload_cse_simplify_set): (Ditto.).
19877 * reload1.c (choose_reload_regs): (Ditto.).
19878 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
19879 (MEMORY_MOVE_COST): Revise documentation.
19880
19881 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19882 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19883 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
19884 type of 'in' argument to bool.
19885 (TARGET_MEMORY_MOVE_COST): Define.
19886
da8c7675
JH
198872010-06-05 Jan Hubicka <jh@suse.cz>
19888
ad06ee51
EB
19889 * ipa-pure-const.c (propagate): Fix typo in handling of functions
19890 that cannot return. Be more careful when merging the results with
19891 previously known ones.
da8c7675 19892
c1ce46a5
MK
198932010-06-05 Matthias Klose <doko@ubuntu.com>
19894
19895 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
19896 function to add the -iplugindir option.
19897 (find_plugindir_spec_function): Add new declaration and function.
19898 (static_spec_func): Use it for "find-plugindir".
19899
82c3c067
JJ
199002010-06-05 Jakub Jelinek <jakub@redhat.com>
19901
19902 PR c++/44361
19903 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
19904 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
19905 statement expression.
19906
5c72d561
JH
199072010-06-05 Jan Hubicka <jh@suse.cz>
19908
19909 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
19910 (df_rd_problem_data): Convert sparse_invalidated_by_call,
19911 dense_invalidated_by_call to bitmap head.
19912 (df_rd_alloc, df_rd_bb_local_compute_process_def,
19913 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
19914 df_rd_start_dump, df_lr_verify_transfer_functions,
19915 df_live_verify_transfer_functions, df_chain_create_bb,
19916 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
19917 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
389caea8
EB
19918 df_simulate_one_insn_forwards, df_md_alloc,
19919 df_md_bb_local_compute_process_def,
19920 df_md_bb_local_compute_process_def, df_md_local_compute,
19921 df_md_transfer_function df_md_free): Update.
5c72d561 19922
f2c1da78
JM
199232010-06-05 Joseph Myers <joseph@codesourcery.com>
19924
19925 PR c/44322
19926 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
19927 target type for ADDR_EXPR; require no changes to qualifiers except
19928 for function types.
19929 * c-tree.h (c_build_type_variant): Remove.
19930
4af89b88
SB
199312010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
19932
389caea8 19933 * genautomata.c (get_excl_set): Do work per element, not per char.
4af89b88
SB
19934 (check_presence_pattern_sets): Similar.
19935 (check_absence_pattern_sets): Similar.
19936
99d98200
SB
199372010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
19938
19939 * genautomata.c (curr_state_pass_num): Delete.
19940 (min_issue_delay_pass_states): Delete.
19941 (min_issue_delay): Delete.
19942 (initiate_min_issue_delay_pass_states): Delete.
19943 (output_min_issue_delay_table): Compute min_issue_delay_vect
19944 using a breadth-first search variant.
19945 (output_tables): Don't call initiate_min_issue_delay_pass_states.
19946
c69d3a0e
L
199472010-06-04 H.J. Lu <hongjiu.lu@intel.com>
19948
19949 PR boostrap/44421
390b2b32 19950 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
c69d3a0e
L
19951 (df_byte_lr_bb_local_compute): Likewise.
19952
0a766368
JM
199532010-06-03 Jason Merrill <jason@redhat.com>
19954
19955 Implement noexcept operator (5.3.7)
19956 * c-common.c (c_common_reswords): Add noexcept.
19957 * c-common.h (enum rid): Add RID_NOEXCEPT.
19958
bdc6b402
JM
199592010-06-04 Joseph Myers <joseph@codesourcery.com>
19960
19961 * config/darwin-driver.c (darwin_default_min_version): Use
9f7b464b 19962 GCC-specific formats in diagnostics.
bdc6b402
JM
19963 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
19964 diagnostics.
19965 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
19966 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
19967 eval_spec_function, handle_braces, process_brace_body, main,
19968 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
19969 getenv_spec_function, compare_version_strings,
19970 version_compare_spec_function): Use GCC-specific formats in
19971 diagnostics.
19972
7d1f0f8a
UB
199732010-06-04 Uros Bizjak <ubizjak@gmail.com>
19974
19975 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
19976 that operand 0 and operand 1 are equal.
19977 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
19978 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
19979 and operand 1 are equal.
390b2b32 19980 <default>: Ditto. Remove ??? comment.
7d1f0f8a
UB
19981 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
19982 and operand 1 are equal.
390b2b32
UB
19983 <default>: Ditto. Remove ??? comment.
19984 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
7d1f0f8a
UB
19985 are equal.
19986 (*add<mode>_4) <default>: Ditto.
19987 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
19988
6b3c42ae
NF
199892010-06-04 Nathan Froyd <froydnj@codesourcery.com>
19990
19991 * config/i386/i386-protos.h (ix86_print_operand): Declare.
19992 * config/i386/i386.c (ix86_print_operand): Make non-static.
19993 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
19994 * output.h (output_operand): Declare.
19995 * final.c (output_operand): Make non-static.
19996
0fa43fb7
AO
199972010-06-04 Alexandre Oliva <aoliva@redhat.com>
19998
39e7207a
AO
19999 PR rtl-optimization/44013
20000 * sched-deps.c (add_dependence_list_and_free): Don't free lists
20001 when processing debug insns.
20002
0fa43fb7
AO
20003 PR debug/41371
20004 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
20005 recursing. Check that recursion is bounded. Rename inner var
20006 to avoid hiding incoming argument.
20007
ad1f7916
UB
200082010-06-04 Uros Bizjak <ubizjak@gmail.com>
20009
7d1f0f8a
UB
20010 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
20011 operands[2] == 255.
ad1f7916
UB
20012 (*addqi_3): Ditto.
20013 (*addqi_4): Ditto.
20014 (*addqi_5): Ditto.
20015 (*addqi_ext_1_rex64): Ditto.
20016 (*addqi_ext_1): Ditto.
20017
20018 (*addqi_4): Check for incdec_operand in QImode.
20019
20020 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
20021 using SWI mode iterator.
20022 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
20023 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
20024 mode iterator.
20025 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
20026 using SWI mode iterator.
20027
49706e39
MLI
200282010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
20029
20030 PR c/25880
20031 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
20032 * c-format.c (gcc_diag_flag_specs): Add hash.
20033 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
20034 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
20035 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
20036 pp_c_cv_qualifiers. Handle qualifiers spelling here.
20037 (pp_c_type_qualifier_list): Call the function above.
20038 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
20039 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
20040 (WARN_FOR_QUALIFIERS): New macro.
20041 (convert_for_assignment): Use it.
20042
b13ea8bd
KT
200432010-06-04 Kai Tietz <kai.tietz@onevision.com>
20044
ad1f7916 20045 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
b13ea8bd 20046
b33a91c9
JH
200472010-06-04 Jan Hubicka <jh@suse.cz>
20048
20049 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
20050 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
20051 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
20052 DF_BYTE_LR_OUT): Update for embedded bitmaps.
20053 * fwprop.c (single_def_use_enter_block): Likewise.
20054 * ddg.c (create_ddg_dep_from_intra_loop_link,
20055 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
20056 * loop-iv.c (latch_dominating_def): Likewise.
20057 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
20058 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
20059 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
20060 df_rd_transfer_function, df_rd_top_dump,
20061 df_rd_bottom_dump): Update.
20062 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
20063 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
20064 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
20065 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
20066 df_lr_verify_solution_start, df_lr_verify_solution_end,
20067 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
20068 df_live_free_bb_info, df_live_alloc, df_live_reset,
20069 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
20070 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
20071 df_live_verify_solution_start, df_live_verify_solution_end,
20072 df_live_verify_transfer_functions, df_chain_create_bb,
20073 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
20074 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
20075 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
20076 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
20077 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
20078 df_byte_lr_transfer_function, df_byte_lr_top_dump,
20079 df_byte_lr_bottom_dump, df_create_unused_note,
20080 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
20081 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
20082 df_md_transfer_function, df_md_init, df_md_confluence_0,
20083 df_md_confluence_n,
ad1f7916
UB
20084 df_md_top_dump, df_md_bottom_dump): Update.
20085 (struct df_lr_problem_data): Embedd bitmap headers.
b33a91c9 20086
f251709a
JH
200872010-06-04 Jan Hubicka <jh@suse.cz>
20088
ad1f7916
UB
20089 * dce.c (dce_process_block): Do not re-scan already marked
20090 instructions.
f251709a 20091
8ff49c29
BS
200922010-06-04 Bernd Schmidt <bernds@codesourcery.com>
20093
20094 PR rtl-optimization/39871
20095 PR rtl-optimization/40615
20096 PR rtl-optimization/42500
20097 PR rtl-optimization/42502
20098 * ira.c (init_reg_equiv_memory_loc: New function.
20099 (ira): Call it twice.
20100 * reload.h (calculate_elim_costs_all_insns): Declare.
20101 * ira-costs.c: Include "reload.h".
20102 (regno_equiv_gains): New static variable.
20103 (init_costs): Allocate it.
20104 (finish_costs): Free it.
20105 (ira_costs): Call calculate_elim_costs_all_insns.
20106 (find_costs_and_classes): Take estimated elimination costs
20107 into account.
20108 (ira_adjust_equiv_reg_cost): New function.
20109 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
20110 * reload1.c (init_eliminable_invariants, free_reg_equiv,
ad1f7916 20111 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
8ff49c29
BS
20112 (elim_bb): New static variable.
20113 (reload): Move code out of here into init_eliminable_invariants and
20114 free_reg_equiv. Call them.
20115 (calculate_elim_costs_all_insns): New function.
20116 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
20117 all callers changed. If FOR_COSTS is true, don't call alter_reg,
20118 but call note_reg_elim_costly if we turned a valid memory address
20119 into an invalid one.
20120 * Makefile.in (ira-costs.o): Depend on reload.h.
20121
95c5655c
JB
201222010-06-04 Julian Brown <julian@codesourcery.com>
20123
20124 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
20125 for pool ranges.
20126
d4c0c9f6
RG
201272010-06-04 Richard Guenther <rguenther@suse.de>
20128
20129 PR lto/41584
20130 * cgraph.h (struct varpool_node): Add lto_file_data field.
20131 * lto-cgraph.c (input_varpool_node): Initialize it.
20132
308e51aa
UB
201332010-06-04 Uros Bizjak <ubizjak@gmail.com>
20134
20135 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
20136 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
20137 predicate in "type" attribute calculation.
20138 (*addsi_1_zext): Ditto.
20139 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
20140 (*addsi_2_zext): Ditto.
20141 (*add<mode>_3): Ditto.
20142 (*addsi_3_zext): Ditto.
20143 (*add<mode>_5): Ditto.
20144
f3cf730b
JH
201452010-06-03 Jan Hubicka <jh@suse.cz>
20146
20147 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
20148 of bitmap_bit_p.
20149 * cfganal.c (compute_dominance_frontiers_1): Likewise.
20150
95f4cd58
JH
201512010-06-03 Jan Hubicka <jh@suse.cz>
20152
20153 * df-problems.c (df_create_unused_note, df_note_bb_compute):
20154 micro-optimize the checks when to add new note.
20155
6e2188e0
NF
201562010-06-03 Nathan Froyd <froydnj@codesourcery.com>
20157
20158 * final.c (output_asm_insn): Call
20159 targetm.asm_out.print_operand_punct_valid_p. Update comments.
20160 (output_operand): Call targetm.asm_out.print_operand. Update comments.
20161 (output_address): Call targetm.asm_out.print_operand_address.
20162 Update comments.
20163 * target.h (struct gcc_target): Add print_operand,
20164 print_operand_address, and print_operand_punct_valid_p fields.
20165 * targhooks.h (default_print_operand): Declare.
20166 (default_print_operand_address): Declare.
20167 (default_print_operand_punct_valid_p): Declare.
20168 * targhooks.c (default_print_operand): Define.
20169 (default_print_operand_address): Define.
20170 (default_print_operand_punct_valid_p): Define.
20171 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
20172 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
20173 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
20174 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
20175 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
20176 * vmsdbgout.c (addr_const_to_string): Update comment.
20177 * config/i386/i386.c (print_operand): Rename to...
20178 (ix86_print_operand): ...this. Make static.
20179 (print_operand_address): Rename to...
20180 (ix86_print_operand_address): ...this. Make static. Call
20181 ix86_print_operand instead of PRINT_OPERAND.
20182 (ix86_print_operand_punct_valid_p): New function.
20183 (TARGET_PRINT_OPERAND): Define.
20184 (TARGET_PRINT_OPERAND_ADDRESS): Define.
20185 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20186 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
20187 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20188 (PRINT_OPERAND): Delete.
20189 (PRINT_OPERAND_ADDRESS): Delete.
20190 * config/i386/i386-protos.h (print_operand): Delete prototype.
20191 (print_operand_address): Delete prototype.
20192
bb6c4ac8
RG
201932010-06-03 Richard Guenther <rguenther@suse.de>
20194
20195 PR tree-optimization/44403
20196 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20197 Preserve pointer qualifiers.
20198 (vect_create_data_ref_ptr): Likewise.
20199
1c314335
L
202002010-06-03 H.J. Lu <hongjiu.lu@intel.com>
20201
20202 PR c++/44294
20203 * defaults.h (MAX_FIXED_MODE_SIZE): New.
20204
20205 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
20206
c87d6057
JJ
202072010-06-03 Jakub Jelinek <jakub@redhat.com>
20208
20209 PR debug/44375
20210 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
20211 return false if merging the bbs would lead to goto_locus
20212 location being lost from the IL.
20213
193d4c0f
JJ
202142010-06-03 Jan Hubicka <jh@suse.cz>
20215 Jakub Jelinek <jakub@redhat.com>
20216
308e51aa 20217 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
193d4c0f
JJ
20218 set->regs[i] is NULL or has just one entry.
20219
703e95cf
JH
202202010-06-03 Jan Hubicka <jh@suse.cz>
20221
20222 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
20223 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
20224
12a0a4d4
PB
202252010-06-03 Paul Brook <paul@codesourcery.com>
20226
20227 * config/arm/arm.c (FL_TUNE): Define.
20228 (arm_default_cpu, arm_cpu_select): Remove.
20229 (all_cores): Populate core field.
20230 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
20231 (arm_find_cpu): New function.
20232 (arm_handle_option): Lookup cpu/architecture names.
20233 (arm_override_options): Cleanup mcpu/march/mtune handling.
20234 (arm_file_start): Ditto.
20235
d9d7a1bf
AM
202362010-06-03 Alan Modra <amodra@gmail.com>
20237
20238 PR target/44169
20239 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
20240 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
20241 rtx to gen_load_toc_v4_PIC_1b. Tidy.
20242 (rs6000_emit_load_toc_table): Likewise.
20243
514f01ad
JH
202442010-06-02 Jan Hubicka <jh@suse.cz>
20245
20246 * passes.c (init_optimization_passes): Put ipa reference
20247 after ipa pure-const.
20248
22a8d1e6
JH
202492010-06-02 Jan Hubicka <jh@suse.cz>
20250
20251 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
20252 calls_read_all and calls_write_all.
20253 (get_reference_optimization_summary): Fix formatting.
20254 (is_proper_for_analysis): Check that decl is not readonly.
20255 (propagate_bits): Check CONST/PURE/noreturn flags.
20256 (ipa_init): Move all_module_statics to optimization_summary_obstack.
20257 (analyze_function): Ignore indirect edges.
20258 (copy_global_bitmap): For all module statics, do nothing.
20259 (generate_summary): Do not print calls_read_all/calls_write_all.
20260 (read_write_all_from_decl): Take node as argument; check
20261 cgraph_node_cannot_return.
20262 (propagate): Reorganize read_all/write_all computation;
20263 check indirect edges; check ecf flags; use all_module_statics
20264 in the results; do not free all_module_statics.
20265 (stream_out_bitmap): Handle all_module_statics.
20266 (ipa_reference_write_optimization_summary): Likewise; use
20267 varpool/cgraph encoders to get boundaries.
20268 (ipa_reference_read_optimization_summary): Read in all_module_statics;
20269 use it when possible.
20270
92902797
MM
202712010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
20272
20273 PR target/44218
20274 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
308e51aa 20275 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
92902797
MM
20276
20277 * doc/extend.texi (powerpc builtins): Document vec_recip,
20278 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
20279
308e51aa 20280 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
92902797
MM
20281 (rs6000_emit_swrsqrt): Ditto.
20282 (rs6000_emit_swdivsf): Delete.
20283 (rs6000_emit_swdivdf): Ditto.
20284 (rs6000_emit_swrsqrtsf): Ditto.
20285
20286 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
20287 describe the reciprocal estimate support for each type.
20288 (recip_options): Map -mrecip=<opt> into option bits.
20289 (gen_2arg_fn_t): New typedef for binary rtx gen function.
20290 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
20291 reciprocal estimate instructions.
20292 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
20293 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
20294 Set up rs6000_recip_bits based on the -mrecip* options. Print the
20295 cost information if -mdebug=cost or -mdebug=reg.
20296 (rs6000_override_options): Set -mrecip-precision for power6, and
20297 power7 machines. If -mvsx or -mdfp, enable various options that
20298 came in previous instruction set ISAs, unless the option was
20299 explicitly disabled by the command line option. Parse
20300 -mrecip=<opt> options.
20301 (rs6000_builtin_vectorized_function): Add support for vectorizing
20302 the reciprocal estimate builtins and expansions.
20303 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
20304 (bdesc_2arg): Add reciprocal estimate builtins.
20305 (bdesc_1arg): Add reciprocal square root estimate builtins.
20306 (rs6000_expand_builtin): Rewrite to use a switch statement,
308e51aa 20307 instead of multiple if/then/elses. Add reciprocal estimate builtins.
92902797
MM
20308 (rs6000_init_builtins): Create declarations for reciprocal
20309 estimate builtins.
20310 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
20311 sized, prefer traditional floating point registers, if integer
20312 vector types, prefer altivec registers. Don't actually look at
20313 the memory address any more.
20314 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
20315 builtins.
20316 (rs6000_load_constant_and_splat): New helper function to load up
20317 the constant for reciprocal estimate instructions.
20318 (rs6000_emit_madd): New helper function for generating
20319 multiply/add type instructions, based on the current switches.
20320 (rs6000_emit_msub): Ditto.
20321 (rs6000_emit_mnsub): Ditto.
20322 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
20323 replace a divide with a reciprocal estimate and fixup, adding
20324 support for machines with high precision and vectors.
20325 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
20326 low precision machines.
20327 (rs6000_emit_swdiv): New common function to be called to replace a
20328 division with reciprocal estimate and fixup.
20329 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
308e51aa 20330 for double and vector types. Add support for high precision machines.
92902797
MM
20331
20332 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
20333 the reciprocal estimate instructions can be generated.
20334 (TARGET_FRE): Ditto.
20335 (TARGET_FRSQRTES): Ditto.
20336 (TARGET_FRSQRTE): Ditto.
20337 (RS6000_RECIP_*): New macros for reciprocal estimate support.
20338
20339 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
20340 square root estimate on vectors.
20341 (re<mode>2): New insn for reciprocal division estimate on vectors.
20342
20343 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
20344 New builtin.
20345 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
20346 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
20347 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
20348 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
20349 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
20350 (RS6000_BUILTIN_RSQRT): Ditto.
20351 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
20352 floating point builtin.
20353
20354 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
20355 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
20356 __RECIP_PRECISION__ based on the command line switches.
20357 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
20358
20359 * config/rs6000/rs6000.opt (-mrecip): Document add support for
308e51aa 20360 replacing division instructions with reciprocal estimate and fixup.
92902797
MM
20361 (-mrecip=<opt>): New option.
20362 (-mrecip-precision): Ditto.
20363
20364 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
20365 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
20366 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
20367 precision scalar.
20368
20369 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
20370 (UNSPEC_VREFP): Ditto.
20371 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
308e51aa 20372 conterparts with regard to support of -mno-fused-madd and -ffast-math.
92902797
MM
20373 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
20374 reciprocal estimate instructions to be generated.
20375 (altivec_vrefp): Ditto.
20376
20377 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
20378 estimate support.
20379 (rreg): New mode attribute for reciprocal estimate support.
20380 (recip<mode>3): New insn for division using reciprocal estimate
20381 and fixup builtins.
20382 (divide define_split): New define_split to convert floating point
20383 division to use reciprocal estimate if the user used the
20384 appropriate options and the split is run when we can add new
20385 pseudo registers for the fixup.
20386 (rsqrt<mode>2): New insn for reciprocal square root support.
20387 (recipsf3): Move into recip<mode>3.
20388 (recipdf3): Ditto.
20389 (fres): Use TARGET_FRES.
20390 (rsqrtsf2): Move into rsqrt<mode>2.
20391 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
20392 (copysignsf3): Add support for VSX.
20393 (fred): Use TARGET_FRE.
20394 (fred_fpr): Ditto.
20395 (rsqrtdf_internal1): New function for frsqrte instruciton.
20396
308e51aa 20397 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
92902797
MM
20398 (vec_rsqrt): Ditto.
20399
eef4a603
RG
204002010-06-03 Richard Guenther <rguenther@suse.de>
20401
20402 PR middle-end/44291
20403 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
20404 (set_user_assembler_libfunc): Likewise.
20405
77ec4307
SB
204062010-06-02 Steven Bosscher <steven@gcc.gnu.org>
20407
20408 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
20409 defaults.h.
20410 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
20411 to defaults.h
20412 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
20413 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
20414 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
20415 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
20416 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
20417 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
20418 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
20419 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
20420 * defaults.h: Updated for above mentioned changes.
20421
ef2d9e4d
KT
204222010-06-02 Kai Tietz <kai.tietz@onevision.com>
20423
20424 * c-common.c: Remove header include of tm_p.h.
20425 * Makefile.in (c-common.o): Remove TM_P_H dependency.
20426
53e030f1
JJ
204272010-06-02 Jakub Jelinek <jakub@redhat.com>
20428
20429 * tree.h (struct tree_decl_map): New type.
20430 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
20431 (tree_decl_map_hash): New prototype.
20432 (debug_expr_for_decl, value_expr_for_decl): Change into
20433 tree_decl_map hashtab from tree_map.
20434 (init_ttree): Adjust initialization.
20435 (tree_decl_map_hash): New function.
20436 (decl_debug_expr_lookup, decl_debug_expr_insert,
20437 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
20438
a6198222
RO
204392010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20440
20441 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
20442 linker emulations.
20443 * configure: Regenerate.
20444 * config.in: Regenerate.
20445
20446 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
20447 (X86_64_EMULATION): Define.
20448 (TARGET_LD_EMULATION): Use them.
20449
20450 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
20451 (SPARC64_EMULATION): Define.
20452 (LINK_ARCH_SPEC): Use them.
20453
d6abd6d8
SP
204542010-06-02 Sebastian Pop <sebastian.pop@amd.com>
20455
20456 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
20457 smallest_mode_for_size for computing the precision types of new
20458 graphite IVs. Do not call lang_hooks.types.type_for_size.
20459
718d3588
SP
204602010-06-02 Sebastian Pop <sebastian.pop@amd.com>
20461
20462 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
20463 information.
20464 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
20465
5521cae9
SP
204662010-06-02 Sebastian Pop <sebastian.pop@amd.com>
20467
20468 PR middle-end/44363
20469 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
20470 return false instead.
20471
437ffe7b
JH
204722010-06-02 Jan Hubicka <jh@suse.cz>
20473
20474 PR middle-end/44295
20475 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
20476 create new cgraph node to check callee.
20477
f3dcdff7
RG
204782010-06-02 Richard Guenther <rguenther@suse.de>
20479
20480 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
20481
396717c9
RG
204822010-06-02 Richard Guenther <rguenther@suse.de>
20483
20484 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
20485 (lto_wrapper_cleanup): ... this. Do not exit.
20486 (fatal): Adjust. Exit here.
20487 (fatal_perror): Likewise.
20488 (fatal_signal): New function.
20489 (main): Set up signal handlers to cleanup temporary files.
20490 * Makefile.in (lto-wrapper.o): Adjust dependencies.
20491
2698955a
RG
204922010-06-02 Richard Guenther <rguenther@suse.de>
20493
20494 PR tree-optimization/44377
20495 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
20496
30972225
AK
204972010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20498
20499 * config/s390/2097.md (z10_fhex): Remove insn reservation.
20500 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
20501 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
20502 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
20503 instruction.
308e51aa 20504 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
30972225 20505
d4fb676f
JH
205062010-06-02 Jan Hubicka <jh@suse.cz>
20507
20508 * bitmap.c (bitmap_descriptor): Add search_iter.
20509 (bitmap_find_bit): Increment it.
20510 (print_statistics): Print it.
20511
36c4a482
NF
205122010-06-02 Nathan Froyd <froydnj@codesourcery.com>
20513
20514 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
20515 instead of gimple_build_call_vec. Delete unnecessary local variable.
20516
f66d6761
SB
205172010-06-02 Steven Bosscher <steven@gcc.gnu.org>
20518
20519 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
20520 change from yesterday.
20521
a8cd9c51
SB
205222010-06-02 Steven Bosscher <steven@gcc.gnu.org>
20523
20524 * c-ada-spec.c: Clean up redundant includes.
20525
2eb79bbb
SB
205262010-06-01 Steven Bosscher <steven@gcc.gnu.org>
20527
20528 * gimplify.c: Do not include except.h and optabs.h.
20529 (gimplify_body): Do not initialize RTL profiling.
20530 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
20531 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
20532 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
20533 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
20534 langhooks.h.
20535
20536 * tree-pretty-print.h: Include pretty-print.h.
20537 * gimple-pretty-print.h: Include pretty-print.h.
20538
20539 * tree-pretty-print.c: Do not include diagnostic.h.
20540 * tree-vrp.c: Likewise.
20541 * tree-tailcall.c: Likewise
20542 * tree-scalar-evolution.c: Likewise
20543 * tree-ssa-dse.c: Likewise
20544 * tree-chrec.c: Likewise
20545 * tree-ssa-sccvn.c: Likewise
20546 * tree-ssa-copyrename.c: Likewise
20547 * tree-nomudflap.c: Likewise
20548 * tree-call-cdce.c: Likewise
20549 * tree-stdarg.c: Likewise
20550 * tree-ssa-math-opts.c: Likewise
20551 * tree-nrv.c: Likewise
20552 * tree-ssa-sink.c: Likewise
20553 * tree-browser.c: Likewise
20554 * tree-ssa-loop-ivcanon.c: Likewise
20555 * tree-ssa-loop.c: Likewise
20556 * tree-parloops.c: Likewise
20557 * tree-ssa-address.c: Likewise
20558 * tree-ssa-ifcombine.c: Likewise
20559 * tree-if-conv.c: Likewise
20560 * tree-data-ref.c: Likewise
20561 * tree-affine.c: Likewise
20562 * tree-ssa-phiopt.c: Likewise
20563 * tree-ssa-coalesce.c: Likewise
20564 * tree-ssa-pre.c: Likewise
20565 * tree-ssa-live.c: Likewise
20566 * tree-predcom.c: Likewise
20567 * tree-ssa-forwprop.c: Likewise
20568 * tree-ssa-dce.c: Likewise
20569 * tree-ssa-ter.c: Likewise
20570 * tree-ssa-loop-prefetch.c: Likewise
20571 * tree-optimize.c: Likewise
20572 * tree-ssa-phiprop.c: Likewise
20573 * tree-object-size.c: Likewise
20574 * tree-outof-ssa.c: Likewise
20575 * tree-ssa-structalias.c: Likewise
20576 * tree-switch-conversion.c: Likewise
20577 * tree-ssa-reassoc.c: Likewise
20578 * tree-ssa-operands.c: Likewise
20579 * tree-vectorizer.c: Likewise
20580 * tree-vect-data-refs.c: Likewise
20581 * tree-vect-generic.c: Likewise
20582 * tree-vect-stmts.c: Likewise
20583 * tree-vect-patterns.c: Likewise
20584 * tree-vect-slp.c: Likewise
20585 * tree-vect-loop.c: Likewise
20586 * tree-ssa-loop-ivopts.c: Likewise
20587 * tree-ssa-loop-im.c: Likewise
20588 * tree-ssa-loop-niter.c: Likewise
20589 * tree-ssa-loop-unswitch.c: Likewise
20590 * tree-ssa-loop-manip.c: Likewise
20591 * tree-ssa-loop-ch.c: Likewise
20592 * tree-dump.c: Likewise
20593 * tree-complex.c: Likewise
20594
20595 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
20596 * tree-ssa-uninit.c: Likewise
20597 * tree-ssa-threadupdate.c: Likewise
20598 * tree-ssa-uncprop.c: Likewise
20599 * tree-ssa-ccp.c: Likewise
20600 * tree-ssa-dom.c: Likewise
20601 * tree-ssa-propagate.c: Likewise
20602 * tree-ssa-alias.c: Likewise
20603 * tree-dfa.c: Likewise
20604 * tree-cfgcleanup.c: Likewise
20605 * tree-sra.c: Likewise
20606 * tree-ssa-copy.c: Likewise
20607 * tree-ssa.c: Likewise
20608 * tree-profile.c: Likewise
20609 * tree-cfg.c: Likewise
20610 * tree-ssa-threadedge.c: Likewise
20611 * tree-vect-loop-manip.c: Likewise
20612
20613 * tree-inline.c: Do not include diagnostic.h and expr.h.
20614 Include rtl.h.
20615 (copy_decl_for_dup_finish): Do not use NULL_RTX.
20616
308e51aa 20617 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2eb79bbb
SB
20618 * tree-loop-distribution.c: Likewise.
20619
73add7fe
JH
206202010-06-01 Jan Hubicka <jh@suse.cz>
20621
20622 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
20623
566d09ef
JH
206242010-06-01 Jan Hubicka <jh@suse.cz>
20625
20626 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
20627 remove return value.
20628 (split_bbs_on_noreturn_calls) .... here.
20629 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
20630 * tree-flow.h (fixup_noreturn_call): New.
20631
fb9ef4c1
JH
206322010-06-01 Jan Hubicka <jh@suse.cz>
20633
20634 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
20635
6594b49d
NF
206362010-06-01 Nathan Froyd <froydnj@codesourcery.com>
20637
20638 * tree.h (build_nt_call_list): Delete.
20639 * tree.c (build_nt_call_list): Delete.
20640
5936d944
JH
206412010-06-01 Jan Hubicka <jh@suse.cz>
20642
20643 * fwprop.c: Make emit-rtl.h include last.
20644 * rtlanal.c: Include emit-rtl.h.
20645 * genautomata.c: Output emit-rtl include into insn-automata.c
20646 * df-scan.c: Include emit-rtl.h.
20647 * haifa-sched.c: Indlude emit-rtl.h.
20648 * mode-switching.c: Indlude emit-rtl.h.
20649 * graph.c: Indlude emit-rtl.h.
20650 * sel-sched.c: Include emit-rtl.h.
20651 * sel-sched-ir.c: Include emit-rtl.h.
20652 * ira-build.c: Include emit-rtl.h.
bd3a5d17 20653 * emit-rtl.c (first_insn, last_insn): Remove defines.
5936d944
JH
20654 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
20655 Move to emit-rtl.h.
308e51aa
UB
20656 (set_new_first_and_last_insn, get_last_insn_anywhere,
20657 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
20658 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
20659 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
20660 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
20661 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
20662 Use accessor functions.
5936d944
JH
20663 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20664 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20665 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
308e51aa 20666 mem_expr_equal_p): Move here from rtl.h.
5936d944
JH
20667 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
20668 Move here from emit-rtl.c; make inline.
308e51aa 20669 * cfglayout.h: Include emit-rtl.h.
5936d944
JH
20670 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20671 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20672 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
308e51aa
UB
20673 mem_expr_equal_p, get_insns, set_first-insn,
20674 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
20675 * reg-stack.c: Include emit-rtl.h.
5936d944
JH
20676 * dce.c: Likewise.
20677
91382288
JH
206782010-06-01 Jan Hubicka <jh@suse.cz>
20679
20680 * cgraph.h (tree_function_versioning): Update prototype.
20681 (cgraph_function_versioning): Update prototype.
20682 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
20683 bitmap.
308e51aa 20684 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
91382288
JH
20685 (cgraph_materialize_clone, save_inline_function_body): Update use of
20686 tree_function_versioning.
308e51aa
UB
20687 * tree-inline.c (copy_bb): Look for previous copied block to link
20688 after; fix debug output.
91382288
JH
20689 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
20690 (copy_body): Likewise.
20691 (expand_call_inline): Update use of copy_body.
20692 (tree_function_versioning): Update use of copy body; accept
20693 blocks_to_copy and new_entry.
20694
6ac9d3a3
JH
206952010-06-01 Jan Hubicka <jh@suse.cz>
20696
20697 * gegenrtl.c: Remove unnecesary prototypes.
20698 (gendecl): Remove.
20699 (gendef): Produce static inline.
20700 (gencode): Remove.
20701 (main): Do not decode parameters; generate header only.
20702 * Makefile.in (genrtl.c): Remove.
20703
2e3b4885
JH
207042010-06-01 Jan Hubicka <jh@suse.cz>
20705
20706 * tree-switch-conversion.c (build_one_array): Make it readonly.
20707
0641fa97
RG
207082010-06-01 Richard Guenther <rguenther@suse.de>
20709
20710 * optabs.c (init_optabs): Guard all accesses to reinit.
20711 * ipa-pure-const.c (propagate): Fix another typo.
20712 * opts.c (common_handle_option): Split assignment to bool.
20713 * c-opts.c (c_common_handle_option): Likewise.
20714
9cc54940 207152010-06-01 Arnaud Charlet <charlet@adacore.com>
308e51aa 20716 Matthew Gingell <gingell@adacore.com>
9cc54940
AC
20717
20718 * doc/invoke.texi: Mention -fdump-ada-spec.
20719 * tree-dump.c (dump_files): Add ada-spec.
20720 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
20721 * tree-pass.h (tree_dump_index): Add TDI_ada.
20722 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
20723 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
20724 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
20725 * c-decl.c: Include c-ada-spec.h.
20726 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
20727 functions.
20728 (c_write_global_declarations): Add handling of -fdump-ada-spec.
20729 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
20730 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
20731 * c-ada-spec.h, c-ada-spec.c: New files.
20732
97d45cef
RG
207332010-06-01 Richard Guenther <rguenther@suse.de>
20734
20735 PR lto/43853
20736 * ipa-pure-const.c (get_function_state): Hand back varying state
20737 if we do not have one.
20738 (has_function_state): New function.
20739 (duplicate_node_data): Adjust.
20740 (remove_node_data): Likewise.
20741 (pure_const_write_summary): Likewise.
20742 (propagate): Likewise. Fix typo.
20743
f7fbb475
JH
207442010-06-01 Jan Hubicka <jh@suse.cz>
20745
20746 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
20747 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
20748 (execute_all_ipa_transforms): Do not play with the states.
20749
d47a371c
MK
207502010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
20751
20752 * config/arm/t-linux-androideabi: New.
389caea8 20753 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
d47a371c 20754
613f61fc
JH
207552010-06-01 Jan Hubicka <jh@suse.cz>
20756
20757 * tree-inline.c (estimate_num_insns): For stdarg functions look
20758 into call statement to count cost of argument passing.
20759
193d4c0f 207602010-06-01 Kai Tietz <kai.tietz@onevision.com>
42ad7bc8 20761
308e51aa
UB
20762 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
20763 argument for fprintf.
20764 (ix86_output_addr_diff_elt): Likewise.
20765 (x86_function_profiler): Likewise.
20766 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
20767 (LPREFIX): Likewise.
20768 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
42ad7bc8 20769
c71ad61e
JJ
207702010-05-31 Jakub Jelinek <jakub@redhat.com>
20771
20772 PR target/44338
20773 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
20774 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
20775 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
20776 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
20777 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
20778 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
20779 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
20780 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
20781 TARGET_FUSED_MADD.
20782
63f1c699
JH
207832010-05-31 Jan Hubicka <jh@suse.cz>
20784
20785 * tree.h (tree_range_check_failed): Declare noreturn.
20786
4892422a
JH
207872010-05-31 Jan Hubicka <jh@suse.cz>
20788
20789 * gimple.c (gimple_call_builtin_p): New function.
20790 * gimple.h (gimple_call_builtin_p): Declare.
20791 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
20792 to exit.
20793 (execute_warn_function_return): BUILT_IN_RETURN is return.
20794 (split_critical_edges): Return edges are not critical.
20795 (is_ctrl_altering_stmt): Builtin_in_return is altering.
20796 (gimple_verify_flow_info): Handle built_in_return.
20797 (execute_warn_function_return): Handle built_in_return.
20798 * ipa-pure-const.c (check_call): Ignore builtin_return.
20799
90a7788b
JJ
208002010-05-31 Jakub Jelinek <jakub@redhat.com>
20801
6a866023
JJ
20802 PR middle-end/44337
20803 * expr.c (expand_assignment): Don't store anything for out-of-bounds
20804 array accesses with non-MEM.
20805
90a7788b
JJ
20806 PR tree-optimization/44182
20807 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
20808 newly needs to end a bb is followed by debug stmts, instead return
20809 true from the function at the end.
20810 (maybe_move_debug_stmts_to_successors): New function.
20811 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
20812
877a19bf
KT
208132010-05-31 Kai Tietz <kai.tietz@onevision.com>
20814
20815 PR target/44161
308e51aa 20816 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
877a19bf 20817
c5d01958
EB
208182010-05-31 Eric Botcazou <ebotcazou@adacore.com>
20819
20820 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
20821 for nested functions in non-optimized compilation.
20822
a4c9bc15
RG
208232010-05-31 Richard Guenther <rguenther@suse.de>
20824
308e51aa 20825 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
a4c9bc15 20826
22983f55
JH
208272010-05-30 Jan Hubicka <jh@suse.cz>
20828
20829 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
20830
66a3e339
RG
208312010-05-30 Richard Guenther <rguenther@suse.de>
20832
20833 PR lto/42975
20834 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
20835 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
20836 no longer needed.
20837
83bf7f5e
IS
208382010-05-30 Iain Sandoe <iains@gcc.gnu.org>
20839
20840 * config/darwin.c (output_objc_section_asm_op): Add comment.
20841 (name_needs_quotes): Add '_' to list of valid comment chars.
20842 (machopic_output_function_base_name): Remove unneeded quotes.
20843 (darwin_encode_section_info): Adjust asm whitespace.
20844 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
20845 (ASM_OUTPUT_LOCAL): Ditto.
20846 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
20847 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
20848 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
308e51aa 20849
18fc5f44
EB
208502010-05-30 Eric Botcazou <ebotcazou@adacore.com>
20851
20852 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
20853 RS6000_OUTPUT_BASENAME unconditionally.
20854 (rs6000_output_function_epilogue): Likewise.
20855
babf1701
JH
208562010-05-30 Jan Hubicka <jh@suse.cz>
20857
20858 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
c5d01958 20859 nodes.
babf1701 20860
fbd767b1
RG
208612010-05-30 Richard Guenther <rguenther@suse.de>
20862
20863 * tree-cfg.c (verify_gimple_assign_single): Implement
20864 verification for COND_EXPR rhs.
20865
0a5fa5a1
JH
208662010-05-30 Jan Hubicka <jh@suse.cz>
20867
20868 * cgraph.h (cgraph_dump_file): Declare.
20869 * cgraphunit.c (cgraph_dump_file): Export.
308e51aa 20870 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
0a5fa5a1 20871
0b9c3a04
JH
208722010-05-30 Jan Hubicka <jh@suse.cz>
20873
20874 * dwarf2out.c (reference_to_unused,
18fc5f44
EB
20875 premark_types_used_by_global_vars_helper): Avoid creation of new
20876 varpool nodes.
0b9c3a04 20877
d56026c2
JH
208782010-05-30 Jan Hubicka <jh@suse.cz>
20879
20880 * cgraph.h (cgraph_node_cannot_return,
20881 cgraph_edge_cannot_lead_to_return): New functions.
20882 * cgraph.c (cgraph_node_cannot_return,
20883 cgraph_edge_cannot_lead_to_return): Use them.
20884 * ipa-pure-const.c (pure_const_names): New static var.
20885 (check_call): Handle calls not leading to return.
20886 (pure_const_read_summary): Dump info read.
308e51aa
UB
20887 (propagate): Dump info about propagation process; ignore side effects
20888 of functions not leading to exit; fix handling of pure functions.
d56026c2 20889
17f01631
JH
208902010-05-30 Jan Hubicka <jh@suse.cz>
20891
20892 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
20893 for tail call epilogues.
20894
f59292da
JH
208952010-05-30 Jan Hubicka <jh@suse.cz>
20896
20897 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
18fc5f44
EB
20898 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
20899 dump files.
f59292da 20900
8a6295ba
JH
209012010-05-29 Jan Hubicka <jh@suse.cz>
20902
18fc5f44
EB
20903 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
20904 node; remove references in node we no longer keep in cgrpah but need
20905 body of.
8a6295ba 20906
7baeea85
JH
209072010-05-29 Jan Hubicka <jh@suse.cz>
20908
20909 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
20910
482959e5
JDA
209112010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20912
20913 PR target/44165
20914 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
20915
24e47c76
JH
209162010-05-29 Jan Hubicka <jh@suse.cz>
20917
20918 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
20919 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
20920 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
20921 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
308e51aa 20922 debug_names_replaced_by, debug_update_ssa): Likewise.
24e47c76
JH
20923 * sbitmap.c (debug_sbitmap): Likewise.
20924 * genrecog.c (debug_decision, debug_decision_list): Likewise.
20925 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
20926 debug_tree_chain): Likewise.
20927 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
20928 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
a691bb08 20929 * optabs.c (debug_optab_libfuncs): Likewise.
24e47c76
JH
20930 (verify_loop_closed_ssa): Likewise.
20931 * value-prof.c (verify_histograms): Likewise.
20932 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
20933 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
20934 * cfghooks.c (verify_flow_info): Likewise.
20935 * fold-const.c (debug_fold_checksum): Likewise.
20936 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
20937 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
20938 Likewise.
20939 * omega.c (debug_omega_problem): Likewise.
20940 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
20941 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
20942 * dominance.c (verify_dominators, debug_dominance_info,
20943 debug_dominance_tree): Likewise.
20944 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
20945 * df_regno_debug, df_ref_debug,
20946 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
20947 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
20948 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
20949 * sel-sched.c (debug_state): Likewise.
18fc5f44
EB
20950 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
20951 Likewise.
24e47c76
JH
20952 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
20953 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
20954 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
18fc5f44
EB
20955 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
20956 Likewise.
24e47c76
JH
20957 * c-pretty-print.c (debug_c_tree): Likewise.
20958 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
18fc5f44
EB
20959 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
20960 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
24e47c76
JH
20961 * ebitmap.c (debug_ebitmap): Likewise.
20962 * function.c (debug_find_var_in_block_tree): Likewise.
20963 * print-rtl.c (debug_rtx): Likewise.
20964 (debug_rtx_count): Likewise.
20965 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
20966 * stor-layout.c (debug_rli): Likewise.
20967 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
18fc5f44
EB
20968 * tree-data-ref.c (debug_data_references,
20969 debug_data_dependence_relations, debug_data_reference,
20970 debug_data_dependence_relation, debug_rdg_vertex,
24e47c76
JH
20971 debug_rdg_component, debug_rdg): Likewise.
20972 * tree-affine.c (debug_aff): Likewise.
18fc5f44
EB
20973 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
20974 Likewise.
24e47c76
JH
20975 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
20976 * emit-rtl.c (verify_rtl_sharing): Likewise.
20977 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
20978 debug_value_expressions): Likewise.
20979 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
20980 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
20981 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
20982 * cfglayout.c (verify_insn_chain): Likewise.
20983 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
20984 debug_clast_stmt, debug_generated_program): Likewise.
20985 * ggc-page.c (debug_print_page_list): Likewise.
20986 * tree-ssa-ter.c (debug_ter): Likewise.
20987 * graphite-dependences.c (debug_pddr): Likewise.
20988 * sched-deps.c (debug_ds): Likewise.
20989 * tree-ssa.c (verify_ssa): Likewise.
20990 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
20991 debug_scattering_functions, debug_iteration_domains, debug_pdr,
18fc5f44
EB
20992 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
20993 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
24e47c76
JH
20994 * tree-inline.c (debug_find_tree): Likewise.
20995 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
20996 debug_ppl_powerset_matrix): Likewise.
20997 * var-tracking.c (debug_dv): Likewise.
20998 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
20999 * cfgloop.c (verify_loop_structure): Likewise.
21000 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
21001 * c-common.c (verify_sequence_points): Likewise.
21002 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
21003 debug_candidates, debug_rgn_dependencies): Likewise.
21004 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
21005 * debug_constraint_graph, debug_solution_for_var,
21006 debug_sa_points_to_info): Likewise.
21007 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
21008 Likewie.
21009 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
21010 debug_loops, debug_loop, debug_loop_num): Likewise.
21011 * passes.c (debug_pass): Likewise.
21012 (dump_properties): Likewise; add cfglayout property.
21013 (debug_properties): Likewise.
21014 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
21015 * varpool.c (debug_varpool): Likewise.
21016 * regcprop.c (debug_value_data): Likewise.
21017 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
21018 debug_immediate_uses_for): Likewise.
21019
f9897dfa
L
210202010-05-29 H.J. Lu <hongjiu.lu@intel.com>
21021
21022 PR bootstrap/44315
21023 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
21024 Filter out insn-flags.h.
21025
9eec9488
JH
210262010-05-29 Jan Hubicka <jh@suse.cz>
21027
21028 * cgraph.h (struct varpool_node_set_def,
21029 struct cgraph_node_set_def): Remove unused AUX pointer.
21030 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
21031 VEC_empty macro.
21032
eb598ce6
JH
210332010-05-29 Jan Hubicka <jh@suse.cz>
21034
21035 PR middle-end/44324
21036 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
21037
1be8f484
RG
210382010-05-29 Richard Guenther <rguenther@suse.de>
21039
21040 * lto-streamer.c (cached_bp): New global variable.
21041 (bitpack_create): Return the cached bitpack, if available.
21042 (bitpack_delete): Clear and cache the bitpack, if appropriate.
21043 (bp_pack_value): Remove redundant asserts.
21044
0247298c
SP
210452010-05-29 Sebastian Pop <sebastian.pop@amd.com>
21046
21047 PR middle-end/44306
21048 * tree-if-conv.c (is_true_predicate): New.
21049 (is_predicated): Use is_true_predicate.
21050 (add_to_predicate_list): Same. Do not use unshare_expr.
21051 (add_to_dst_predicate_list): Same.
21052
32ccbfac
SP
210532010-05-29 Sebastian Pop <sebastian.pop@amd.com>
21054
21055 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
21056 field on edges.
21057 (predicate_bbs): Same.
21058 (clean_predicate_lists): Same.
21059 (find_phi_replacement_condition): Do not AND the predicate from
21060 edge->aux.
21061
a41021ce
L
210622010-05-29 H.J. Lu <hongjiu.lu@intel.com>
21063
21064 PR bootstrap/44315
21065 * Makefile.in (build/gencondmd.o): Add a missing `\'.
21066
bbd07239
JDA
210672010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21068
21069 PR target/44261
21070 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
21071 (negdf2): Adjust expander pattern and use negdf2_slow.
21072 (negsf2): Likewise.
21073
25efe060
NF
210742010-05-29 Nathan Froyd <froydnj@codesourcery.com>
21075
18fc5f44
EB
21076 * basic-block.h (struct control_flow_graph): Move last_label_uid field
21077 up.
25efe060
NF
21078 * df.h (struct df_base_ref): Move regno field up.
21079 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
21080 * expr.h (struct separate_ops): Move location field up.
21081 * optabs.h (struct optab_d): Move libcall_basename field down.
21082 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
21083 * config/i386/i386.h (struct machine_function): Convert call_abi field
21084 into a bitfield. Move cfa field to the end of the structure.
21085
4cceafb8
JH
210862010-05-29 Jan Hubicka <jh@suse.cz>
21087
21088 * varpool.c (varpool_get_node): Fix lookup.
21089
65ea7e28
SB
210902010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21091
21092 * config/spu/spu-protos.h: Do not include rtl.h. Protect
21093 RTL specific prototypes with #ifdef RTX_CODE.
21094 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
21095 * config/spu/t-spu-elf: Fix dependencies.
21096
1a86e236
SB
21097 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
21098
d03a97e1
MS
210992010-05-29 Mike Stump <mikestump@comcast.net>
21100
a41021ce 21101 PR bootstrap/44315
d03a97e1
MS
21102 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
21103 TM_H when building to avoid dependency loops.
21104
f0c418dc
JH
211052010-05-29 Jan Hubicka <jh@suse.cz>
21106
54da01d2 21107 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
dedd9d05 21108 refs and body; not the whole node for masters of materialized clones.
f0c418dc 21109
5c5543af
MS
211102010-05-29 Mike Stump <mikestump@comcast.net>
21111
21112 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
21113
036546e5
JH
211142010-05-29 Jan Hubicka <jh@suse.cz>
21115
21116 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
21117 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
21118 use of clone_function_name.
308e51aa 21119 * cgraph.h (cgraph_create_virtual_clone,
036546e5
JH
21120 cgraph_function_versioning): update prototypes.
21121 (clone_function_name): Declare.
21122 * ipa-cp.c (ipcp_insert_stage): Update call of
21123 cgraph_create_virtual_clone.
21124 * omp-low.c (create_omp_child_function_name): Use
21125 cgraph_create_virtual_clone.
21126 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
21127 (cgraph_function_versioning): Take SUFFIX argument; produce new name
21128 and make decl local.
21129
3e097227
SB
211302010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21131
21132 * vec.h: Include statistics.h
21133 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
21134 with VEC_H.
21135
accf9ad6
SB
211362010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21137
3d25c396
UB
21138 * c-lex.c: Do not include c-tree.h.
21139 * c-pretty-print.c: Likewise.
21140 * c-opts.c: Likewise.
21141 * c-gimplify.c: Likewise.
accf9ad6
SB
21142 * c-common.c: Likewise.
21143 * c-dump.c: Likewise. Include c-common.h.
21144
59cc9210
SB
211452010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21146
21147 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
21148 before including diagnostic-core.h.
21149 (c_cpp_error): New prototype moved from c-tree.h.
21150 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
21151 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
21152 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
21153 (c_cpp_error): Prototype moved to c-common.h.
21154 * Makefile.in: Update dependency for C_COMMON_H.
21155
bffad7f1
SB
211562010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21157
21158 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
21159 * c-common.c (c_register_addr_space): Remove here.
21160 * c-decl.c (c_register_addr_space): Re-add here.
21161
d685a689
MS
211622010-05-28 Mike Stump <mikestump@comcast.net>
21163
21164 * config/darwin-c.c: Remove c-tree.h include.
21165
6afbc885
JM
211662010-05-28 Joseph Myers <joseph@codesourcery.com>
21167
21168 * gcc.c: Include diagnostic.h.
21169 (error_count): Remove. All users changed to use errorcount.
21170 (programname): Remove. All users changed to use progname.
21171 (fancy_abort, internal_error, fatal_error, error, warning, inform,
21172 fnotice): Remove.
21173 (execute): Don't include "Internal error" and bug reporting
21174 information in argument of internal_error call.
21175 (process_command): Don't increment error_count after calling
21176 perror_with_name.
21177 (input_filename): Rename to gcc_input_filename. All users
21178 changed.
21179 (main): Call diagnostic_initialize. Register delete_temp_files
21180 with atexit. Use seen_error to test for errors.
21181 * gcc.h: Include diagnostic-core.h.
21182 (fatal_error, error, warning): Remove.
21183 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
21184 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
21185 (gcc.o): Update dependencies.
21186
bdf0eb06
JL
211872010-05-28 Jeff Law <law@redhat.com>
21188
0896cc66
JL
21189 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
21190 functions.
21191 * ira.h (ira_bad_reload_regno): Declare
21192 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
21193
bdf0eb06
JL
21194 * ira-color.c (update_curr_costs): Free updated hard reg costs.
21195 (ira_reassign_conflict_allocnos): Remove bogus asserts.
21196 (allocno_reload_assign): Likewise.
21197
4a73490d
NF
211982010-05-28 Nathan Froyd <froydnj@codesourcery.com>
21199
21200 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
21201 build1_stat.
21202
86561bb6
RG
212032010-05-28 Richard Guenther <rguenther@suse.de>
21204
21205 PR lto/44312
21206 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
21207 Stream fixed-point constants mode.
21208 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
21209 and TYPE_PRECISION.
21210 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
21211 Stream fixed-point constants mode.
21212 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
21213 and TYPE_PRECISION.
21214
0a74c758
SP
212152010-05-28 Sebastian Pop <sebastian.pop@amd.com>
21216
21217 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
21218 only place it was called from.
21219 (number_of_latch_executions): Do not return chrec_dont_know when the
21220 may_be_zero is a runtime condition: instead, return a COND_EXPR
21221 including the may_be_zero condition.
21222 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
21223 of nb_iterations.
21224 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
21225 COND_EXPRs.
21226
e7cb8957
SP
212272010-05-28 Sebastian Pop <sebastian.pop@amd.com>
21228
21229 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
21230 generate COND_EXPRs for degenerate_phi_result.
21231
d10e857e
SP
212322010-05-28 Sebastian Pop <sebastian.pop@amd.com>
21233
21234 PR middle-end/44293
21235 * tree-if-conv.c (if_convertible_loop_p): Check the
21236 if-convertibility of phi nodes in non predicated BBs.
21237
6cffd02a
JM
212382010-05-28 Joseph Myers <joseph@codesourcery.com>
21239
21240 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
21241
2dec80c7
JM
212422010-05-28 Joseph Myers <joseph@codesourcery.com>
21243
21244 PR driver/15303
21245 * gcc.c (inform, warning, inform): New functions.
21246 (fatal_ice): Rename to internal_error; change cmsgid parameter to
21247 gmsgid. All callers changed.
dedd9d05 21248 (notice): Rename to fnotice; add parameter fp. All callers changed.
2dec80c7
JM
21249 (fatal_error): Rename to fatal_signal. All users changed.
21250 (fatal): Rename to fatal_error; change cmsgid parameter to
21251 gmsgid. All callers changed.
21252 (process_command): Use warning instead of error for warnings.
21253 (end_going_arg): Don't use _() around argument of error.
21254 (do_spec_1): Use inform for message from %n specs. Use warning
21255 instead of error for warnings.
21256 (main): Use inform for comparison messages. Use warning for
21257 message about unused linker input.
21258 (error): Increment error_count. Print "error: ".
21259 * gcc.h (fatal): Change to fatal_error.
21260 (warning): Declare.
21261 * config/darwin-driver.c (darwin_default_min_version): Use warning
21262 instead of fprintf for warnings.
dedd9d05 21263 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
2dec80c7 21264
dcd8b2ee
JB
212652010-05-28 Julian Brown <julian@codesourcery.com>
21266
21267 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
21268 (*thumb2_addsi3_compare0_scratch): New.
21269 * config/arm/constraints.md (Pv): New.
21270 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
21271 for ARM mode only.
21272 (*addsi3_compare0_scratch): Likewise.
21273
df24c2b8
JH
212742010-05-28 Jan Hubicka <jh@suse.cz>
21275
6c608111
EB
21276 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
21277 check.
21278 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
21279 only on local statics.
df24c2b8 21280
c3a9a336
IS
212812010-05-28 Iain Sandoe <iains@gcc.gnu.org>
21282
308e51aa 21283 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
c3a9a336 21284
47089d42
MK
212852010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
21286
21287 PR bootstrap/44314
21288 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
21289 (OPTION_GLIBC): Define.
21290
005d613b
JJ
212912010-05-28 Jakub Jelinek <jakub@redhat.com>
21292
cced5e7f
JJ
21293 PR debug/41048
21294 * dwarf2out.c (double_int_type_size_in_bits): New function.
21295 (round_up_to_align): Change first argument and return value to
21296 double_int.
21297 (field_byte_offset): Work internally on double_ints.
21298
005d613b
JJ
21299 PR target/43636
21300 * builtins.c (expand_movstr): Use a temporary pseudo instead
21301 of target even when target is not NULL and not const0_rtx, but
21302 fails movstr predicate.
21303 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
21304
7ca92787
JM
213052010-05-28 Joseph Myers <joseph@codesourcery.com>
21306
21307 * final.c (rest_of_clean_state): Use %m in errors instead of
21308 strerror (errno).
21309 * gengtype.c (read_input_list, close_output_files): Use xstrerror
21310 instead of strerror.
21311 * toplev.c (process_options): Use %m in errors instead of strerror
21312 (errno).
21313 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
21314 (errno).
21315
8bf85f21
UB
213162010-05-28 Uros Bizjak <ubizjak@gmail.com>
21317
21318 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
21319 (ix86_canonical_va_list_type): Make static. Add declaration.
21320 (ix86_enum_va_list): Make static. Reindent.
21321 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
21322 (ix86_canonical_va_list_type): Ditto.
21323 (ix86_enum_va_list): Ditto.
21324
b5611987
RG
213252010-05-28 Richard Guenther <rguenther@suse.de>
21326
21327 * lto-wrapper.c (run_gcc): With -save-temps generate a
21328 user-visible ltrans filename. Fixup ltrans unit numbering.
21329
40dcd88b
KT
213302010-05-28 Kai Tietz <kai.tietz@onevision.com>
21331
d4048208
KT
21332 * c-common.c (c_common_nodes_and_builtins): Replace use
21333 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
21334 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
21335 to ix86_enum_va_list.
21336 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
21337 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
21338 (TARGET_ENUM_VA_LIST_P): Add hook description.
21339 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
21340 * target.h (gcc_target): Add enum_va_list hook.
21341
40dcd88b
KT
21342 PR bootstrap/44299
21343 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
21344 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
21345 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
21346
1cb980a2
AM
213472010-05-28 Alan Modra <amodra@gmail.com>
21348
21349 PR target/44266
21350 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
21351 emit_library_call machinery to set up __tls_get_addr calls.
21352
b247e88a
AK
213532010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21354
21355 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
21356
ec4be2f4
DS
213572010-05-28 Dodji Seketeli <dodji@redhat.com>
21358
6c608111 21359 Revert fix for PR c++/44188
ec4be2f4
DS
21360 * c-common.c (is_typedef_decl): Revert the moving of this
21361 definition ...
21362 * tree.c (is_typedef_decl): ... here.
21363 (typdef_variant_p): Revert the moving of this definition
eed023cc 21364 here from cp/tree.c.
ec4be2f4
DS
21365 * c-common.h (is_typedef_decl): Revert the moving of this
21366 declaration ...
21367 * tree.h (is_typedef_decl): ... here.
21368 (typedef_variant_p): Revert the moving of this declaration here
eed023cc 21369 from cp/cp-tree.h
ec4be2f4
DS
21370 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
21371 (gen_tagged_type_die): Revert the splitting out of ...
21372 (gen_type_die_with_usage): ... this function. Revert the anonymous
21373 tagged type handling.
21374 (gen_typedef_die): Revert emitting DW_TAG_typedef for
21375 typedefs naming anonymous tagged types.
21376
3fe7b63c
SB
213772010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
21378
21379 * config/rs6000/rs6000-modes.def (PSImode): Delete.
21380
f6b5d695
SB
213812010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
21382
21383 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
21384 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
21385 throughout.
21386 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
21387 "xer" to "ca".
21388 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
21389 XER_REGS to CA_REGS throughout.
21390 * config/rs6000/rs6000.h: Same.
21391 (ADDITIONAL_REGISTER_NAMES): Add "xer".
21392 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
21393 that mode_iterator "P" is the size for arithmetic carries as well.
21394 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
21395
47027bf3
JJ
213962010-05-28 Jakub Jelinek <jakub@redhat.com>
21397
21398 PR bootstrap/44255
21399 * combine.c (struct rtx_subst_pair): Define unconditionally.
21400 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
21401 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
21402 Call make_compound_operation on pair->to.
21403 (propagate_for_debug): Don't call make_compound_operation here.
21404 Always use simplify_replace_fn_rtx.
21405
214062010-05-27 Sterling Augustine <sterling@tensilica.com>
1b408ba1
SA
21407
21408 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
21409 * config/xtensa/xtensa.c (override_options): Check
21410 TARGET_FORCE_NO_PIC and set flag_pic.
21411 * config/xtensa/xtensa.opt: Document -mforce-no-pic
21412
214132010-05-27 Kai Tietz <kai.tietz@onevision.com>
21414
0bc25dd0
KT
21415 PR bootstrap/44299
21416 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
21417 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
21418
1da2ed5f
JM
214192010-05-27 Joseph Myers <joseph@codesourcery.com>
21420
21421 * diagnostic-core.h: New. Contents moved from diagnostic.h and
21422 toplev.h.
21423 * diagnostic.c: Don't include toplev.h.
21424 (progname): Define. Moved from toplev.c.
21425 (seen_error): New function.
21426 * diagnostic.h: Include diagnostic-core.h.
21427 (diagnostic_t, emit_diagnostic): Don't declare here.
21428 * toplev.c (progname): Move to toplev.c.
21429 (emit_debug_global_declarations, compile_file, finalize,
21430 do_compile, toplev_main): Use seen_error.
21431 * toplev.h: Include diagnostic-core.h.
21432 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
21433 internal_error, warning, warning_at, error, error_n, error_at,
21434 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
21435 verbatim, fnotice, progname): Move to diagnostic-core.h.
21436 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
21437 (expand_builtin_expect): Use seen_error.
21438 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
21439 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
21440 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
21441 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
21442 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
21443 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
21444 errorcount for errors.
21445 * c-opts.c (c_common_finish): Use seen_error.
21446 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21447 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
21448 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
21449 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
21450 (get_coverage_counts): Use seen_error.
21451 * dwarf2out.c (dwarf2out_finish): Use seen_error.
21452 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
21453 gimplify_body): Use seen_error.
21454 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
21455 * ipa-pure-const.c (gate_pure_const): Use seen_error.
21456 * ipa-reference.c (gate_reference): Use seen_error.
21457 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
21458 * lambda-code.c: Include diagnostic-core.h instead of
21459 diagnostic.h.
21460 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21461 * lto-compress.c: Include diagnostic-core.h instead of
21462 diagnostic.h.
21463 * lto-section-in.c: Include diagnostic-core.h instead of
21464 diagnostic.h.
21465 * lto-streamer-out.c: Include diagnostic-core.h instead of
21466 diagnostic.h.
21467 * lto-streamer.c: Include diagnostic-core.h instead of
21468 diagnostic.h.
21469 (gate_lto_out): Use seen_error.
21470 * matrix-reorg.c: Include diagnostic-core.h instead of
21471 diagnostic.h.
21472 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
21473 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
21474 (gate_expand_omp, lower_omp_1): Use seen_error.
21475 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
21476 (rest_of_decl_compilation, rest_of_type_compilation,
21477 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
21478 * tree-cfg.c (label_to_block_fn): Use seen_error.
21479 * tree-inline.c (optimize_inline_calls): Use seen_error.
21480 * tree-mudflap.c (mudflap_finish_file): Use
21481 seen_error.
21482 * tree-optimize.c (gate_all_optimizations,
21483 gate_all_early_local_passes, gate_all_early_optimizations): Use
21484 seen_error.
21485 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
21486 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
21487 (varpool_remove_unreferenced_decls,
21488 varpool_assemble_pending_decls): Use seen_error.
21489 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
21490 (TOPLEV_H, DIAGNOSTIC_H): Update.
21491 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
21492 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
21493 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
21494 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
21495 coverage.o, lambda-code.o): Update dependencies.
21496
fe08ec12
DS
214972010-05-25 Dodji Seketeli <dodji@redhat.com>
21498
21499 PR c++/44188
21500 * c-common.c (is_typedef_decl): Move this definition ...
21501 * tree.c (is_typedef_decl): ... here.
eed023cc 21502 (typdef_variant_p): Move definition here from cp/tree.c.
fe08ec12
DS
21503 * c-common.h (is_typedef_decl): Move this declaration ...
21504 * tree.h (is_typedef_decl): ... here.
eed023cc 21505 (typedef_variant_p): Move declaration here from cp/cp-tree.h
fe08ec12
DS
21506 * dwarf2out.c (is_naming_typedef_decl): New function.
21507 (gen_tagged_type_die): Split out of ...
21508 (gen_type_die_with_usage): ... this function. When an anonymous
21509 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
21510 is emitted for the typedef.
21511 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
21512 anonymous tagged types.
21513
b042534c
JM
215142010-05-27 Jason Merrill <jason@redhat.com>
21515
21516 * print-tree.c (debug_vec_tree): New fn.
21517 (print_vec_tree): New fn.
21518 * tree.h: Declare them.
21519 * gdbinit.in (pvt): New command.
21520
21521 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
21522
21523 * gdbinit.in (pdd): New command.
21524
cdc029b9
JH
215252010-05-27 Jan Hubicka <jh@suse.cz>
21526
21527 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
21528 (update_caller_keys): Return early if there are no callers;
21529 only update fibheap when decresing the key.
21530 (update_callee_keys): Avoid recursion.
21531 (decide_inlining_of_small_functions): When badness does not match;
21532 re-insert into fibheap.
21533
7a3b4887
SB
215342010-05-27 Steven Bosscher <steven@gcc.gnu.org>
21535
21536 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
21537 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
21538 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
21539 (ALL_HOST_OBJS): Now a union of the above two.
21540 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
21541 all files in ALL_HOST_FRONTEND_OBJS.
21542 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
21543
21544 * c-common.c: Pretend to be a backend file by undefining
21545 IN_GCC_FRONTEND (still need rtl.h here).
21546
753d358d
JH
215472010-05-27 Jan Hubicka <jh@suse.cz>
21548
21549 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
21550 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
21551
88302d54
JH
215522010-05-27 Jan Hubicka <jh@suse.cz>
21553
21554 * sched-ebb.c: Rename struct deps to struct deps_desc.
21555 * ddg.c: Likewise.
21556 * sel-sched-ir.c: Likewise.
21557 * sched-deps.c: Likewise.
21558 * sched-int.h: Likewise.
21559 * sched-rgn.c: Likewise.
21560
f4a4b582 215612010-05-27 Jon Beniston <jon@beniston.com>
9bb81453
JB
21562
21563 PR 43726
308e51aa 21564 * config/lm32/lm32.h: Remove definition of
9bb81453
JB
21565 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
21566
7951d88a
EB
215672010-05-27 Eric Botcazou <ebotcazou@adacore.com>
21568
21569 PR lto/44230
21570 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
21571
fde9c428
RG
215722010-05-27 Richard Guenther <rguenther@suse.de>
21573
21574 PR tree-optimization/44284
21575 * tree-vect-stmts.c (vectorizable_assignment): Handle
21576 sign-changing conversions as simple copy.
21577
3714764d
MK
215782010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
21579
21580 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
21581 Bionic C library.
21582 (__gthread_active_p): Check for pthread_create if compiling against
21583 Bionic C library.
21584
51b9db92
MK
215852010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
21586
21587 Support compilation for Android platform. Reimplement -mandroid.
21588
21589 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
21590 (*android*): Set ANDROID_DEFAULT.
21591 (arm*-*-linux*): Include linux-android.h.
21592 (arm*-*-eabi*): Don't include previous -mandroid implementation.
21593 * config/arm/eabi.h: Remove, move Android-specific parts ...
21594 * config/linux-android.h: ... here. New file.
21595 * config/arm/eabi.opt: Rename to ...
21596 * config/linux-android.opt: ... this.
21597 (mandroid): Allow -mno-android option. Initialize based on
21598 ANDROID_DEFAULT.
21599 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
21600 Move logic to corresponding LINUX_TARGET_* macros.
21601 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
21602 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
21603 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
21604 Android definitions.
21605 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
21606 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
21607 Document.
21608
74c70253
MK
216092010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
21610
21611 Add support for Bionic C library
21612
21613 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
21614 macro.
21615 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
21616 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
21617
21618 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
21619 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
21620 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
21621 to support multiple C libraries. Handle Bionic.
21622 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
21623 (BIONIC_DYNAMIC_LINKER64): Define.
21624 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
21625 Update.
21626 (TARGET_HAS_SINCOS): Enable for Bionic.
21627
21628 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
21629 the last option specified on command line take effect.
21630 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
21631 (mbionic): New.
21632 (mglibc, muclibc): Update.
21633
21634 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
21635 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
21636 DEFAULT_LIBC.
21637
21638 * doc/invoke.texi (-mglibc, -muclibc): Update.
21639 (-mbionic): Document.
21640
3ef0694c
UW
216412010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21642
21643 * c-common.h (c_register_addr_space): Add prototype.
21644 (ADDR_SPACE_KEYWORD): Remove.
21645 * c-common.c (c_register_addr_space): New function.
21646 (c_addr_space_name): Reimplement.
21647 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
21648
21649 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
21650 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
21651
21652 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
21653 Remove TARGET_ADDR_SPACE_KEYWORDS.
21654
447924ef
JM
216552010-05-27 Joseph Myers <joseph@codesourcery.com>
21656
21657 * input.c: New file.
21658 * input.h (main_input_filename): Move declaration to toplev.h.
21659 * toplev.c (input_location, line_table): Move to input.c
21660 * toplev.h (main_input_filename): Move declaration from input.h.
21661 * tree.c (expand_location): Move to input.c.
21662 * Makefile.in (OBJS-common): Add input.o.
21663 (input.o): Add dependencies.
21664
62116e60
RG
216652010-05-27 Richard Guenther <rguenther@suse.de>
21666
21667 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
21668 for non-existant files.
21669 (fork_execute): Mark args_name file as deleted.
21670
64c31785
KT
216712010-05-27 Kai Tietz <kai.tietz@onevision.com>
21672
21673 PR bootstrp/44287
21674 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
21675 (narrow_signed_type): Likewise.
21676
e466e2ce
JH
216772010-05-26 Jan Hubicka <jh@suse.cz>
21678
21679 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
21680 edge only when checking is enabled; check using former_clone_of;
21681 check inline clones too.
21682 (cgraph_materialize_clone): Record former_clone_of pointer.
21683 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
21684 combining redirections; dump args_to_skip bitmap
21685 (cgraph_materialize_all_clones): Do no redirection here.
21686 * ipa-inline.c (inline_transform): Do redirection here.
21687 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
21688 cheking only).
21689
e62d5d9f
SB
216902010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21691
21692 * config/avr/avr-c.c: Do not include regs.h.
21693 Include cpplib.h for cpp_define and tree.h for c-common.h.
21694 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
21695 * config/avr/t-avr: Fix dependencies for avr-c.o.
21696
d477d1fe
SB
216972010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21698
21699 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
21700 string instead of SYMBOL_REF rtx.
21701 * rtl.h (set_stack_check_libfunc): Move prototype from here...
21702 * libfuncs.h: ...to here. Adjust for explow.c change.
21703
ab9b814d
JM
217042010-05-26 Joseph Myers <joseph@codesourcery.com>
21705
21706 * pretty-print.c: Don't include ggc.h.
21707 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
21708 (identifier_to_locale): Use them for allocation.
21709 * pretty-print.h (identifier_to_locale_alloc,
21710 identifier_to_locale_free): Declare.
21711 * toplev.c (alloc_for_identifier_to_locale): New.
21712 (general_init): Set identifier_to_locale_alloc and
21713 identifier_to_locale_free.
21714 * Makefile.in (pretty-print.o): Update dependencies.
21715
c9549072
EB
217162010-05-26 Eric Botcazou <ebotcazou@adacore.com>
21717
21718 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
21719 pointer types if they have different alignment or mode.
21720
bf44d792
AS
217212010-05-26 Anatoly Sokolov <aesok@post.ru>
21722
21723 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21724 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21725 * config/sparc/sparc-protos.h (function_value): Remove declaration.
21726 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
21727 sparc_function_value_regno_p): New functions.
21728 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21729 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21730 (function_value): Rename to...
21731 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
21732 argument to 'outgoing'.
21733 (function_arg_record_value, function_arg_union_value,
21734 function_arg_vector_value): Update comment.
21735
4ad2e1ec
EB
217362010-05-26 Eric Botcazou <ebotcazou@adacore.com>
21737
21738 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
21739 (fde_needed_for_eh_p): New predicate.
21740 (output_call_frame_info): Use it throughout to decide whether FDEs
21741 are needed for EH purpose.
21742 (dwarf2out_begin_prologue): Reorder assignments.
21743
4204425f
SP
217442010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21745
21746 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
21747 special case loop->header.
21748 (is_predicated): New.
21749 (if_convertible_loop_p): Call it.
21750
e1449456
SP
217512010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21752
21753 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
21754 iterator in parameter. Do not generate code during the analysis.
21755 (tree_if_convert_cond_stmt): Removed.
21756 (tree_if_convert_stmt): Removed.
21757 (predicate_bbs): New.
21758 (if_convertible_loop_p): Call predicate_bbs.
21759 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
21760 now contains all the analysis part.
21761
76b84776
SP
217622010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21763
21764 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
21765 statements in the analysis part.
21766 (tree_if_convert_stmt): Update comment.
21767 (remove_conditions_and_labels): New.
21768 (combine_blocks): Call remove_conditions_and_labels.
21769 (tree_if_conversion): Update comment.
21770
bc447143
SP
217712010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21772
21773 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
21774 than 2 predecessors or more than 2 successors.
21775
6d795034
SP
217762010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21777
21778 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
21779 of loops in which the data dependence analysis fails.
21780
d7309618
SP
217812010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21782
21783 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
21784 CDI_POST_DOMINATORS.
21785 (tree_if_conversion): Same.
21786
7b371e73
SP
217872010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21788
21789 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
21790
4ab71973
SP
217912010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21792
21793 * tree-if-conv.c: Update copyright years. Fix comments.
21794 Fix indentation.
21795
a6766312
KT
217962010-05-26 Kai Tietz <kai.tietz@onevision.com>
21797
21798 * builtin-types.def (BT_INT128): New primitive type.
21799 (BT_UINT128): Likewise.
21800 * c-common.c (c_common_r): Add __int128 keyword.
21801 (c_common_type_for_size): Handle __int128.
21802 (c_common_type_for_mode): Likewise.
21803 (c_common_signed_or_unsigned_type): Likewise.
21804 (c_common_nodes_and_builtins): Add builtin type
21805 if target supports 128-bit integer scalar.
21806 * c-common.h (enum rid): Add RID_INT128.
21807 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
21808 if target supports 128-bit integer scalar.
ade52657 21809 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
a6766312
KT
21810 (finish_declspecs): Likewise.
21811 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
21812 (c_token_starts_declspecs): Likewise.
21813 (c_parser_declspecs): Likewise.
21814 (c_parser_attributes): Likewise.
21815 (c_parser_objc_selector): Likewise.
21816 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
21817 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
21818 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
21819 * tree.c (make_or_reuse_type): Likewise.
21820 (make_unsigned_type): Likewise.
21821 (build_common_tree_nodes_2): Likewise.
21822 * tree.h (enum integer_type_kind): Add itk_int128 and
21823 itk_unsigned_int128.
ade52657 21824 (int128_integer_type_node): New define.
a6766312 21825 (int128_unsigned_type_node): New define.
a6766312
KT
21826 * doc/extend.texi: Add documentation about __int128 type.
21827
880ad25f
RG
218282010-05-26 Richard Guenther <rguenther@suse.de>
21829
21830 * tree-ssa-sccvn.c (copy_nary): Adjust.
21831 (copy_phis): Rename to ...
21832 (copy_phi): ... this. Adjust.
21833 (copy_references): Rename to ...
21834 (copy_reference): ... this. Adjust.
21835 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
21836 result into the valid table.
21837
52642070
SB
218382010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21839
21840 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
21841 insn-config.h, insn-codes.h, recog.h, and optabs.h.
21842
58cd6303
LB
218432010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21844
ade52657 21845 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
58cd6303 21846
c3a02647
RG
218472010-05-26 Richard Guenther <rguenther@suse.de>
21848
21849 * opts.c (common_handle_option): Handle OPT_Ofast.
21850
5f0f4a3b
JM
218512010-05-26 Joseph Myers <joseph@codesourcery.com>
21852
21853 * diagnostic.c: Don't include opts.h.
21854 (permissive_error_option): Define.
21855 (diagnostic_initialize): Take n_opts parameter. Allocate memory
21856 for classify_diagnostic. Don't use memset for
21857 classify_diagnostic. Initialize new and recently added fields.
21858 (diagnostic_classify_diagnostic): Use context->n_opts instead of
21859 N_OPTS.
21860 (diagnostic_report_diagnostic): Pass context parameter to
21861 diagnostic_report_warnings_p. Use option_enabled and option_name
21862 hooks from context.
21863 (emit_diagnostic): Use permissive_error_option.
21864 (permerror): Likewise.
21865 * diagnostic.h: Don't include options.h.
21866 (struct diagnostic_context): Add n_opts, opt_permissive,
21867 inhibit_warnings, warn_system_headers, option_enabled and
21868 option_name fields. Change classify_diagnostic to a pointer.
21869 * opts-diagnostic.h: New file.
21870 * opts.c: Include opts-diagnostic.h.
21871 (common_handle_option): Set global_dc fields for -Wfatal-errors,
21872 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
21873 (option_name): New function.
21874 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
21875 (c_common_handle_option): Set global_dc->permissive for
21876 -fpermissive.
21877 * c-common.c (c_cpp_error): Save and restore
21878 global_dc->warn_system_headers, not variable warn_system_headers.
21879 * toplev.c: Include opts-diagnostic.h.
21880 (general_init): Update call to diagnostic_initialize. Set
21881 global_dc->show_column, global_dc->option_enabled and
21882 global_dc->option_name.
21883 (process_options): Don't set global_dc fields here.
21884 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
21885 (diagnostic.o, opts.o, toplev.o): Update dependencies.
21886
f024f85d
HS
218872010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
21888
21889 * config/picochip/picochip.md (movsi): Split a movsi from a
21890 const after reload.
21891
e4dfaf72
LB
218922010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21893
21894 * ggc-zone.c: Update copyright year.
21895 (poison_region): Mark memory for Valgrind as undefined before
21896 memset () call and inaccessible afterwards.
21897 (ggc_pch_total_size): Change type of i to int.
21898
218992010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21900
21901 * ggc-common.c (ggc_free_overhead): Allow empty slot.
21902
219032010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21904
21905 * ggc-common.c: Update copyright year.
21906 (ggc_rlimit_bound): Remove prototype. Compile only if
21907 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
21908 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
21909 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
21910 (ggc_min_heapsize_heuristic): Likewise.
21911
630d3fad
RG
219122010-05-26 Richard Guenther <rguenther@suse.de>
21913
21914 PR rtl-optimization/44164
21915 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
21916 no-common access-path disambiguation.
21917 (indirect_ref_may_alias_decl_p): Adjust.
21918 (indirect_refs_may_alias_p): Likewise.
21919 (refs_may_alias_p_1): Likewise.
21920
b9b6c084
SB
219212010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21922
21923 * c-typeck.c: Do not include expr.h.
21924
d347d97e
SB
219252010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21926
21927 * rtl.h (decl_default_tls_model): Move prototype from here...
21928 * output.h: ...to here.
21929 * c-decl.c: Do not include rtl.h.
21930 * c-pragma.c: Likewise.
21931 * c-parser.c: Likewise.
21932 * c-gimplify.c: Likewise. And also not hard-reg-set.
21933 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
21934 FIXME note for it. Add a FIXME note for expr.h.
21935 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
21936 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
21937 defined.
21938
0d65bdbb
JJ
219392010-05-26 Jakub Jelinek <jakub@redhat.com>
21940
21941 PR target/44199
21942 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
21943 or total_size is larger than red zone size for non-V4 ABI, emit a
21944 stack_tie resp. frame_tie insn before stack pointer restore.
21945 * config/rs6000/rs6000.md (frame_tie): New insn.
21946
8f4f502f
EB
219472010-05-25 Eric Botcazou <ebotcazou@adacore.com>
21948
21949 * function.h (struct function): Add can_throw_non_call_exceptions bit.
21950 * lto-streamer-in.c (input_function): Stream it in.
21951 * lto-streamer-out.c (output_function): Stream it out.
21952 * function.c (allocate_struct_function): Set it.
21953 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
21954 for flag_non_call_exceptions.
21955 * cfgbuild.c (control_flow_insn_p): Likewise.
21956 (make_edges): Likewise.
21957 * cfgexpand.c (expand_stack_alignment): Likewise.
21958 * combine.c (distribute_notes): Likewise.
21959 * cse.c (cse_extended_basic_block): Likewise.
21960 * except.c (insn_could_throw_p): Likewise.
21961 * gcse.c (simple_mem): Likewise.
21962 * ipa-pure-const.c (check_call): Likewise.
21963 (check_stmt ): Likewise.
21964 * lower-subreg.c (lower-subreg.c): Likewise.
21965 * optabs.c (emit_libcall_block): Likewise.
21966 (prepare_cmp_insn): Likewise.
21967 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
21968 * postreload.c (rest_of_handle_postreload): Likewise.
21969 * reload1.c (reload_as_needed): Likewise.
21970 (emit_input_reload_insns): Likewise.
21971 (emit_output_reload_insns): Likewise.
21972 (fixup_abnormal_edges): Likewise.
21973 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
21974 * store-motion.c (find_moveable_store): Likewise.
21975 * tree-eh.c (stmt_could_throw_p): Likewise.
21976 (tree_could_throw_p): Likewise.
21977 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
21978 * config/arm/arm.c (arm_expand_prologue): Likewise.
21979 (thumb1_expand_prologue): Likewise.
21980 * config/rx/rx.md (cbranchsf4): Likewise.
21981 (cmpsf): Likewise.
21982 * config/s390/s390.c (s390_emit_prologue): Likewise.
21983 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
21984 (inline_forbidden_into_p): New predicate.
21985 (expand_call_inline): Use it to forbid inlining.
21986 (tree_can_inline_p): Likewise.
21987
c962b78d
SB
219882010-05-25 Steven Bosscher <steven@gcc.gnu.org>
21989
21990 * config/i386/i386-c.c: Do not include rtl.h.
21991 * config/i386/t-i386: Update dependencies.
21992
afb67dc2
SB
219932010-05-25 Steven Bosscher <steven@gcc.gnu.org>
21994
21995 * attribs.c: Do not include rtl.h.
21996 * Makefile.in: Update dependencies.
21997
e233a3b2
AS
219982010-05-25 Anatoly Sokolov <aesok@post.ru>
21999
22000 * double-int.h (double_int_and): New.
22001 * combine.c (try_combine): Clean up, use double_int_* and
22002 immed_double_int_const functions.
22003
bc492e47
RO
220042010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22005
22006 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
22007 stderr to /dev/null instead of grep -q.
22008 * configure: Regenerate.
22009
245763e3
SB
220102010-05-25 Steven Bosscher <steven@gcc.gnu.org>
22011
22012 * Makefile.in (EXCEPT_H): Fix typo.
22013
f4a4b582 220142010-05-25 Vladimir Makarov <vmakarov@redhat.com>
4ac293e2
VM
22015
22016 * ira-build.c (update_conflict_hard_reg_costs): New.
22017 (ira_build): Call update_conflict_hard_reg_costs.
22018
60a5d78a
JJ
220192010-05-25 Jakub Jelinek <jakub@redhat.com>
22020
bb9862c6
JJ
22021 PR debug/41371
22022 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
22023 ENABLE_CHECKING.
22024 (intersect_loc_chains): Walk the s2var's loc_chain together
22025 with s1node chain as long as the locations are equal, don't
22026 call find_loc_in_1pdv in that case.
22027
60a5d78a
JJ
22028 PR debug/42801
22029 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
22030 (copy_bind_expr): ... instead of here.
22031 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
22032 if the block hasn't been remapped.
22033 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
22034 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
22035
c946a318
RG
220362010-05-25 Richard Guenther <rguenther@suse.de>
22037
22038 PR middle-end/44069
22039 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
22040 out-of-bounds array accesses.
22041
50ee30d5
RG
220422010-05-25 Richard Guenther <rguenther@suse.de>
22043
22044 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
22045 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
22046 (run_gcc): Re-organize to make cleanup easier.
22047
ca1930ce
AK
220482010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22049
22050 * config/s390/s390.c (optimization_options): Fix and move the
22051 flag_prefetch_loop_arrays override ...
22052 (override_options): ... here.
22053
a13812e2
JM
220542010-05-25 Joseph Myers <joseph@codesourcery.com>
22055
22056 * diagnostic.c: Don't include plugin.h.
22057 (diagnostic_report_diagnostic): Don't handle plugins specially
22058 here. Pass context to internal_error callback.
22059 * diagnostic.h (struct diagnostic_context): Add context parameter
22060 to internal_error callback.
ade52657 22061 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
a13812e2
JM
22062 * plugin.h (struct diagnostic_context): Declare.
22063 (warn_if_plugins, plugins_internal_error_function): Declare.
22064 * toplev.c (general_init): Set global_dc->internal_error.
22065 * Makefile.in (diagnostic.o): Update dependencies.
22066
a691bb08 220672010-05-25 Iain Sandoe <iains@gcc.gnu.org>
9a2d05e0
IS
22068
22069 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
22070 * config/rs6000/t-darwin64: New.
22071 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
22072 build crt2.
22073
8fde8b40
CB
220742010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
22075
22076 PR 44203
22077 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
22078 match the original (and intended) behaviour before r159557. This
22079 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
22080 in two ways.
22081
be6d3f0e
RG
220822010-05-25 Richard Guenther <rguenther@suse.de>
22083
22084 * doc/invoke.texi: Document -Ofast.
22085 * target.h (struct gcc_target): Add handle_ofast.
22086 * target-def.h (TARGET_HANDLE_OFAST): Add.
22087 (TARGET_INITIALIZER): Adjust.
ade52657 22088 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
be6d3f0e
RG
22089 * common.opt (Ofast): Add.
22090
ac5eda13
PB
220912010-05-25 Paolo Bonzini <bonzini@gnu.org>
22092
22093 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
22094 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
22095
220962010-05-25 Paolo Bonzini <bonzini@gnu.org>
6597fd0b
PB
22097
22098 PR target/43610
22099 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
22100 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
22101 false_rtx. Use false_rtx to compute the correct *ptest for reversed
22102 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
22103
9d4545b2
JJ
221042010-05-25 Jakub Jelinek <jakub@redhat.com>
22105
22106 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
22107 DW_OP_minus with negated offset instead of DW_OP_plus.
ade52657 22108 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
9d4545b2 22109
ee4e1706
WG
221102010-05-25 Wei Guozhi <carrot@google.com>
22111
22112 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
22113 tst instruction and a new alternative.
22114 * config/arm/constraints.md (Pu): New constraint.
22115
427188d5
SP
221162010-05-24 Sebastian Pop <sebastian.pop@amd.com>
22117
22118 * function.c (assign_stack_local_1): Initialize variable
22119 to avoid warning when bootstrapping at -O3.
22120
96ee6e08
SB
221212010-05-24 Steven Bosscher <steven@gcc.gnu.org>
22122
22123 * configure.ac (all_lang_makefiles): Remove everything related to it.
22124 * configure: Regenerate.
22125 * Makefile.in: Fix reference to ada Make-lang.in.
22126 Remove support for LANG_MAKEFILES.
22127
1ab55d69
MK
221282010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
22129 Sandra Loosemore <sandra@codesourcery.com>
22130
22131 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
22132 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
22133 description. Add arm_neon_fp16_ok.
22134 (Add Options): Add arm_neon and arm_neon_fp16.
22135
243fbddd
JM
221362010-05-24 Joseph Myers <joseph@codesourcery.com>
22137
22138 * diagnostic.c: Don't include flags.h.
22139 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
ade52657 22140 context parameters. Check flags in the context passed as a parameter.
243fbddd
JM
22141 (diagnostic_build_prefix): Add context parameter. Check
22142 show_column flag in context.
ade52657
UB
22143 (diagnostic_action_after_output): Check fatal_errors flag in context.
22144 (diagnostic_report_current_module): Check show_column flag in context.
243fbddd
JM
22145 (default_diagnostic_starter): Update call to
22146 diagnostic_build_prefix.
ade52657 22147 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
243fbddd
JM
22148 (emit_diagnostic): Pass context to permissive_error_kind.
22149 (permerror): Pass context to permissive_error_kind.
22150 * diagnostic.h (struct diagnostic_context): Add show_column,
22151 pedantic_errors, permissive and fatal_errors fields.
22152 (diagnostic_build_prefix): Update prototype.
22153 * langhooks.c
22154 * toplev.c (process_options): Set flags in global_dc from
22155 flag_show_column, flag_pedantic_errors, flag_permissive,
22156 flag_fatal_errors.
22157 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
22158 to diagnostic_build_prefix.
22159 * Makefile.in (diagnostic.o): Update dependencies.
22160
42f40af4
L
221612010-05-24 H.J. Lu <hongjiu.lu@intel.com>
22162
22163 * config/i386/ia32intrin.h (__crc32q): Define only if
22164 __SSE4_2__ is defined.
22165
1db0429a
IS
221662010-05-24 Iain Sandoe <iains@gcc.gnu.org>
22167
22168 PR target/44132
22169 PR middle-end/43602
22170 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
22171 DECL_VISIBILITY_SPECIFIED.
22172 (emutls_decl): Set DECL_PRESERVE_P and copy
22173 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
22174 (emutls_finalize_control_var): New callback.
22175 (emutls_finish): Finalize emutls control variables.
ade52657 22176 * toplev.c (compile_file): Move the call to emutls_finish ()
1db0429a
IS
22177 before varpool_assemble_pending_decls ().
22178
e72e2da4
DG
221792010-05-24 Daniel Gutson <dgutson@codesourcery.com>
22180
22181 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
22182 added to the preprocessor condition.
22183
b748fbd6
PB
221842010-05-24 Paul Brook <paul@codesourcery.com>
22185
22186 * gengtype-lex.l: Add HARD_REG_SET.
22187 * expr.c (expand_expr_real_1): Record writes to hard registers.
22188 * function.c (rtl_data): Add asm_clobbers.
22189 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
22190 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
22191 Use crtl->asm_clobbers.
22192
9888e9cf
RW
221932010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22194
22195 * doc/makefile.texi (Makefile): Mention stages 'profile'
22196 and 'feedback' for profiledbootstrap.
22197
cf5b989e
L
221982010-05-23 H.J. Lu <hongjiu.lu@intel.com>
22199
22200 PR target/44245
22201 * config/i386/i386.c (def_builtin): Properly check
22202 OPTION_MASK_ISA_64BIT.
22203
dc5027f4
JM
222042010-05-23 Joseph Myers <joseph@codesourcery.com>
22205
22206 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
22207 typedefs with different but compatible types. Allow duplicate
22208 typedefs with the same type except for pedantic non-C1X, but give
22209 warning for variably modified types.
22210 * c-typeck.c (tagged_types_tu_compatible_p,
22211 function_types_compatible_p, type_lists_compatible_p,
22212 comptypes_internal): Add parameter different_types_p; set
22213 *different_types_p for different but compatible types. All
22214 callers changed.
22215 (comptypes_check_different_types): New.
22216 * c-tree.h (comptypes_check_different_types): Declare.
22217
2d1a4cc1
SB
222182010-05-23 Steven Bosscher <steven@gcc.gnu.org>
22219
ade52657 22220 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
2d1a4cc1
SB
22221 * jump.c: Include basic-block.h.
22222 * profile.c: Likewise.
22223 * tree-profile.c: Likewise.
22224 * coverage.c: Likewise.
22225 * basic-block.h (optimize_function_for_size_p): Move to function.h.
22226 (optimize_function_for_speed_p): Likewise.
22227 * function.h (optimize_function_for_size_p,
22228 optimize_function_for_speed_p): Moved here from basic-block.h.
539bac37 22229 * Makefile.in: Update dependencies.
2d1a4cc1 22230
5767217f
RW
222312010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22232
22233 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
22234 before calling make; allow override through $MAKE.
22235 * doc/invoke.texi (Optimize Options): Document override.
22236
7a955d62
AS
222372010-05-23 Anatoly Sokolov <aesok@post.ru>
22238
22239 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
22240 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22241 (rs6000_mode_dependent_address_ptr): Make static.
22242 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22243 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
22244 Remove.
22245
362ff46e 222462010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
7b37a805
ML
22247
22248 PR target/43869
22249 * config/i386/i386.c: Make sure that the correct regparm is passed.
22250
9ecb1730
SB
222512010-05-23 Steven Bosscher <steven@gcc.gnu.org>
22252
22253 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
22254 * sbitmap.c: ...to here to internalize sbitmap element access.
22255 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
22256 Explain why basic-block.h is included.
22257 * function.h: Include tm.h for CUMULATIVE_ARGS.
22258 * Makefile.in: Update dependencies.
22259
7a8cba34
SB
222602010-05-22 Steven Bosscher <steven@gcc.gnu.org>
22261
22262 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
22263 New core types.
22264 * sbitmap.h (struct sbitmap_def): Do not typedef here.
22265 * sbitmap.c: Include sbitmap.h.
22266 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
22267 hard-reg-set.h. Split everything related to regsets out from here...
22268 * regset.h: ...to here. New file.
22269 * df.h: Include regset.h and sbitmap.h.
22270 * tree-flow.h: Likewise.
22271 * cfgloop.h: Likewise.
22272 * except.h: Do not include sbitmap.h. Include hashtab.h.
22273 * cgraph.h: Include vec.h and function.h.
22274 * reload.h (struct insn_chain): Change types of live_throughout
22275 and dead_or_set from regset_head to bitmap_head.
22276 (compute_use_by_pseudos): Be defined also if regset.h is not included.
22277 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
22278 spilled_regs from regset_head to bitmap_head to avoid dependency
22279 in regset.h.
22280 * sel-sched-ir.h: Include regset.h.
22281 * reload.c: Include df.h before reload.h.
22282 * caller-save.c: Likewise.
22283 * reload1.c: Likewise.
22284 * ira.c: Likewise.
22285 (mark_elimination): Update type of r to bitmap, consistent with
22286 DF_LR_IN.
22287 * dominance.c: Include bitmap.h.
22288 * modulo-sched.c: Include df.h.
22289 * cfganal.c: Include bitmap.h and sbitmap.h.
22290 * cfgbuild.c: Include sbitmap.h.
22291 * lcm.c: Include sbitmap.h.
22292 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
22293 * domwalk.c: Include sbitmap.h, exclude ggc.h.
22294 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
22295 * cselib.c: Include bitmap.h.
22296 * tree-optimize.c: Include regset.h.
22297 * stmt.c: Include bitmap.h.
22298 * Makefile.in: Update dependencies.
22299
9f90e80a
JH
223002010-05-22 Jan Hubicka <jh@suse.cz>
22301
22302 * cgraph.h (struct varpool_node): Add same_comdat_group.
22303 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
22304 pointer.
22305 (output_varpool): Update call of lto_output_varpool_node.
22306 (input_varpool): Read same_comdat_group pointer.
22307 (input_varpool_1): Fixup same_comdat_group pointer.
22308 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
22309 group is needed, all are.
22310 * varpool.c (varpool_remove_node): Remove node from same comdat group
22311 linklist too.
22312 (varpool_analyze_pending_decls): Walk same comdat groups.
22313
a2c9fe42
SB
223142010-05-22 Steven Bosscher <steven@gcc.gnu.org>
22315
22316 * rtl.h (union rtunion_def): Remove rt_bit member.
22317 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
22318 * print-rtl (print_rtx): Do not print the member.
22319 * gengtype.c (adjust_field_rtx_def): Do not handle it.
22320 * gengenrtl.c (type_from_format): Likewise.
22321 (accessor_from_format): Likewise.
22322
3b2ce251
JM
223232010-05-22 Joseph Myers <joseph@codesourcery.com>
22324
22325 * dbgcnt.c: Include toplev.h instead of errors.h.
22326 * ira-emit.c: Don't include errors.h.
22327 * ira.c: Include toplev.h instead of errors.h.
22328 * lto-compress.c: Include toplev.h instead of errors.h.
22329 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
22330 ira.o, dbgcnt.o): Update dependencies.
22331
bd9eb5da
RG
223322010-05-22 Richard Guenther <rguenther@suse.de>
22333
22334 * gimple.c (gimple_types_compatible_p): Check type qualifications
22335 before merging pointer to complete and pointer to incomplete type.
22336 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
22337 we use our own resolution algorithm. The gold linker plugin
22338 doesn't do the job we want it to do here.
22339
277e2873
AS
223402010-05-22 Anatoly Sokolov <aesok@post.ru>
22341
22342 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22343 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22344 (sparc_mode_dependent_address_p): New function.
22345
613b1547
SB
223462010-05-21 Steven Bosscher <steven@gcc.gnu.org>
22347
22348 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
22349
22350 * timevar.c: Do not include any core headers.
22351 (timevar_print): De-i18n-ize.
22352 (print_time): Likewise.
22353 * timevar.h (timevar_push, timevar_pop): Make inline functions.
22354
cf835838
JM
223552010-05-21 Joseph Myers <joseph@codesourcery.com>
22356
22357 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
22358 langhooks-def.h.
22359 (diagnostic_initialize): Initialize x_data not last_function.
22360 (diagnostic_report_current_function): Move to tree-diagnostic.c.
22361 (default_diagnostic_starter): Call
22362 diagnostic_report_current_module not
22363 diagnostic_report_current_function.
22364 (diagnostic_report_diagnostic): Initialize x_data not
22365 abstract_origin.
22366 (verbatim): Likewise.
22367 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
22368 x_data.
22369 (struct diagnostic_context): Change last_function to x_data.
22370 (diagnostic_auxiliary_data): Replace with
22371 diagnostic_context_auxiliary_data and
22372 diagnostic_info_auxiliary_data.
22373 (diagnostic_last_function_changed, diagnostic_set_last_function,
22374 diagnostic_report_current_function): Move to tree-diagnostic.h.
22375 (print_declaration, dump_generic_node, print_generic_stmt,
22376 print_generic_stmt_indented, print_generic_expr,
22377 print_generic_decl, debug_c_tree, dump_omp_clauses,
22378 print_call_name, debug_generic_expr, debug_generic_stmt,
22379 debug_tree_chain, default_tree_printer): Move to
22380 tree-pretty-print.h.
22381 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
22382 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
22383 gimple-pretty-print.h.
22384 * pretty-print.c: Don't include tree.h
22385 (pp_base_format): Don't handle %K here.
22386 (pp_base_tree_identifier): Move to tree-pretty-print.c.
22387 * pretty-print.h (text_info): Change abstract_origin to x_data.
22388 (pp_tree_identifier, pp_unsupported_tree,
22389 pp_base_tree_identifier): Move to tree-pretty-print.h.
22390 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
22391 tree-pretty-print.h: New files.
22392 * tree-pretty-print.c: Include tree-pretty-print.h.
22393 (percent_K_format): New. Moved from pretty-print.c.
22394 (pp_base_tree_identifier): Move from pretty-print.c.
22395 * c-objc-common.c: Include tree-pretty-print.h.
22396 (c_tree_printer): Handle %K here.
22397 * langhooks.c: Include tree-diagnostic.h.
22398 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
22399 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
22400 (default_tree_printer): Handle %K using percent_K_format.
22401 (general_init): Use default_tree_diagnostic_starter.
22402 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
22403 (free_lang_data): Use default_tree_diagnostic_starter.
22404 * c-pretty-print.c: Include tree-pretty-print.h.
ade52657
UB
22405 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22406 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
22407 * dwarf2out.c: Include tree-pretty-print.h.
22408 * except.c: Include tree-pretty-print.h.
22409 * gimple-pretty-print.c: Include tree-pretty-print.h and
22410 gimple-pretty-print.h.
22411 * gimplify.c: Include tree-pretty-print.h.
22412 * graphite-poly.c: Include tree-pretty-print.h and
22413 gimple-pretty-print.h.
22414 * ipa-cp.c: Include tree-pretty-print.h.
22415 * ipa-inline.c: Include gimple-pretty-print.h.
ade52657 22416 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
22417 * ipa-pure-const.c: Include gimple-pretty-print.h.
22418 * ipa-struct-reorg.c: Include tree-pretty-print.h and
22419 gimple-pretty-print.h.
22420 * ipa-type-escape.c: Include tree-pretty-print.h.
22421 * print-rtl.c: Include tree-pretty-print.h.
22422 * print-tree.c: Include gimple-pretty-print.h.
22423 * sese.c: Include tree-pretty-print.h.
22424 * tree-affine.c: Include tree-pretty-print.h.
22425 * tree-browser.c: Include tree-pretty-print.h.
22426 * tree-call-cdce.c: Include gimple-pretty-print.h.
ade52657 22427 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
22428 * tree-chrec.c: Include tree-pretty-print.h.
22429 * tree-data-ref.c: Include tree-pretty-print.h and
22430 gimple-pretty-print.h.
22431 * tree-dfa.c: Include tree-pretty-print.h.
22432 * tree-if-conv.c: Include tree-pretty-print.h and
22433 gimple-pretty-print.h.
22434 * tree-inline.c: Include tree-pretty-print.h.
22435 * tree-into-ssa.c: Include tree-pretty-print.h and
22436 gimple-pretty-print.h.
22437 * tree-nrv.c: Include tree-pretty-print.h.
22438 * tree-object-size.c: Include tree-pretty-print.h and
22439 gimple-pretty-print.h.
22440 * tree-outof-ssa.c: Include tree-pretty-print.h and
22441 gimple-pretty-print.h.
22442 * tree-parloops.c: Include tree-pretty-print.h and
22443 gimple-pretty-print.h.
22444 * tree-predcom.c: Include tree-pretty-print.h and
22445 gimple-pretty-print.h.
22446 * tree-scalar-evolution.c: Include tree-pretty-print.h and
22447 gimple-pretty-print.h.
22448 * tree-sra.c: Include tree-pretty-print.h.
22449 * tree-ssa-address.c: Include tree-pretty-print.h.
22450 * tree-ssa-alias.c: Include tree-pretty-print.h.
22451 * tree-ssa-ccp.c: Include tree-pretty-print.h and
22452 gimple-pretty-print.h.
22453 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
22454 * tree-ssa-copy.c: Include tree-pretty-print.h and
22455 gimple-pretty-print.h.
22456 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
22457 * tree-ssa-dce.c: Include tree-pretty-print.h and
22458 gimple-pretty-print.h.
22459 * tree-ssa-dom.c: Include tree-pretty-print.h and
22460 gimple-pretty-print.h.
22461 * tree-ssa-dse.c: Include gimple-pretty-print.h.
22462 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
22463 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
22464 * tree-ssa-live.c: Include tree-pretty-print.h and
22465 gimple-pretty-print.h.
22466 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
22467 gimple-pretty-print.h.
22468 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
22469 gimple-pretty-print.h.
22470 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
22471 gimple-pretty-print.h.
22472 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
22473 gimple-pretty-print.h.
22474 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
22475 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
22476 * tree-ssa-operands.c: Include tree-pretty-print.h and
22477 gimple-pretty-print.h.
22478 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
22479 gimple-pretty-print.h.
22480 * tree-ssa-pre.c: Include tree-pretty-print.h and
22481 gimple-pretty-print.h.
22482 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
22483 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
22484 gimple-pretty-print.h.
22485 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
22486 gimple-pretty-print.h.
22487 * tree-ssa-sink.c: Include gimple-pretty-print.h.
22488 * tree-ssa-ter.c: Include tree-pretty-print.h and
22489 gimple-pretty-print.h.
22490 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
22491 * tree-ssa.c: Include tree-pretty-print.h and
22492 gimple-pretty-print.h.
22493 * tree-stdarg.c: Include gimple-pretty-print.h.
22494 * tree-switch-conversion.c: Include gimple-pretty-print.h.
22495 * tree-tailcall.c: Include tree-pretty-print.h and
22496 gimple-pretty-print.h.
22497 * tree-vect-data-refs.c: Include tree-pretty-print.h and
22498 gimple-pretty-print.h.
22499 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
22500 gimple-pretty-print.h.
22501 * tree-vect-loop.c: Include tree-pretty-print.h and
22502 gimple-pretty-print.h.
22503 * tree-vect-patterns.c: Include gimple-pretty-print.h.
22504 * tree-vect-slp.c: Include tree-pretty-print.h and
22505 gimple-pretty-print.h.
22506 * tree-vect-stmts.c: Include tree-pretty-print.h and
22507 gimple-pretty-print.h.
22508 * tree-vectorizer.c: Include tree-pretty-print.h.
22509 * tree-vrp.c: Include tree-pretty-print.h and
22510 gimple-pretty-print.h.
22511 * value-prof.c: Include tree-pretty-print.h and
22512 gimple-pretty-print.h.
22513 * var-tracking.c: Include tree-pretty-print.h.
22514 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
22515 (tree-diagnostic.o): New dependencies.
22516 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
22517 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
22518 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
22519 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
22520 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
22521 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
22522 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
22523 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
22524 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
22525 tree-ssa-address.o, tree-ssa-loop-niter.o,
22526 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
22527 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
22528 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
22529 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
22530 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
22531 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
22532 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
22533 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
22534 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
22535 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
22536 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
22537 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
22538 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
22539 tree-switch-conversion.o, var-tracking.o, value-prof.o,
22540 cfgexpand.o, pretty-print.o): Update dependencies.
22541
cf4f4175
AT
225422010-05-22 Andreas Tobler <andreast@fgznet.ch>
22543
22544 * tree-ssa-structalias.c: Remove tm_p.h from include.
22545
c6d0f11a
JL
225462010-05-21 Jeff Law <law@redhat.com>
22547
22548 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
22549
d3f28910
JM
225502010-05-21 Jason Merrill <jason@redhat.com>
22551
22552 * tree-eh.c (cleanup_is_dead_in): New.
22553 (lower_try_finally): Don't generate a dead cleanup region.
22554 (lower_cleanup): Likewise.
22555
14db98d4
JJ
225562010-05-21 Jakub Jelinek <jakub@redhat.com>
22557
22558 PR debug/44223
22559 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
22560 unchain each use from the cyclic next_regno_use chain first.
22561
d49b6e1e
SB
225622010-05-21 Steven Bosscher <steven@gcc.gnu.org>
22563
22564 * real: Do not include gmp.h, mpfr.h, and mpc.h.
22565 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
22566 (real_value_negate, real_value_abs): New prototypes.
22567 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
22568 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
22569 new include file for interface between MPFR and REAL_VALUE_TYPE.
22570 * real.c: Include realmpfr.h.
22571 (real_arithmetic2): Remove legacy function.
22572 (real_value_negate): New.
22573 (real_value_abs): New.
22574 (mfpr_from_real, real_from_mpfr): Move from here...
22575 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
22576 * builtins.c: Include realmpfr.h.
22577 * fold-const.c: Include realmpfr.h.
22578 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
22579 (fold_negate_const): Likewise.
22580 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
22581 * toplev.c: Include realmpfr.h.
22582 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
22583 and real_value_negate.
22584 * fixed-value.c (check_real_for_fixed_mode): Likewise.
22585 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
22586 (vfp3_const_double_index): Likewise.
22587 (arm_print_operand): Likewise.
22588 * Makefile.in: Update dependencies.
22589
5b4b1c9a
AK
225902010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22591
22592 * config/s390/s390.c (override_options): Increase the default
22593 of max-completely-peel-times.
22594
7c19c715
JB
225952010-05-21 Julian Brown <julian@codesourcery.com>
22596 Mark Mitchell <mark@codesourcery.com>
22597
22598 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
22599 sibling calls for Thumb-1.
22600 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
22601 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
22602 Thumb-2.
22603 (*call_insn, *call_value_insn): Don't use for Thumb-2.
22604 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
22605 for Thumb-2.
22606 (return): New expander.
22607 (*arm_return): New name for ARM return insn.
22608 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
22609
f4a4b582 226102010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
3943fe02
JS
22611
22612 * config.gcc (sparc64-*-rtems*): New target.
22613
95f6e526
NF
226142010-05-21 Nathan Froyd <froydnj@codesourcery.com>
22615
22616 * tree.c (build_function_decl_skip_args): Fix grammar.
22617 (build_function_type_list_1): Fix typos, adjust formatting.
22618
40013784
SB
226192010-05-21 Steven Bosscher <steven@gcc.gnu.org>
22620
22621 * tree.h: Include real.h and fixed-value.h as basic datatypes.
22622 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
22623 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
22624 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
22625 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
22626 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
22627 tree-pretty-print.c, tree-loop-distribution.c,
22628 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
22629 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
22630 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
22631 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
22632 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
22633 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
22634 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
22635 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
22636 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
22637 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
22638 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
22639 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
22640 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
22641 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
22642 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
22643 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
22644 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
22645 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
22646 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
22647 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
22648 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
22649 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
22650 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
22651 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
22652 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
22653 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
22654 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
22655 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
22656 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
22657 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
22658 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
22659 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
22660 config/score/score7.c, config/score/score.c, config/arm/arm.c,
22661 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
22662 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
ade52657 22663 config/bfin/bfin.c: Clean up redundant includes.
40013784
SB
22664 * Makefile.in: Update accordingly.
22665
0a7561b7
NF
226662010-05-21 Nathan Froyd <froydnj@codesourcery.com>
22667
22668 PR middle-end/44204
22669 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
22670 statement has no arguments.
22671
e1935569
KT
226722010-05-21 Kai Tietz <kai.tietz@onevision.com>
22673
22674 PR/44139
22675 * varasm.c (emutls_decl): Merge attributes to new decl.
22676
46314d3e
EB
226772010-05-21 Eric Botcazou <ebotcazou@adacore.com>
22678
22679 PR middle-end/44101
22680 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
22681 around the uniquized constructor if its type requires a conversion.
22682
f99fcb3b
JJ
226832010-05-21 Jakub Jelinek <jakub@redhat.com>
22684
22685 PR debug/44205
22686 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
22687 at -O0 goto_locus of any of the incoming edges differs from
22688 goto_locus of outgoing edge, or gimple_location of any of the
22689 labels differs.
22690
f4a4b582 226912009-09-14 Vladimir Makarov <vmakarov@redhat.com>
0583835c
VM
22692
22693 * ira.c (ira_non_ordered_class_hard_regs): Define.
ade52657 22694 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
0583835c
VM
22695 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
22696 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
22697 cost of unaligned hard regs when allocating multi-reg pseudos.
22698
9f946bc1
RS
226992010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
22700
22701 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
22702 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
22703 for TARGET_NO_FLOAT.
22704 * config/mips/mips.c (mips_file_start): Expand conditional expression
22705 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
22706 (mips_override_options): Move -mno-float override -msoft-float and
22707 -mhard-float.
22708 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
22709 Condition(TARGET_SUPPORTS_NO_FLOAT).
22710 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
22711 __mips_no_float here.
22712 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
22713 (TARGET_SUPPORTS_NO_FLOAT): Define.
22714 * config/mips/sdemtk.opt: Delete.
22715
69610617
SB
227162010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
22717
ade52657 22718 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
69610617 22719
953c29f7
UB
227202010-05-20 Uros Bizjak <ubizjak@gmail.com>
22721
22722 PR target/43733
22723 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
22724 * configure: Regenerate.
22725 * config.in: Regenerate.
22726 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
22727 instead of sahf only for 64bit targets.
22728
69b45d71
JJ
227292010-05-20 Jakub Jelinek <jakub@redhat.com>
22730
22731 PR debug/44178
22732 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
22733 setup_ref_regs for DEBUG_INSNs.
22734
a14f1878
JH
227352010-05-20 Jan Hubicka <jh@suse.cz>
22736
22737 PR middle-end/44197
22738 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
22739
5797be12
KZ
227402010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
22741
22742 PR bootstrap/43870
22743 * df-scan.c (df_ref_compare): Stabilize sort.
22744
f1ca3117
JJ
227452010-05-20 Jakub Jelinek <jakub@redhat.com>
22746
22747 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
22748 argument. Don't use DW_OP_piece if offset is non-zero,
22749 put offset into second DW_OP_bit_piece argument.
22750 (dw_sra_loc_expr): Adjust callers. For memory expressions
22751 compute offset.
22752
d8ec9c14
HPN
227532010-05-20 Hans-Peter Nilsson <hp@axis.com>
22754
22755 PR target/44202
22756 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
22757 settings for 16-bit-constant "addo" alternative.
22758
951771dc
JW
227592010-05-19 James E. Wilson <wilson@codesourcery.com>
22760
9af157ac
JW
22761 * config/mips/mips-dsp.md (add<DSPV:mode>3,
22762 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
22763
951771dc
JW
22764 PR target/43764
22765 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
22766 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
22767 Use it.
22768
676dd4d4
JM
227692010-05-19 Joseph Myers <joseph@codesourcery.com>
22770
22771 * diagnostic.c (FLOAT, FFS): Don't undefine.
22772 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
22773 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
22774 include ordering.
22775
caba7aaa
RS
227762010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
22777
22778 * combine.c (propagate_for_debug): Call make_compound_operation
22779 on the source value.
22780 (try_combine): When implementing a split chosen by find_split_point,
22781 either copy i2src or set it to null. Assert that i2src is not null
22782 before substituting into CALL_INSN_FUNCTION_USAGE.
22783
1961ffb8
AS
227842010-05-19 Anatoly Sokolov <aesok@post.ru>
22785
22786 * double-int.h (double_int_ior): New function.
22787 * tree.h (build_int_cst_wide_type): Remove.
22788 * tree.c (build_int_cst_wide_type): Remove.
22789 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
22790 of build_int_cst_wide_type.
22791 * stor-layout.c (set_sizetype): (Ditto.).
22792 * dojump.c (do_jump): Use build_int_cstu instead of
22793 build_int_cst_wide_type.
22794
616f1431
EB
227952010-05-19 Eric Botcazou <ebotcazou@adacore.com>
22796
22797 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
22798 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
22799 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
ade52657 22800 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
616f1431
EB
22801 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
22802 propagate the 'data' argument to copy_tree_r.
22803 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
22804 Propagate 'data' argument to walk_tree.
22805 (copy_if_shared): New function.
22806 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
22807 (unmark_visited): New function.
22808 (unshare_body): Call copy_if_shared instead of doing it manually.
22809 (unvisit_body): Call unmark_visited instead of doing it manually.
22810
f311c3b4
NF
228112010-05-19 Nathan Froyd <froydnj@codesourcery.com>
22812
22813 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
22814 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
22815 * hooks.c: Likewise.
22816 * target-def.h (TARGET_FOLD_BUILTIN): Define to
22817 hook_tree_tree_int_treep_bool_null.
ade52657 22818 * target.h (struct gcc_target): Update signature of fold_builtin
f311c3b4
NF
22819 field.
22820 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
22821 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
22822 instead of the call expression.
22823 (fold_builtin_call_array): Pass n and argarray directly.
22824 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
22825 consing a list.
22826 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
22827 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
22828 `i' and use it in place of `arity'.
22829 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
22830 Dereference `args' directly.
22831 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
22832
40f1bdd9
RO
228332010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22834
22835 * doc/sourcebuild.texi (Effective-Target Keywords): Document
22836 3dnow, sse3, sse2.
22837 (Directives): Document optional dg-require-effective-target
22838 selector.
22839
817c2996
RG
228402010-05-19 Richard Guenther <rguenther@suse.de>
22841
22842 PR lto/44196
22843 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
22844
c04b6b38
RG
228452010-05-19 Richard Guenther <rguenther@suse.de>
22846
22847 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
22848 * common.opt (fwhopr=): New.
22849 * opts.c (common_handle_option): Handle OPT_fwhopr.
22850 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
22851 * collect2.c (main): Match -fwhopr*.
22852 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
22853 Execute ltrans stage in parallel when jobs is bigger than 1.
22854
ed104137
RO
228552010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22856
22857 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
22858 pentiumpro on Solaris 8/x86 with Sun as.
22859 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
22860 hidden alias bug.
22861 (gcc_cv_as_ix86_quad): Check for .quad directive.
22862 * configure: Regenerate.
22863 * config.in: Regenerate.
22864 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
22865
749aa96d
MJ
228662010-05-19 Martin Jambor <mjambor@suse.cz>
22867
22868 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
22869 also for indirect edges. Actual printing moved...
22870 (ipa_print_node_jump_functions_for_edge): ...here.
22871 (ipa_compute_jump_functions): Renamed to
22872 ipa_compute_jump_functions_for_edge and made static.
22873 (ipa_compute_jump_functions): New function.
22874 (make_edge_direct_to_target): Check if the number of arguments on
22875 the newly direct edge is the same as the number of parametrs of
22876 the callee.
22877 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
22878 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
22879 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
22880 analysis functions unconditionally, call the new
22881 ipa_analyze_params_uses on the node instead of every edge.
22882
81f32326
CB
228832010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
22884
431043bd 22885 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
81f32326 22886 to tree.
431043bd 22887 (dump_mem_ref): Adopt debug code to handle a tree as step. This
81f32326
CB
22888 also checks for a constant int vs. non-constant but
22889 loop-invariant steps.
431043bd 22890 (find_or_create_group): Change the sort algorithm to only consider
81f32326 22891 steps that are constant ints.
431043bd 22892 (idx_analyze_ref): Adopt code to handle a tree instead of a
81f32326 22893 HOST_WIDE_INT for step.
431043bd 22894 (gather_memory_references_ref): Handle tree instead of int and be
81f32326 22895 prepared to see a NULL_TREE.
431043bd 22896 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
81f32326 22897 prefetches if the step cannot be calculated at compile time.
431043bd 22898 (issue_prefetch_ref): Issue prefetches for non-constant but
81f32326
CB
22899 loop-invariant steps.
22900
39b27b3a
NF
229012010-05-18 Nathan Froyd <froydnj@codesourcery.com>
22902
22903 Revert:
22904 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
22905
22906 * tree.h (build_call_list): Remove.
22907 * tree.c (build_call_list): Remove.
22908
3fcb9d1b
NF
229092010-05-18 Nathan Froyd <froydnj@codesourcery.com>
22910
22911 * tree.h (build_call_list): Remove.
22912 * tree.c (build_call_list): Remove.
22913
58efc3ac
JH
229142010-05-18 Jan Hubicka <jh@suse.cz>
22915
22916 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
22917
0495bafc
VM
229182010-05-18 Vladimir Makarov <vmakarov@redhat.com>
22919
22920 PR rtl-optimization/43332
22921 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
22922
abdbbf16
AS
229232010-05-18 Anatoly Sokolov <aesok@post.ru>
22924
22925 * tree.h (build_int_cstu): Implement as static inline.
22926 * tree.c (build_int_cstu): Remove function.
22927 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
22928 sign extended.
22929
cf96bae7
RG
229302010-05-18 Richard Guenther <rguenther@suse.de>
22931
22932 PR lto/44143
22933 * lto-wrapper.c (verbose): New variable. Initialize from -v.
22934 (debug): Initialize from -save-temps.
22935 (collect_execute): Print command-line when verbose.
22936 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
22937 for ltrans invocation. Produce -dumpbase flag again.
22938 (process_args): Remove.
22939 (main): Simplify.
22940 * collect2.c (maybe_run_lto_and_relink): Only pass object
22941 files to lto-wrapper.
22942 * gcc.c (LINK_COMMAND_SPEC): Likewise.
22943
80e2a014
JH
229442010-05-18 Jan Hubicka <jh@suse.cz>
22945
22946 * opts.c (decode_options): Do not disable whopr at ipa_cp.
22947 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
22948
174f391c
SB
229492010-05-18 Steven Bosscher <steven@gcc.gnu.org>
22950
22951 PR lto/44184
22952 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
22953 in a GIMPLE_ASM.
22954 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
22955 in a GIMPLE_ASM.
22956
13077931
JJ
229572010-05-18 Jakub Jelinek <jakub@redhat.com>
22958
22959 PR debug/41371
22960 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
22961 rtx_equal_p inline.
22962
02540df4
SB
229632010-05-18 Steven Bosscher <steven@gcc.gnu.org>
22964
22965 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
22966 lto-macho as lto_binary_reader.
22967
22968 * darwin.c (darwin_asm_named_section): Do not add assembler comment
22969 after .section directive; just print it before the directive instead.
22970
36576655
JH
229712010-05-17 Jan Hubicka <jh@suse.cz>
22972
22973 * cgraph.c (cgraph_create_virtual_clone): Only check
22974 versionable_function_p when not in wpa and checking is enabled.
22975 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
22976 there are no more functions to materialize.
22977
922f15c2
JH
229782010-05-17 Jan Hubicka <jh@suse.cz>
22979
22980 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
22981 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
22982 New functions.
22983 (output_cgraph): Call output_cgraph_opt_summary.
22984 (input_cgrpah): Call input_cgraph_opt_summary.
22985 (output_cgraph_opt_summary_p, output_node_opt_summary,
22986 input_node_opt_summary, input_cgraph_opt_section): New functions.
22987 * lto-section-in.c (lto_section_name): Add cgraphopt.
22988 * tree-inline.c (tree_function_versioning): Handle parm_num.
22989 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
22990 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
22991
d3a9b459
CF
229922010-05-17 Changpeng Fang <changpeng.fang@amd.com>
22993
22994 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
22995 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
22996 the insn to prefetch ratio heuristic to loops with known trip count.
22997
8532678c
CF
229982010-05-17 Changpeng Fang <changpeng.fang@amd.com>
22999
23000 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
23001 (schedule_prefetches): Do not generate a prefetch if the unroll factor
23002 is far from what is required by the prefetch.
23003
339f49ec
JH
230042010-05-17 Jan Hubicka <jh@suse.cz>
23005
23006 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
23007 (ipcp_estimate_growth): Likewise.
23008 (ipcp_const_param_count): Likewise.
23009 (ipcp_insert_stage): Likewise.
23010 * ipa-prop.c (visit_load_for_mod_analysis): New function.
23011 (visit_store_addr_for_mod_analysis): Set used flag.
23012 (ipa_detect_param_modifications): Set used flag for SSE params;
23013 update use of walk_stmt_load_store_addr_ops.
23014 (ipa_print_node_params): Print used flag.
23015 (ipa_write_node_info): Stream used flag.
23016 (ipa_read_node_info): Likewise.
23017 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
23018 (ipa_is_param_used): New function.
23019 (lto_ipa_fixup_call_notes): Remove unused declaration.
23020
2433310d
RO
230212010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23022
23023 PR target/44074
23024 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
23025 * configure: Regenerate.
23026 * config.in: Regenerate.
431043bd 23027 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
2433310d
RO
23028 !HAVE_AS_IX86_REP_LOCK_PREFIX.
23029 Don't emit whitespace.
23030 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
23031 (*rep_movsi): Likewise.
23032 (*rep_movsi_rex64): Likewise.
23033 (*rep_movqi): Likewise.
23034 (*rep_movqi_rex64): Likewise.
23035 (*rep_stosdi_rex64): Likewise.
23036 (*rep_stossi): Likewise.
23037 (*rep_stossi_rex64): Likewise.
23038 (*rep_stosqi): Likewise.
23039 (*rep_stosqi_rex64): Likewise.
23040 (*cmpstrnqi_nz_1): Use {%;} after repz.
23041 (*cmpstrnqi_nz_rex_1): Likewise.
23042 (*cmpstrnqi_1): Likewise.
23043 (*cmpstrnqi_rex_1): Likewise.
23044 (*strlenqi_1): Use {%;} after repnz.
23045 (*strlenqi_rex_1): Likewise.
23046 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
23047 (*sync_compare_and_swap<mode>): Likewise.
23048 (sync_double_compare_and_swap<mode>): Likewise.
23049 (*sync_double_compare_and_swapdi_pic): Likewise.
23050 (sync_old_add<mode>): Likewise.
23051 (sync_add<mode>): Likewise.
23052 (sync_sub<mode>): Likewise.
23053 (sync_<code><mode>): Likewise.
23054
b258210c
MJ
230552010-05-17 Martin Jambor <mjambor@suse.cz>
23056
23057 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
23058 otr_token and polymorphic.
23059 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
23060 (cgraph_clone_edge): Copy the above fields.
23061 * tree.c (get_binfo_at_offset): New function.
23062 * tree.h (get_binfo_at_offset): Declare.
23063 * ipa-prop.h (enum jump_func_type): Added known_type jump function
23064 type, reordered items, updated comments.
23065 (union jump_func_value): Added base_type field, reordered fields.
23066 (enum ipa_lattice_type): Moved down in the file.
23067 (struct ipa_param_descriptor): New field polymorphic.
23068 (ipa_is_param_polymorphic): New function.
23069 * ipa-prop.c: Include gimple.h and gimple-fold.h.
23070 (ipa_print_node_jump_functions): Print known type jump functions.
23071 (compute_complex_pass_through): Renamed to...
23072 (compute_complex_assign_jump_func): this.
23073 (compute_complex_ancestor_jump_func): New function.
23074 (compute_known_type_jump_func): Likewise.
23075 (compute_scalar_jump_functions): Create known type and complex ancestor
23076 jump functions.
23077 (ipa_note_param_call): New parameter polymorphic, set the corresponding
23078 flag in the call note accordingly.
23079 (ipa_analyze_call_uses): Renamed to...
23080 (ipa_analyze_indirect_call_uses): this. New parameter target, define
23081 variable var only in the block where it is used.
23082 (ipa_analyze_virtual_call_uses): New function.
23083 (ipa_analyze_call_uses): Likewise.
23084 (combine_known_type_and_ancestor_jfs): Likewise.
23085 (update_jump_functions_after_inlining): Implemented handling of a
23086 number of new jump function types combination.
23087 (print_edge_addition_message): Removed.
23088 (make_edge_direct_to_target): New function.
23089 (try_make_edge_direct_simple_call): Likewise.
23090 (try_make_edge_direct_virtual_call): Likewise.
23091 (update_call_notes_after_inlining): Renamed to...
23092 (update_indirect_edges_after_inlining): this. Moved edge creation for
23093 indirect calls to try_make_edge_direct_simple_call, also calls
23094 try_make_edge_direct_virtual_call for virtual calls.
23095 (ipa_print_node_params): Changed the header message.
23096 (ipa_write_jump_function): Stream also known type jump functions.
23097 (ipa_read_jump_function): Likewise.
23098 (ipa_write_indirect_edge_info): Stream new fields in
23099 cgraph_indirect_call_info.
23100 (ipa_read_indirect_edge_info): Likewise.
23101 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
23102 GIMPLE_FOLD_H.
23103
d5d74497
RO
231042010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23105
23106 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
23107
58a11859
NF
231082010-05-17 Nathan Froyd <froydnj@codesourcery.com>
23109
23110 * tree.h (CALL_EXPR_ARGS): Delete.
23111 (call_expr_arglist): Delete.
23112 * tree.c (call_expr_arglist): Delete.
23113 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
23114 targetm.fold_builtin.
23115 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
23116 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
23117 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
23118 arglist parameter. Use CALL_EXPR_ARG.
23119 (picochip_expand_builtin_3op): Likewise.
23120 (picochip_expand_builtin_2opvoid): Likewise.
23121 (picochip_expand_array_get): Likewise.
23122 (picochip_expand_array_put): Likewise.
23123 (picochip_expand_array_testport): Likewise.
23124 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
23125 rather than arglist.
23126 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
23127 CALL_EXPR_ARGS.
23128 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
23129 than TREE_VALUE and TREE_CHAIN.
23130 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
23131 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
23132 the arglist.
23133
f1de5107
JJ
231342010-05-17 Jakub Jelinek <jakub@redhat.com>
23135
f145213f
JJ
23136 PR bootstrap/42347
23137 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
23138 to have no fallthru edge.
23139
f1de5107
JJ
23140 PR middle-end/44102
23141 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
23142 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
23143 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
23144 add BARRIER after previous bb if needed.
23145
b64fca63 231462010-05-17 Nathan Froyd <froydnj@codesourcery.com>
431043bd 23147
b64fca63 23148 * tree.c (build_function_type_list_1): Remove bogus assert condition.
431043bd 23149
2882bfcc
AM
231502010-05-17 Alan Modra <amodra@gmail.com>
23151
23152 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
23153 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
23154 with copy_reg rtx param.
23155 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
23156 Correct cases where code for ABI_V4 did not initialise the reg
23157 used to access frame. Also leave frame_reg_rtx as sp for large
23158 frames that save no regs.
23159
5feb49f0
MJ
231602010-05-17 Martin Jambor <mjambor@suse.cz>
23161
23162 PR middle-end/44133
23163 * tree-sra.c (create_access_replacement): New parameter rename, mark
23164 the replaement for renaming only when it is true.
23165 (get_access_replacement): Pass true in the rename parameter of
23166 create_access_replacement.
23167 (get_unrenamed_access_replacement): New function.
23168 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
23169 replacement declaration from it.
23170
56731d64
BS
231712010-05-17 Bernd Schmidt <bernds@codesourcery.com>
23172
23173 * function.c (try_fit_stack_local, add_frame_space): New static
23174 functions.
23175 (assign_stack_local_1): Use them. Look for opportunities to use
23176 space previously wasted on alignment.
23177 * function.h (struct frame_space): New.
23178 (struct rtl_data): Add FRAME_SPACE_LIST member.
23179 * reload1.c (something_was_spilled): New static variable.
23180 (alter_reg): Set it.
23181 (reload): Test it in addition to testing if the frame size changed.
23182
24a235c8
CB
231832010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
23184
431043bd
UB
23185 * config/s390/s390.c: Define sane prefetch settings and activate
23186 flag_prefetch_loop_arrays on -O3.
23187 * config/s390/s390.h: Declare that read can use write prefetch.
24a235c8 23188
18252dcf
JJ
231892010-05-17 Jakub Jelinek <jakub@redhat.com>
23190
23191 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
23192 build.
23193
199f1dc4
JH
231942010-05-16 Jan Hubicka <jh@suse.cz>
23195
23196 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
23197 function body; do not check stdarg field of struct function.
23198
ccbbf8a2
JH
231992010-05-16 Jan Hubicka <jh@suse.cz>
23200
23201 * cgraph.c (dump_cgraph_node): Dump versionable flag.
23202 * cgraph.h (cgraph_local_info): Add versionable flag.
23203 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
23204 (ipcp_versionable_function_p): Use it.
23205 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
23206 versionable flag.
23207
91fbf0c7
JH
232082010-05-16 Jan Hubicka <jh@suse.cz>
23209
23210 * cgraph.c (cgraph_clone_node): Take decl argument and insert
23211 clone into hash when it is different from orig.
23212 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
23213 * cgraph.h (cgraph_clone_node): Update prototype.
23214 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
23215 (lto_cgraph_encoder_delete): Delete body map.
23216 (lto_cgraph_encoder_size): Move to header.
ccbbf8a2
JH
23217 (lto_cgraph_encoder_encode_body_p,
23218 lto_set_cgraph_encoder_encode_body): New.
91fbf0c7
JH
23219 (lto_output_node): Do not take written_decls argument; output clone_of
23220 pointer.
23221 (add_node_to): Add include_body_argument; call
23222 lto_set_cgraph_encoder_encode_body on master of the clone.
23223 (add_references): Update use of add_node_to.
23224 (compute_ltrans_boundary): Likewise.
23225 (output_cgraph): Do not create written_decls bitmap.
23226 (input_node): Take nodes argument; stream in clone_of correctly.
23227 (input_cgraph_1): Update use of input_node.
23228 * lto-streamer-out.c (lto_output): Use encoder info to decide
23229 what bodies to output.
23230 * ipa-inline.c (cgraph_clone_inlined_nodes,
23231 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
23232 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
23233 (lto_cgraph_encoder_size): Define here.
23234 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
23235 Declare.
23236
6b87d1b4
RG
232372010-05-16 Richard Guenther <rguenther@suse.de>
23238
23239 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
23240 -fipa-type-escape.
23241 * ipa-type-escape.c (gate_type_escape_vars): Run when
23242 -fipa-struct-reorg runs.
23243 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
23244 * common.opt (fipa-type-escape): Remove.
23245
203a92e3
EB
232462010-05-16 Eric Botcazou <ebotcazou@adacore.com>
23247
23248 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
23249 (decode_options): Likewise.
23250 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
23251
e419f710
JH
232522010-05-16 Jan Hubicka <jh@suse.cz>
23253
23254 * ipa.c (function_and_variable_visibility): Also bring local all
23255 aliases.
23256
2e0c984c
RG
232572010-05-16 Richard Guenther <rguenther@suse.de>
23258
23259 * alias.c (nonoverlapping_memrefs_p): Remove use of
23260 IPA type-escape information.
23261
32912286
JM
232622010-05-16 Joseph Myers <joseph@codesourcery.com>
23263
23264 * c-common.c (c_common_reswords): Add _Static_assert for C.
23265 * c-parser.c (c_token_starts_declaration,
23266 c_parser_next_token_starts_declaration,
23267 c_parser_static_assert_declaration_no_semi,
23268 c_parser_static_assert_declaration): New.
23269 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
23270 Handle static assertions if static_assert_ok.
23271 (c_parser_external_declaration, c_parser_declaration_or_fndef,
23272 c_parser_compound_statement_nostart, c_parser_label,
23273 c_parser_for_statement, c_parser_objc_methodprotolist,
23274 c_parser_omp_for_loop): All callers of
23275 c_parser_declaration_or_fndef changed.
23276 (c_parser_struct_declaration): Handle static assertions.
23277 (c_parser_compound_statement_nostart): Use
23278 c_parser_next_token_starts_declaration and
23279 c_token_starts_declaration to detect start of declarations.
23280 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
23281 Likewise.
23282
a3ca07e3
AS
232832010-05-16 Anatoly Sokolov <aesok@post.ru>
23284
23285 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23286 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23287 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23288 TARGET_FUNCTION_VALUE_REGNO_P): Define.
23289 (mmix_function_outgoing_value): Rename to...
23290 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
23291 (mmix_function_value_regno_p): Make static.
23292 (mmix_libcall_value): New function.
23293 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
23294 mmix_function_value_regno_p): Remove declaration.
23295
29d17485
EB
232962010-05-16 Eric Botcazou <ebotcazou@adacore.com>
23297
23298 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
23299 BUILT_IN_ALLOCA if stack checking is enabled.
23300
a6590c31
RG
233012010-05-16 Richard Guenther <rguenther@suse.de>
23302
23303 * var-tracking.c (vars_copy_1): Inline ...
23304 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
23305 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
23306 (variable_merge_over_cur): Adjust. Merge asserts.
23307 (variable_merge_over_src): Likewise.
23308 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
23309 (variable_post_merge_new_vals): Merge asserts.
23310 (variable_post_merge_perm_vals): Likewise.
23311 (find_mem_expr_in_1pdv): Likewise.
23312 (dataflow_set_different_value): Remove.
23313 (onepart_variable_different_p): Merge asserts.
23314 (variable_different_p): Likewise.
23315 (dataflow_set_different_1): Inline ...
23316 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
23317 (emit_notes_for_differences_1): Merge asserts.
23318
6456e26e
RG
233192010-05-16 Richard Guenther <rguenther@suse.de>
23320
23321 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
23322 * optabs.c (libfunc_decl_hash): Likewise.
23323 * varasm.c (emutls_decl): Likewise.
23324
1d4c5fe9
SB
233252010-05-16 Steven Bosscher <steven@gcc.gnu.org>
23326
23327 * c-decl.c: Don't include gimple.h.
23328 (merge_decls): Do not copy gimple_body.
23329
9feb3d6a
JM
233302010-05-15 Jason Merrill <jason@redhat.com>
23331
23332 * c.opt: Add -fnothrow-opt.
23333
9b3cf76a
JH
233342010-05-15 Jan Hubicka <jh@suse.cz>
23335
29d17485
EB
23336 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
23337 analyzed.
9b3cf76a
JH
23338 * passes.c (ipa_write_summaries): Write all analyzed nodes.
23339
f4ce02c5
SB
233402010-05-15 Steven Bosscher <steven@gcc.gnu.org>
23341
23342 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
23343 * Makefile.in: Add it.
23344 Fix all other Makefile dependencies for changes below.
23345 * tree.h: Include it instead of defining VEC primitives here.
23346 * gimple.h: Likewise.
23347 * rtl.h: Likewise.
23348 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
23349 * except.h: Include vecir.h, break dependence on tree.h.
23350
23351 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
23352 Move from here...
23353 * tree-iterator.c: ...to here.
23354 * tree-iterator.h: Fix file introduction comment. Add extern markers.
23355
23356 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
23357 tm_p.h.
23358 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
23359 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
23360 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
23361 tree-mudflap.h, and target.h.
23362 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
23363 predict.h, tree-inline.h, gimple.h, and langhooks.h.
23364 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
23365 Add FIXME for why gimple.h is still included (should be unnecessary
23366 since GCC 4.5 gimplification unit-at-a-time).
23367 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
23368 * c-pragma.c: Add FIXME for why function.h needs to be included just
23369 for cfun, at front-end level.
23370 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
23371 Do not include ggc.h, but include vecprim.h for VEC(char).
23372 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
23373 Explain why target.h is included.
23374 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
23375 Explain why gimple.h is included.
23376 * c-ppoutput.c: Do not include tm.h.
23377 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
23378 * c-parses.c: Explain why rtl.h is included, and that this (and only
23379 this) is also why tm.h must be included.
23380 Do not include except.h.
23381 * c-lang.c: Do not include ggc.h.
23382
12201e48
UB
233832010-05-15 Uros Bizjak <ubizjak@gmail.com>
23384
23385 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
23386
4bdd0a60
JM
233872010-05-15 Joseph Myers <joseph@codesourcery.com>
23388
23389 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
23390 unions by default if those structs and unions have no tags. Do
23391 not condition anonymous struct and unions handling on flag_iso.
23392 Allow anonymous structs and unions for C1X.
23393 (finish_struct): Do not diagnose lack of named fields when
23394 anonymous structs and unions present for C1X. Accept flexible
23395 array members in structure with anonymous structs or unions but no
23396 directly named fields.
23397 * doc/extend.texi (Unnamed Fields): Update.
23398
d025732d
EB
233992010-05-15 Eric Botcazou <ebotcazou@adacore.com>
23400
23401 * gimple.h (compare_field_offset): Rename into...
23402 (gimple_compare_field_offset): ...this.
23403 * gimple.c (compare_field_offset): Rename into...
23404 (gimple_compare_field_offset): ...this. Compare the full access if
23405 the offset is self-referential.
23406 (gimple_types_compatible_p): Adjust for above renaming.
23407 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
23408 DECL_NONADDRESSABLE_P flag of fields before merging them.
23409
b75bdd29
NF
234102010-05-15 Nathan Froyd <froydnj@codesourcery.com>
23411
23412 * tree.h (ctor_to_list): Delete.
23413 * tree.c (ctor_to_list): Delete.
23414
f3380641
JH
234152010-05-15 Jan Hubicka <jh@suse.cz>
23416
23417 * ipa-reference.c: Include toplev.h
23418 (is_proper_for_analysis): Only add to all_module_statics
23419 if it is allocated.
23420 (write_node_summary_p, stream_out_bitmap,
23421 ipa_reference_write_optimization_summary,
23422 ipa_reference_read_optimization_summary): New.
23423 (struct ipa_opt_pass_d pass_ipa_reference): Add
23424 optimization summary streaming.
12201e48 23425 * lto-cgraph.c (referenced_from_this_partition_p,
f3380641
JH
23426 reachable_from_this_partition_p): New functions.
23427 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
23428 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
23429 * opts.c (decode_options): Enable ipa_reference.
23430 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
23431 * lto-streamer.h (referenced_from_this_partition_p,
23432 reachable_from_this_partition_p): Declare.
23433
9d0baae1
RG
234342010-05-15 Richard Guenther <rguenther@suse.de>
23435
23436 PR tree-optimization/44038
23437 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
23438 taking the address of a V_C_E of a constant.
23439
46c30019
JH
234402010-05-14 Jan Hubicka <jh@suse.cz>
23441
23442 * tree.h (memory_identifier_string): Remove.
23443 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
23444 (ipa_reference_global_vars_info_d): Remove statics_not_read and
23445 statics_not_written.
23446 (ipa_reference_optimization_summary_d): New structure.
23447 (ipa_reference_optimization_summary_t): New type and vector.
23448 (ipa_reference_vars_info_d): Embedd structures instead of using
23449 pointers.
23450 (reference_vars_to_consider): Remove out of GGC space.
23451 (module_statics_escape): Remove.
23452 (global_info_obstack): Rename to ...
23453 (optimization_summary_obstack): ... this one.
23454 (initialization_status_t): Remove.
23455 (memory_identifier_string): Remove.
23456 (get_reference_vars_info): Fix indenting.
23457 (set_reference_vars_info): Likewise.
23458 (get_reference_optimization_summary): New.
23459 (set_reference_optimization_summary): New.
23460 (get_global_reference_vars_info): Remove.
23461 (ipa_reference_get_read_global): Remove.
23462 (ipa_reference_get_written_global): Remove.
23463 (ipa_reference_get_not_read_global): Update.
23464 (ipa_reference_get_not_written_global): Update.
23465 (is_proper_for_analysis): Outlaw addressable.
23466 (propagate_bits): Update for new datastructures.
23467 (analyze_variable): Remove.
23468 (init_function_info): Update for new datastructures.
23469 (clean_function_local_data): Remove.
23470 (clean_function): Remove.
23471 (copy_global_bitmap): Use optimizations_summary_obstack.
23472 (duplicate_node_data): Duplicate optimization summary only.
23473 (remove_node_data): Remove optimization summary only.
23474 (generate_summary): Do not analyze variables; do not compute
23475 module_statics_escape; do not prune solutions by it.
23476 (read_write_all_from_decl): Fix typos in comments.
23477 (propagate): Doscover readonly and nonaddressable first;
23478 update for new datastructures; share global bitmaps.
23479 * ipa-reference.h (ipa_reference_get_read_global,
23480 ipa_reference_get_written_global): Remove.
23481 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
23482 * Makefile.in: Remove ipa-refereference from GT files.
23483
22bf7d17
JJ
234842010-05-14 Jakub Jelinek <jakub@redhat.com>
23485
23486 PR debug/44112
23487 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
23488 for all SYMBOL_REF_DECLs.
23489
4a444e58
JH
234902010-05-14 Jan Hubicka <jh@suse.cz>
23491
23492 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
23493 (varpool_all_refs_explicit_p): New inline function.
23494 * ipa-reference.c: Update comment.
23495 (module_statics_written): Remove.
23496 (get_static_decl): Remove.
23497 (ipa_init): Do not initialize module_statics_written.
23498 (analyze_function): Likewise.
23499 (generate_summary): Likewise; do not compute module_statics_readonly
23500 and do not update variable flags.
23501 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
23502 * ipa.c: Inlucde flags.h
23503 (cgraph_local_node_p): New.
23504 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
23505 promote functions to local.
23506 (ipa_discover_readonly_nonaddressable_vars): New function.
23507 (function_and_variable_visibility): Use cgraph_local_node_p.
23508 * varpool.c (varpool_finalize_decl): Set force_output for
23509 DECL_PRESERVE_P vars.
23510
bc8ddfe6
JH
235112010-05-14 Jan Hubicka <jh@suse.cz>
23512
23513 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
23514
4d2ab9e3
RG
235152010-05-14 Richard Guenther <rguenther@suse.de>
23516
23517 PR tree-optimization/44119
23518 * tree-ssa-pre.c (eliminate): Properly mark replacement of
23519 a PHI node necessary.
23520
9e87b842
EB
235212010-05-14 Eric Botcazou <ebotcazou@adacore.com>
23522
23523 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
23524
786f715d
JM
235252010-05-14 Jason Merrill <jason@redhat.com>
23526
9bb1a81b
JM
23527 PR c++/44127
23528 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
23529 (gimple_call_set_nothrow): New.
23530 * gimple.c (gimple_build_call_from_tree): Call it.
23531 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
23532
786f715d
JM
23533 PR c++/44127
23534 * gimplify.c (gimplify_seq_add_stmt): No longer static.
23535 * gimple.h: Declare it.
23536 * gimple.c (gimple_build_eh_filter): No ops.
23537
19fb0b86
JH
235382010-05-14 Jan Hubicka <jh@suse.cz>
23539
23540 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
23541 nodes already in queue.
9e87b842
EB
23542 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
23543 re-enqueueing node.
19fb0b86 23544
88c04a5d
JJ
235452010-05-14 Jakub Jelinek <jakub@redhat.com>
23546
23547 PR debug/44136
23548 * cfgexpand.c (expand_debug_expr): If non-memory op0
23549 has BLKmode, return NULL.
23550
1133125e
HJ
235512010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
23552
23553 * config.gcc: Add support for --with-cpu option for bdver1.
23554 * config/i386/i386.h (TARGET_BDVER1): New macro.
23555 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
23556 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23557 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
23558 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23559 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
23560 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
23561 (processor_type): Add PROCESSOR_BDVER1.
23562 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
23563 processor_type in config/i386/i386.h.
23564 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
23565 movaps <reg, reg> instead of movapd <reg, reg> when replacing
23566 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
23567 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
23568 to emit packed xor instead of packed double/packed integer
23569 xor for SSE and AVX when moving a zero value.
9e87b842
EB
23570 * config/i386/sse.md: Add check for
23571 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
23572 movapd/movdqa for SSE and AVX.
23573 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
23574 single logical operations i.e and, or and xor instead of packed double
23575 logical operations for SSE and AVX.
12201e48
UB
23576 * config/i386/i386-c.c (ix86_target_macros_internal):
23577 Add PROCESSOR_BDVER1.
1133125e
HJ
23578 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
23579 (has_fma4, has_xop): New.
23580 * config/i386/i386.c (bdver1_cost): New variable.
23581 (m_BDVER1): New macro.
23582 (m_AMD_MULTIPLE): Add m_BDVER1.
23583 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
9e87b842
EB
23584 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
23585 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
23586 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
23587 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
23588 x86_tune_sse_partial_reg_dependency,
23589 x86_tune_sse_unaligned_load_optimal,
23590 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
23591 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
23592 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
23593 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
23594 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1133125e
HJ
23595 Enable/disable for bdver1.
23596 (processor_target_table): Add bdver1_cost.
23597 (cpu_names): Add bdver1.
23598 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
23599 processor_alias_table.
9e87b842
EB
23600 (ix86_expand_vector_move_misalign): Change.
23601 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
23602 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
23603 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
23604 of movupd/movdqu for SSE and AVX.
1133125e
HJ
23605 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
23606 (ix86_tune_adjust_cost): Add code for bdver1.
23607 (standard_sse_constant_opcode): Add check for
23608 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
23609 of packed double xor for SSE and AVX.
23610
e972cc7e
PH
236112010-05-14 Pat Haugen <pthaugen@us.ibm.com>
23612
23613 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
23614 result to unsigned.
23615
6a080096
TG
236162010-05-14 Tristan Gingold <gingold@adacore.com>
23617
23618 * toplev.c (default_debug_hooks): Remove this variable.
23619 (process_options): Remove assignments to default_debug_hooks.
23620
b5023f3c
MJ
236212010-05-14 Martin Jambor <mjambor@suse.cz>
23622
23623 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
23624 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
23625 * langhooks.h (struct lang_hooks_for_decls): Removed field
23626 fold_obj_type_ref.
23627 * tree.c (free_lang_data): Remove assignment to
23628 lang_hooks.fold_obj_type_ref.
23629 * tree.def (OBJ_TYPE_REF): Update comment.
23630
6141b7db
RG
236312010-05-14 Richard Guenther <rguenther@suse.de>
23632
23633 PR tree-optimization/44124
23634 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
23635
e15a8cbe
AM
236362010-05-14 Alan Modra <amodra@gmail.com>
23637
23638 PR target/44075
23639 * config/rs6000/rs6000.c (struct machine_function): Reorder
23640 fields for better packing. Add lr_save_state.
23641 (rs6000_ra_ever_killed): Return lr_save_state if set.
23642 (rs6000_emit_eh_reg_restore): Set lr_save_state.
23643
da405c74
JH
236442010-05-13 Jan Hubicka <jh@suse.cz>
23645
23646 * varpool.c (decide_is_variable_needed): Drop code checking
23647 TREE_SYMBOL_REFERENCED.
23648
152464d2
JH
236492010-05-13 Jan Hubicka <jh@suse.cz>
23650
23651 * final.c (output_addr_const): Do not call mark_decl_referenced.
23652 * cgraphunit.c (process_function_and_variable_attributes): Use
23653 mark_needed_node dirrectly.
23654 (assemble_thunk): Do not call mark_decl_referenced.
23655
32cbdf00
AS
236562010-05-13 Anatoly Sokolov <aesok@post.ru>
23657
23658 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
23659
e4f36d31
JL
236602010-05-13 Jeff Law <law@redhat.com>
23661
23662 * ira-conflicts.c (print_allocno_conflicts): New function broken out
23663 from...
23664 (print_conflicts): Call print_allocno_conflicts.
23665
1fcebc11
JJ
236662010-05-13 Jakub Jelinek <jakub@redhat.com>
23667
23668 PR debug/44104
23669 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
23670 if it is NULL.
23671
917ed773
KT
236722010-05-13 Kai Tietz <kai.tietz@onevision.com>
23673
23674 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
23675 t-mingw-w64 or t-mingw-w32 for multilib configuration.
23676 * config/i386/t-mingw-w32: New.
23677 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
12201e48 23678
1ae6fe9b
MJ
236792010-05-13 Martin Jambor <mjambor@suse.cz>
23680
23681 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
23682 gimple-fold.c).
23683 * gimple-fold.c (get_base_binfo_for_type): New function.
23684 (gimple_get_relevant_ref_binfo): Likewise.
23685 (gimple_fold_obj_type_ref_known_binfo): Likewise.
23686 (gimple_fold_obj_type_ref): Likewise.
23687 (fold_gimple_call): Simplify condition for folding virtual calls
23688 and call gimple_fold_obj_type_ref.
23689 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
23690 (gimple_fold_obj_type_ref_known_binfo): Likewise.
23691
78c7cabb
AS
236922010-05-13 Andreas Schwab <schwab@linux-m68k.org>
23693
23694 * config/rs6000/rs6000-protos.h
23695 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
23696 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
23697 (rs6000_debug_mode_dependent_address)
23698 (rs6000_mode_dependent_address_ptr): Likewise.
23699
823e9473
JJ
237002010-05-13 Jakub Jelinek <jakub@redhat.com>
23701
23702 PR debug/43983
23703 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
23704 by SRA.
23705 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
23706 * tree-sra.c (create_access_replacement): Call unshare_expr before
12201e48 23707 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
823e9473
JJ
23708 * dwarf2out.c: Include tree-flow.h.
23709 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
23710 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
23711 Handle DW_OP_bit_piece.
23712 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
23713 construct_piece_list, adjust_piece_list): New functions.
23714 (add_var_loc_to_decl): Handle SRA optimized variables.
23715 Adjust for var_loc_note to loc field renaming.
23716 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
23717 in VAR_LOCATION note.
23718 (new_loc_descr_op_bit_piece): New function.
23719 (dw_sra_loc_expr): New function.
23720 (dw_loc_list): Use it. Don't handle the last range after the
23721 loop, handle it inside of the loop. Adjust for var_loc_note
23722 to loc field renaming.
23723 (add_location_or_const_value_attribute): Only special case
23724 single entry loc lists if loc is NOTE_P. Adjust for
23725 var_loc_note to loc field renaming.
23726 (dwarf2out_var_location): Don't set newloc->var_loc_note
23727 and newloc->next here.
23728
bd3cdcc0
JH
237292010-05-12 Jan Hubicka <jh@suse.cz>
23730
c46a5e28
EB
23731 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
23732 flag.
bd3cdcc0
JH
23733 * cgraph.h (cgraph_only_called_directly_p,
23734 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
23735 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
23736 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
23737 (assemble
23738 * ipa.c (cgraph_remove_unreachable_nodes): Use
c46a5e28
EB
23739 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
23740 flags.
bd3cdcc0
JH
23741 * tree-inline.c (copy_bb): Check address_taken flag.
23742 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
23743 externally_visible flag.
23744
5116acc6
JM
237452010-05-12 Jason Merrill <jason@redhat.com>
23746
23747 PR bootstrap/44048
23748 PR target/44099
23749 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
23750 * sdbout.c (plain_type_1): Likewise.
23751 * dwarf2out.c (is_base_type): Likewise.
23752 (gen_type_die_with_usage): Likewise. Generate
23753 DW_TAG_unspecified_type for any LANG_TYPE.
23754
5f902d76
JH
237552010-05-12 Jan Hubicka <jh@suse.cz>
23756
23757 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
23758 indrect edges too.
23759 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
23760 (cgraph_clone_edge): Update.
23761 (cgraph_node_remove_callees): Remove indirect calls too.
23762 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
23763 (cgraph_create_indirect_edge): Update prototype.
23764 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
23765 is_proper_for_analysis.
23766 (add_new_function, visited_nodes, function_insertion_hook_holder,
23767 get_local_reference_vars_info, mark_address_taken, mark_address,
23768 mark_load, mark_store, check_asm_memory_clobber, check_call,
23769 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
23770 (ipa_init): Do not initialize visited_nodes;
23771 function_insertion_hook_holder.
23772 (analyze_variable): Rewrite.
23773 (analyze_function): Rewrite.
23774 (copy_local_bitmap): Remove.
23775 (duplicate_node_dat): Do not duplicate local info.
23776 (generate_summary): Simplify to only walk cgraph.
23777 (write_node_summary_p, ipa_reference_write_summary,
23778 ipa_reference_read_summary): Remove.
23779 (propagate): Do not remove function insertion;
23780 generate summary.
23781 (pass_ipa_reference): NULLify summary handling fields.
23782 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
23783 (input_edge): Input ecf_flags.
23784 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
23785 (update_indirect_edges_after_inlining): Ignore edges with unknown
23786 param.
23787
87a0ebfd
ST
237882010-05-12 Sriraman Tallam <tmsriram@google.com>
23789
23790 * implicit-zee.c: New file.
23791 * tree-pass.h (pass_implicit_zee): Declare.
23792 * passes.c (init_optimization_passes): Add zee pass.
23793 * common.opt (fzee): New flag.
23794 * timevar.def (TV_ZEE): Define.
23795 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
23796 and beyond.
23797 * Makefile.in (implicit-zee.o): Add new build file.
23798
01f0a9dc
KH
237992010-05-12 Kazu Hirata <kazu@codesourcery.com>
23800 Nathan Froyd <froydnj@codesourcery.com>
23801
23802 * c-common.c (sync_resolve_params): Remove write-only variable.
23803
cbda7dc6
AS
238042010-05-12 Anatoly Sokolov <aesok@post.ru>
23805
23806 * target.h (struct gcc_target): Add mode_dependent_address_p field.
23807 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23808 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
23809 * targhooks.c (default_mode_dependent_address_p): New function.
23810 * targhooks.h (default_mode_dependent_address_p): Declare function.
23811 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23812 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
ade52657 23813 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
cbda7dc6 23814 target hook. Change return type to bool.
ade52657 23815 * recog.h (mode_dependent_address_p): Change return type to bool.
cbda7dc6 23816
1df43907
KH
238172010-05-12 Kazu Hirata <kazu@codesourcery.com>
23818 Nathan Froyd <froydnj@codesourcery.com>
23819
23820 * tree-mudflap.c (build_function_type_0, build_function_type_1,
23821 build_function_type_2, build_function_type_3): Remove.
23822 (mudflap_init): Use build_function_type_list.
23823
f9b36bb3
KH
238242010-05-12 Kazu Hirata <kazu@codesourcery.com>
23825 Nathan Froyd <froydnj@codesourcery.com>
23826
23827 * coverage.c (build_fn_info_value): Call build_constructor instead of
23828 build_constructor_from_list.
23829 (build_ctr_info_value): Likewise.
23830 (build_gcov_info): Likewise.
23831
f88203b0
NF
238322010-05-12 Nathan Froyd <froydnj@codesourcery.com>
23833
23834 * tree.c (build_constructor): Compute TREE_CONSTANT for the
23835 resultant constructor.
23836 (build_constructor_single): Don't set TREE_CONSTANT.
23837 (build_constructor_from_list): Don't compute TREE_CONSTANT.
23838
b34fd25c
JH
238392010-05-12 Jan Hubicka <jh@suse.cz>
23840
23841 * cgraph.h (struct varpool_node): Add aux.
23842 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
23843 * varpool.c (varpool_remove_node): Do not remove initializer.
23844 (varpool_reset_queue): Export.
23845 (varpool_finalize_decl): Volatile vars are forced to be output.
23846 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
23847 replaced decl.
23848 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
23849 process_references, varpool_can_remove_if_no_refs): New functions.
23850 (cgraph_remove_unreachable_nodes): Handle variables too.
23851
49f19b1c
L
238522010-05-12 H.J. Lu <hongjiu.lu@intel.com>
23853
23854 PR target/44088
23855 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
23856
7c2db0d3
JJ
238572010-05-12 Jakub Jelinek <jakub@redhat.com>
23858
f22f4340
JJ
23859 PR middle-end/44085
23860 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
23861 change value of ORT_TASK.
23862 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
23863 (omp_notice_threadprivate_variable): New function.
23864 (omp_notice_variable): Call it for threadprivate variables.
23865 If enclosing ctx is a task, print enclosing task rather than
23866 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
23867 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
23868 if task has untied clause.
23869
7c2db0d3
JJ
23870 PR debug/42278
23871 * dwarf2out.c (base_type_die): Don't add name attribute here.
23872 (modified_type_die): Instead of sizetype use
23873 its underlying original type. If a DW_TAG_base_type doesn't
23874 have name added, add __unknown__.
23875 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
23876 always call force_type_die instead.
23877
623a6941
MK
238782010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
23879
23880 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
23881 for __stack_chk_guard.
23882
056928b2
JJ
238832010-05-11 Jakub Jelinek <jakub@redhat.com>
23884
9d000e83
JJ
23885 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
23886 don't call start_source_file debug hook here...
23887 (finish_options): ... but here, after outputting predefined and
23888 command line defines and undefs.
23889
3b5fda81
JJ
23890 PR middle-end/44071
23891 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
23892 no fallthru edge.
23893 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
23894 optimizing away empty bb with no successors, move over its
23895 footer chain to fallthru predecessor.
23896 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
23897 (rtl_split_edge): For asm goto call patch_jump_insn even if
23898 splitting fallthru edge.
23899
3895ec53
JJ
23900 PR c++/44059
23901 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
23902 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
23903 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
23904 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
23905 on DW.ref.* decls.
23906
056928b2
JJ
23907 PR c++/44062
23908 * c-parser.c (c_parser_expression): Mark LHS of a comma
23909 expression as read if it is a decl, handled component or
23910 COMPOUND_EXPR with that on the RHS.
23911 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
23912 if it is a decl or handled component.
23913
9a809897
JH
239142010-05-11 Jan Hubicka <jh@suse.cz>
23915
23916 * lto-symtab.c (lto_symtab_free): New function.
23917 * lto-streamer.h (lto_symtab_free): Declare.
23918
239192010-05-11 Jan Hubicka <jh@suse.cz>
23920
23921 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
23922 that if function is needed it is reachable.
23923 (lto_output_node): See if it the function is reachable or referenced.
23924 (output_cgraph): Update call of lto_output_node.
23925 * lto-streamer.h (reachable_from_other_partition_p): Declare.
23926
b8053194
JH
239272010-05-11 Jan Hubicka <jh@suse.cz>
23928
23929 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
23930 Mark as used.
23931
1aa14195
JH
239322010-05-11 Jan Hubicka <jh@suse.cz>
23933
23934 PR tree-optimize/44063
c46a5e28
EB
23935 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
23936 queue.
1aa14195
JH
23937 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
23938 limits.
23939 (estimate_function_body_sizes): Compute sizes even when disregarding.
23940
f088f0ae
KT
239412010-05-11 Kai Tietz <kai.tietz@onevision.com>
23942
23943 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
23944
dcda03f4
JH
239452010-05-11 Jan Hubicka <jh@suse.cz>
23946
23947 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
23948 into every boundary.
23949
ece02605
JH
239502010-05-11 Jan Hubicka <jh@suse.cz>
23951
23952 * matrix-reorg.c (matrix_reorg): Rebuild edges.
23953
cc56d170
JH
239542010-05-11 Jan Hubicka <jh@suse.cz>
23955
23956 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
23957 lto_streamer_cache_delete): Put nodes into heap.
979aeb33
JH
23958 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
23959 heap.
cc56d170 23960
99b766fc
JH
239612010-05-11 Jan Hubicka <jh@suse.cz>
23962
23963 * cgraphbuild.c (cgraph_rebuild_references): New.
a2acdf1f
JH
23964 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
23965 out extern inlines.
99b766fc
JH
23966 * cgraph.h (cgraph_rebuild_references): Declare.
23967 * tree-inline.c (tree_function_versioning): Use it.
23968 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
23969
a940b4d9
JH
239702010-05-11 Jan Hubicka <jh@suse.cz>
23971
23972 * cgraph.c: Include ipa-utils.h
23973 (cgraph_create_virtual_clone): Update references.
23974 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
23975
57762e97
CB
239762010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
23977
78c7cabb 23978 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
57762e97
CB
23979 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
23980 cache size.
23981
a8beb3a7
CB
239822010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
23983
78c7cabb 23984 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
a8beb3a7 23985
3f592b38
JJ
239862010-05-11 Jakub Jelinek <jakub@redhat.com>
23987
09b201fc
JJ
23988 * gcc.c (execute): For -### don't quote arguments that
23989 contain just alphanumerics and _/-. characters.
23990 * doc/invoke.texi: Document that change for -###.
23991
3f592b38
JJ
23992 PR debug/44023
23993 * df-problems.c (struct dead_debug): Add to_rescan field.
23994 (dead_debug_init): Clear to_rescan field.
23995 (dead_debug_finish): Rescan all debug insns in to_rescan
23996 bitmap and free the bitmap.
23997 (dead_debug_insert_before): Instead of rescanning debug insns
23998 immediately queue their rescanning until dead_debug_finish.
23999 (df_note_bb_compute): After dead_debug_add do continue instead
24000 of break.
24001
1de12eab
JJ
240022010-05-10 Jakub Jelinek <jakub@redhat.com>
24003
24004 PR debug/44028
24005 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
24006 clear also INSN_REG_USE_LIST.
24007
e472d6bf
RO
240082010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24009
24010 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
24011
6cd174f6
JH
240122010-05-10 Jan Hubicka <jh@suse.cz>
24013
c46a5e28
EB
24014 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
24015 commited change.
6cd174f6 24016
5c4f225f
JH
240172010-05-10 Jan Hubicka <jh@suse.cz>
24018
c46a5e28
EB
24019 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
24020 Allocate encoders.
5c4f225f
JH
24021 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
24022 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
24023 (lto_streamer_cache_create): Init alloc pool.
24024 (lto_streamer_cache_delete): Free alloc pool.
24025 * lto-streamer.h: Include alloc pool.
24026 (lto_streamer_cache_d): Use alloc pool.
24027 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
24028
de61f467
JH
240292010-05-10 Jan Hubicka <jh@suse.cz>
24030
24031 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
24032 * cgraphbuild.c: Include except.h
24033 (record_type_list, record_eh_tables): New function.
24034 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
24035
e4fa83d3
JH
240362010-05-10 Jan Hubicka <jh@suse.cz>
24037
24038 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
24039 __frame_dummy_init_array_entry, force_to_data): Attribute as used
24040 rather than unused.
24041
8a9ecffd
MM
240422010-05-10 Michael Matz <matz@suse.de>
24043
24044 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
24045 (can_reassociate_p): Use FLOAT_TYPE_P.
24046 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
24047 (vect_force_simple_reduction): ... this.
62e59133 24048 * tree-parloops.c (gather_scalar_reductions): Use
8a9ecffd
MM
24049 vect_force_simple_reduction.
24050 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
24051 vect_is_simple_reduction, add modify argument, if true rewrite
24052 "a-b" into "a+(-b)".
24053 (vect_is_simple_reduction, vect_force_simple_reduction): New
24054 functions.
24055 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
24056
240572010-05-10 H.J. Lu <hongjiu.lu@intel.com>
24058 Vladimir Makarov <vmakarov@redhat.com>
46044dd9
L
24059
24060 PR rtl-optimization/44012
24061 * ira-build.c (remove_unnecessary_allocnos): Nullify
24062 regno_allocno_map of the removed allocno.
24063
2e2b183b
RO
240642010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24065
24066 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
24067 to /dev/null.
24068 * configure: Regenerate.
24069
a93e1899
RO
240702010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24071
24072 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
24073 unused.
24074 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
24075 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
24076 support in Sun ld.
24077 * configure: Regenerate.
24078
571943de
RG
240792010-05-10 Richard Guenther <rguenther@suse.de>
24080
24081 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
24082 marked if the entry identifier is marked.
24083
0b7b376d
RG
240842010-05-10 Richard Guenther <rguenther@suse.de>
24085
24086 * c-common.c (struct c_common_attributes): Add fnspec attribute.
24087 (handle_fnspec_attribute): New function.
24088 * gimple.h (gimple_call_return_flags): Declare.
24089 (gimple_call_arg_flags): Likewise.
24090 * gimple.c (gimple_call_arg_flags): New function.
24091 (gimple_call_return_flags): Likewise.
24092 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
24093 New argument flags.
24094 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
24095 return value flags.
24096 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
24097 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
24098 main work to ...
24099 (make_heapvar_for): ... this new function.
24100 (handle_rhs_call): Handle fnspec attribute argument specifiers.
24101 (handle_lhs_call): Likewise.
24102 (find_func_aliases): Adjust.
24103
1755aad0
RG
241042010-05-10 Richard Guenther <rguenther@suse.de>
24105
24106 PR tree-optimization/44050
62e59133 24107 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
1755aad0 24108
333b67a9
WG
241092010-05-10 Wei Guozhi <carrot@google.com>
24110
24111 PR target/42879
24112 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
24113
0fb96aa4
JM
241142010-05-09 Joseph Myers <joseph@codesourcery.com>
24115
24116 PR c/10676
24117 * c-typeck.c (lookup_field): Take a type directly. Update
24118 recursive calls.
24119 (build_component_ref): Update call to lookup_field.
24120 (set_init_label): Use lookup_field to find initialized field.
24121 Handle returned list of fields like a sequence of designators.
24122
3d7a712a
RG
241232010-05-09 Richard Guenther <rguenther@suse.de>
24124
24125 PR middle-end/44024
24126 * fold-const.c (tree_single_nonzero_warnv_p): Properly
24127 handle &FUNCTION_DECL.
24128
492fc0ee
JM
241292010-05-09 Joseph Myers <joseph@codesourcery.com>
24130
24131 PR c/4784
24132 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
24133 structures and unions recursively.
24134 (detect_field_duplicates): Move duplicate detection with a hash to
24135 detect_field_duplicates_hash. Always use a hash if anonymous
24136 structures or unions are present.
24137 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
24138 give errors.
24139
44f276c6
L
241402010-05-09 H.J. Lu <hongjiu.lu@intel.com>
24141
24142 PR target/44046
24143 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
24144 detect Atom, Core 2 and Core i7.
24145
d6205185
RG
241462010-05-09 Richard Guenther <rguenther@suse.de>
24147
24148 * gcc.c (store_arg): Handle temporary file deletion for
24149 joined arguments.
24150
5588864d
RG
241512010-05-09 Richard Guenther <rguenther@suse.de>
24152
24153 PR middle-end/44043
24154 * ipa-inline.c (estimate_function_body_sizes): Return after
24155 disregarding inline limits.
24156
aa34f42c
RG
241572010-05-09 Richard Guenther <rguenther@suse.de>
24158
24159 * gcc.c (store_arg): Revert last change.
24160
844381e5
SL
241612010-05-08 Sandra Loosemore <sandra@codesourcery.com>
24162
24163 PR middle-end/28685
24164 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
24165 (optimize_ops_list): Call it.
24166
43896afb
RG
241672010-05-08 Richard Guenther <rguenther@suse.de>
24168
24169 PR tree-optimization/44030
24170 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
24171 NECESSARY flag if we propagate from a inserted expression.
24172
f56000ed
EB
241732010-05-08 Eric Botcazou <ebotcazou@adacore.com>
24174
24175 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
24176 domain types as equal if they are both PLACEHOLDER_EXPRs.
24177
1522167d
RG
241782010-05-08 Richard Guenther <rguenther@suse.de>
24179
24180 * lto-wrapper.c (run_gcc): Remove linker output from
24181 command line for LTRANS invocation.
24182
c082f9f3
SB
241832010-05-07 Steven Bosscher <steven@gcc.gnu.org>
24184
24185 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
24186 lto-macho as lto_binary_reader.
24187 * target.h (struct gcc_target): New hooks lto_start and lto_end.
24188 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
24189 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
24190 in lto_start and lto_end calls.
24191 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
24192 magic numbers.
24193 (scan_prog_file): Update is_elf_or_coff call.
24194 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
24195
24196 * collect2.c (main): Fix enum comparison.
24197
24198 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
24199 Add prototypes.
24200 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
24201 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
24202 and TARGET_ASM_LTO_END.
24203 * darwin.c: Include obstack.h and lto-streamer.h.
24204 (lto_section_names_offset, lto_section_names_obstack,
24205 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
24206 global variables.
24207 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
24208 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
24209 to a temporary file.
24210 (darwin_asm_lto_end): New function. Restore asm_out_file.
24211 (darwin_asm_named_section): For LTO sections, replace the name with
24212 the offset of the section name in a string table, and build this
24213 table.
24214 (darwin_file_start): Initialize global vars for LTO support.
24215 (darwin_file_end): If output to asm_out_file was redirected, append it
24216 to the proper asm_out_file here. Add the section names section.
24217
18bc5398
SB
242182010-05-07 Steven Bosscher <steven@gcc.gnu.org>
24219
24220 * c-pragma.c (pending_weak_d, pending_weak): New.
24221 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
24222 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
24223 handle_pragma_weak): Update the uses of pending_weaks.
24224
0f590a2d
RW
242252010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24226
24227 PR documentation/44016
24228 * doc/standards.texi (Standards): Link to unversioned
24229 cxx0x_status.html page.
24230
f4a4b582 242312010-05-07 Iain Sandoe <iains@gcc.gnu.org>
3bd5cdeb
IS
24232
24233 PR target/43708
24234 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
24235 in addition to TREE_USED, to avoid "set but unused" warnings.
24236
9bf4598b
CF
242372010-05-07 Changpeng Fang <changpeng.fang@amd.com>
24238
24239 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
24240 (is_loop_prefetching_profitable): Do not insert prefetches
24241 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
24242 times the prefetch ahead distance.
24243
ccacf0e1
CF
242442010-05-07 Changpeng Fang <changpeng.fang@amd.com>
24245
24246 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
24247 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
24248 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
24249 the unroll_factor.
24250
55e5a2eb
CF
242512010-05-07 Changpeng Fang <changpeng.fang@amd.com>
24252
24253 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
24254 a diagnostic info when the insn-to-mem ratio is too small.
24255
f4a4b582 242562010-05-07 Richard Guenther <rguenther@suse.de>
5cd0e96b
RG
24257
24258 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
24259 the linker plugin.
24260 (store_arg): Queue temp_filename for deletion instead of
24261 the whole argument.
24262
48cf395b
RB
242632010-05-07 Richard Guenther <rguenther@suse.de>
24264
24265 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
24266 (run_gcc): Handle LTRANS phase invocation.
62e59133 24267 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
48cf395b 24268
86b2c5b6
JJ
242692010-05-07 Jakub Jelinek <jakub@redhat.com>
24270
24271 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
24272 this is also meaningful on PARM_DECLs and RESULT_DECLs.
24273
c4e1e0b1
RO
242742010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24275
24276 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
24277
a7d4562a
RG
242782010-05-07 Richard Guenther <rguenther@suse.de>
24279
24280 PR tree-optimization/44020
24281 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
24282 code when PRE is not yet initialized.
24283
a6b02ef3
RO
242842010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24285
24286 * config/mips/dbxmdebug.h: Remove.
24287 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
24288
d42ba3b8
SZ
242892010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
24290
24291 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
24292 with null pointer and also warn about ordered comparison of zero with
24293 pointer if -Wextra.
24294
a6733c71
AS
242952010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
24296
24297 * graphite-blocking.c
24298 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
24299 * graphite-clast-to-gimple.c
24300 (clast_to_gcc_expression): Same.
24301 (precision_for_value): Same.
24302 (precision_for_interval): Same.
24303 (gcc_type_for_interval): Same.
24304 (graphite_create_new_guard): Same.
24305 (compute_bounds_for_level): Same.
24306 (graphite_create_new_loop_guard): Same.
24307 * graphite-interchange.c
24308 (build_linearized_memory_access): Same.
24309 (pdr_stride_in_loop): Same.
24310 (memory_strides_in_loop_1): Same.
24311 (memory_strides_in_loop): Same.
24312 (extend_scattering): Same.
24313 (psct_scattering_dim_for_loop_depth): Same.
24314 (pbb_number_of_iterations): Same.
24315 * graphite-poly.h
24316 (debug_iteration_domains): Same.
24317 * graphite-ppl.c
24318 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
24319 (ppl_set_inhomogeneous_gmp): Same.
24320 (ppl_strip_loop): Same.
24321 (ppl_lexico_compare_linear_expressions): Same.
24322 (ppl_read_polyhedron_matrix): Same.
24323 (ppl_max_for_le_pointset): Same.
24324 * graphite-ppl.h
24325 (ppl_read_polyhedron_matrix): Same.
24326 (tree_int_to_gmp): Same.
24327 (gmp_cst_to_tree): Same.
24328 (ppl_set_inhomogeneous): Same.
24329 (ppl_set_inhomogeneous_tree): Same.
24330 (ppl_set_coef): Same.
24331 (ppl_set_coef_tree): Same.
24332 * graphite-sese-to-poly.c
24333 (build_pbb_scattering_polyhedrons): Same.
24334 (build_scop_scattering): Same.
24335 (scan_tree_for_params_right_scev): Same.
24336 (scan_tree_for_params): Same.
24337 (find_params_in_bb): Same.
24338 (find_scop_parameters): Same.
24339 (add_upper_bounds_from_estimated_nit): Same.
24340 (build_loop_iteration_domains): Same.
24341 (add_condition_to_domain): Same.
24342 (pdr_add_memory_accesses): Same.
24343
243442010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
24345
24346 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
24347 CLooG's value_* macros to their respective mpz_* counterparts.
24348 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
24349 (graphite_create_new_loop_guard): Same.
24350 * graphite-interchange.c (build_linearized_memory_access): Same.
24351 (pdr_stride_in_loop): Same.
24352 (memory_strides_in_loop_1): Same.
24353 (1st_interchange_profitable_p): Same.
24354 * graphite-poly.c (extend_scattering): Same.
24355 (psct_scattering_dim_for_loop_depth): Same.
24356 (pbb_number_of_iterations): Same.
24357 (pbb_number_of_iterations_at_time): Same.
24358 * graphite-poly.h (new_1st_loop): Same.
24359 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
24360 (oppose_constraint): Same.
24361 (insert_constraint_into_matrix): Same.
24362 (ppl_set_inhomogeneous_gmp): Same.
24363 (ppl_set_coef_gmp): Same.
24364 (ppl_strip_loop): Same.
24365 (ppl_lexico_compare_linear_expressions): Same.
24366 (ppl_max_for_le_pointset): Same.
24367 (ppl_min_for_le_pointset): Same.
24368 (ppl_build_realtion): Same.
24369 * graphite-ppl.h (gmp_cst_to_tree): Same.
24370 (ppl_set_inhomogeneous): Same.
24371 (ppl_set_inhomogeneous_tree): Same.
24372 (ppl_set_coef): Same.
24373 (ppl_set_coef_tree): Same.
24374 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24375 (build_scop_scattering): Same.
24376 (add_value_to_dim): Same.
24377 (scan_tree_for_params_right_scev): Same.
24378 (scan_tree_for_params_int): Same.
24379 (scan_tree_for_params): Same.
24380 (find_params_in_bb): Same.
24381 (find_scop_parameters): Same.
24382 (add_upper_bounds_from_estimated_nit): Same.
24383 (build_loop_iteration_domains): Same.
24384 (create_linear_expr_from_tree): Same.
24385 (add_condition_to_domain): Same.
24386 (pdr_add_memory_accesses): Same.
24387
14c2101d
JM
243882010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
24389 Jason Merrill <jason@redhat.com>
24390
24391 * c-common.c (c_common_reswords): Add nullptr.
24392 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
24393 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
24394 (gen_type_die_with_usage): Likewise.
24395 * dbxout.c (dbxout_type): Likewise.
24396 * sdbout.c (plain_type_1): Likewise.
24397
ebad5233
JM
243982010-05-06 Jason Merrill <jason@redhat.com>
24399
941f78d1
JM
24400 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
24401 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
24402 ret appropriately.
24403 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
24404
ebad5233
JM
24405 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
24406 stripping WITH_SIZE_EXPR.
24407 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
24408 change.
24409
9aaa1ee8
RO
244102010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24411
24412 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
24413 list of obsolete configurations.
24414 Disabled check for obsolete configurations.
24415 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
24416 Removed support for previous versions.
24417 * config/mips/iris.h: Removed.
24418 * config/mips/iris5.h: Removed.
24419 * config/mips/iris6.h: Merged old iris.h contents.
24420 (TARGET_IRIX): Removed.
24421 (DRIVER_SELF_SPECS): Removed mabi=32.
24422 (IDENT_ASM_OP): Removed undef.
24423 (STARTFILE_SPEC): Removed mabi=32.
24424 (ENDFILE_SPEC): Likewise.
24425 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
24426 (MACHINE_TYPE): Update for IRIX 6.5.
24427 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
24428 TARGET_IRIX by TARGET_IRIX6.
24429 (mips_file_start): Likewise.
24430 (mips_output_external): Remove IRIX 5/6 O32 support.
24431 (mips_output_function_prologue): Likewise.
24432 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
24433 TARGET_IRIX6.
24434 (TARGET_CPU_CPP_BUILTINS): Likewise.
24435 (TARGET_IRIX): Removed.
24436 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
24437 (MULTILIB_DIRNAMES): Removed 32.
24438 (MULTILIB_OSDIRNAMES): Removed ../lib.
62e59133 24439 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
9aaa1ee8 24440 (Specific, mips-sgi-irix5): Document removal.
62e59133 24441 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
9aaa1ee8
RO
24442 Remove references to older IRIX 6 releases and the O32 ABI.
24443
5b8bd3d5
JJ
244442010-05-06 Jakub Jelinek <jakub@redhat.com>
24445
24446 PR bootstrap/43994
24447 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
24448 instead of DF_REF_REAL_REG.
24449
e97580ce
DK
244502010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
24451
24452 PR target/43888
24453 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
24454 handling to still return true for x64 targets.
24455
f24d84cc
MK
244562010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
24457
24458 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
24459
ef38b551
JH
244602010-05-06 Jan Hubicka <jh@suse.cz>
24461
24462 PR tree-optimization/43791
24463 * ipa-inline.c (update_caller_keys): Remove bogus
24464 disregard_inline_limits check.
24465
0ab555de
MM
244662010-05-06 Michael Matz <matz@suse.de>
24467
24468 PR tree-optimization/43984
24469 * tree-ssa-pre.c (inserted_phi_names): Remove.
24470 (inserted_exprs): Change to bitmap.
24471 (create_expression_by_pieces): Set bits, don't append to vector.
24472 (insert_into_preds_of_block): Don't handle inserted_phi_names.
24473 (eliminate): Don't look at inserted_phi_names, remove deleted
24474 insns from inserted_exprs.
62e59133 24475 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
0ab555de
MM
24476 (init_pre, fini_pre): Allocate and free bitmaps.
24477 (execute_pre): Insert insns on edges before elimination.
24478
315a02da
MK
244792010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
24480
24481 * tree.c (initializer_zerop): Handle STRING_CST.
24482
3734d960
MLI
244832010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
24484
24485 PR 40989
24486 * doc/invoke.texi (Wimplicit): Document as C only.
24487 * opts.c (common_handle_option): Add argument kind.
24488 (handle_option): Rename as read_cmdline_option. Factor out code to...
24489 (handle_option): ... here. New.
24490 (handle_options): Rename as read_cmdline_options.
24491 (decode_options): Update call.
24492 (set_option): Use option index instead of option pointer. Classify
24493 diagnostics correctly.
24494 (enable_warning_as_error): Call handle_option.
24495 * opts.h (set_option): Update declaration.
24496 (handle_option): Declare.
62e59133 24497 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3734d960
MLI
24498 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
24499 * c-opts.c (set_Wimplicit): Delete.
24500 (c_family_lang_mask): New static constant.
24501 (c_common_handle_option): Add argument kind. Use handle_option
24502 instead of set_Wimplicit.
24503 (c_common_post_options): warn_implicit and warn_implicit_int
24504 are disabled by default.
24505 * c-common.c (warn_implicit): Do not define here.
24506 * c-common.h (warn_implicit): Do not declare here.
24507 (c_common_handle_option): Update declaration.
24508 * lto-opts.c (lto_reissue_options): Update call to set_option.
24509
2b90475a
RG
245102010-05-06 Richard Guenther <rguenther@suse.de>
24511
24512 PR tree-optimization/43571
24513 * domwalk.c (walk_dominator_tree): Walk the dominator
24514 sons in more optimal order.
24515
e3bdfed6
RG
245162010-05-06 Richard Guenther <rguenther@suse.de>
24517
24518 PR tree-optimization/43934
24519 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
24520 (stmt_cost): Likewise.
24521 (extract_true_false_args_from_phi): New helper.
24522 (determine_max_movement): For PHI nodes verify we can hoist them
24523 and compute their cost.
24524 (determine_invariantness_stmt): Handle PHI nodes.
24525 (move_computations_stmt): Likewise. Hoist PHI nodes in
24526 if-converted form using COND_EXPRs.
62e59133 24527 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
e3bdfed6
RG
24528 (tree_ssa_lim): Likewise.
24529 * tree-flow.h (tree_ssa_lim): Adjust prototype.
24530 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
24531
a81b065a
RG
245322010-05-06 Richard Guenther <rguenther@suse.de>
24533
24534 PR tree-optimization/43987
24535 * tree-ssa-structalias.c (could_have_pointers): For possibly
24536 address-taken variables force pointers to be recorded.
24537 (create_variable_info_for_1): Likewise.
24538 (push_fields_onto_fieldstack): Pass in wheter all fields
24539 must have pointers.
24540 (find_func_aliases): Query types instead of vars whether
24541 they contain pointers where appropriate.
24542
369451ec
JH
245432010-05-06 Jan Hubicka <jh@suse.cz>
24544
24545 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
24546 (record_reference, mark_address, mark_load, mark_store): Record
24547 references.
24548 (record_references_in_initializer): Update call of record_references.
24549 (rebuild_cgraph_edges): Remove all references before rebuiding.
24550 * cgraph.c (cgraph_create_node): Clear ref list.
24551 (cgraph_remove_node): Remove references.
24552 (dump_cgraph_node): Dump references.
24553 (cgraph_clone_node): Clone references.
24554 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
24555 (struct cgraph_node, varpool_node): Add ref_lst.
24556 * ipa-ref.c: New file.
24557 * ipa-ref.h: New file.
24558 * ipa-ref-inline.h: New file.
24559 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
24560 (referenced_from_other_partition_p): New function.
24561 (lto_output_varpool_node): Take set arugment; call
24562 referenced_from_other_partition.
24563 (lto_output_ref): New.
24564 (add_references): New.
24565 (output_refs): New.
62e59133 24566 (output_cgraph): Compute boundary based on references; output refs.
369451ec
JH
24567 (output_varpool): Accept cgraph_node_set argument.
24568 (input_ref): New.
24569 (input_refs): New.
24570 (input_cgraph): Call input_refs.
24571 * lto-section-in.c (lto_section_name): Add refs.
ade52657 24572 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
369451ec
JH
24573 (ipa-ref.o): New file.
24574 * varpool.c (varpool_node): Clear ipa ref list.
24575 (varpool_remove_node): Remove references.
24576 (dump_varpool_node): Dump references.
24577 (varpool_assemble_decl): Only compile finalized ones.
24578 (varpool_extra_name_alias): Initialize ref list.
24579 * lto-streamer.c (lto-get_section_name): Add .refs section.
24580 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
24581 (referenced_from_other_partition_p): Declared.
24582
7d8930a0
IR
245832010-05-06 Ira Rosen <irar@il.ibm.com>
24584
24585 PR tree-optimization/43901
24586 * tree-vect-stmts.c (vectorizable_call): Assert that vector
24587 type is not NULL if it's transformation phase, and return
24588 FALSE if it's analysis.
62e59133
UB
24589 (vectorizable_conversion, vectorizable_operation,
24590 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
7d8930a0 24591
a1c4f19f
AP
245922010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
24593
24594 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24595 Delete.
24596 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24597 New define.
24598 * config/mips/mips-protos.h
24599 (mips_small_register_classes_for_mode_p): Delete prototype.
24600
93b338c3
BS
246012010-05-06 Bernd Schmidt <bernds@codesourcery.com>
24602
24603 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
24604 * config/arm/arm.c (multiple_operation_profitable_p,
24605 compute_offset_order): New static functions.
24606 (load_multiple_sequence, store_multiple_sequence): Use them.
24607 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
24608 memory offsets, not register numbers.
24609 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
24610
50701474
SB
246112010-05-05 Steven Bosscher <steven@gcc.gnu.org>
24612
62e59133 24613 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
50701474
SB
24614 (get_pending_sizes, put_pending_size, put_pending_sizes):
24615 Update the uses of pending_sizes.
24616 * c-decl.c (store_parm_decls): Likewise.
24617 * c-tree.h (struct c_arg_info): Likewise.
24618 * tree.h: Update the prototype for get_pending_sizes and
24619 put_pending_sizes.
24620
564a129d
JM
246212010-05-05 Jason Merrill <jason@redhat.com>
24622
0f559c16
JM
24623 PR debug/43370
24624 * c-common.c (handle_aligned_attribute): Respect
24625 ATTR_FLAG_TYPE_IN_PLACE.
24626
564a129d
JM
24627 PR testsuite/43758
24628 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
24629 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24630 (TARGET_INITIALIZER): Use it.
24631 * c-common.c (attribute_takes_identifier_p): Call it.
24632 * c-common.h: Update prototype.
24633 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
24634 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24635
58c13acc
JJ
246362010-05-05 Jakub Jelinek <jakub@redhat.com>
24637
24638 PR debug/43950
24639 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
24640 DW_ID_down_case for Fortran compilation units.
24641
5b042919
JH
246422010-05-05 Jan Hubicka <jh@suse.cz>
24643
24644 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
24645 handle aliases.
24646
ca361dec
EB
246472010-05-05 Eric Botcazou <ebotcazou@adacore.com>
24648
24649 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
24650 a variable-sized RESULT_DECL.
24651
fa6aeae1
MK
246522010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
24653
24654 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
24655
6d729f28
JM
246562010-05-05 Jason Merrill <jason@redhat.com>
24657
24658 PR c++/43787
24659 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
24660 returns GS_OK.
24661 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
24662
e972a1d3
AO
246632010-05-05 Alexandre Oliva <aoliva@redhat.com>
24664 Jakub Jelinek <jakub@redhat.com>
24665
24666 PR debug/43478
24667 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
24668 (dead_debug_init, dead_debug_finish): New functions.
24669 (dead_debug_add, dead_debug_insert_before): Likewise.
24670 (df_note_bb_compute): Initialize a dead_debug object, add dead
24671 debug uses to it, insert debug bind insns before death insns,
24672 reset debug insns that refer to pending uses at the end.
24673 * rtl.h (make_debug_expr_from_rtl): New prototype.
24674 * varasm.c (make_debug_expr_from_rtl): New function.
24675
2f41ecf5
JH
246762010-05-05 Jan Hubicka <jh@suse.cz>
24677
24678 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
62e59133
UB
24679 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
24680 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
24681 lto_varpool_encoder_deref, lto_varpool_encoder_size,
2f41ecf5
JH
24682 lto_varpool_encoder_encode_initializer_p,
24683 lto_set_varpool_encoder_encode_initializer): New functions.
24684 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
24685 call output_varpool.
24686 (input_varpool_node): Do not always set analyzed.
24687 (input_cgraph_1): Return vector of cgraph nodes.
24688 (input_varpool_1): Return vector of varpools.
24689 (input_cgraph): Free the vectors.
24690 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24691 output only initializers needed.
24692 (lto_output): Only call output_cgraph.
24693 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
24694 * lto-section-out.c (lto_new_out_decl_state): Initialize
24695 state->varpool_node_encoder.
24696 * lto-streamer.h (lto_varpool_encoder_d): New.
62e59133 24697 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2f41ecf5
JH
24698 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
24699 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
24700 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
24701 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
24702 Declare.
24703 (output_varpool, input_varpool): Remove declarations.
24704
9e0546ef
JH
247052010-05-05 Jan Hubicka <jh@suse.cz>
24706
24707 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
24708 with body can prevail.
24709
247102010-05-05 Jan Hubicka <jh@suse.cz>
24711
24712 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
24713 size.
24714
0277fabf
LB
247152010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
24716
62e59133 24717 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
0277fabf
LB
24718
24719 * gengtype.h (erro_at_line): Constify pos argument.
24720
24721 * gengtype.c: Include hashtab.h.
24722 (enum gc_used): Document GC_MAYBE_POINTED_TO.
24723 (error_at_line): Constify pos argument.
24724 (do_typedef): Initialize p->opt field.
24725 (get_file_gtfilename): Fix comment typo.
24726 (struct walk_type_data): Constify line field.
24727 (get_output_file_for_structure): New function.
24728 (write_local_func_for_structure): Constify orig_s argument.
24729 Use get_output_file_for_structure.
24730 (write_func_for_structure): Use get_output_file_for_structure.
24731 (INDENT): New define.
24732 (dump_pair, dump_type, dump_type_list, dump_typekind)
24733 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
24734 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
24735 functions.
24736 (seen_types): New variable.
24737 (main): New variable do_dump. Process "-d" command line option.
24738 Call dump_everything if dump requested.
24739
dbb2a2cb
JJ
247402010-05-05 Jakub Jelinek <jakub@redhat.com>
24741
24742 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
24743 in a temporary instead of invoking the macro multiple times.
24744 (track_expr_p): Likewise.
24745
f4a4b582 247462010-05-04 Neil Vachharajani <nvachhar@google.com>
650cfcab
NV
24747
24748 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
24749 per new semantics.
24750 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
24751 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
24752 conditions for printing notes.
24753 * common.opt (-Wcoverage-mismatch): Allow negative, default to
24754 true, update documentation.
24755 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
650cfcab 24756
97e3c923
JJ
247572010-05-04 Jakub Jelinek <jakub@redhat.com>
24758
24759 PR c/43981
24760 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
24761 on dimen.
24762
ade6a9ac
L
247632010-05-04 H.J. Lu <hongjiu.lu@intel.com>
24764
24765 PR target/43799
62e59133 24766 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
ade6a9ac
L
24767 (*sse_prologue_save_insn1): Likewise.
24768 (SSE prologue save splitter): Likewise.
24769
7ef5e86c
EB
247702010-05-04 Eric Botcazou <ebotcazou@adacore.com>
24771
24772 * tree.c (free_lang_data_in_one_sizepos): New inline function.
24773 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
24774 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
24775 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
24776 all decls. Call it on DECL_FIELD_OFFSET of fields.
24777 (find_decls_types_r): Follow DECL_VALUE_EXPR.
24778 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
24779
6cbd3b6a
MJ
247802010-05-04 Martin Jambor <mjambor@suse.cz>
24781
24782 * tree-sra.c (build_access_from_expr_1): The first parameter type
24783 changed to simple tree.
24784 (build_access_from_expr): Likewise, gsi parameter was eliminated.
24785 (scan_assign_result): Renamed to assignment_mod_result, enum elements
24786 renamed as well.
24787 (build_accesses_from_assign): Removed all parameters except for a
24788 simple gimple statement. Now returns a simple bool.
24789 (scan_function): All non-analysis parts moved to separate functions
24790 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
24791 parameters and updated both callers.
24792 (sra_modify_expr): Removed parameter data.
24793 (sra_modify_function_body): New function.
24794 (perform_intra_sra): Call sra_modify_function_body to modify the
24795 function body.
24796 (replace_removed_params_ssa_names): Parameter data changed into
24797 adjustments vector.
24798 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
24799 changed the parameter dont_convert to convert with the opposite
24800 meaning.
24801 (sra_ipa_modify_assign): Parameter data changed into adjustments
24802 vector, return value changed to bool.
24803 (ipa_sra_modify_function_body): New function.
24804 (sra_ipa_reset_debug_stmts): Updated a comment.
24805 (modify_function): Use ipa_sra_modify_function_body to modify function
24806 body.
24807
2147c71c
L
248082010-05-04 H.J. Lu <hongjiu.lu@intel.com>
24809
24810 PR middle-end/43671
24811 * alias.c (true_dependence): Handle the same VALUE in x and mem.
24812 (canon_true_dependence): Likewise.
24813 (write_dependence_p): Likewise.
24814
85912441
JH
248152010-05-04 Jan Hubicka <jh@suse.cz>
24816
24817 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
24818 * cgraphbuild.c: Include ipa-utils.h
24819 (record_reference_ctx): New struct.
24820 (record_reference): Simplify to work on initializers; not statements.
24821 (mark_address, mark_load, mark_store): New.
24822 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24823 walk PHI nodes too.
24824 (record_references_in_initializer): Update use of record_reference.
24825 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24826 walk PHI nodes too.
24827
688a10c2
JH
248282010-05-04 Jan Hubicka <jh@suse.cz>
24829
24830 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
24831 node will be removed anyway.
24832 (lto_varpool_replace_node): Allow also unanalyzed nodes;
24833 relink aliases of node into prevailing node.
24834 * varpool.c (varpool_remove_node): Remove aliases properly;
24835 when removing node, remove all its aliases too; remove DECL_INITIAL
24836 of removed node; ggc_free the varpool node.
24837
27c2cfa6
RG
248382010-05-04 Richard Guenther <rguenther@suse.de>
24839
24840 PR tree-optimization/43879
24841 * tree-ssa-structalias.c (alias_get_name): Use
24842 DECL_ASSEMBLER_NAME if available.
24843 (create_function_info_for): Return the varinfo node.
24844 (ipa_pta_execute): Associate same-body aliases and extra names
24845 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
24846
9c265c4d
KK
248472010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
24848
62e59133 24849 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
9c265c4d 24850
a5c011cd
MP
248512010-05-04 Mikael Pettersson <mikpe@it.uu.se>
24852
24853 PR bootstrap/43964
24854 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
24855 only if HONOR_REG_ALLOC_ORDER is not defined.
24856
622d360e
RG
248572010-05-04 Richard Guenther <rguenther@suse.de>
24858
24859 PR tree-optimization/43949
24860 * tree-vrp.c (extract_range_from_binary_expr): Only handle
24861 TRUNC_MOD_EXPR.
24862
cbb4feb3
JM
248632010-04-26 Jason Merrill <jason@redhat.com>
24864
24865 * c.opt (-fstrict-enums): New.
24866 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
24867
f4a4b582 248682010-05-03 David Ung <davidu@mips.com>
67e67979
DU
24869 James E. Wilson <wilson@codesourcery.com>
24870
e492f63b 24871 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
67e67979
DU
24872 emit the trap instruction before the divide for TUNE_74K.
24873
42db504c
SB
248742010-05-03 Steven Bosscher <steven@gcc.gnu.org>
24875
24876 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
24877 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
24878 based on the above, for new target hook.
24879
24880 * hooks.c (hook_bool_mode_true): New generic hook.
24881 * hooks.h (hook_bool_mode_true): Add prototype.
24882
24883 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
24884 target hook.
24885 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
24886 target hook, set to hook_bool_mode_false.
24887 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
24888 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
24889 with targetm.small_register_classes_for_mode_p.
24890 (find_reusable_reload): Likewise.
24891 (combine_reloads): Likewise.
24892 * reload1.c (reload_as_needed): Likewise.
24893 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
24894 * ifcvt.c (noce_process_if_block, check_cond_move_block,
24895 dead_or_predicable): Likewise.
24896 * regmove.c (optimize_reg_copy_1): Likewise.
24897 * calls.c (prepare_call_address): Likewise.
24898 (precompute_register_parameters): Likewise.
24899
24900 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
24901 hook definition.
24902 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
24903 implementation of the hook that considers all register classes
24904 small except for SH64.
24905 (sh_override_options): Use the new hook.
24906 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
24907 Add prototype.
24908
24909 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
24910 hook definition.
24911 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
24912 implementation of the hook that considers all register classes
24913 small for THUMB1.
24914 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
24915 Add prototype.
24916
24917 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
24918 hook definition.
24919 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
24920 implementation of the hook that considers all register classes
24921 small for MIPS16.
24922 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
24923 Add prototype.
24924
24925 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
24926 hook definition.
24927 * config/m32c/m32c.h: Likewise.
24928 * config/pdp11/pdp11.h: Likewise.
24929 * config/avr/avr.h: Likewise.
24930 * config/xtensa/xtensa.h: Likewise.
24931 * config/m68hc11/m68hc11.h: Likewise.
24932 * config/mn10300/mn10300.h: Likewise.
24933 * config/mcore/mcore.h: Likewise.
24934 * config/h8300/h8300.h: Likewise.
24935 * config/bfin/bfin.h: Likewise.
24936
24937 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
24938 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
24939
e6693cfa
AS
249402010-05-03 Anatoly Sokolov <aesok@post.ru>
24941
24942 * double-int.h (tree_to_double_int): Remove macro.
24943 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
24944 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24945 (tree_to_double_int): New function.
24946 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
24947 Move ...
24948 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24949
8eb7bc3c
RG
249502010-05-03 Richard Guenther <rguenther@suse.de>
24951
24952 PR tree-optimization/43971
24953 * tree-ssa-structalias.c (get_constraint_for_1): Fix
24954 constraints in the !flag_delete_null_pointer_checks case.
24955
c4e26da1
JJ
249562010-05-03 Jakub Jelinek <jakub@redhat.com>
24957
24958 PR debug/43972
24959 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
24960 result mode matches original rtl mode.
24961
2dfccd83
DK
249622010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
24963
2385a470 24964 PR target/43888
2dfccd83
DK
24965 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
24966
18fdef20
UB
249672010-05-02 Uros Bizjak <ubizjak@gmail.com>
24968
24969 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
24970 when processing flag options.
24971
7c393241
UB
249722010-05-02 Uros Bizjak <ubizjak@gmail.com>
24973
24974 * gcov-iov.c (main): Change format string placeholder
24975 from %#08x to 0x%08x.
24976 * genchecksum.c (dosum): Change format string placeholder
24977 from %#02x to 0x%02x.
24978
52c307ba
RG
249792010-05-02 Richard Guenther <rguenther@suse.de>
24980
24981 PR tree-optimization/43879
7c393241 24982 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
52c307ba 24983
4896c7b8
BH
249842010-05-02 Bruno Haible <bruno@clisp.org>
24985
24986 * doc/extend.texi (Function Attributes): Fix a typo.
24987
34a47f6f
UB
249882010-05-02 Uros Bizjak <ubizjak@gmail.com>
24989
24990 Revert:
24991 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
24992 placeholder from 0x%x to %#x.
24993 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
7c393241
UB
24994 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
24995 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
24996 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
24997 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
24998 * config/i386/i386.c (ix86_target_string): Ditto.
34a47f6f 24999 * config/i386/i386.c (output_pic_addr_const): Ditto.
7c393241 25000 (print_operand): Ditto.
34a47f6f 25001
35c59d9c
UB
250022010-05-02 Uros Bizjak <ubizjak@gmail.com>
25003
25004 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
25005 placeholder from 0x%x to %#x.
25006 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
25007 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
25008 (ASM_OUTPUT_DEBUG_DATA): Ditto.
25009 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
25010 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
25011 * optc-gen.awk: Ditto.
25012 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
25013 (HOST_WIDE_INT_PRINT_HEX): Ditto.
25014 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
25015 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
35c59d9c 25016
82f81f18
AS
250172010-05-01 Anatoly Sokolov <aesok@post.ru>
25018
25019 * target.h (struct calls): Add function_value_regno_p field.
25020 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
25021 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
25022 * targhooks.c (default_function_value_regno_p): New function.
25023 * targhooks.h (default_function_value_regno_p): Declare function.
25024 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
25025 * builtins.c. (apply_result_size): (Ditto.).
25026 * combine.c. (likely_spilled_retval_p): (Ditto.).
25027 * mode-switching.c. Include 'target.h'.
25028 (create_pre_exit): Use function_value_regno_p hook.
25029 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
25030 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
25031 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
25032
25033 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
25034 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
25035 (ix86_function_value_regno_p): Declare as static, change argument
25036 type to const unsigned int.
25037 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
25038
bab4d587
RG
250392010-05-01 Richard Guenther <rguenther@suse.de>
25040
25041 PR tree-optimization/43949
25042 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
25043 types.
25044 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
25045
3e93ff81
AS
250462010-05-01 Anatoly Sokolov <aesok@post.ru>
25047
25048 * rtl.h (CONST_DOUBLE_P): Define.
25049 (rtx_to_double_int): Declare.
25050 * emit-rtl.c (rtx_to_double_int): New function.
25051 * dwarf2out.c (insert_double): New function.
25052 (loc_descriptor, add_const_value_attribute): Clean up, use
25053 rtx_to_double_int and insert_double functions.
25054
bcbc9564
JW
250552010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
25056
25057 * doc/extend.texi (Inline): Add missing return keyword to examples.
25058 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
25059 "command-line".
25060
ce276b61
EB
250612010-04-30 Eric Botcazou <ebotcazou@adacore.com>
25062
25063 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
25064 the variable part of the offset as well. Use highest_pow2_factor for
25065 all alignment checks.
25066
82677400
RB
250672010-04-30 Richard Guenther <rguenther@suse.de>
25068
25069 PR tree-optimization/43879
25070 * tree-ssa-structalias.c (type_could_have_pointers): Functions
25071 can have pointers.
25072
cd71491e
JH
250732010-04-30 Jan Hubicka <jh@suse.cz>
25074
82677400
RB
25075 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
25076 varpool.
cd71491e
JH
25077 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
25078
ace72c88
JH
250792010-04-30 Jan Hubicka <jh@suse.cz>
25080
82677400
RB
25081 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
25082 New.
ace72c88
JH
25083 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
25084 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
25085 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
25086 cgraph_node_set_needs_ltrans_p): Remove.
25087
b6feb796
SB
250882010-04-30 Steven Bosscher <steven@gcc.gnu.org>
25089
25090 * sdbout.c: Include vec.h, do not include varray.h.
25091 (deferred_global_decls, sdbout_global_decl,
25092 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
25093 * toplev.c: Do not include varray.h.
25094 (dump_memory_report): Do not dump VARRAY statistics.
25095 * gengtype.c (open_base_file): Ignore varray.h.
25096 * Makefile.in: Update for abovementioned changes.
25097 Remove all traces of varray.c and varray.h.
25098 * varray.c: Remove file.
25099 * varray.h: Remove file.
25100
05575e07
JH
251012010-04-30 Jan Hubicka <jh@suse.cz>
25102
25103 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
25104 references.
25105
9c6e0798
JH
251062010-04-30 Jan Hubicka <jh@suse.cz>
25107
25108 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
25109 needed.
25110
47d8a903
RG
251112010-04-30 Richard Guenther <rguenther@suse.de>
25112
25113 * tree-ssa-structalias.c (get_constraint_for_1): Generate
25114 constraints for CONSTRUCTOR.
25115
b6050cb7
RG
251162010-04-30 Richard Guenther <rguenther@suse.de>
25117
25118 PR lto/43946
25119 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
25120 first after all lowering passes.
25121
9aae8d16
SB
251222010-04-30 Steven Bosscher <steven@gcc.gnu.org>
25123
25124 * toplev.c: Include varray.h for statistics dumping.
25125 * tree.h: Do not declare varray_head_tag.
25126 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
25127 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
25128 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
25129 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
25130 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
25131 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
25132 c-common.c, c-common.h, reg-stack.c, basic-block.h,
25133 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
25134 include varray.h.
25135 * Makefile.in: Update for abovementioned changes.
25136
a07ecd2b
JJ
251372010-04-30 Jakub Jelinek <jakub@redhat.com>
25138
25139 PR debug/43942
25140 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
25141
41700fc3
HS
251422010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
25143
25144 * config/picochip/picochip.c (picochip_legitimize_address): Define.
25145 Use this function to do machine-specific conversion.
25146 (picochip_legitimize_reload_address): Likewise.
25147 (picochip_legitimate_address_p): Check valid base register only if
25148 strict.
25149 (picochip_check_conditional_copy): Check for modw only if opnd is
25150 register.
25151 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
25152 to call the function in c.
25153 * config/picochip/picochip-protos.h
25154 (picochip_legitimize_reload_address): Define.
25155 * config/picochip/picochip.md (supported_compare1): Define.
25156
8b4765bf
JH
251572010-04-30 Jan Hubicka <jh@suse.cz>
25158
25159 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
25160 (cgraph_global_info): Remove inlined.
25161 (LTO_cgraph_tag_names): Remove.
25162 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
25163 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
25164 simplify cgraph tags and document.
25165 (lto_output_node): Use only LTO_cgraph_unavail_node and
25166 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
35c59d9c 25167 for_functions_valid, global info, process and output flags.
8b4765bf 25168 (input_overwrite_node): Initialize estimated stack size and
35c59d9c 25169 estimated growth. Do not read flags we no longer store.
8b4765bf
JH
25170 (input_node): Likewise do not read info no longer stored.
25171 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
25172 flag.
25173
4be68d9a
RG
251742010-04-30 Richard Guenther <rguenther@suse.de>
25175
25176 PR tree-optimization/43879
25177 * tree-ssa-structalias.c (get_constraint_for_1): Properly
25178 handle non-zero initializers.
25179
06468254
RG
251802010-04-30 Richard Guenther <rguenther@suse.de>
25181
25182 * builtins.c (fold_builtin_1): Delete free (0).
25183
8b4765bf 251842010-04-29 Jan Hubicka <jh@suse.cz>
49ba8180
JH
25185
25186 * gengtype.c (open_base_files): Add lto-streamer.h
25187 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
25188 (pass_ipa_cp): GGC collect.
25189 * toplev. (compile_file): Do not output symbols.
25190 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
25191 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
25192 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
25193 * lto-section-in.c: Include ggc.h
25194 (lto_new_in_decl_state): Alloc in GGC.
25195 (lto_delete_in_decl_state): Likewise.
35c59d9c
UB
25196 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
25197 Collect.
49ba8180 25198
5a733826
BS
251992010-04-29 Bernd Schmidt <bernds@codesourcery.com>
25200
25201 PR target/42895
25202 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
25203 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
25204 (HONOR_REG_ALLOC_ORDER): Describe new macro.
25205 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
25206 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
25207 account only if HONOR_REG_ALLOC_ORDER is not defined.
25208 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
25209 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
35c59d9c
UB
25210
252112010-04-29 Jon Grant <04@jguk.org>
25212
7c6d86cc
JG
25213 * collect2.c (vflag): Change type from int to bool.
25214 (debug): Likewise.
25215 (helpflag): New global bool.
35c59d9c
UB
25216 (main): Set vflag and debug with boolean, not integer truth values.
25217 Accept new "--help" option and output usage text if found.
7c6d86cc
JG
25218 * collect2.h (vflag): Update prototype.
25219 (debug): Likewise.
35c59d9c 25220
55040b34
L
252212010-04-29 H.J. Lu <hongjiu.lu@intel.com>
25222
716a3481 25223 PR bootstrap/43936
35c59d9c 25224 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
55040b34 25225
46e70c4e
RG
252262010-04-29 Richard Guenther <rguenther@suse.de>
25227
25228 PR bootstrap/43935
25229 * plugin.h (invoke_plugin_callbacks): Annotate arguments
25230 with ATTRIBUTE_UNUSED.
25231
0d0539f0
L
252322010-04-29 H.J. Lu <hongjiu.lu@intel.com>
25233
25234 PR target/43921
25235 * config/i386/i386.c (get_some_local_dynamic_name): Replace
25236 INSN_P with NONDEBUG_INSN_P.
25237 (distance_non_agu_define): Likewise.
25238 (distance_agu_use): Likewise.
25239
8e5f0b49
BS
252402010-04-29 Bernd Schmidt <bernds@codesourcery.com>
25241
f4a4b582 25242 From Dominique d'Humieres <dominiq@lps.ens.fr>
8e5f0b49
BS
25243 PR bootstrap/43858
25244 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
25245 test_set.
25246
35c59d9c 252472010-04-29 Brian Hackett <bhackett1024@gmail.com>
efda3807
BH
25248
25249 * plugin.h (invoke_plugin_callbacks): New inline function.
25250 * plugin.c (flag_plugin_added): New global flag.
25251 (add_new_plugin): Initialize above flag.
25252 (invoke_plugin_callbacks): Rename to ...
25253 (invoke_plugin_callbacks_full): ... this.
25254
2942c502
JH
252552010-04-28 Jan Hubicka <jh@suse.cz>
25256
25257 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
25258 (lto_varpool_replace_node): New.
25259 (lto_symtab_resolve_symbols): Resolve varpool nodes.
25260 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
25261 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
25262 * cgraph.h (varpool_node_ptr): New type.
25263 (varpool_node_ptr): New vector.
25264 (varpool_node_set_def): New structure.
25265 (varpool_node_set): New type.
25266 (varpool_node_set): New vector.
25267 (varpool_node_set_element_def): New structure.
25268 (varpool_node_set_element, const_varpool_node_set_element): New types.
25269 (varpool_node_set_iterator): New type.
25270 (varpool_node): Add prev pointers, add used_from_other_partition,
25271 in_other_partition.
25272 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
25273 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
25274 varpool_get_node, varpool_remove_node): Declare.
25275 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
25276 varpool_node_set_size): New inlines.
25277 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
25278 * tree-pass.h (varpool_node_set_def): Forward declare.
25279 (ipa_opt_pass_d): Summary writting takes vnode sets too.
25280 (ipa_write_optimization_summaries): Update prototype.
25281 * ipa-cp.c (ipcp_write_summary): Update.
25282 * ipa-reference.c (ipa_reference_write_summary): Update.
25283 * lto-cgraph.c (lto_output_varpool_node): New static function.
25284 (output_varpool): New function.
25285 (input_varpool_node): New static function.
25286 (input_varpool_1): New function.
25287 (input_cgraph): Input varpool.
25288 * ipa-pure-const.c (pure_const_write_summary): Update.
25289 * lto-streamer-out.c (lto_output): Update, output varpool too.
25290 (write_global_stream): Kill WPA hack.
25291 (produce_asm_for_decls): Update.
25292 (output_alias_pair_p): Handle variables.
25293 (output_unreferenced_globals): Output only needed partition of varpool.
25294 * ipa-inline.c (inline_write_summary): Update.
35c59d9c
UB
25295 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
25296 cgraph.
2942c502
JH
25297 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
25298 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
25299 varpool_node_set_new, varpool_node_set_add,
25300 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
25301 debug_varpool_node_set): New functions.
25302 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
25303 (execute_one_pass): Process new decls too.
25304 (ipa_write_summaries_2): Pass around vsets.
25305 (ipa_write_summaries_1): Likewise.
25306 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
25307 to add.
25308 (ipa_write_optimization_summaries_1): Pass around vsets.
25309 (ipa_write_optimization_summaries): Likewise.
25310 * varpool.c (varpool_get_node): New.
25311 (varpool_node): Update doubly linked lists.
25312 (varpool_remove_node): New.
25313 (dump_varpool_node): More dumping.
25314 (varpool_enqueue_needed_node): Update doubly linked lists.
25315 (decide_is_variable_needed): Kill ltrans hack.
25316 (varpool_finalize_decl): Kill lto hack.
25317 (varpool_assemble_decl): Skip decls in other partitions.
25318 (varpool_assemble_pending_decls): Update doubly linkes lists.
25319 (varpool_empty_needed_queue): Likewise.
25320 (varpool_extra_name_alias): Likewise.
25321 * lto-streamer.c (lto_get_section_name): Add vars section.
25322 * lto-streamer.h (lto_section_type): Update.
25323 (output_varpool, input_varpool): Declare.
25324
da7f2697
MS
253252010-04-28 Mike Stump <mikestump@comcast.net>
25326
74ca3393 25327 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
da7f2697 25328
91eace2b
EB
253292010-04-28 Eric Botcazou <ebotcazou@adacore.com>
25330
25331 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
25332 record or union type with RECORD_OR_UNION_TYPE_P predicate.
25333 (lto_input_ts_type_tree_pointers): Likewise.
25334 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
25335 (lto_output_ts_type_tree_pointers): Likewise.
25336
8478130d
EB
253372010-04-28 Eric Botcazou <ebotcazou@adacore.com>
25338
25339 Uniquization of constants at the Tree level
20225a9b 25340 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
8478130d
EB
25341 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
25342 bit to the end.
25343 (tree_output_constant_def): Declare.
20225a9b 25344 * gimplify.c (gimplify_init_constructor): When using block copy, first
8478130d 25345 uniquize the constant constructor on the RHS.
20225a9b
EB
25346 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
25347 DECL_IN_CONSTANT_POOL flag.
8478130d 25348 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
20225a9b
EB
25349 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
25350 constant pool.
8478130d
EB
25351 (assemble_variable): Deal with symbols belonging to the tree constant
25352 pool.
25353 (get_constant_section): Add ALIGN parameter and simplify.
25354 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
25355 (assemble_constant_contents): Use the expression of the VAR_DECL.
25356 (output_constant_def_contents): Use the alignment of the VAR_DECL.
25357 (tree_output_constant_def): New global function.
25358 (mark_constant): Use the expression of the VAR_DECL.
20225a9b
EB
25359 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
25360 its expression.
8478130d
EB
25361 (output_object_block): Likewise and assemble the expression.
25362
331c7fcd
EB
253632010-04-28 Eric Botcazou <ebotcazou@adacore.com>
25364
25365 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
25366 hash_tree, eq_tree): New tree hash table.
25367 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
25368 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
25369 lto_orig_address_remove): Reimplement.
25370
34f97b94
XDL
253712010-04-28 Xinliang David Li <davidxl@google.com>
25372
25373 PR c/42643
25374 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
25375 (compute_uninit_opnds_pos): New function.
25376 (is_non_loop_exit_postdominating): New function.
25377 (compute_control_dep_chain): New function.
25378 (find_pdom): New function.
25379 (convert_control_dep_chain_into_preds): New function.
25380 (find_predicates): New function.
25381 (find_control_equiv_block): New function.
25382 (collect_phi_def_edges): New function.
25383 (find_def_preds): New function.
25384 (find_dom): New function.
25385 (dump_predicates): New function.
25386 (get_cmp_code): New function.
25387 (is_value_included_in): New function.
25388 (find_matching_predicate_in_rest_chains): New function.
25389 (use_pred_not_overlap_with_undef_path_pred): New function.
25390 (is_use_properly_guarded): New function.
25391 (normalize_cond_1): New function.
25392 (is_and_or_or): New function.
25393 (normalize_cond): New function.
25394 (is_gcond_subset_of): New function.
25395 (is_subset_of_any): New function.
25396 (is_or_set_subset_of): New function.
25397 (is_and_set_subset_of): New function.
25398 (is_norm_cond_subset_of): New function.
25399 (is_pred_expr_subset_of): New function.
25400 (is_pred_chain_subset_of): New function.
25401 (is_included_in): New function.
25402 (is_superset_of): New function.
25403 (find_uninit_use): New function.
25404 (warn_uninitialized_phi): New function.
25405 (compute_possibly_undefined_names): New function.
25406 (ssa_undefined_value_p): New function.
25407 (execute_late_warn_uninitialized): New function.
25408 * tree-ssa.c (ssa_undefined_value_p): Removed.
25409 (warn_uninit): Changed to extern.
25410 (warn_uninitialized_phi): Removed.
25411 (warn_uninitialized_vars): Changed to extern.
25412 (execute_late_warn_uninitialized): Removed
25413 * tree-flow.h: Add new prototypes.
25414 * timevar.def: Add new time variable.
25415 * Makefile.in: Add new build file.
25416
85fac79c
UB
254172010-04-28 Uros Bizjak <ubizjak@gmail.com>
25418
25419 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
25420 type if available.
25421
902a51a1
RO
254222010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25423
25424 PR target/22224
25425 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
25426
e33c6cd6
MJ
254272010-04-28 Martin Jambor <mjambor@suse.cz>
25428
25429 * cgraph.h (struct cgraph_node): New field indirect_calls.
25430 (struct cgraph_indirect_call_info): New type.
25431 (struct cgraph_edge): Removed field indirect_call. New fields
25432 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
25433 (cgraph_create_indirect_edge): Declare.
25434 (cgraph_make_edge_direct): Likewise.
25435 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
25436 * ipa-prop.h (struct ipa_param_call_note): Removed.
25437 (struct ipa_node_params): Removed field param_calls.
25438 (ipa_create_all_structures_for_iinln): Declare.
25439 * cgraph.c: Described indirect edges and uids in initial comment.
25440 (cgraph_add_edge_to_call_site_hash): New function.
25441 (cgraph_edge): Search also among the indirect edges, use
25442 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
25443 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
25444 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
25445 site hash.
25446 (initialize_inline_failed): Assign a reason to indirect edges.
25447 (cgraph_create_edge_1): New function.
25448 (cgraph_create_edge): Moved some functionality to
25449 cgraph_create_edge_1.
25450 (cgraph_create_indirect_edge): New function.
25451 (cgraph_edge_remove_callee): Add an assert checking for
25452 non-indirectness.
25453 (cgraph_edge_remove_caller): Special-case indirect edges.
25454 (cgraph_remove_edge): Likewise.
25455 (cgraph_set_edge_callee): New function.
25456 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
25457 (cgraph_make_edge_direct): New function.
25458 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
25459 the declaration of the call statement matches.
25460 (cgraph_node_remove_callees): Special-case indirect edges.
25461 (cgraph_clone_edge): Likewise.
25462 (cgraph_clone_node): Clone also the indirect edges.
25463 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
25464 indirect_call, dump count of indirect_calls edges.
25465 * ipa-prop.c (iinlining_processed_edges): New variable.
25466 (ipa_note_param_call): Create indirect edges instead of
25467 creating notes. New parameter node.
25468 (ipa_analyze_call_uses): New parameter node, pass it on to
25469 ipa_note_param_call.
25470 (ipa_analyze_stmt_uses): Likewise.
25471 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
25472 (print_edge_addition_message): Work on edges rather than on notes.
25473 (update_call_notes_after_inlining): Likewise, renamed to
25474 update_indirect_edges_after_inlining.
25475 (ipa_create_all_structures_for_iinln): New function.
25476 (ipa_free_node_params_substructures): Do not free notes.
25477 (ipa_edge_duplication_hook): Propagate bits within
25478 iinlining_processed_edges bitmap.
25479 (ipa_node_duplication_hook): Do not duplicate notes.
25480 (free_all_ipa_structures_after_ipa_cp): Renamed to
25481 ipa_free_all_structures_after_ipa_cp.
25482 (free_all_ipa_structures_after_iinln): Renamed to
62e59133 25483 ipa_free_all_structures_after_iinln.
e33c6cd6
MJ
25484 (ipa_write_param_call_note): Removed.
25485 (ipa_read_param_call_note): Removed.
25486 (ipa_write_indirect_edge_info): New function.
25487 (ipa_read_indirect_edge_info): Likewise.
25488 (ipa_write_node_info): Do not stream notes, do stream information
25489 in indirect edges.
25490 (ipa_read_node_info): Likewise.
25491 (lto_ipa_fixup_call_notes): Removed.
25492 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
25493 * ipa-inline.c (pass_ipa_inline): Likewise.
25494 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
25495 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
25496 * tree-inline.c (copy_bb): Removed an unnecessary double check for
25497 is_gimple_call.
25498 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
25499 edges.
25500 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
25501 (output_cgraph): Stream also indirect edges.
25502 (lto_output_edge): Added capability to stream indirect edges.
25503 (input_edge): Likewise.
25504 (input_cgraph_1): Likewise.
f3d1b157
MJ
25505 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
25506 of indirect edges.
e33c6cd6 25507
18abb35e
RG
255082010-04-28 Richard Guenther <rguenther@suse.de>
25509
25510 PR tree-optimization/43879
25511 PR tree-optimization/43909
25512 * tree-ssa-structalias.c (struct variable_info): Add
25513 only_restrict_pointers flag.
25514 (new_var_info): Initialize it. Increment stats.total_vars here.
62e59133 25515 (create_function_info_for): Do not increment stats.total_vars here.
18abb35e
RG
25516 (get_function_part_constraint): Fix build with C++.
25517 (insert_into_field_list): Remove.
25518 (push_fields_onto_fieldstack): Properly merge fields.
25519 (create_variable_info_for): Split and simplify.
25520 (create_variable_info_for_1): New piece.
25521 (intra_create_variable_infos): Properly make restrict constraints
25522 from parameters.
25523
c718820a
RG
255242010-04-28 Richard Guenther <rguenther@suse.de>
25525
25526 PR c++/43880
35c59d9c 25527 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
c718820a 25528
5dc16b19 255292010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
f4a4b582 25530 Jan Hubicka <hubicka@ucw.cz>
5dc16b19
MLI
25531
25532 * doc/invoke.texi (-Wsuggest-attribute=const,
25533 -Wsuggest-attribute=pure): Document.
25534 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
25535 (function_always_visible_to_compiler_p,
25536 suggest_attribute, warn_function_pure, warn_function_const):
25537 New functions.
25538 (check_call): Improve debug info.
25539 (analyze_function): Do not check availability.
25540 (add_new_function): Check availability.
25541 (propagate): Output warnings.
25542 (skip_function_for_local_pure_const): New function.
25543 (local_pure_const): Use it; output warnings.
25544 * common.opt (Wsuggest-attribute=const,
25545 Wsuggest-attribute=pure): New.
25546
78b41ae2
JJ
255472010-04-27 Jakub Jelinek <jakub@redhat.com>
25548
25549 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
25550 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
25551 or DW_CFA_def_cfa_offset{,_sf}.
25552
62107106
EB
255532010-04-27 Eric Botcazou <ebotcazou@adacore.com>
25554
25555 * tree.h: Fix truncated long macros.
25556
ad211091
KT
255572010-04-27 Kai Tietz <kai.tietz@onevision.com>
25558
25559 * collect2.c (TARGET_64BIT): Redefine to target's default.
25560 * tlink.c: Likewise.
25561 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
25562 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
25563 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
25564 for underscoring __USER_LABEL_PREFIX__.
25565 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
25566 (SUB_LINK_ENTRY32): New.
25567 (SUB_LINK_ENTRY64): New.
85fac79c 25568 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
ad211091
KT
25569 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
25570 (SUB_LINK_ENTRY64): New.
25571 (SUB_LINK_ENTRY): New.
25572 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
25573 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
25574 x64 target is choosen.
25575 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
25576 * configure: Regenerated.
25577 * configure.ac (leading-mingw64-underscores): Option added.
25578
e65bb9be
JH
255792010-04-27 Jan Hubicka <jh@suse.cz>
25580
25581 * doc/invoke.texi (-fipa-profile): Document.
25582 * opts.c (decode_options): Enable ipa-profile at -O1.
25583 * timevar.def (TV_IPA_PROFILE): Define.
25584 * common.opt (fipa-profile): Add.
62107106
EB
25585 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
25586 flag for clones.
e65bb9be
JH
25587 (cgraph_propagate_frequency): Handle only local ones.
25588 * tree-pass.h (pass_ipa_profile): Declare.
25589 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
25590 (pass_ipa_profile): Use TV_IPA_PROFILE.
25591 * ipa.c (ipa_profile): New function.
25592 (gate_ipa_profile): Likewise.
25593 (pass_ipa_profile): New global variable.
25594 * passes.c (pass_ipa_profile): New.
25595
8606c81d
NF
255962010-04-27 Nathan Froyd <froydnj@codesourcery.com>
25597
25598 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
25599
78eaf7bf
MJ
256002010-04-27 Martin Jambor <mjambor@suse.cz>
25601
25602 PR middle-end/43812
25603 * ipa.c (dissolve_same_comdat_group_list): New function.
25604 (function_and_variable_visibility): Call
25605 dissolve_same_comdat_group_list when comdat group contains external or
25606 newly local nodes.
25607 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
25608 lists are circular and that they contain only DECL_ONE_ONLY nodes.
25609
5b56d3bb
EB
256102010-04-27 Eric Botcazou <ebotcazou@adacore.com>
25611
25612 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
25613 (const_hash_1) <VECTOR_CST>: New case.
25614 (compare_constant) <VECTOR_CST>: Likewise.
25615 <ADDR_EXPR>: Deal with LABEL_REFs.
25616 (copy_constant) <VECTOR_CST>: New case.
25617
fa5f5e27
JH
256182010-04-27 Jan Hubicka <jh@suse.cz>
25619
25620 * cgraph.c (cgraph_propagate_frequency): New function.
25621 * cgraph.h (cgraph_propagate_frequency): Declare.
25622 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
25623 cgraph_propagate_frequency.
25624
934f5b42
JJ
256252010-04-27 Jakub Jelinek <jakub@redhat.com>
25626
25627 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
25628
cb751cbd
BS
256292010-04-27 Bernd Schmidt <bernds@codesourcery.com>
25630
25631 PR target/40657
25632 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
25633 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
25634 here to determine which regs to push and how much stack to reserve.
25635
a5027830
JZ
256362010-04-27 Jie Zhang <jie@codesourcery.com>
25637
25638 * doc/gimple.texi (gimple_statement_with_ops): Remove
25639 addresses_taken field.
25640 (gimple_statement_with_memory_ops): Likewise.
25641
d89488ec
JH
256422010-04-27 Jan Hubicka <jh@suse.cz>
25643
25644 * tree-inline.c (eni_inlining_weights): Remove.
25645 (estimate_num_insns): Special case more builtins.
25646
637f1455 256472010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
85fac79c 25648
637f1455
SZ
25649 PR c/32207
25650 * c-typeck.c (build_binary_op): Move forward check for comparison
25651 pointer with null pointer constant and adjust the diagnostic message.
25652
f0423078
DK
256532010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
25654
25655 PR lto/42776
25656 * configure.ac (gcc_cv_as_section_has_align): Set if installed
25657 binutils supports extended .section directive needed by LTO, or
25658 warn if older binutils found.
25659 (LTO_BINARY_READER): New AC_SUBST'd variable.
25660 (LTO_USE_LIBELF): Likewise.
eed023cc 25661 * config.gcc (lto_binary_reader): New target-specific configure
f0423078 25662 variable.
eed023cc 25663 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
f0423078
DK
25664 (LTO_USE_LIBELF): Likewise.
25665 * configure: Regenerate.
25666
25667 * collect2.c (is_elf): Rename from this ...
25668 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
25669 object files in addition to ELF-formatted ones.
25670 (scan_prog_file): Caller updated. Also allow for LTO info marker
25671 symbol to be prefixed or not by an extra underscore.
25672
25673 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
25674 * config/i386/winnt.c: Also #include lto-streamer.h
25675 (i386_pe_asm_named_section): Specify 1-byte section alignment for
25676 LTO named sections.
25677 (i386_pe_asm_output_aligned_decl_common): Add comment.
25678 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
25679
68e87fc9
HPN
256802010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
25681
45c384e3 25682 PR target/43889
68e87fc9
HPN
25683 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
25684 Add missing earlyclobber for second alternative.
25685
823ff7b4
BS
256862010-04-26 Bernd Schmidt <bernds@codesourcery.com>
25687
25688 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
25689 bits for artificial defs at the top of the block.
25690 * fwprop.c (single_def_use_enter_block): Don't call it.
25691
f4a4b582 256922010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
9ec69d2e
JH
25693
25694 PR 43715
eed023cc 25695 * configure.ac: Use "$gcc_cv_nm -g" on darwin
9ec69d2e
JH
25696 instead of "$gcc_cv_objdump -T".
25697 Use "-undefined dynamic_lookup" on darwin.
eed023cc 25698 * configure: Regenerate.
9ec69d2e 25699
b83a701b
JJ
257002010-04-26 Jakub Jelinek <jakub@redhat.com>
25701
25702 PR c/43893
25703 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
25704
8415f317
NF
257052010-04-26 Nathan Froyd <froydnj@codesourcery.com>
25706
25707 * c-parser.c (struct c_token): Move location field up.
25708 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
25709 (struct c_declspecs): Convert typespec_word, storage_class, and
25710 default_int_p into bitfields.
25711 (struct c_declarator): Move loc field up.
25712
448f65db
NF
257132010-04-26 Nathan Froyd <froydnj@codesourcery.com>
25714
25715 * cfgloop.h (struct loop): Move can_be_parallel field up.
25716 * ipa-prop.h (struct ip_node_params): Move bitfields up.
25717 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
25718 down.
25719 (struct iv_cand): Convert pos field into a bitfield.
25720 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
25721 field up.
25722 (struct _stmt_vec_info): Shuffle fields for better packing.
25723
736865e1
EB
257242010-04-26 Eric Botcazou <ebotcazou@adacore.com>
25725
25726 * varasm.c (IN_NAMED_SECTION): Remove guard.
25727 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
25728 (IN_NAMED_SECTION_P): ...this.
25729 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
25730 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
25731
06ec59e6
EB
257322010-04-26 Eric Botcazou <ebotcazou@adacore.com>
25733
25734 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
25735 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
25736 of shadowing it. Fix comments.
25737
5fefcf92
JH
257382010-04-26 Jan Hubicka <jh@suse.cz>
25739
25740 * cgraph.c (cgraph_create_node): Set node frequency to normal.
25741 (cgraph_clone_node): Copy function frequency.
25742 * cgraph.h (node_frequency): New enum
25743 (struct cgraph_node): Add.
25744 * final.c (rest_of_clean_state): Update.
25745 * lto-cgraph.c (lto_output_node): Output node frequency.
25746 (input_overwrite_node): Input node frequency.
25747 * tre-ssa-loop-ivopts (computation_cost): Update.
06ec59e6
EB
25748 * lto-streamer-out.c (output_function): Do not output function
25749 frequency.
25750 * predict.c (maybe_hot_frequency_p): Update and handle functions
25751 executed once.
5fefcf92
JH
25752 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
25753 attribute lookup.
25754 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
06ec59e6
EB
25755 (compute_function_frequency): Set noreturn functions to be executed
25756 once.
5fefcf92
JH
25757 (choose_function_section): Update.
25758 * lto-streamer-in.c (input_function): Do not input function frequency.
06ec59e6
EB
25759 * function.c (allocate_struct_function): Do not initialize function
25760 frequency.
5fefcf92
JH
25761 * function.h (function_frequency): Remove.
25762 (struct function): Remove function frequency.
25763 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
25764 (try_update): Update.
25765 * tree-inline.c (initialize_cfun): Do not update function frequency.
25766 * passes.c (pass_init_dump_file): Update.
25767 * i386.c (ix86_compute_frame_layout): Update.
25768 (ix86_pad_returns): Update.
25769
330af32c
JZ
257702010-04-26 Jie Zhang <jie@codesourcery.com>
25771
25772 PR tree-optimization/43833
25773 * tree-vrp.c (range_int_cst_p): New.
25774 (range_int_cst_singleton_p): New.
25775 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
25776 when both operands are constants. Use range_int_cst_p in
25777 BIT_IOR_EXPR case.
25778
ae2b0888
JH
257792010-04-26 Jan Hubicka <jh@suse.cz>
25780
25781 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
25782
98b2dfbb
RG
257832010-04-26 Richard Guenther <rguenther@suse.de>
25784
25785 PR lto/43080
25786 * gimple.c (gimple_decl_printable_name): Deal gracefully
25787 with a NULL DECL_NAME.
25788
1ae3075b
RG
257892010-04-26 Richard Guenther <rguenther@suse.de>
25790
25791 PR lto/42425
25792 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
25793 if emitting debug information and it is either a function
25794 or a namespace decl.
25795
4b5caab7
IR
257962010-04-26 Ira Rosen <irar@il.ibm.com>
25797
85fac79c
UB
25798 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
25799 determine if the statement is vectorizable, and a macro to access it.
25800 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25801 Skip statements that can't be vectorized. If the analysis fails,
25802 mark the statement as unvectorizable if vectorizing basic block.
4b5caab7 25803 (vect_compute_data_refs_alignment): Likewise.
85fac79c 25804 (vect_verify_datarefs_alignment): Skip statements marked as
4b5caab7 25805 unvectorizable. Add print.
85fac79c
UB
25806 (vect_analyze_group_access): Skip statements that can't be
25807 vectorized. If the analysis fails, mark the statement as
4b5caab7 25808 unvectorizable if vectorizing basic block.
85fac79c
UB
25809 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
25810 * tree-vect-stmts.c (vectorizable_store): Fix the number of
4b5caab7
IR
25811 generated stmts for SLP.
25812 (new_stmt_vec_info): Initialize the new field.
85fac79c 25813 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4b5caab7
IR
25814 statements marked as unvectorizable.
25815
2778d766
JM
258162010-04-25 Joseph Myers <joseph@codesourcery.com>
25817
25818 * c-common.c (flag_isoc1x): New.
25819 (flag_isoc99): Update comment.
25820 * c-common.h (flag_isoc1x): New.
25821 (flag_isoc99): Update comment.
25822 * c-cppbuiltin.c (builtin_define_float_constants): Also define
25823 __<type>_DECIMAL_DIG__.
25824 * c-opts.c (set_std_c1x): New.
25825 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
25826 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
25827 * c.opt (-std=c1x, -std=gnu1x): New options.
25828 * doc/cpp.texi: Mention -std=c1x.
25829 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
25830 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
25831 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
25832 * doc/standards.texi: Mention C1X.
25833 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
25834 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
25835 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
25836 Define for C1X.
25837
3d416346
UB
258382010-04-25 Uros Bizjak <ubizjak@gmail.com>
25839
25840 * config/i386/gmon-sol2.c (_mcleanup): Change format string
25841 placeholder from 0x%x to %#x.
25842 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25843 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25844 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25845 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25846 * config/i386/i386.c (ix86_target_string): Ditto.
25847 (output_pic_addr_const): Ditto.
25848 (print_operand): Ditto.
25849
910ed7dc
PB
258502010-04-25 Paolo Bonzini <bonzini@gnu.org>
25851
25852 * combine.c (find_split_point): Add third argument. Use it
25853 to find nested multiply-accumulate instructions. Adjust calls.
25854 (try_combine): Adjust call to find_split_point.
25855
423b2799
GP
258562010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
25857
25858 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
25859
27d0d96a
BS
258602010-04-24 Bernd Schmidt <bernds@codesourcery.com>
25861
25862 PR tree-optimization/41442
25863 * fold-const.c (merge_truthop_with_opposite_arm): New function.
25864 (fold_binary_loc): Call it.
25865
c7d0de89
MLI
258662010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
25867
3d416346 25868 * toplev.c (general_init): Set default for fdiagnostics-show-option.
c7d0de89 25869 * opts.c (common_handle_option): Allow disabling it.
3d416346
UB
25870 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
25871
915f5921
EB
258722010-04-23 Eric Botcazou <ebotcazou@adacore.com>
25873
25874 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
25875 between modes if both types are integral.
25876
4e708ff7
RG
258772010-04-23 Richard Guenther <rguenther@suse.de>
25878
25879 PR tree-optimization/43572
25880 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
25881
8fd8a06f
RG
258822010-04-23 Richard Guenther <rguenther@suse.de>
25883
25884 PR lto/43455
25885 * tree-inline.c (tree_can_inline_p): Also check compatibility
25886 of return types.
25887
77620011
MJ
258882010-04-23 Martin Jambor <mjambor@suse.cz>
25889
25890 PR tree-optimization/43846
25891 * tree-sra.c (struct access): New flag grp_assignment_read.
25892 (build_accesses_from_assign): Set grp_assignment_read.
25893 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
25894 (enum mark_read_status): New type.
25895 (analyze_access_subtree): Propagate grp_assignment_read, create
25896 accesses also if both direct_read and root->grp_assignment_read.
25897
5c20baf1
MJ
258982010-04-23 Martin Jambor <mjambor@suse.cz>
25899
25900 PR middle-end/43835
25901 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
25902 function does not have type attributes.
25903
c67f69a3
RG
259042010-04-23 Richard Guenther <rguenther@suse.de>
25905
25906 PR lto/42653
25907 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
25908 of FUNCTION_DECLs.
25909
086058c2
LB
259102010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25911
25912 * sese.h (create_if_region_on_edge): Remove.
25913
25914 * sese.c (create_if_region_on_edge): Make static.
25915
25916 * tree-inline.c: Do not include ggc.h.
25917
25918 * expr.c: Do not include ggc.h.
25919
25920 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
25921 dependencies.
25922
fc9c984d
KK
259232010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
25924
25925 PR target/43744
25926 * config/sh/sh.c (find_barrier): Don't emit a constant pool
25927 in the middle of insns for casesi_worker_2.
25928
cf42f095
DE
259292010-04-22 David Edelsohn <edelsohn@gnu.org>
25930
25931 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
25932
259332010-04-22 Ira Rosen <irar@il.ibm.com>
74500b3e 25934
5bdd895c 25935 PR tree-optimization/43842
d5dceab8 25936 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
74500b3e
IR
25937 loop unrolling in update of exit phis. Fix comment.
25938 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
d5dceab8 25939 least two reduction statements in the loop before starting SLP
74500b3e
IR
25940 analysis.
25941
d5f4a527
NC
259422010-04-22 Nick Clifton <nickc@redhat.com>
25943
25944 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
25945
44741f03
AM
259462010-04-22 Alexander Monakov <amonakov@ispras.ru>
25947
25948 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
25949 to simplify a + ~a.
25950
f873b205
LB
259512010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25952
25953 * tree-parloops.c (loop_parallel_p): New argument
25954 parloop_obstack. Pass it down.
25955 (parallelize_loops): New variable parloop_obstack. Initialize it,
25956 pass it down, free it.
25957
25958 * tree-loop-linear.c (linear_transform_loops): Pass down
25959 lambda_obstack.
25960
25961 * tree-data-ref.h (lambda_compute_access_matrices): New argument
25962 of type struct obstack *.
25963
25964 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
25965 scratch_obstack. Initialize it, pass down, free it.
25966
25967 * lambda.h (lambda_loop_new): Remove.
25968 (lambda_matrix_new, lambda_matrix_inverse)
25969 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
25970 argument of type struct obstack *.
25971
25972 * lambda-trans.c (lambda_trans_matrix_new): New argument
25973 lambda_obstack. Pass it down, use obstack allocation for ret.
25974 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
25975 it down.
25976
25977 * lambda-mat.c (lambda_matrix_get_column)
25978 (lambda_matrix_project_to_null): Remove.
25979 (lambda_matrix_new): New argument lambda_obstack. Use obstack
25980 allocation for mat.
25981 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
25982 lambda_obstack.
25983
25984 * lambda-code.c (lambda_loop_new): New function.
25985 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
25986 (lambda_compute_auxillary_space, lambda_compute_target_space)
25987 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
25988 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
25989 (build_access_matrix): New argument lambda_obstack. Use obstack
25990 allocation for am.
25991 (lambda_compute_step_signs, lambda_compute_access_matrices): New
25992 argument lambda_obstack. Pass it down.
25993
b99279f3
BS
259942010-04-22 Bernd Schmidt <bernds@codesourcery.com>
25995
25996 * optabs.h (expand_widening_mult): Declare.
25997
b3be2694
RG
259982010-04-22 Richard Guenther <rguenther@suse.de>
25999
26000 PR tree-optimization/43845
26001 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
26002 lookup the CALL_EXPR function and arguments.
26003
038eab67
NC
260042010-04-22 Nick Clifton <nickc@redhat.com>
26005
26006 * config/stormy16/stormy16.c
d5dceab8 26007 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
038eab67
NC
26008 * config/stormy16/stormy16.h: Tidy up formatting.
26009 (DONT_USE_BUILTIN_SETJMP): Remove definition.
26010 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
26011 (ineqbranchsi): Delete pattern.
26012 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
26013 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
26014 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
26015 stormy16-lib2-ucmpsi2.c.
26016
907deb1a
BS
260172010-04-22 Bernd Schmidt <bernds@codesourcery.com>
26018
26019 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
26020 df_simulate_find_noclobber_defs as appropriate. Keep track of an
26021 extra set merge_set_noclobber, and use it to relax the final test
26022 slightly.
26023 * df.h (df_simulate_find_noclobber_defs): Declare.
26024 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
26025 conditional defs.
26026 (df_simulate_find_noclobber_defs): New function.
26027
6a0447ba
UB
260282010-04-22 Uros Bizjak <ubizjak@gmail.com>
26029
26030 * config/i386/i386.md: Use {} around multi-line preparation statements.
26031
a1e3b3d9
LB
260322010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26033
26034 * c-tree.h (push_init_level, pop_init_level, set_init_index)
26035 (process_init_element): New argument of type struct obstack *.
26036
26037 * c-typeck.c (push_init_level, pop_init_level, set_designator)
26038 (set_init_index, set_init_label, set_nonincremental_init)
26039 (set_nonincremental_init_from_string, find_init_member)
26040 (output_init_element, output_pending_init_elements)
26041 (process_init_element): New argument braced_init_obstack. Pass it
26042 down.
26043 (push_range_stack, add_pending_init): New argument
26044 braced_init_obstack. Use obstack allocation.
26045
26046 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
26047 braced_init_obstack. Pass it down.
26048 (c_parser_braced_init): New variables ret, braced_init_obstack.
26049 Initialize obstack, pass it down and finally free it.
26050
5b58b39b
BS
260512010-04-22 Bernd Schmidt <bernds@codesourcery.com>
26052
26053 PR middle-end/29274
5b58b39b
BS
26054 * tree-pass.h (pass_optimize_widening_mul): Declare.
26055 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
26056 gate_optimize_widening_mul): New static functions.
26057 (pass_optimize_widening_mul): New.
3d416346 26058 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
5b58b39b
BS
26059 <case MULT_EXPR>: Remove support for widening multiplies.
26060 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
26061 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
26062 simplify_gen_unary rather than directly building extensions.
26063 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
26064 WIDEN_MULT_EXPR.
26065 * expmed.c (expand_widening_mult): New function.
26066 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
26067
bc58d7e1
JH
260682010-04-21 Jan Hubicka <jh@suse.cz>
26069
26070 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
26071 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
26072 * lto-wpa-fixup.c: Remove.
26073 * Makefile.in (lto-wpa-fixup.o): Remove.
26074 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
26075 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
26076 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
26077
e792884f
JH
260782010-04-21 Jan Hubicka <jh@suse.cz>
26079
26080 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
26081 add write_optimization_summary, read_optimization_summary.
26082 (ipa_write_summaries_of_cgraph_node_set): Remove.
26083 (ipa_write_optimization_summaries): Declare.
26084 (ipa_read_optimization_summaries): Declare.
26085 * ipa-cp.c (pass_ipa_cp): Update.
26086 * ipa-reference.c (pass_ipa_reference): Update.
26087 * ipa-pure-const.c (pass_ipa_pure_const): Update.
26088 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
26089 Update.
26090 * ipa-inline.c (pass_ipa_inline): Update.
26091 * ipa.c (pass_ipa_whole_program): Update.
26092 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
26093 * passes.c (ipa_write_summaries_1): Do not test wpa.
26094 (ipa_write_optimization_summaries_1): New.
26095 (ipa_write_optimization_summaries): New.
26096 (ipa_read_summaries): Do not test ltrans.
26097 (ipa_read_optimization_summaries_1): New.
26098 (ipa_read_optimization_summaries): New.
26099
ecd03d10
JH
261002010-04-21 Jan Hubicka <jh@suse.cz>
26101
26102 * lto-cgraph.c (lto_output_node): Do not output comdat groups
26103 for boundary nodes.
26104 (output_cgraph): Do not arrange comdat groups for boundary nodes.
26105
71a810c3
JJ
261062010-04-21 Jakub Jelinek <jakub@redhat.com>
26107
26108 PR debug/40040
26109 * dwarf2out.c (add_name_and_src_coords_attributes): Add
26110 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
26111
dd6d1ad7
JH
261122010-04-21 Jan Hubicka <jh@suse.cz>
26113
26114 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
26115
c9945504
JH
261162010-04-21 Jan Hubicka <jh@suse.cz>
26117
26118 * varpool.c (decide_is_variable_needed): Variable is always needed
26119 during ltrans.
26120
e7cfce71
JH
261212010-04-21 Jan Hubicka <jh@suse.cz>
26122
26123 * opts.c (decode_options): Enable pure-const pass for whopr.
26124
0115e6c7
JH
261252010-04-21 Jan Hubicka <jh@suse.cz>
26126
26127 * cgraph.c (dump_cgraph_node): Dump also assembler name.
26128 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
26129 at WPA dumping.
26130 (cgraph_decide_inlining): Do not expect callee to be removed in all
26131 cases.
26132
96c2a0d6
EW
261332010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
26134
26135 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
26136
656ef6bb
UB
261372010-04-21 Uros Bizjak <ubizjak@gmail.com>
26138
26139 * config/i386/i386.md (x86_shrd): Add athlon_decode and
26140 amdfam10_decode attributes.
26141
78db7d92
JJ
261422010-04-21 Jakub Jelinek <jakub@redhat.com>
26143
26144 PR middle-end/43570
26145 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
26146 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
26147 (lower_copyprivate_clauses): Use private var in outer
26148 context instead of original var. Make sure the types
26149 are correct for VLAs.
26150
11152c95
RG
261512010-04-21 Richard Guenther <rguenther@suse.de>
26152
26153 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
26154 to non-pointer objects.
26155
8f65940d
JJ
261562010-04-21 Jakub Jelinek <jakub@redhat.com>
26157
0f2f44c0
JJ
26158 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
26159 last chain entry if it starts with the still current label.
26160 (add_location_or_const_value_attribute): Check that
6a0447ba 26161 loc_list->first->next is NULL instead of comparing ->first with ->last.
0f2f44c0
JJ
26162 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
26163 to add_var_loc_to_decl.
26164
8f65940d 26165 * dwarf2out.c (output_call_frame_info): For dw_cie_version
6a0447ba 26166 >= 4 add also address size and segment size fields into CIE header.
8f65940d
JJ
26167
26168 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
26169 long as address size is the same as sizeof (void *) and
26170 segment size is 0.
26171 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
26172 address size or segment size is unexpected, return DW_EH_PE_omit.
26173 (classify_object_over_fdes): If get_cie_encoding returned
26174 DW_EH_PE_omit, return -1.
26175 (init_object): If classify_object_over_fdes returned -1,
26176 pretend there were no FDEs at all.
26177
2d2d5a91
UB
261782010-04-21 Uros Bizjak <ubizjak@gmail.com>
26179
26180 * config/i386/i386.md (bswap<mode>2): Macroize expander from
26181 bswap{si,di}2 using SWI48 mode iterator.
26182 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
26183 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
26184 set modrm attribute of bswap insn to 0 and remove length attribute.
26185 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
26186 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
26187 set mode attribute to <MODE> and remove length attribute.
26188
4811db8d
JW
261892010-04-20 James E. Wilson <wilson@codesourcery.com>
26190
26191 PR rtl-optimization/43520
26192 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
26193 zero available registers.
26194
3c642f92
KG
261952010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26196
26197 * builtins.c (fold_builtin_cproj): Fold more cases.
26198
43272bf5
KG
261992010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26200
26201 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
26202 (fold_builtin_1): Fold builtin cproj.
26203 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
26204 Use ATTR_CONST_NOTHROW_LIST.
26205
e96ccb30
UB
262062010-04-20 Uros Bizjak <ubizjak@gmail.com>
26207
26208 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
26209 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
26210 ffsi2_no_cmove for !TARGET_CMOVE.
26211 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
26212 (ffssi2): Remove expander.
26213 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
26214 mode iterator.
26215 (ctz<mode>2): Ditto from ctz{si,di}2.
26216 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
26217 mode iterator.
26218 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
26219 mode iterator.
26220
4c0ab69d
JJ
262212010-04-20 Jakub Jelinek <jakub@redhat.com>
26222
26223 * dwarf2out.c (AT_linkage_name): Define.
26224 (clone_as_declaration): Handle DW_AT_linkage_name.
26225 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
26226 of DW_AT_MIPS_linkage_name.
26227 (move_linkage_attr): Likewise.
26228 (dwarf2out_finish): Likewise.
26229
94e85e0a
XDL
262302010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
26231
26232 PR middle-end/41952
e96ccb30 26233 * fold-const.c (fold_comparison): New folding rule.
94e85e0a 26234
4c0ab69d 262352010-04-20 Anatoly Sokolov <aesok@post.ru>
54fb1ae0
AS
26236
26237 * double-int.h (double_int_setbit): Declare.
26238 * double-int.c (double_int_setbit): New function.
26239 * rtl.h (immed_double_int_const): Declare.
26240 * emit-rtl.c (immed_double_int_const): New function.
26241 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
26242 and immed_double_int_const functions.
26243 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
a691bb08 26244 expand_copysign_bit): (Ditto.).
54fb1ae0
AS
26245 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
26246 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
26247 * dojump.c (prefer_and_bit_test): (Ditto.).
26248 * expr.c (convert_modes, reduce_to_bit_field_precision,
26249 const_vector_from_tree): (Ditto.).
26250 * expmed.c (mask_rtx, lshift_value): (Ditto.).
26251
a837268b
JH
262522010-04-20 Jan Hubicka <jh@suse.cz>
26253
26254 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
26255 (dump_cgraph_node): Dump new flags.
e96ccb30
UB
26256 * cgraph.h (struct cgraph_node): Add flags
26257 reachable_from_other_partition and in_other_partition.
26258 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
26259 other partition can not be removed.
26260 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
26261 the other partition must be output; silence sanity checking on
26262 leaking functions bodies from other paritition.
a837268b
JH
26263 * lto-cgraph.c (reachable_from_other_partition_p): New function.
26264 (lto_output_node): Output new flags; do not sanity check that inline
26265 clones are output; drop lto_forced_extern_inline_p code; do not mock
26266 visibility flags at partition boundaries.
26267 (add_node_to): New function.
26268 (output_cgraph): Use it to sort functions so masters appear before
26269 clones.
26270 (input_overwrite_node): Input new flags.
26271 * passes.c (ipa_write_summaries): Do not call
26272 lto_new_extern_inline_states.
74ca3393
EB
26273 * lto-section-out.c (forced_extern_inline,
26274 lto_new_extern_inline_states lto_delete_extern_inline_states,
26275 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
a837268b
JH
26276 * lto-streamer.h (lto_new_extern_inline_states,
26277 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
26278 lto_forced_extern_inline_p): Kill.
26279
3c323b52
RG
262802010-04-20 Richard Guenther <rguenther@suse.de>
26281
26282 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
26283 from vars that can have pointers.
26284 (process_constraint): Dump useless constraints.
26285
b28ae58f
RG
262862010-04-20 Richard Guenther <rguenther@suse.de>
26287
e96ccb30 26288 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
b28ae58f
RG
26289 (dump_sa_points_to_info): Remove asserts.
26290 (init_base_vars): nothing_id isn't an escape point nor does it
26291 have pointers.
26292
1197ce8e
JJ
262932010-04-20 Jakub Jelinek <jakub@redhat.com>
26294
26295 * tree.h (TYPE_REF_IS_RVALUE): Define.
26296 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
26297 should_move_die_to_comdat, prune_unused_types_walk): Handle
26298 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
26299 (modified_type_die, gen_reference_type_die): Emit
26300 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
26301 if TYPE_REF_IS_RVALUE and -gdwarf-4.
26302
72e2cf16
AK
263032010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26304
26305 PR target/43635
26306 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
26307 calls for -fpic -m31 if they have been sibcall optimized.
26308
810d71d0
JW
263092010-04-19 James E. Wilson <wilson@codesourcery.com>
26310
4a863f3a
JW
26311 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
26312 ar.lc fixed and call-used.
26313
810d71d0
JW
26314 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
26315
3ee2243c
JH
263162010-04-19 Jan Hubicka <jh@suse.cz>
26317
26318 * opts.c (decode_options): Disable whpr incompatible passes.
26319 * lto/lto.c (lto_1_to_1_map): Skip clones.
26320 (read_cgraph_and_symbols): Do not mark everything as needed.
26321 (do_whole_program_analysis): Do map only after optimizing;
26322 set proper cgraph_state; use passmanager.
26323
576319a7
DD
263242010-04-19 DJ Delorie <dj@redhat.com>
26325
26326 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
26327 POINTER_PLUS_EXPR and fix them.
26328
578ad141
EW
263292010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
26330
26331 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
26332 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
26333 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
26334 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
26335 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
26336 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
26337 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
26338 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
26339 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
26340 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
26341 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
26342
d321bd2d
EB
263432010-04-19 Eric Botcazou <ebotcazou@adacore.com>
26344
26345 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
26346 (check_cond_move_block): Likewise.
26347 (cond_move_process_if_block): Likewise.
26348 (noce_find_if_block): Improve formatting.
26349 (find_if_header): Pass 0 to memset and tweak conditions.
26350 (cond_exec_find_if_block): Fix long lines and tweak conditions.
26351
74e27d0d
JJ
263522010-04-19 Jakub Jelinek <jakub@redhat.com>
26353
e96ccb30
UB
26354 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
26355 for -gdwarf-4.
74e27d0d 26356
fd2e4e99
JJ
26357 PR middle-end/43337
26358 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
26359 with non-local decl doesn't need chain.
26360
ec995732
VM
263612010-04-19 Vladimir Makarov <vmakarov@redhat.com>
26362
26363 * ira-color.c (allocno_reload_assign): Avoid accumulating
26364 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
26365
acd63801
MJ
263662010-04-19 Martin Jambor <mjambor@suse.cz>
26367
26368 * gimple.h (create_tmp_reg): Declare.
26369 * gimplify.c (create_tmp_reg): New function.
26370 (gimplify_return_expr): Use create_tmp_reg.
26371 (gimplify_omp_atomic): Likewise.
26372 (gimple_regimplify_operands): Likewise.
26373 * tree-dfa.c (make_rename_temp): Likewise.
26374 * tree-predcom.c (predcom_tmp_var): Likewise.
26375 (reassociate_to_the_same_stmt): Likewise.
26376 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
26377 (get_replaced_param_substitute): Likewise.
26378 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
26379 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
26380 * tree-ssa-pre.c (get_representative_for): Likewise.
26381 (create_expression_by_pieces): Likewise.
26382 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
26383 (create_tailcall_accumulator): Likewise.
26384
0b6e2868
MJ
263852010-04-19 Martin Jambor <mjambor@suse.cz>
26386
26387 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
26388 new_stmt.
26389 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
26390
1936a7d4
RG
263912010-04-19 Richard Guenther <rguenther@suse.de>
26392
26393 PR tree-optimization/43796
26394 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
26395 from SCEV in the lattice.
26396 (vrp_visit_phi_node): Dump change.
26397
479881c3
RG
263982010-04-19 Richard Guenther <rguenther@suse.de>
26399
26400 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
26401 * configure: Re-generated.
26402
d53bed0b
RG
264032010-04-19 Richard Guenther <rguenther@suse.de>
26404
26405 PR tree-optimization/43783
26406 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
26407 constant ARRAY_REF operands two and three if possible.
26408
90f775a9
UB
264092010-04-19 Uros Bizjak <ubizjak@gmail.com>
26410
26411 PR target/43766
26412 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
26413
8d9b7be5
JZ
264142010-04-19 Jie Zhang <jie@codesourcery.com>
26415
26416 PR target/43662
90f775a9 26417 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
8d9b7be5 26418
d5dceab8 264192010-04-19 Ira Rosen <irar@il.ibm.com>
b5aeb3bb
IR
26420
26421 PR tree-optimization/37027
e96ccb30 26422 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
b5aeb3bb
IR
26423 and macro to access it.
26424 (vectorizable_reduction): Add argument.
26425 (vect_get_slp_defs): Likewise.
26426 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
26427 statements for possible use in SLP.
26428 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
26429 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
26430 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
26431 add new argument.
26432 (vectorizable_reduction): Likewise.
e96ccb30 26433 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
b5aeb3bb
IR
26434 vect_get_slp_defs.
26435 (vectorizable_type_demotion, vectorizable_type_promotion,
26436 vectorizable_store): Likewise.
26437 (vect_analyze_stmt): Update call to vectorizable_reduction.
26438 (vect_transform_stmt): Likewise.
26439 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
26440 (vect_build_slp_tree): Fix indentation. Check that there are no loads
26441 from different interleaving chains in same node.
26442 (vect_slp_rearrange_stmts): New function.
e96ccb30 26443 (vect_supported_load_permutation_p): Allow load permutations for
b5aeb3bb
IR
26444 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
26445 inside SLP nodes if necessary.
26446 (vect_analyze_slp_instance): Handle reductions.
26447 (vect_analyze_slp): Try to build SLP instances originating from groups
26448 of reductions.
26449 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
26450 (vect_get_constant_vectors): Create initial vectors for reductions
26451 according to reduction code. Add new argument.
e96ccb30 26452 (vect_get_slp_defs): Add new argument, pass it to
b5aeb3bb
IR
26453 vect_get_constant_vectors.
26454 (vect_schedule_slp_instance): Remove SLP tree root statements.
26455
5a2fa9e8
JJ
264562010-04-19 Jakub Jelinek <jakub@redhat.com>
26457
26458 * tree.h (ENUM_IS_SCOPED): Define.
26459 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
26460 for ENUM_IS_SCOPED enums.
26461
3b9e5d95
EB
264622010-04-18 Eric Botcazou <ebotcazou@adacore.com>
26463
26464 * fold-const.c (fold_comparison): Use ssizetype.
26465 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
26466 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
26467 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
26468 * tree-object-size.c (compute_object_sizes): Use size_type_node.
26469
26470 * tree.h (initialize_sizetypes): Remove parameter.
26471 (build_common_tree_nodes): Remove second parameter.
26472 * stor-layout.c (initialize_sizetypes): Remove parameter.
26473 Always create an unsigned type.
26474 (set_sizetype): Assert that the passed type is unsigned and simplify.
26475 * tree.c (build_common_tree_nodes): Remove second parameter.
26476 Adjust call to initialize_sizetypes.
26477 * c-decl.c (c_init_decl_processing): Remove second argument in call to
26478 build_common_tree_nodes.
26479
b3c35965
MK
264802010-04-18 Matthias Klose <doko@ubuntu.com>
26481
26482 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
26483
d5dceab8 264842010-04-18 Ira Rosen <irar@il.ibm.com>
59eefaa6
IR
26485
26486 PR tree-optimization/43771
26487 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
26488 load permutation doesn't have gaps.
26489
07b3ef2e
JH
264902010-04-18 Jan Hubicka <jh@suse.cz>
26491
26492 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
26493 (sse_prologue_save_insn expander): Use new pattern.
26494 (sse_prologue_save_insn1): New pattern and splitter.
26495 (sse_prologue_save_insn): Update to deal also with 64bit aligned
26496 blocks.
90f775a9
UB
26497 * i386.c (setup_incoming_varargs_64): Do not compute jump
26498 destination here.
07b3ef2e 26499 (ix86_gimplify_va_arg): Update alignment needed.
90f775a9 26500 (ix86_local_alignment): Do not align all local arrays to 128bit.
07b3ef2e 26501
6a8cd100
JH
265022010-04-17 Jan Hubicka <jh@suse.cz>
26503
26504 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
26505
9e315505
RE
265062010-04-17 Richard Earnshaw <rearnsha@arm.com>
26507
26508 * arm.md (negdi2): Remove redundant code to force values into a
26509 register.
26510
6f0668cf
RE
265112010-04-17 Richard Earnshaw <rearnsha@arm.com>
26512
26513 * arm/bpabi.S: Add EABI alignment attributes to objects.
26514 * arm/bpabi-v6m.S: Likewise.
26515 * arm/crti.asm: Likewise.
26516 * arm/crtn.asm: Likewise.
26517 * arm/lib1funcs.asm: Likewise.
26518 * arm/libunwind.S: Likewise.
26519
1b78f575
RE
265202010-04-17 Richard Earnshaw <rearnsha@arm.com>
26521
26522 * arm-protos.h (tune_params): New structure.
26523 * arm.c (current_tune): New variable.
26524 (arm_constant_limit): Delete.
26525 (struct processors): Add pointer to the tune parameters.
26526 (arm_slowmul_tune): New tuning option.
26527 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
26528 (all_cores): Adjust to pick up the tuning model.
26529 (arm_constant_limit): New function.
26530 (arm_override_options): Select the appropriate tuning model. Delete
26531 initialization of arm_const_limit.
26532 (arm_split_constant): Use the new constant-limit model.
26533 (arm_rtx_costs): Pick up the current tuning model.
26534 * arm.md (is_strongarm, is_xscale): Delete.
26535 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
26536 for Xscale variant architectures.
26537 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
26538
80d56d04
RR
265392010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26540
1b78f575
RE
26541 * config/arm/arm.c (arm_gen_constant): Remove unused variable
26542 can_shift.
80d56d04
RR
26543 (arm_rtx_costs_1): Remove unused variable extra_cost.
26544 (arm_unwind_emit_set): Use variable offset.
26545 (thumb1_output_casesi): Remove unused variable flags.
26546
6190446b
JL
265472010-04-16 Jeff Law <law@redhat.com>
26548
26549 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
016f9d9d
JL
26550 needing assignment rather than doing a two-phase assignment. Remove
26551 unused variable 'm'.
6190446b 26552
24f8d71e
JJ
265532010-04-16 Jakub Jelinek <jakub@redhat.com>
26554
26555 PR bootstrap/43767
26556 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
26557
f1665f5c
DK
265582010-04-16 Doug Kwan <dougkwan@google.com>
26559
26560 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
26561 (next_operand_entry_id): New static variable.
26562 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
26563 (add_to_ops_vec): Assigned unique ID to operand entry.
3d25c396 26564 (struct oecount_s): New field ID.
f1665f5c
DK
26565 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
26566 (undistribute_ops_list): Assign unique IDs to oecounts.
26567 (init_reassoc): reset next_operand_entry_id.
26568
f638261a
DK
265692010-04-16 Doug Kwan <dougkwan@google.com>
26570
26571 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
26572 missing left parenthesis.
e96ccb30 26573
4a81b412
UB
265742010-04-16 Uros Bizjak <ubizjak@gmail.com>
26575
26576 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
26577 *btdi_rex64 using SWI48 mode iterator.
26578 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
26579 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
26580 *jcc_btdi_mask_rex64.
26581
9d4d1f8e
AS
265822010-04-16 Anatoly Sokolov <aesok@post.ru>
26583
26584 * double-int.h (tree_to_double_int): Convert to macro.
26585 * double-int.c (tree_to_double_int): Remove.
26586
835eb810
JJ
265872010-04-16 Jakub Jelinek <jakub@redhat.com>
26588
26589 PR debug/43762
26590 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
26591 with want_address 2 and in case a single element list might be
26592 possible, call it again with want_address 0.
26593
265942010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
db624ecb 26595
0f6b820c
KP
26596 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
26597 case 'W' print operands for HI mode.
26598 * config/h8300/h8300.h (Y0, Y2) : New constraints.
26599 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
26600 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
26601 * config/h8300/predicate.md (bit_register_indirect_operand): New.
26602
a7494d9e
KP
26603 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
26604
e96ccb30 26605 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8cb81753
KP
26606 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
26607 #xx:3 and #xx:4 mode.
26608
60744089
KP
26609 * config/h8300/h8300.md (inverted load with HImode dest): Add
26610 support for H8300SX.
26611
db624ecb
KP
26612 * config/h8300/predicate.md (bit_operand): Allow immediate values that
26613 satisfy 'U' constraint.
26614
8ccb78f2
RO
266152010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26616
e96ccb30 26617 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8ccb78f2
RO
26618 * configure: Regenerate.
26619 * config.in: Regenerate.
26620 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
26621 works.
26622
bc9c331d
RG
266232010-04-16 Richard Guenther <rguenther@suse.de>
26624
26625 * tree.h (struct tree_decl_minimal): Move pt_uid ...
26626 (struct tree_decl_common): ... here.
26627 (DECL_PT_UID): Adjust.
26628 (SET_DECL_PT_UID): Likewise.
26629 (DECL_PT_UID_SET_P): Likewise.
26630
12de6355
RG
266312010-04-16 Richard Guenther <rguenther@suse.de>
26632
26633 PR tree-optimization/43572
26634 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
26635 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
26636 * tree-flow.h (is_call_clobbered): Remove.
26637 * tree-flow-inline.h (is_call_clobbered): Likewise.
26638 * tree-dfa.c (dump_variable): Do not dump call clobber state.
26639 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
26640 (execute_return_slot_opt): Adjust.
26641 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
26642 check for call clobbered vars here.
26643 (find_tail_calls): Move tailcall verification to the
26644 proper place.
26645
6ab643b5
DN
266462010-04-16 Diego Novillo <dnovillo@google.com>
26647
e96ccb30 26648 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
6ab643b5 26649
f0c6475a
BS
266502010-04-16 Bernd Schmidt <bernds@codesourcery.com>
26651
26652 PR target/40603
26653 * config/arm/arm.md (cbranchqi4): New pattern.
26654 * config/arm/predicates.md (const0_operand,
26655 cbranchqi4_comparison_operator): New predicates.
26656
f0107145
RG
266572010-04-16 Richard Guenther <rguenther@suse.de>
26658
26659 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
26660 (dump_gimple_stmt): Likewise.
26661
f0c6475a 266622010-04-16 Bernd Schmidt <bernds@codesourcery.com>
6ddfdb0f
BS
26663
26664 * recog.h (struct recog_data): New field is_operator.
26665 (struct insn_operand_data): New field is_operator.
26666 * recog.c (extract_insn): Set recog_data.is_operator.
26667 * genoutput.c (output_operand_data): Emit code to set the
26668 is_operator field.
26669 * reload.c (find_reloads): Use it rather than testing for an
26670 empty constraint string.
26671
6ea007e4
BS
26672 PR target/41514
26673 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
26674 If the previous insn is a cbranchsi4_insn with the same arguments,
26675 omit the compare instruction.
26676
3302cfa1
BS
26677 * config/arm/arm.md (addsi3_cbranch): If destination is a high
26678 register, inputs must be low registers and we need a low register
26679 scratch. Handle alternative 2 like alternative 3.
26680
5312b066
JJ
266812010-04-16 Jakub Jelinek <jakub@redhat.com>
26682
26683 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
26684 don't call get_addr on both. If one expression is a VALUE and
26685 the other a REG, check VALUE's locs if the REG isn't among them.
26686
7a296495
CB
266872010-04-16 Christian Bruel <christian.bruel@st.com>
26688
26689 * config/sh/sh.h (sh_frame_pointer_required): New function.
26690 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
26691 (flag_omit_frame_pointer) Set.
26692 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
26693 (rounded_frame_size): Adjust size with outgoing_args_size.
26694 (sh_set_return_address): Must return from stack pointer.
eed023cc 26695 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
7a296495
CB
26696 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
26697 (ACCUMULATE_OUTGOING_ARGS): Define.
26698 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
eed023cc 26699 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
7a296495 26700
7140f0f9
KK
267012010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
26702
26703 PR target/43471
26704 * config/sh/sh.c (sh_legitimize_reload_address): Use
26705 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
26706 Remove a unneeded check for offset_base.
26707
bafaef55
L
267082010-04-15 H.J. Lu <hongjiu.lu@intel.com>
26709
26710 * configure: Regenerated.
26711
e8de8fea
AK
267122010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26713
26714 * config/s390/s390.c (s390_call_save_register_used): Switch back
26715 to HARD_REGNO_NREGS.
26716
038a39d1
RG
267172010-04-15 Richard Guenther <rguenther@suse.de>
26718
26719 * alias.c (alias_set_subset_of): Handle alias-set zero
26720 child properly.
26721
28907f9a
MS
267222010-04-15 Mark Shinwell <shinwell@codesourcery.com>
26723 Julian Brown <julian@codesourcery.com>
26724
26725 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
26726 alternatives according to use of high and low regs.
26727 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
26728 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
26729 optimizing for size on Thumb-2.
26730
3f56ef8b
TS
267312010-04-15 Thomas Schwinge <tschwinge@gnu.org>
26732
26733 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
26734
25a6a873
RG
267352010-04-15 Richard Guenther <rguenther@suse.de>
26736
26737 * tree-ssa-structalias.c (struct variable_info): Add
26738 is_fn_info flag.
26739 (new_var_info): Initialize it.
26740 (dump_constraints): Support printing last added constraints.
26741 (debug_constraints): Adjust.
26742 (dump_constraint_graph): Likewise.
26743 (make_heapvar_for): Check for NULL cfun.
26744 (get_function_part_constraint): New function.
26745 (get_fi_for_callee): Likewise.
26746 (find_func_aliases): Properly implement IPA PTA constraints.
26747 (process_ipa_clobber): New function.
26748 (find_func_clobbers): Likewise.
26749 (insert_into_field_list_sorted): Remove.
26750 (create_function_info_for): Properly allocate vars for IPA mode.
26751 Do not use insert_into_field_list_sorted.
26752 (create_variable_info_for): Properly generate constraints for
26753 global vars in IPA mode.
26754 (dump_solution_for_var): Always dump the solution.
26755 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
26756 (find_what_var_points_to): Adjust.
26757 (pt_solution_set): Change.
26758 (pt_solution_ior_into): New function.
26759 (pt_solution_empty_p): Export.
26760 (pt_solution_includes_global): Adjust.
26761 (pt_solution_includes_1): Likewise.
26762 (pt_solutions_intersect_1): Likewise.
26763 (dump_sa_points_to_info): Check some invariants.
26764 (solve_constraints): Move constraint dumping ...
26765 (compute_points_to_sets): ... here.
26766 (ipa_pta_execute): ... and here.
26767 (compute_may_aliases): Do not re-compute points-to info
26768 locally if IPA info is available.
26769 (ipa_escaped_pt): New global var.
26770 (ipa_pta_execute): Properly implement IPA PTA.
26771 * tree-into-ssa.c (dump_decl_set): Support dumping
26772 decls not in referenced-vars.
26773 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
26774 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
26775 (dump_points_to_solution): Likewise.
26776 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
26777 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
e96ccb30 26778 (remap_gimple_stmt): Reset call clobber/use information if necessary.
25a6a873
RG
26779 (copy_decl_to_var): Copy DECL_PT_UID.
26780 (copy_result_decl_to_var): Likewise.
26781 * tree.c (make_node_stat): Initialize DECL_PT_UID.
26782 (copy_node_stat): Copy it.
26783 * tree.h (DECL_PT_UID): New macro.
26784 (SET_DECL_PT_UID): Likewise.
26785 (DECL_PT_UID_SET_P): Likewise.
26786 (struct tree_decl_minimal): Add pt_uid member.
26787 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
26788 (pt_solution_empty_p): Declare.
26789 (pt_solution_set): Adjust.
26790 (ipa_escaped_pt): Declare.
26791 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
26792 * gimple-pretty-print.c (pp_points_to_solution): New function.
26793 (dump_gimple_call): Dump call clobber/use information.
26794 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
26795 * tree-pass.h (TDF_ALIAS): New dump option.
26796 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
26797 * doc/invoke.texi (-fipa-pta): Update documentation.
26798
cbdd87d4
RG
267992010-04-15 Richard Guenther <rguenther@suse.de>
26800
26801 * Makefile.in (OBJS-common): Add gimple-fold.o.
26802 (gimple-fold.o): New rule.
26803 * tree.h (maybe_fold_offset_to_reference,
26804 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
26805 prototypes ...
26806 * gimple.h: ... here.
26807 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
26808 may_propagate_address_into_dereference): Move prototypes ...
26809 * gimple.h: ... here.
26810 * tree-ssa-ccp.c (get_symbol_constant_value,
26811 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
26812 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
26813 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
26814 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
26815 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
26816 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
26817 gimplify_and_update_call_from_tree): Move ...
26818 * gimple-fold.c: ... here. New file.
26819 (ccp_fold_builtin): Rename to ...
26820 (gimple_fold_builtin): ... this.
26821 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
26822
330db1e3
RG
268232010-04-15 Richard Guenther <rguenther@suse.de>
26824
26825 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
26826 fit_double_type, force_fit_type_double, add_double_with_sign,
26827 neg_double, mul_double_with_sign, lshift_double, rshift_double,
26828 lrotate_double, rrotate_double, div_and_round_double): Move ...
26829 * double-int.c: ... here.
26830 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
26831 add_double, neg_double, mul_double_with_sign, mul_double,
26832 lshift_double, rshift_double, lrotate_double, rrotate_double,
26833 div_and_round_double): Move prototypes ...
26834 * double-int.h: ... here.
26835
f0c6475a 268362010-04-15 Bernd Schmidt <bernds@codesourcery.com>
077668e3
BS
26837
26838 PR target/43742
26839 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
26840 matching constraints to ensure inputs match the output.
26841
fa66fc40
KK
268422010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
26843
26844 PR target/43742
26845 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
e96ccb30 26846 in an input-only operand.
fa66fc40 26847
2bd1333d
AS
268482010-04-15 Anatoly Sokolov <aesok@post.ru>
26849
26850 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
26851 (double_int_not, double_int_lshift, double_int_rshift): Declare.
26852 (double_int_negative_p): Convert to static inline function.
74ca3393 26853 * double-int.c (double_int_lshift, double_int_lshift): New functions.
2bd1333d 26854 (double_int_negative_p): Remove.
e96ccb30 26855 * tree.h (lshift_double, rshift_double):
2bd1333d
AS
26856 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
26857 * fold-const.c (fold_convert_const_int_from_real,
26858 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
26859 (lshift_double): Change type of arith argument to bool.
26860 (rshift_double): Change type of arith argument to bool. Correct
26861 comment.
26862 * expmed.c (mask_rtx, lshift_value): (Ditto.).
26863
f0c6475a 268642010-04-14 Bernd Schmidt <bernds@codesourcery.com>
e96ccb30 26865
31ce8a53
BS
26866 PR target/21803
26867 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
26868 at the start and end of the then/else blocks, and omit them from the
26869 conversion.
26870 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
26871 argument; all callers changed. Pass zero to old_insns_match_p instead.
26872 (flow_find_head_matching_sequence): New function.
26873 (old_insns_match_p): Check REG_EH_REGION notes for calls.
26874 * basic-block.h (flow_find_cross_jump,
26875 flow_find_head_matching_sequence): Declare functions.
26876
943f82e7
JM
268772010-04-14 Jason Merrill <jason@redhat.com>
26878
26879 PR c++/36625
26880 * c-common.c (attribute_takes_identifier_p): New fn.
26881 * c-common.h: Declare it.
26882
feeb8c52
UB
268832010-04-14 Uros Bizjak <ubizjak@gmail.com>
26884
26885 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
26886 splitter condition.
26887 (*udivmod<mode>4): Ditto.
26888
4a5528cc
UB
268892010-04-14 Uros Bizjak <ubizjak@gmail.com>
26890
26891 * config/i386/i386.md (maxmin_int): Rename code attribute from
26892 maxminiprefix and update all users.
26893 (maxmin_float): Ditto from maxminfprefix.
26894 (logic): Ditto from logicprefix.
26895 (absneg_mnemonic): Ditto from absnegprefix.
26896 * config/i386/mmx.md: Update all users of maxminiprefix,
4a81b412 26897 maxminfprefix and logicprefix for rename.
4a5528cc
UB
26898 * config/i386/sse.md: Ditto.
26899 * config/i386/sync.md (sync_<code><mode>): Update for
26900 logicprefix rename.
26901
289fcbbd
MLI
269022010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
26903
26904 PR 42966
26905 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
26906 warnings converted to errors.
26907
d58770e7
UB
269082010-04-14 Uros Bizjak <ubizjak@gmail.com>
26909
26910 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
26911 used insn_type variable.
26912 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
26913 to avoid set-but-not-used warning.
26914
a3f1cee4
UB
269152010-04-14 Uros Bizjak <ubizjak@gmail.com>
26916
26917 * df-core.c (df_ref_debug): Change format string placeholder
26918 from 0x%x to %#x.
26919 * dwarf2asm.c (dw2_asm_output_data_raw,
26920 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
26921 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
26922 * dwarf2out.c (output_cfi, output_cfi_directive,
26923 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
26924 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
26925 Ditto.
26926 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
26927 * print-rtl.c (print_rtx): Ditto.
26928
3eb4dbe3
MM
269292010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26930
26931 PR middle-end/42694
26932 * builtins.c (expand_builtin_pow_root): New function to expand pow
26933 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
26934 series of sqrt and cbrt calls under -ffast-math.
26935 (expand_builtin_pow): Call it.
26936
fc249fe5
MM
269372010-04-14 Michael Matz <matz@suse.de>
26938
26939 PR tree-optimization/42963
26940 * tree-cfg.c (touched_switch_bbs): New static variable.
26941 (group_case_labels_stmt): New function broken out from ...
26942 (group_case_labels): ... here, use the above.
26943 (start_recording_case_labels): Allocate touched_switch_bbs.
26944 (end_recording_case_labels): Deallocate it, call
26945 group_case_labels_stmt.
26946 (gimple_redirect_edge_and_branch): Remember index of affected BB.
26947
0fcbf3ed
UB
269482010-04-14 Uros Bizjak <ubizjak@gmail.com>
26949
26950 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
26951 from insn template.
26952
3f529c2c
UB
269532010-04-14 Uros Bizjak <ubizjak@gmail.com>
26954
26955 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
26956
1ce18dc8
JH
269572010-04-13 Jan Hubicka <jh@suse.cz>
26958
26959 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
26960 of optimized out static functions.
26961 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
26962 cost computation. Also sanity check for overflows.
26963 (update_caller_keys): Update cgraph_edge_badness call; properly
26964 update fibheap and sanity check that it is up to date.
26965 (add_new_edges_to_heap): Update cgraph_edge_badness.
26966 (cgraph_decide_inlining_of_small_function): Likewise;
26967 add sanity checking that badness in heap is up to date;
26968 improve dumping of reason; Update badness of calls to the
26969 offline copy of function currently inlined; dump badness
26970 of functions not inlined because of unit growth limits.
26971
9e9ef331
EB
269722010-04-13 Eric Botcazou <ebotcazou@adacore.com>
26973
26974 PR middle-end/32628
26975 * c-common.c (pointer_int_sum): Disregard overflow that occured only
26976 because of sign-extension change when converting to sizetype here...
26977 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
26978
26979 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
26980 the folding to constants. Remove redundant final conversion.
26981 (fold_binary) <associate>: Do not associate if the re-association of
26982 constants alone overflows.
26983 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
26984 to the end of the list.
26985 (multiple_of_p) <COND_EXPR>: New case.
26986
9db94baa
MLI
269872010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
26988
26989 * opt-functions.awk (opt_sanitized_name): New.
26990 (opt_enum): New.
26991 * optc-gen.awk: Use it
26992 * opth-gen.awk: Use it.
26993
0f2ffb9a
MJ
269942010-04-13 Martin Jambor <mjambor@suse.cz>
26995
26996 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
26997 (sra_modify_assign): Delete stmts loading dead data even if racc has no
26998 children. Call replace_uses_with_default_def_ssa_name to handle
26999 SSA_NAES on lhs.
27000
f78b86c0
MM
270012010-04-13 Michael Matz <matz@suse.de>
27002
27003 PR middle-end/43730
27004 * builtins.c (expand_builtin_interclass_mathfn): Also create
27005 a register if the predicate doesn't match.
27006
0e6229c2
DN
270072010-04-13 Diego Novillo <dnovillo@google.com>
27008
27009 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
27010 * c-pch.c: Include timevar.h.
27011 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
3f529c2c 27012 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
0e6229c2 27013 * ggc-common.c: Include timevar.h.
3f529c2c 27014 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
0e6229c2
DN
27015 * timevar.def (TV_PCH_SAVE): Define.
27016 (TV_PCH_CPP_SAVE): Define.
27017 (TV_PCH_PTR_REALLOC): Define.
27018 (TV_PCH_PTR_SORT): Define.
27019 (TV_PCH_RESTORE): Define.
27020 (TV_PCH_CPP_RESTORE): Define.
27021
143597ff
MM
270222010-04-13 Michael Matz <matz@suse.de>
27023
27024 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
27025 into MINUS_EXPRs.
27026 (can_reassociate_p): New function.
27027 (break_up_subtract_bb, reassociate_bb): Use it.
27028
54c5ec4f
RG
270292010-04-13 Richard Guenther <rguenther@suse.de>
27030
27031 PR bootstrap/43737
27032 * builtins.c (c_readstr): Fix assert.
27033
719938ae
UB
270342010-04-13 Uros Bizjak <ubizjak@gmail.com>
27035
27036 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
27037 when generating cltd insn.
27038
27039 (*ashl<mode>3_1): Remove special handling for register operand 2.
27040 (*ashlsi3_1_zext): Ditto.
27041 (*ashlhi3_1): Ditto.
27042 (*ashlhi3_1_lea): Ditto.
27043 (*ashlqi3_1): Ditto.
27044 (*ashlqi3_1_lea): Ditto.
27045 (*<shiftrt_insn><mode>3_1): Ditto.
27046 (*<shiftrt_insn>si3_1_zext): Ditto.
27047 (*<shiftrt_insn>qi3_1_slp): Ditto.
27048 (*<rotate_insn><mode>3_1): Ditto.
27049 (*<rotate_insn>si3_1_zext): Ditto.
27050 (*<rotate_insn>qi3_1_slp): Ditto.
27051
3e8542ca
RG
270522010-04-13 Richard Guenther <rguenther@suse.de>
27053
27054 * tree-ssa-structalias.c (callused_id): Remove.
27055 (call_stmt_vars): New.
27056 (get_call_vi): Likewise.
27057 (lookup_call_use_vi): Likewise.
27058 (lookup_call_clobber_vi): Likewise.
27059 (get_call_use_vi): Likewise.
27060 (get_call_clobber_vi): Likewise.
27061 (make_transitive_closure_constraints): Likewise.
27062 (handle_const_call): Adjust to do per-call call-used handling.
27063 (handle_pure_call): Likewise.
27064 (find_what_var_points_to): Remove general callused handling.
27065 (init_base_vars): Likewise.
27066 (init_alias_vars): Initialize call_stmt_vars.
27067 (compute_points_to_sets): Process call-used and call-clobbered
27068 vars for call statements.
27069 (delete_points_to_sets): Free call_stmt_vars.
27070
777e1f09
RG
270712010-04-13 Richard Guenther <rguenther@suse.de>
27072
27073 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
27074 Only add RW dependence for dependence distance zero.
27075 Adjust maximal vectorization factor according to dependences.
27076 Move alignment handling ...
27077 (vect_find_same_alignment_drs): ... here. New function.
27078 (vect_analyze_data_ref_dependences): Adjust.
27079 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
27080 (vect_analyze_data_refs): Adjust minimal vectorization factor
27081 according to data references.
27082 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
27083 dependences before determining the vectorization factor.
27084 Analyze alignment after determining the vectorization factor.
27085 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
27086 dependences before alignment.
27087 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
27088 Adjust prototype.
27089 (vect_analyze_data_refs): Likewise.
27090 (MAX_VECTORIZATION_FACTOR): New define.
27091
1a710808
DS
270922010-04-13 Duncan Sands <baldrick@free.fr>
27093
27094 * except.h (lang_eh_type_covers): Remove.
27095 * except.c (lang_eh_type_covers): Likewise.
27096
9602b6a1 270972010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3f529c2c
UB
27098 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27099
eed023cc
EB
27100 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
27101 * config/s390/s390.c: Replace UNTIS_PER_WORD with
3f529c2c 27102 UNITS_PER_LONG where it is ABI relevant.
9602b6a1
AK
27103 (s390_return_addr_rtx): Likewise.
27104 (s390_back_chain_rtx): Likewise.
27105 (s390_frame_area): Likewise.
27106 (s390_frame_info): Likewise.
27107 (s390_initial_elimination_offset): Likewise.
27108 (save_gprs): Likewise.
27109 (s390_emit_prologue): Likewise.
27110 (s390_emit_epilogue): Likewise.
27111 (s390_function_arg_advance): Likewise.
27112 (s390_function_arg): Likewise.
27113 (s390_va_start): Likewise.
27114 (s390_gimplify_va_arg): Likewise.
27115 (s390_function_profiler): Likewise.
27116 (s390_optimize_prologue): Likewise.
27117 (s390_rtx_costs): Likewise.
27118 (s390_secondary_reload): Likewise.
27119 (s390_promote_function_mode): Likewise.
27120 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
27121 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
27122 registers available.
27123 (s390_unwind_word_mode): New function.
27124 (s390_function_value): Split 64 bit values into register pair if
27125 used as return value.
27126 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
27127 function call parameters. Handle parallels.
27128 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
27129 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
27130 (DWARF_CIE_DATA_ALIGNMENT): New macro.
27131 (s390_expand_setmem): Remove unused variable src_addr.
eed023cc 27132 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3f529c2c 27133 deal with 64 bit registers.
eed023cc 27134 * config/s390/s390.h: Define __zarch__ predefined macro.
9602b6a1
AK
27135 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
27136 (UNITS_PER_LONG): New macro.
27137 * libjava/include/s390-signal.h: Define extended ucontext
27138 structure containing the upper halfs of the 64 bit registers.
27139
3b123595
SB
271402010-04-13 Simon Baldwin <simonb@google.com>
27141
27142 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
27143
cb3d597d
EB
271442010-04-13 Eric Botcazou <ebotcazou@adacore.com>
27145
27146 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
27147 rvalue on the RHS if the LHS is of a non-renamable type.
27148 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
27149
4adbd5dd
MK
271502010-04-13 Matthias Klose <doko@ubuntu.com>
27151
27152 * gcc.c (cc1_options): Handle -iplugindir before processing
27153 the cc1 spec. Only add -iplugindir once.
27154 (cpp_unique_options): Add -iplugindir option if -fplugin* options
27155 found.
27156 * common.opt (iplugindir): Remove `Separate' property, initialize.
27157 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
27158 option.
27159 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
27160 (distclean): Remove plugin dir.
27161 * doc/invoke.texi: Document -iplugindir.
27162
271632010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
27164
27165 * doc/plugins.texi (Loading Plugins): Document short
27166 -fplugin=foo option.
27167 (Plugin API): Mention default_plugin_dir_name function.
27168
27169 * gcc.c (find_file_spec_function): Add new declaration.
27170 (static_spec_func): Use it for "find-file".
27171 (find_file_spec_function): Add new function.
27172 (cc1_options): Add -iplugindir option if -fplugin* options found.
27173
27174 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
27175
27176 * plugin.c (add_new_plugin): Updated comment, and handle short
27177 plugin name.
27178 (default_plugin_dir_name): Added new function.
27179
719938ae 27180 * common.opt (iplugindir): New option to set the plugin directory.
4adbd5dd 27181
e0db9cc6
UB
271822010-04-12 Uros Bizjak <ubizjak@gmail.com>
27183
27184 * config/i386/i386.md (any_rotate): New code iterator.
27185 (rotate_insn): New code attribute.
27186 (rotate): Ditto.
27187 (SWIM124): New mode iterator.
27188 (<rotate_insn>ti3): New expander.
27189 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
27190 any_rotate code iterator.
27191 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
27192 using any_rotate code iterator and SWIM124 mode iterator.
27193 (ix86_rotlti3): New insn_and_split pattern.
27194 (ix86_rotrti3): Ditto.
27195 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
27196 ix86_rotl{di,ti}3 patterns.
27197 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
27198 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
27199 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
27200 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
27201 code iterator and SWI mode iterator.
27202 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
27203 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
27204 code iterator.
27205 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
27206 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
27207 (bswap rotatert splitter): Add splitter.
27208 (bswap splitter): Macroize splitter using any_rotate code iterator.
27209 Add insn predicate to split only for TARGET_USE_XCHGB or when
27210 optimizing function for size.
27211
077c8ada
SE
272122010-04-12 Steve Ellcey <sje@cup.hp.com>
27213
27214 * config/pa/pa.c (emit_move_sequence): Remove use of
27215 deleted variable flag_argument_noalias.
27216
c7392d11
RO
272172010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27218
27219 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
27220 configurations.
27221 Add to unsupported targets list.
27222 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
27223 sparc*-sun-solaris2.[567]* from target lists.
27224 * configure: Regenerate.
27225 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
27226 removal.
27227 Remove Solaris 7 patch references.
27228 (Specific, sparc-sun-solaris2.7): Removed.
27229 (sparc-sun-solaris2*): Update Solaris 7 example.
27230 (sparc64-*-solaris2*): Likewise.
27231
8c200350
RO
272322010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27233
27234 * config.build (alpha*-dec-osf4*): Remove.
27235 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
27236 of obsolete configurations.
27237 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
27238 support.
27239 * config/alpha/t-osf4: Renamed to ...
27240 * config/alpha/t-osf5: ... this.
27241 * config/alpha/osf.h: Renamed to ...
27242 * config/alpha/osf5.h: ... this.
27243 Merged old osf5.h contents.
27244 Update comments.
27245 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
27246 (EXTRA_SPECS): Removed.
27247 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
27248 reflect removal of Tru64 UNIX V4.0/V5.0 support.
27249 Document that.
27250
887204da
RO
272512010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27252
27253 * doc/contrib.texi (Contributors, Rainer Orth): Update.
27254
c1b8e139
KT
272552010-04-12 Kai Tietz <kai.tietz@onevision.com>
27256
27257 PR/43702
27258 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
27259 __thiscall convention.
27260
b38bccca
SE
272612010-04-12 Steve Ellcey <sje@cup.hp.com>
27262
27263 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
27264 orig_base.
27265 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
27266
fc2f1f53
SE
272672010-04-12 Steve Ellcey <sje@cup.hp.com>
27268
27269 * function.c (assign_parms_initialize_all): Add unused attribute
27270 to fntype.
27271
d086d311
RG
272722010-04-12 Richard Guenther <rguenther@suse.de>
27273
27274 * gsstruct.def (GSS_CALL): New.
27275 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
27276 * gimple.h: Include tree-ssa-alias.h.
27277 (struct gimple_statement_call): New.
27278 (union gimple_statement_struct_d): Add gimple_call member.
27279 (gimple_call_reset_alias_info): Declare.
27280 (gimple_call_use_set): New function.
27281 (gimple_call_clobber_set): Likewise.
27282 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
27283 * gimple.c (gimple_call_reset_alias_info): New function.
27284 (gimple_build_call_1): Call it.
27285 * lto-streamer-in.c (input_gimple_stmt): Likewise.
27286 * tree-inline.c (remap_gimple_stmt): Likewise.
27287 (expand_call_inline): Remove callused handling.
27288 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
27289 * tree-dfa.c (dump_variable): Likewise.
27290 * tree-parloops.c (parallelize_loops): Likewise.
27291 * tree-ssa.c (init_tree_ssa): Likewise.
27292 (delete_tree_ssa): Likewise.
27293 * tree-flow-inline.h (is_call_used): Remove.
27294 * tree-flow.h (struct gimple_df): Remove callused member.
27295 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
27296 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
27297 (ref_maybe_used_by_call_p_1): Simplify.
27298 (call_may_clobber_ref_p_1): Likewise.
27299 * tree-ssa-structalias.c (compute_points_to_sets): Set
27300 the call stmt used and clobbered sets.
27301 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
27302 (find_tail_calls): Verify the tail call.
27303
af961c7f
RG
273042010-04-12 Richard Guenther <rguenther@suse.de>
27305
27306 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
27307 single-iteration always-inline inlining.
27308 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
e0db9cc6 27309 (cgraph_decide_inlining): Do not handle always-inline specially.
af961c7f
RG
27310 (try_inline): Remove always-inline cycle detection special case.
27311 Do not recurse on always-inlines.
27312 (cgraph_early_inlining): Do not iterate if not optimizing.
27313 (cgraph_gate_early_inlining): remove.
27314 (pass_early_inline): Run unconditionally.
27315 (gate_cgraph_decide_inlining): New function.
27316 (pass_ipa_inline): Use it. Do not run the IPA inliner if
27317 not inlining or optimizing.
27318 (cgraph_decide_inlining_of_small_functions): Also consider
27319 always-inline functions.
27320 (cgraph_default_inline_p): Return true for nodes which should
27321 disregard inline limits.
27322 (estimate_function_body_sizes): Assume zero size and time for
27323 nodes which are marked as disregarding inline limits.
27324 (cgraph_decide_recursive_inlining): Do not perform recursive
27325 inlining on always-inline nodes.
27326
fa8351f8
JJ
273272010-04-12 Jakub Jelinek <jakub@redhat.com>
27328
27329 PR bootstrap/43699
27330 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
27331 for exprs satisfying handled_component_p.
27332
675c873b
EB
273332010-04-12 Eric Botcazou <ebotcazou@adacore.com>
27334
27335 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
27336 non-constant aggregate elements.
27337
27338 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
27339 is a real initialization.
27340
c4712597
SZ
273412010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
27342
27343 PR c/36774
27344 * c-decl.c (start_function): Move forward check for nested function.
27345
6f50eb9c
KK
273462010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
27347
27348 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
27349 * config/sh/sh.c: Include reload.h.
27350 (sh_legitimize_reload_address): New.
27351 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
27352 sh_legitimize_reload_address.
27353
c11c09f9
KP
273542010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
27355
27356 * config/sh/sh.md (*movqi_pop): New insn pattern.
27357 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
27358
d72ebc16
UB
273592010-04-11 Uros Bizjak <ubizjak@gmail.com>
27360
27361 * config/i386/i386.md (any_shiftrt): New code iterator.
27362 (shiftrt_insn): New code attribute.
27363 (shiftrt): Ditto.
e0db9cc6
UB
27364 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
27365 using any_shiftrt code iterator.
d72ebc16 27366 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
e0db9cc6 27367 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
d72ebc16
UB
27368 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
27369 pattern from corresponding peephole2 patterns.
e0db9cc6
UB
27370 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
27371 using any_shiftrt code iterator.
27372 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
27373 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
27374 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
27375 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
27376 *{ashr,lshr}<mode>3_cmp_zext.
27377 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
d72ebc16 27378
59caab22
UB
273792010-04-11 Uros Bizjak <ubizjak@gmail.com>
27380
27381 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
27382 scratch register.
27383 (*lshr<mode>3_cconly): Ditto.
27384
9200ac72
UB
273852010-04-11 Uros Bizjak <ubizjak@gmail.com>
27386
27387 * config/i386/i386.md (lshr<mode>3): Macroize expander from
27388 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27389 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
27390 pattern from *lshr{di,ti}3_1 and corresponding splitters using
27391 DWI mode iterator.
27392 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27393 from corresponding peephole2 patterns.
27394 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
e0db9cc6
UB
27395 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
27396 and *lshrdi3_1_rex64 using SWI mode iterator.
d72ebc16 27397 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
9200ac72
UB
27398 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
27399 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
27400 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
27401 and *lshrdi3_cmp_rex64 using SWI mode iterator.
27402 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
27403 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
27404 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
27405 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
27406 SWI mode iterator.
27407
27431d88
UB
274082010-04-10 Uros Bizjak <ubizjak@gmail.com>
27409
27410 * config/i386/i386.md (ashr<mode>3): Macroize expander from
27411 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27412 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
27413 pattern from *ashr{di,ti}3_1 and corresponding splitters using
27414 DWI mode iterator.
27415 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27416 from corresponding peephole2 patterns.
27417 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
27418 (ashrsi3_cvt): Rename from ashrsi3_31.
27419 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
27420 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
27421 and x86_64_shift_adj_3 using SWI48 mode iterator.
27422 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
e0db9cc6
UB
27423 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
27424 and *ashrdi3_1_rex64 using SWI mode iterator.
d72ebc16 27425 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
27431d88
UB
27426 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
27427 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
27428 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
27429 and *ashrdi3_cmp_rex64 using SWI mode iterator.
27430 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
27431 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
27432 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
27433 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
27434 SWI mode iterator.
59caab22 27435 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
27431d88 27436 * config/i386/i386.c (ix86_split_ashr): Update for renamed
9200ac72 27437 x86_shift<mode>_adj_3 expanders.
27431d88 27438
85c9bcd4
WG
274392010-04-10 Wei Guozhi <carrot@google.com>
27440
27441 PR target/42601
27442 * config/arm/arm.c (arm_pic_static_addr): New function.
27443 (legitimize_pic_address): Call arm_pic_static_addr when it detects
27444 a static symbol.
27445 (arm_output_addr_const_extra): Output expression for new pattern.
27446 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
27447
f0c6475a 274482010-04-10 Bernd Schmidt <bernds@codesourcery.com>
979740a0
BS
27449
27450 * ira-costs.c (record_reg_classes): Ignore alternatives that are
27451 not enabled.
4143fd36
BS
27452
27453 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
27454 * web.c: Include "insn-config.h" and "recog.h".
27455 (union_match_dups): New function.
27456 (web_main): Call it.
27457 (union_defs): Don't try to recognize match_dups.
27458
52c1d580
BS
27459 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
27460 if doing so would replace the entire pattern.
27461
ef0f4a03
UB
274622010-04-09 Uros Bizjak <ubizjak@gmail.com>
27463
27464 PR target/43707
27465 PR target/43709
27466 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
27467 and splitter pattern. Change splitter operand 1 predicate to
27468 nonmemory_operand.
27469
add5d998
MJ
274702010-04-09 Martin Jambor <mjambor@suse.cz>
27471
27472 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
27473 lattices are addresses of CONST_DECLs with the same initial value.
27474 (ipcp_print_all_lattices): Print values of CONST_DECLs.
27475 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
27476
43ba743c 274772010-04-09 Eric Botcazou <ebotcazou@adacore.com>
f0c6475a 27478 Bernd Schmidt <bernds@codesourcery.com>
43ba743c
EB
27479
27480 * loop-invariant.c (replace_uses): New static function.
27481 (move_invariant_reg): Use it to ensure we can replace the uses.
27482
274832010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
c3fd7b4d 27484
27431d88
UB
27485 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
27486 function template.
43ba743c 27487 (picochip_override_options): Enable section anchors only above -O1.
c3fd7b4d
HS
27488 (picochip_reorg): Fixed a couple of build warnings.
27489
fcf52686
RO
274902010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27491
27492 * configure.ac (plugin -rdynamic test): Log result.
27493 * configure: Regenerate.
27494 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
27495 (RDYNAMIC_SPEC): Define.
27496 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
27497
55c4f715
RO
274982010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27499
27500 * configure.ac: Determine Sun ld version numbers.
27501 (comdat_group): Restrict GNU ld version checks to gld.
27502 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
27503 (enable_comdat): Support --enable-comdat.
27504 * configure: Regenerate.
27505 * doc/install.texi (Configuration): Document --enable-comdat.
27506
62e08523
RO
275072010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27508
ef0f4a03 27509 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
62e08523
RO
27510 * config/sol2-gld.h: ... here.
27511 * config.gcc (sparc*-*-solaris2*): Reflect this.
27512 (i[34567]86-*-solaris2*): Use it.
27513
034288ef
SE
275142010-04-09 Steve Ellcey <sje@cup.hp.com>
27515
27516 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
27517 setup_clocks_p.
27518 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
27519
d0b8780d
MLI
275202010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
27521
27522 PR 42965
27523 * diagnostic.c (diagnostic_initialize): Initialize
27524 some_warnings_are_errors.
27525 (diagnostic_finish): New.
27526 (diagnostic_action_after_output): Call it before exiting.
27527 (diagnostic_report_diagnostic): Do not print message here. Set
27528 some_warnings_are_errors.
27529 * diagnostic.h (diagnostic_context): Delete
27530 issue_warnings_are_errors_message. Add some_warnings_are_errors.
27531 (diagnostic_finish): Declare.
27532 * toplev.c (toplev_main): Call it before exit.
27533
93e9807a
JM
275342010-04-09 Jason Merrill <jason@redhat.com>
27535
cb6addf4
JM
27536 PR c++/42623
27537 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
27538 for incomplete type.
27539
93e9807a
JM
27540 PR c++/41788
27541 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
27542 based on a warning flag.
27543
74367220
RG
275442010-04-09 Richard Guenther <rguenther@suse.de>
27545
43ba743c 27546 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
74367220 27547
8351bca7
IS
275482010-04-09 Iain Sandoe <iains@gcc.gnu.org>
27549
27550 PR bootstrap/43684
ef0f4a03 27551 * varasm.c (default_assemble_visibility): Wrap vars that are
8351bca7 27552 set, but unused, by targets without GAS.
ade52657 27553 * config/rs6000/rs6000.c (paired_emit_vector_compare):
8351bca7
IS
27554 Remove set, but unused, vars.
27555 (rs6000_legitimize_tls_address): Likewise.
27556 (altivec_expand_dst_builtin): Likewise.
27557 * config/darwin.c (machopic_classify_symbol): Likewise.
27558 (machopic_indirection_name): Likewise.
ef0f4a03 27559
014753cc
UB
275602010-04-09 Uros Bizjak <ubizjak@gmail.com>
27561
27562 * config/i386/i386.md (DWI): New mode iterator.
27563 (S): New mode attribute.
27564 (shift_operand): Ditto.
27565 (shift_immediate_operand): Ditto.
27566 (ashl_input_operand): Ditto.
27567 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
27568 using SDWIM mode iterator.
27569 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
27570 pattern from *ashl{di,ti}3_1 and corresponding splitters using
27571 DWI mode iterator.
27572 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
27573 from corresponding peephole2 patterns.
27574 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
27575 and x86_64_shift_adj_1 using SWI48 mode iterator.
27576 (x86_shift<mode>_adj_2): Ditto.
27577 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
27578 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
27579 using SWI48 mode iterator.
27580 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
27581 *ashldi3_cmp_rex64 using SWI mode iterator.
27582 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
27583 *ashldi3_cconly_rex64 using SWI mode iterator.
27584 * config/i386/i386.c (ix86_split_ashl): Update for renamed
27585 x86_shift<mode>_adj_{1,2}.
27586 (ix86_split_ashr): Ditto.
27587 (ix86_split_lshr): Ditto.
27588
88dd7150
RG
275892010-04-09 Richard Guenther <rguenther@suse.de>
27590
27591 * target.h (builtin_conversion): Pass in input and output types.
27592 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
27593 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
27594 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
27595 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
27596
27597 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
27598 Handle AVX modes.
27599 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
27600
3f2060fd
RG
276012010-04-09 Richard Guenther <rguenther@suse.de>
27602
27603 PR target/43152
27604 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
27605
b690cc0f
RG
276062010-04-09 Richard Guenther <rguenther@suse.de>
27607
27608 * tree-vectorizer.h (struct _stmt_vec_info): Document
27609 that vectype is the type of the LHS.
59caab22 27610 (supportable_widening_operation, supportable_narrowing_operation):
b690cc0f
RG
27611 Get both input and output vector types as arguments.
27612 (vect_is_simple_use_1): Declare.
27613 (get_same_sized_vectype): Likewise.
27614 * tree-vect-loop.c (vect_determine_vectorization_factor):
27615 Set STMT_VINFO_VECTYPE to the vector type of the def.
27616 (vectorizable_reduction): Adjust.
27617 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
27618 Adjust. Specify the output vector type.
27619 (vect_pattern_recog_1): Adjust.
27620 * tree-vect-stmts.c (get_same_sized_vectype): New function.
27621 (vectorizable_call): Adjust.
27622 (vectorizable_conversion): Likewise.
27623 (vectorizable_operation): Likewise.
27624 (vectorizable_type_demotion): Likewise.
27625 (vectorizable_type_promotion): Likewise.
27626 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
27627 the def.
27628 (vect_is_simple_use_1): New function.
27629 (supportable_widening_operation): Get both input and output
27630 vector types.
27631 (supportable_narrowing_operation): Likewise.
27632 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
27633
3e65f251
KT
276342010-04-09 Kai Tietz <kai.tietz@onevision.com>
27635
27636 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
27637 __thiscall and _thiscall as predefined macros.
27638 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
27639 thiscall attribute handling.
27640 (ix86_comp_type_attributes): Likewise.
27641 (ix86_function_regparm): Likewise.
27642 (ix86_return_pops_args): Likewise.
27643 (init_cumulative_args): Likewise.
27644 (find_drap_reg): Likewise.
27645 (ix86_static_chain): Likewise.
27646 (x86_this_parameter): Likewise.
27647 (x86_output_mi_thunk): Likewise.
27648 (ix86_attribute_table): Add description for thiscall attribute.
014753cc 27649 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3e65f251 27650 * doc/extend.texi: Add documentation for thiscall.
27431d88 27651
dc8d2739
MLI
276522010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
27653
27654 PR c++/28584
27655 * c.opt (Wint-to-pointer-cast): Available in C++.
27656 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
27657
d47d0a8d
EB
276582010-04-08 Eric Botcazou <ebotcazou@adacore.com>
27659
27660 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
27661 * calls.c (expand_call): Pass the function type to aggregate_value_p.
27662 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
27663 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
27664 function type instead. Reorder and simplify checks.
27665
27666 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
27667
dc5ee869
JY
276682010-04-08 Jing Yu <jingyu@google.com>
27669 Zdenek Dvorak <ook@ucw.cz>
27670
27671 PR tree-optimization/42720
27672 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
014753cc
UB
27673 loop unswitch conditions here from ...
27674 (tree_unswitch_single_loop): ... here.
dc5ee869 27675
98c07c54
SP
276762010-04-08 Sebastian Pop <sebastian.pop@amd.com>
27677
27678 * tree-if-conv.c: Fix comments and simplify logic.
27679
6cbcfa9d
SP
276802010-04-08 Sebastian Pop <sebastian.pop@amd.com>
27681
27682 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
27683 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
27684 (main_tree_if_conversion): Update call to tree_if_conversion.
27685
1401cf37
MLI
276862010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
27687
27688 PR 42485
27689 * doc/invoke.texi (-b,-V): Delete.
27690 * doc/tm.texi: Do not mention -b.
27691 * gcc.c (display_help): Delete -b and -V.
27692 (process_command): Delete -b and -V.
27693 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6cbcfa9d 27694
40ac4f73 276952010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
27431d88 27696 Wolfgang Gellerich <gellerich@de.ibm.com>
40ac4f73 27697
014753cc
UB
27698 Implement target hook for loop unrolling
27699 * target.h (loop_unroll_adjust): Add a new target hook function.
27700 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
27701 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
27702 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
27703 (s390_loop_unroll_adjust): Implement the new target hook for s390.
27704 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
27705 target hook.
27706 (decide_unroll_stupid): Likewise.
40ac4f73 27707
07c60ef7
RO
277082010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27709
27710 PR target/43643
27711 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
27712
dd178909
RO
277132010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27714
27715 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
27716 (Specific, *-*-solaris2*): Likewise.
27717 Don't prefer Sun as over GNU as.
27718
cc6ae6a1
WG
277192010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
27720
c46a5e28
EB
27721 * config/s390/s390.c (override_options): Adjust the z10 defaults
27722 for max-unroll-times, max-completely-peeled-insns
27723 and max-completely-peel-times.
cc6ae6a1 27724
adfa3cd3
AK
277252010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27726
27727 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
27728 instructions for z10.
27729 (s390_expand_setmem): Likewise.
27730 (s390_expand_cmpmem): Likewise.
27731
84ae6d7b
RG
277322010-04-08 Richard Guenther <rguenther@suse.de>
27733
27734 PR tree-optimization/43679
27735 * tree-ssa-pre.c (eliminate): Only propagate copies.
27736
5a905a2b
JJ
277372010-04-08 Jakub Jelinek <jakub@redhat.com>
27738
27739 PR bootstrap/43681
27740 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
27741 set but not used variable warning.
27742
7548c1be
WG
277432010-04-08 Wei Guozhi <carrot@google.com>
27744
27745 PR target/41653
27746 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
27747 (arm_size_rtx_costs): Call the new function when optimized for size.
27748
aa847cc8
JJ
277492010-04-08 Jakub Jelinek <jakub@redhat.com>
27750
27751 PR debug/43670
27752 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
27753 op0 is not a MEM, just return NULL instead of assertion
27754 failure.
27755 (discover_nonconstant_array_refs): Don't walk debug stmts.
27756
1dcc82c2
DK
277572010-04-08 Doug Kwan <dougkwan@google.com>
27758
27759 * configure.ac: Recognize gold and do not use its version number
27760 to test ld features.
27761 * configure: Regenerate.
27762
b0aef8a8
MK
277632010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
27764
27765 PR middle-end/40815
27766 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
27767 (negate_value): Move code to push elements to broken_up_substracts ...
27768 (eliminate_plus_minus_pair): ... here. Push operands that have no
27769 negative pair to plus_negates.
27770 (repropagate_negates, init_reassoc, fini_reassoc): Update.
27771
7a50adb7
RW
277722010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27773
2d413304
RW
27774 * doc/install.texi (Configuration): Move description of
27775 --enable-lto, --with-libelf*, --enable-gold from Java section to
27776 general section.
27777
7a50adb7
RW
27778 * doc/generic.texi (Working with declarations)
27779 (Function Properties, C and C++ Trees): Fix typos.
27780 * doc/sourcebuild.texi (Top Level): Likewise.
27781
60d3aec4
JJ
277822010-04-07 Jakub Jelinek <jakub@redhat.com>
27783
ebfbbdc5
JJ
27784 PR c/18624
27785 * tree.h (DECL_READ_P): Define.
27786 (struct tree_decl_common): Add decl_read_flag.
27787 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
27788 a set but not used warning.
27789 (merge_decls): Merge DECL_READ_P flag.
27790 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
27791 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
27792 * c-common.c (handle_used_attribute, handle_unused_attribute):
27793 Likewise.
27794 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
27795 New prototypes.
27796 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
27797 New functions.
27798 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
27799 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
27800 c_parser_binary_expression, c_parser_cast_expression,
27801 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
27802 Call default_function_array_read_conversion instead of
27803 default_function_array_conversion where needed.
27804 (c_parser_unary_expression, c_parser_conditional_expression,
27805 c_parser_postfix_expression_after_primary, c_parser_initelt):
27806 Likewise. Call mark_exp_read where needed.
27807 (c_parser_statement_after_labels, c_parser_asm_operands,
27808 c_parser_typeof_specifier, c_parser_sizeof_expression,
27809 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
27810 where needed.
27811 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
27812 New.
27813 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
27814 (warn_unused_but_set_parameter): Default to warn_unused
27815 && extra_warnings.
27816 * doc/invoke.texi: Document -Wunused-but-set-variable and
27817 -Wunused-but-set-parameter.
27818
60d3aec4
JJ
27819 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
27820 used count variable.
27821 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
27822 when operandN variables aren't used in the body of the expander
27823 or splitter.
27824 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
27825 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
27826 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
27827 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
27828 FOR_EACH_IMM_USE_ON_STMT): Likewise.
27829 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
27830 * tree.c (PROCESS_ARG): Likewise.
27831
87cf0651
SB
278322010-04-07 Simon Baldwin <simonb@google.com>
27833
27834 * diagnostic.h (diagnostic_override_option_index): New macro to
27835 set a diagnostic's option_index.
27836 * c-tree.h (c_cpp_error): Add warning reason argument.
27837 * opts.c (_warning_as_error_callback): New.
27838 (register_warning_as_error_callback): Store callback for
27839 warnings enabled via enable_warning_as_error.
27840 (enable_warning_as_error): Call callback, minor code tidy.
27841 * opts.h (register_warning_as_error_callback): Declare.
27842 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
27843 response to -Werror=.
27844 (c_common_init_options): Register warning_as_error_callback in opts.c.
27845 * common.opt: Add -Wno-cpp option.
27846 * c-common.c (struct reason_option_codes_t): Map cpp warning
27847 reason codes to gcc option indexes.
27848 * (c_option_controlling_cpp_error): New function, lookup the gcc
27849 option index for a cpp warning reason code.
27850 * (c_cpp_error): Add warning reason argument, call
27851 c_option_controlling_cpp_error for diagnostic_override_option_index.
27852 * doc/invoke.texi: Document -Wno-cpp.
27853
2ea9dc64
RG
278542010-04-07 Richard Guenther <rguenther@suse.de>
27855
27856 * ipa-reference.c (mark_load): Use get_base_address.
27857 (mark_store): Likewise.
27858
27859 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
27860 inserting GIMPLE_NOPs into the IL.
27861 * tree-ssa-structalias.c (get_constraint_for_component_ref):
27862 Explicitly strip handled components and indirect references.
59caab22 27863
2ea9dc64
RG
27864 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
27865 folding address expressions.
27866 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
27867 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
27868 operand_equal_p to compare decls.
27869 (ptr_deref_may_alias_decl_p): Likewise.
27870 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
27871 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
27872 Handle reversed comparison ops.
27873 * tree-sra.c (asm_visit_addr): Use get_base_address.
014753cc 27874 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2ea9dc64
RG
27875 * ipa-reference.c (mark_address): Use get_base_address.
27876
95d938ee
RG
278772010-04-07 Richard Guenther <rguenther@suse.de>
27878
27879 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
27880 Propagate constants everywhere.
27881
1a299ae4
JJ
278822010-04-07 Jakub Jelinek <jakub@redhat.com>
27883
27884 PR debug/43516
27885 * tree.c (MAX_INT_CACHED_PREC): Define.
27886 (nonstandard_integer_type_cache): New array.
27887 (build_nonstandard_integer_type): Cache results for precision
27888 <= MAX_INT_CACHED_PREC.
27889
0d3c82d6
RG
278902010-04-07 Richard Guenther <rguenther@suse.de>
27891
27892 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
27893 -fargument-noalias-global, -fargument-noalias-anything): Remove.
27894 * common.opt: Likewise.
014753cc
UB
27895 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
27896 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
0d3c82d6
RG
27897 (nonoverlapping_memrefs_p): Likewise.
27898 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
27899 * opts.c (common_handle_option): Handle OPT_fargument_alias,
27900 OPT_fargument_noalias, OPT_fargument_noalias_anything and
27901 OPT_fargument_noalias_global for backward compatibility.
27902
12bd5a1e
RG
279032010-04-07 Richard Guenther <rguenther@suse.de>
27904
27905 PR tree-optimization/43270
014753cc 27906 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
12bd5a1e
RG
27907 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
27908 * tree-ssa-pre.c (phi_translate_1): Adjust.
27909 (fully_constant_expression): Split out vn_reference handling to ...
27910 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
27911 Fold reads from constant strings.
27912 (vn_reference_lookup): Handle fully constant references.
27913 (vn_reference_lookup_pieces): Likewise.
27914 * Makefile.in (expmed.o-warn): Add -Wno-error.
27915
a7752396
MJ
279162010-04-07 Martin Jambor <mjambor@suse.cz>
27917
27918 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
27919
6392bea6
IS
279202010-04-07 Iain Sandoe <iains@gcc.gnu.org>
27921
27922 PR driver/41594
27923 * gcc.c: Add -static-libstdc++ to list of recognized options.
27924
9af27220
RO
279252010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27926
014753cc 27927 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9af27220 27928
83a416b0
RG
279292010-04-07 Richard Guenther <rguenther@suse.de>
27930
27931 PR middle-end/42617
014753cc
UB
27932 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
27933 bases build simple mem attributes to retain points-to information.
83a416b0 27934
366f945f
RG
279352010-04-07 Richard Guenther <rguenther@suse.de>
27936
27937 PR middle-end/42617
27938 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
27939 preserve points-to related information.
27940
56c47f22
RG
279412010-04-07 Richard Guenther <rguenther@suse.de>
27942
27943 PR middle-end/42617
27944 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
27945 discard plain indirect references.
014753cc 27946 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
56c47f22
RG
27947 * tree.c (tree_nop_conversion): Likewise.
27948
a42f1217
DS
279492010-04-07 Dodji Seketeli <dodji@redhat.com>
27950
27951 PR debug/43628
27952 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
27953
b97b2634
KT
279542010-04-06 Kai Tietz <kai.tietz@onevision.com>
27955
27956 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
27957 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
27958
62ef2431
SP
279592010-04-07 Sebastian Pop <sebastian.pop@amd.com>
27960
27961 * tree-if-conv.c: Fix indentation and comments.
27962
baaa8e96
SP
279632010-04-07 Sebastian Pop <sebastian.pop@amd.com>
27964
27965 * tree-if-conv.c: Sort static functions in topological order.
27966
b6779d81
SP
279672010-04-07 Sebastian Pop <sebastian.pop@amd.com>
27968
27969 * tree-if-conv.c: Fix indentation and comments.
27970
9310a3e2
SP
279712010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27972
27973 PR middle-end/43519
27974 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
014753cc
UB
27975 lang_hooks.types.type_for_size instead of
27976 build_nonstandard_integer_type.
9310a3e2
SP
27977 When converting an unsigned type to signed, double its precision.
27978 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
27979 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
014753cc
UB
27980 (graphite_create_new_loop_guard): When ub + 1 wraps around,
27981 use lb <= ub.
9310a3e2
SP
27982
279832010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27984
27985 PR middle-end/43519
27986 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
27987 POINTER_PLUS_EXPR for pointer types.
27988
279892010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27990
27991 PR middle-end/43519
27992 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
27993 * graphite-clast-to-gimple.c: Include langhooks.h.
27994 (max_signed_precision_type): New.
27995 (max_precision_type): Takes two types as arguments.
27996 (precision_for_value): New.
27997 (precision_for_interval): New.
27998 (gcc_type_for_interval): New.
27999 (gcc_type_for_value): New.
28000 (gcc_type_for_clast_term): New.
28001 (gcc_type_for_clast_red): New.
28002 (gcc_type_for_clast_bin): New.
28003 (gcc_type_for_clast_expr): Split up into several functions.
28004 (gcc_type_for_clast_eq): Rewritten.
28005 (compute_bounds_for_level): New.
28006 (compute_type_for_level_1): New.
28007 (compute_type_for_level): New.
28008 (gcc_type_for_cloog_iv): Removed.
28009 (gcc_type_for_iv_of_clast_loop): Rewritten.
28010 (graphite_create_new_loop): Compute the lower and upper bound types
28011 with gcc_type_for_clast_expr.
28012 (graphite_create_new_loop_guard): Same.
28013 (find_cloog_iv_in_expr): Removed.
28014 (compute_cloog_iv_types_1): Removed.
28015 (compute_cloog_iv_types): Removed.
28016 (gloog): Do not call compute_cloog_iv_types.
28017 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
28018 GBB_CLOOG_IV_TYPES.
28019 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
28020 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
28021 (GBB_CLOOG_IV_TYPES): Removed.
28022
280232010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28024
28025 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
28026 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
28027 (detect_commutative_reduction): Same.
28028
a3b9e73c
SP
280292010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28030
28031 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
28032 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
28033 argument.
28034 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
28035 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
28036 (rewrite_commutative_reductions_out_of_ssa): Same.
28037 * passes.c (execute_function_todo): Call verify_ssa for every pass
28038 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
28039 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
28040 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
28041 with an extra argument.
28042 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
28043 verify_ssa only when the extra argument is true.
28044 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
28045 with an extra argument.
28046 (tree_transform_and_unroll_loop): Same.
28047
98b6e9dd
SP
280482010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28049
28050 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
28051 for all the passes of the LNO having LOOP_CLOSED_SSA.
28052 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
28053 * tree-loop-distribution.c (pass_loop_distribution): Same.
28054 * tree-pass.h (TODO_verify_loops): Removed.
28055 * tree-ssa-loop.c (pass_tree_loop_init): Same.
28056 (pass_lim): Same.
28057 (pass_tree_unswitch): Same.
28058 (pass_predcom): Same.
28059 (pass_vectorize): Same.
28060 (pass_linear_transform): Same.
28061 (pass_graphite_transforms): Same.
28062 (pass_iv_canon): Same.
28063 (pass_complete_unroll): Same.
28064 (pass_complete_unrolli): Same.
28065 (pass_parallelize_loops): Same.
28066 (pass_loop_prefetch): Same.
28067 (pass_iv_optimize): Same.
28068
c86a3947
CF
280692010-04-06 Changpeng Fang <changpeng.fang@amd.com>
28070
28071 PR middle-end/32824
28072 * passes.c (init_optimization_passes): Move pass_lim before
28073 pass_copy_prop and pass_dce_loop.
28074
37794981
JJ
280752010-04-06 Jakub Jelinek <jakub@redhat.com>
28076
28077 PR target/43667
28078 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
28079 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
28080 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
28081 MULTI_* defines for 4 argument vpermil2p* builtins.
28082
d079b87f
UB
280832010-04-06 Uros Bizjak <ubizjak@gmail.com>
28084
28085 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
28086 * config/i386/i386.c (x86_maybe_negate_const_int): New.
28087 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
28088 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
28089 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
28090 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
28091 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
28092 Use x86_maybe_negate_const_int to output insn mnemonic.
28093 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
28094 check from instruction predicate. Update comments.
28095 * config/i386/sync.md (sync_add<mode>): Use
28096 x86_maybe_negate_const_int to output insn mnemonic.
b1a0b3b4 28097
d079b87f
UB
280982010-04-06 Jan Hubicka <jh@suse.cz>
28099
28100 PR tree-optimization/42906
28101 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
28102 IGNORE_SELF argument. Set visited_control_parents for fully
28103 processed BBs.
b1a0b3b4
JH
28104 (find_obviously_necessary_stmts): Update call of
28105 mark_control_dependent_edges_necessary.
d079b87f 28106 (propagate_necessity): Likewise. Handle PHI edges more curefully.
b1a0b3b4 28107
6593d123
UB
281082010-04-06 Uros Bizjak <ubizjak@gmail.com>
28109
28110 * config/i386/i386.md: Remove comment about 'e' and 'E'
28111 operand modifier.
28112
56186ac2
RG
281132010-04-06 Richard Guenther <rguenther@suse.de>
28114
28115 PR tree-optimization/43627
28116 * tree-vrp.c (extract_range_from_unary_expr): Widenings
28117 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
28118 not varying.
28119
7d11d368
JJ
281202010-04-06 Jakub Jelinek <jakub@redhat.com>
28121
d3bccded
JJ
28122 * BASE-VER: Change to 4.6.0.
28123
7d11d368
JJ
28124 PR target/43638
28125 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
28126 handling.
28127
eb12d0ae
RG
281282010-04-06 Richard Guenther <rguenther@suse.de>
28129
28130 PR middle-end/43661
28131 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
28132
53b79425
RW
281332010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28134
28135 * doc/invoke.texi (Optimize Options): Document that LTO
28136 won't remove object access purely due to incompatible
28137 declarations.
28138
7e0ec110
MK
281392010-04-04 Matthias Klose <doko@ubuntu.com>
28140
28141 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
28142 Initialize variable.
28143
2b22e382
RG
281442010-04-03 Richard Guenther <rguenther@suse.de>
28145
28146 PR middle-end/42509
28147 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
28148 require a non-NULL MEM_OFFSET.
28149
c75c517d
SB
281502010-04-02 Steven Bosscher <steven@gcc.gnu.org>
28151
d079b87f 28152 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
c75c517d
SB
28153 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
28154 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
28155 config/alpha/predicates.md, config/arm/arm.md,
28156 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
28157 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
28158 config/darwin9.h, config/darwin.c, config/darwin.h,
28159 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
28160 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
28161 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
28162 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
28163 config/mips/mips.md, config/mn10300/mn10300.c,
28164 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
28165 config/rs6000/aix.h, config/rs6000/dfp.md,
28166 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
28167 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
28168 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
28169 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
28170 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
28171 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
28172 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
28173 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
28174 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
28175 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
28176 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
28177 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
28178 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
28179 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
28180 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
28181 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
28182 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
28183 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
28184 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
28185 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
28186 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
28187 opt-functions.awk, opth-gen.awk, params.def, passes.c,
28188 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
28189 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
28190 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
28191 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
28192 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
28193 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
28194 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
28195 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
28196 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
28197 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
28198 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
28199 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
28200 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
28201 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
28202
4d9e8446
RW
282032010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28204
28205 PR other/43620
28206 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
28207 * aclocal.m4: Regenerate.
28208
1cdaa211
RG
282092010-04-02 Richard Guenther <rguenther@suse.de>
28210
28211 PR tree-optimization/43629
28212 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
28213 if we have seen a constant value.
28214
d33da5cd
JM
282152010-04-02 Joseph Myers <joseph@codesourcery.com>
28216
014753cc 28217 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
d33da5cd 28218
2e5505a4
RE
282192010-04-02 Richard Earnshaw <rearnsha@arm.com>
28220
28221 PR target/43469
d079b87f 28222 * arm.c (legitimize_tls_address): Adjust call to
2e5505a4
RE
28223 gen_tls_load_dot_plus_four.
28224 (arm_note_pic_base): New function.
28225 (arm_cannot_copy_insn_p): Use it.
28226 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
28227 constraint.
28228
bdfbd9df
RW
282292010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28230
28231 PR bootstrap/43531
28232
28233 Revert:
28234 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28235
28236 * Makefile.in ($(out_object_file)): Depend on
28237 gt-$(basename $(notdir $(out_file))).h.
28238
f4a4b582 282392010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
2bc40daa 28240
014753cc 28241 * config.gcc (lm32-*-rtems*): Add t-lm32.
2bc40daa 28242
f4a4b582 282432010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
2bc40daa 28244
014753cc
UB
28245 * config.gcc: Add lm32-*-rtems*.
28246 * config/lm32/rtems.h: New file.
2bc40daa 28247
abfb38d7
DK
282482010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
28249
28250 PR target/42609
28251 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
28252
2f43d500
JJ
282532010-04-01 Jakub Jelinek <jakub@redhat.com>
28254
28255 * dwarf2out.c (output_compilation_unit_header): For
28256 -gdwarf-4 use version 4 instead of version 3.
28257 (output_line_info): For version 4 and above emit additional
28258 maximum ops per insn header field.
28259 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
28260
28261 * dwarf2out.c (is_c_family, is_java): Remove.
28262 (lower_bound_default): New function.
28263 (add_bound_info, gen_descr_array_type_die): Use it.
28264
777351a5
DS
282652010-04-01 Dodji Seketeli <dodji@redhat.com>
28266
28267 PR debug/43325
28268 * dwarf2out.c (gen_variable_die): Allow debug info for variable
28269 re-declaration when it happens in a function.
28270
6544865a
AH
282712010-04-01 Aldy Hernandez <aldyh@redhat.com>
28272
28273 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
28274 (cgraph_remove_function_insertion_hook): Same.
28275 (cgraph_call_function_insertion_hooks): Same.
28276
5e9fb3db
RG
282772010-04-01 Richard Guenther <rguenther@suse.de>
28278
28279 PR middle-end/43614
28280 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
28281 and TREE_THIS_VOLATILE.
28282 (copy_ref_info): Likewise.
28283 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
28284 * tree.c (build6_stat): Ignore side-effects of all but arg5
28285 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
28286 TARGET_MEM_REF.
28287
eb258d7f
RG
282882010-04-01 Richard Guenther <rguenther@suse.de>
28289
28290 PR tree-optimization/43607
28291 * ipa-type-escape.c (check_call): Do not access non-existing
28292 arguments.
28293
aa8bfcad
RG
282942010-04-01 Richard Guenther <rguenther@suse.de>
28295
28296 PR middle-end/43602
28297 Revert
f4a4b582
EB
28298 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
28299 Jack Howarth <howarth@bromo.med.uc.edu>
aa8bfcad
RG
28300
28301 * tree-profile.c (tree_init_ic_make_global_vars): Make static
28302 variables TLS.
28303
8c5cfa89
RO
283042010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28305
28306 * doc/install.texi (Prerequisites): Document libelf usability on
28307 IRIX 5/6 and Solaris 2.
28308 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
28309 Update GNU as, GNU ld requirements.
28310 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
28311 Document Sun Studio compiler download.
28312 Update and simplify as, ld recommendations.
28313 (Specific, *-*-solaris2.7): Note obsoletion, removal.
28314
ddcc3550
RO
283152010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28316
9af27220 28317 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
ddcc3550
RO
28318 with_tune_32 to pentium4.
28319
93234e58
UB
283202010-04-01 Uros Bizjak <ubizjak@gmail.com>
28321
28322 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
28323
ef369ad8
RO
283242010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28325
28326 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
28327 obsoletion, removal.
28328 Update IDO URL.
28329 Document GNU as requirement.
28330 Update configure requirements.
014753cc 28331 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
ef369ad8
RO
28332 Recomment IRIX 6.5.18+.
28333 Document IDF/IDL requirement.
28334 Document GNU as requirement.
28335 Document GNU ld bootstrap failure.
28336 Remove freeware.sgi.com reference.
28337
92d80770
RO
283382010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28339
28340 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
28341 UNIX V4.0, V5.0 obsoletion, removal.
28342 Remove --with-gc=simple reference.
28343 Update VM requirements during bootstrap.
28344 Remove -oldas bootstrap description.
28345 Update binutils reference.
28346 Remove comparison failure note.
28347
25d635d9
SP
283482010-03-31 Richard Guenther <rguenther@suse.de>
28349 Zdenek Dvorak <ook@ucw.cz>
28350 Sebastian Pop <sebastian.pop@amd.com>
28351
28352 PR middle-end/43464
28353 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
28354 with multiple arguments.
28355 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
28356
283572010-03-31 Sebastian Pop <sebastian.pop@amd.com>
28358
28359 * graphite-dependences.c (print_pddr): Call print_pdr with an
28360 extra argument.
28361 * graphite-poly.c (debug_pdr): Add an extra argument for the
28362 verbosity level.
28363 (print_pdr): Same.
28364 (print_pbb_domain): Same.
28365 (print_pbb): Same.
28366 (print_scop_context): Same.
28367 (print_scop): Same.
28368 (print_cloog): Same.
28369 (debug_pbb_domain): Same.
28370 (debug_pbb): Same.
28371 (print_pdrs): Same.
28372 (debug_pdrs): Same.
28373 (debug_scop_context): Same.
28374 (debug_scop): Same.
28375 (debug_cloog): Same.
28376 (print_scop_params): Same.
28377 (debug_scop_params): Same.
28378 (print_iteration_domain): Same.
28379 (print_iteration_domains): Same.
28380 (debug_iteration_domain): Same.
28381 (debug_iteration_domains): Same.
28382 (print_scattering_function): Same.
28383 (print_scattering_functions): Same.
28384 (debug_scattering_function): Same.
28385 (debug_scattering_functions): Same.
28386 * graphite-poly.h (debug_pdr): Update declaration.
28387 (print_pdr): Same.
28388 (print_pbb_domain): Same.
28389 (print_pbb): Same.
28390 (print_scop_context): Same.
28391 (print_scop): Same.
28392 (print_cloog): Same.
28393 (debug_pbb_domain): Same.
28394 (debug_pbb): Same.
28395 (print_pdrs): Same.
28396 (debug_pdrs): Same.
28397 (debug_scop_context): Same.
28398 (debug_scop): Same.
28399 (debug_cloog): Same.
28400 (print_scop_params): Same.
28401 (debug_scop_params): Same.
28402 (print_iteration_domain): Same.
28403 (print_iteration_domains): Same.
28404 (debug_iteration_domain): Same.
28405 (debug_iteration_domains): Same.
28406 (print_scattering_function): Same.
28407 (print_scattering_functions): Same.
28408 (debug_scattering_function): Same.
28409 (debug_scattering_functions): Same.
28410
284112010-03-31 Sebastian Pop <sebastian.pop@amd.com>
28412
28413 * graphite-poly.c (print_scattering_function_1): New.
28414 (print_scattering_function): Call it.
28415 (print_scop_params): Remove spaces at the end of lines.
28416 (print_cloog): New.
28417 (debug_cloog): New.
28418 * graphite-poly.h (print_cloog): Declared.
28419 (debug_cloog): Declared.
28420
284212010-03-31 Sebastian Pop <sebastian.pop@amd.com>
28422
28423 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
28424 in loop->header.
28425 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
28426 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
28427 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
28428 to switch between adding the IV bump in loop->latch or in loop->header.
28429
284302010-03-31 Sebastian Pop <sebastian.pop@amd.com>
28431
28432 * graphite-poly.c (print_scattering_function): Pretty print following
28433 the scoplib format.
28434 (print_pdr): Same.
28435 (print_pbb_domain): Same.
28436 (dump_gbb_cases): Same.
28437 (dump_gbb_conditions): Same.
28438 (print_pdrs): Same.
28439 (print_pbb): Same.
28440 (print_scop_params): Same.
28441 (print_scop_context): Same.
28442 (print_scop): Same.
28443 (print_pbb_body): New.
28444 (lst_indent_to): New.
28445 (print_lst): Start new lines with a #.
28446 * graphite-poly.h (pbb_bb): New.
28447 (pbb_index): Use pbb_bb.
28448 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
28449 disjuncts.
28450 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
28451
2080bd29
JJ
284522010-03-31 Jakub Jelinek <jakub@redhat.com>
28453
290d8971
JJ
28454 * dwarf2out.c (size_of_die): For -gdwarf-4 use
28455 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
28456 and 0 instead of 1 for dw_val_class_flag.
28457 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
28458 dw_val_class_range_list, dw_val_class_loc_list,
28459 dw_val_class_lineptr and dw_val_class_macptr, use
28460 DW_FORM_flag_present for dw_val_class_flag and
28461 DW_FORM_exprloc for dw_val_class_loc.
28462 (output_die): For -gdwarf-4 print dw_val_class_loc
28463 size as uleb128 instead of 1 or 2 bytes and don't print
28464 anything for dw_val_class_flag.
28465
109f4af3
JJ
28466 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
28467 instead of cselib_lookup following by tweaking locs->setting_insn.
28468
2080bd29
JJ
28469 PR bootstrap/43596
28470 * cselib.c (cselib_process_insn): Clear cselib_current_insn
28471 even before returning from label, setjmp call or volatile asm
28472 handling.
28473
33283dad
RG
284742010-03-31 Richard Guenther <rguenther@suse.de>
28475
28476 PR middle-end/43600
28477 * cgraphunit.c (cgraph_output_in_order): Do not allocate
28478 temporary data on stack.
28479
a0c21029
RO
284802010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28481
28482 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
28483 (PUSHSECTION_ASM_OP): Remove.
28484 (POPSECTION_ASM_OP): Remove.
28485 (PUSHSECTION_FORMAT): Remove.
28486 * config/sol2.h (PUSHSECTION_FORMAT): Define.
28487 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
28488 * config/sol2.c (solaris_output_init_fini): Use it.
28489
a3f410a2
JZ
284902010-03-31 Jie Zhang <jie@codesourcery.com>
28491
28492 PR 43574
28493 * opt-functions.awk (var_type_struct): Use signed char type
28494 for simple variables.
28495
f0c01ffd
RO
284962010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28497
28498 * config/sol2.c: Include output.h.
28499 (solaris_assemble_visibility): New function.
28500 * config/t-sol2 (sol2.o): Add output.h dependency.
28501 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
28502 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
28503 Redefine.
28504
132b4e82
JJ
285052010-03-31 Jakub Jelinek <jakub@redhat.com>
28506
d8d55ac0
JJ
28507 PR target/43580
28508 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
28509 V2SImode or XFmode on PRE_DEC.
28510
132b4e82
JJ
28511 PR debug/43557
28512 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
28513 BLKmode.
28514
dc12b70e
JZ
285152010-03-31 Jie Zhang <jie@codesourcery.com>
28516
28517 PR 43562
28518 * reload.h (caller_save_initialized_p): Declare.
28519 * toplev.c (backend_init_target): Don't call
93234e58 28520 init_caller_save but set caller_save_initialized_p to false.
dc12b70e
JZ
28521 * caller-save.c (caller_save_initialized_p): Define.
28522 (init_caller_save): Check caller_save_initialized_p.
28523 * ira.c (ira): Call init_caller_save if flag_caller_saves.
28524
4a2f22ff
RO
285252010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28526
28527 PR target/39048
28528 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
28529 and soft-fp/t-softfp to tmake_file.
28530 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
28531 (LIBGCC2_TF_CEXT): Define.
28532 (TF_SIZE): Define.
28533
5847e8da
AO
285342010-03-30 Alexandre Oliva <aoliva@redhat.com>
28535
28536 PR debug/42977
28537 * cselib.c (n_useless_values): Document handling of debug locs.
28538 (n_useless_debug_values, n_debug_values): New variables.
28539 (new_elt_loc_list): Don't add to debug values, keep count.
28540 (promote_debug_loc): New.
28541 (cselib_reset_table): Zero new variables.
28542 (entry_and_rtx_equal_p): Promote debug locs.
28543 (discard_useless_locs): Increment n_useless_debug_values for
28544 debug values.
28545 (remove_useless_values): Adjust n_useless_values and n_debug_values
28546 with n_useless_debug_values.
28547 (add_mem_for_addr): Promote debug locs.
28548 (cselib_lookup_mem): Likewise.
28549 (cselib_lookup_addr): Renamed to...
93234e58 28550 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
5847e8da
AO
28551 (cselib_log_lookup): ... this. Turn into...
28552 (cselib_lookup_addr): ... new wrapper.
28553 (cselib_lookup_from_insn): New.
28554 (cselib_invalidate_regno): Increment n_useless_debug_values for
28555 debug values.
28556 (cselib_invalidate_mem): Likewise.
28557 (cselib_process_insn): Take n_deleted and n_debug_values into
28558 account to guard remove_useless_value call.
28559 (cselib_finish): Zero n_useless_debug_values.
28560 * cselib.h (cselib_lookup_from_insn): Declare.
28561 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
28562 (sched_analyze_2): Likewise.
28563
03a5f060
JJ
285642010-03-30 Jakub Jelinek <jakub@redhat.com>
28565
e9e00885
JJ
28566 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
28567 functions.
28568 (adjust_mems): Replace narrowing SUBREG of expression containing
28569 just PLUS, MINUS, MULT and ASHIFT of registers and constants
28570 with operations in the narrower mode.
28571
03a5f060 28572 PR debug/43593
93234e58
UB
28573 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
28574 regs_invalidated_by_call instead all call_used_reg_set registers.
03a5f060 28575
8533c9d8
SP
285762010-03-30 Sebastian Pop <sebastian.pop@amd.com>
28577
28578 PR middle-end/43430
28579 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
28580 pointer comparisons with types_compatible_p.
28581 * tree-vect-stmts.c (vectorizable_call): Same.
28582 (vectorizable_condition): Same.
28583
a3e7e012
AK
285842010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28585
28586 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
28587 stack check if the mask would be zero.
28588
f4a4b582
EB
285892010-03-30 Seongbae Park <seongbae.park@gmail.com>
28590 Jack Howarth <howarth@bromo.med.uc.edu>
40ae6799
SP
28591
28592 * tree-profile.c (tree_init_ic_make_global_vars): Make static
28593 variables TLS.
28594
2bcba94b
JM
285952010-03-30 Joseph Myers <joseph@codesourcery.com>
28596
28597 PR other/25232
28598 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
28599 and __unordtf2.
28600 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
28601 Include ___unordxf2 and ___unordtf2.
28602 * config/i386/libgcc-glibc.ver: Do not define inheritance from
28603 GCC_4.4.0 here.
28604
15baf7f8
TG
286052010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
28606
28607 * config/lm32/t-lm32: New file.
28608 * config.gcc: Use the above file when targetting lm32.
28609
fba48836
DS
286102010-03-28 Duncan Sands <baldrick@free.fr>
28611
93234e58 28612 * Makefile.in (PLUGIN_HEADERS): Add except.h.
fba48836 28613
49a71bc8
SP
286142010-03-29 Sebastian Pop <sebastian.pop@amd.com>
28615
28616 PR middle-end/43431
28617 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
28618 Improve vectorization cost model diagnostic.
28619
22a8be9e
SP
286202010-03-29 Sebastian Pop <sebastian.pop@amd.com>
28621
28622 PR middle-end/43436
28623 * tree-vect-data-refs.c (vect_analyze_data_refs): When
28624 compute_data_dependences_for_loop returns false, early exit
28625 and output an extra diagnostic for the failed data reference
28626 analysis.
28627
58adb739
RG
286282010-03-29 Richard Guenther <rguenther@suse.de>
28629
28630 PR tree-optimization/43560
93234e58
UB
28631 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
28632 (can_sm_ref_p): Treat stores to readonly locations as trapping.
58adb739 28633
3b34d92c
JZ
286342010-03-29 Jie Zhang <jie@codesourcery.com>
28635
28636 PR 43564
28637 * toplev.c (process_options): Set optimization_default_node
28638 and optimization_current_node.
28639 * opts.c (decode_options): Don't set optimization_default_node
28640 and optimization_current_node.
28641
090f6087
RC
286422010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
28643
28644 * config/rtems.h: Abandon -qrtems_debug.
28645
88cc1e04
JH
286462010-03-28 Jan Hubicka <jh@suse.cz>
28647
28648 PR tree-optimization/43505
28649 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
28650 map should not be copied.
28651
b932b8b1
JDA
286522010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
28653
28654 PR middle-end/41674
28655 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
28656 cdtors, set DECL_PRESERVE_P.
28657 * ipa.c (cgraph_externally_visible_p): Return true if declaration
28658 should be preseved.
28659
fb6807b8
UB
286602010-03-27 Uros Bizjak <ubizjak@gmail.com>
28661
28662 PR tree-optimization/43528
28663 * stor-layout.c (place_field): Check that constant fits into
28664 unsigned HWI when skipping calculation of MS bitfield layout.
28665
a9deb256
JH
286662010-03-27 Jan Hubicka <jh@suse.cz>
28667
28668 PR middle-end/43391
28669 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
28670 notice_global_symbol work.
28671
5a9c8a1b
JJ
286722010-03-27 Jakub Jelinek <jakub@redhat.com>
28673
28674 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
28675 instead of dwarf2out_decl.
28676 (struct var_loc_node): Remove section_label field.
28677 (dwarf2out_function_decl): New function.
28678 (dwarf2out_var_location): Don't set section_label field.
28679 (dwarf2out_begin_function): Don't empty decl_loc_table here.
28680
62f7fd21
MM
286812010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
28682
28683 PR tree-optimization/43544
28684 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
28685 First argument for builtin vectorized function hook is now a
28686 tree to be able to distinguish between machine specific and
28687 standard builtins.
28688 * targhooks.c (default_builtin_vectorized_function): Ditto.
28689 * targhooks.h (default_builtin_vectorized_function): Ditto.
28690 * target.h (struct gcc_target): Ditto.
28691 * tree-vect-stmts.c (vectorizable_function): Ditto.
28692 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
28693 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
28694 Ditto.
28695
10e76c1a
JM
286962010-03-26 Joseph Myers <joseph@codesourcery.com>
28697
28698 PR c/43381
28699 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
28700 nested binding iff it is a FUNCTION_DECL.
28701 (store_parm_decls_newstyle): Pass nested=true to bind for
28702 FUNCTION_DECLs amongst parameters.
28703
89245ef2
JJ
287042010-03-26 Jakub Jelinek <jakub@redhat.com>
28705
2155f963
JJ
28706 * var-tracking.c (vt_expand_loc_callback): Don't run
28707 cselib_expand_value_rtx_cb in dummy mode if
28708 cselib_dummy_expand_value_rtx_cb returned false.
28709
e80691a0
JJ
28710 * var-tracking.c (emit_note_insn_var_location): For one part
28711 notes with offset 0, don't add EXPR_LIST around the location.
28712 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
28713 add_location_or_const_value_attribute): Adjust for that change.
28714
89245ef2
JJ
28715 PR debug/43540
28716 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
28717 into first operand and location into second.
28718 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
28719 dw_cfi_oprnd_loc for DW_CFA_expression.
28720 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
28721 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
28722 assume first argument is regnum and second argument is location.
28723
c5e43cc4
UB
287242010-03-26 Uros Bizjak <ubizjak@gmail.com>
28725
28726 PR target/42113
28727 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
28728 of scratch register to DImode. Split to DImode comparison operator.
28729 Use SImode subreg of scratch register in the multiplication.
28730 (*cmp_sadd_sidi): Ditto.
28731 (*cmp_ssub_si): Ditto.
28732 (*cmp_ssub_sidi): Ditto.
28733
fb04bb84
UB
287342010-03-26 Uros Bizjak <ubizjak@gmail.com>
28735
28736 PR target/43524
28737 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
28738 Remove invalid assert and wrong comment.
28739
6ca5d1f6
JJ
287402010-03-26 Jakub Jelinek <jakub@redhat.com>
28741
28742 PR debug/43516
28743 * flags.h (final_insns_dump_p): New extern.
28744 * final.c (final_insns_dump_p): New variable.
28745 (rest_of_clean_state): Set it before -fdump-final-insns=
28746 dumping, clear afterwards.
28747 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
28748 MEM_ALIAS_SET on MEMs.
28749
46bc665f
DM
287502010-03-26 David S. Miller <davem@davemloft.net>
28751
28752 * configure.ac: Fix sparc GOTDATA_OP bug check.
28753 * configure: Rebuild.
28754
9fa195b8
AM
287552010-03-26 Alan Modra <amodra@gmail.com>
28756
28757 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
28758
9b7e6950
RO
287592010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28760
28761 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
28762 TLS_SECTION_ASM_FLAG.
28763
d53c73e0
JJ
287642010-03-25 Jakub Jelinek <jakub@redhat.com>
28765
935ec2c9
JJ
28766 PR bootstrap/43511
28767 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
28768 Clear first_function_block_is_cold.
28769
d53c73e0
JJ
28770 PR c/43385
28771 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
28772 argument if the argument is truth_value_p.
28773
871c9abb
MM
287742010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
28775
fb04bb84 28776 * config/rs6000/constraints.md: Update copyright year for my changes.
94ad7adc 28777
871c9abb
MM
28778 PR target/43484
28779 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
28780 used in reg+reg addressing, swap registers.
28781
81ef7e24
JJ
287822010-03-24 Jakub Jelinek <jakub@redhat.com>
28783
6d217c32
JJ
28784 PR debug/43293
28785 * target.h (struct gcc_target): Add code_end hook.
28786 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
28787 if not yet defined.
28788 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
28789 * toplev.c (compile_file): Call targetm.asm_out.code_end
28790 hook before unwind info/debug info output.
28791 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
28792 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
28793 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28794 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
28795 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28796 * config/i386/i386.c (ix86_file_end): Renamed to...
28797 (ix86_code_end): ... this. Make static. Don't call
28798 file_end_indicate_exec_stack. Emit unwind info using
28799 final_start_function/final_end_function.
28800 (darwin_x86_file_end): Remove.
28801 (TARGET_ASM_CODE_END): Define.
28802 * config/i386/i386.h (TARGET_ASM_FILE_END,
28803 NEED_INDICATE_EXEC_STACK): Don't define.
28804 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
28805 (TARGET_ASM_FILE_END): Define to darwin_file_end.
28806 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
28807 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
28808
81ef7e24
JJ
28809 PR target/43498
28810 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
28811 at the beginning and final_end_function at the end.
28812 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
28813
f1c26cad
RO
288142010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28815
28816 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
28817 and Sun as TLS syntax.
28818 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
28819 * configure: Regenerate.
28820 * config.in: Regenerate.
28821 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
28822 (default_elf_asm_named_section): Use it.
28823 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
28824 (i386_output_dwarf_dtprel): Likewise.
28825 (output_addr_const_extra): Likewise.
28826 (output_pic_addr_const): Lowercase @GOTTPOFF.
28827 (output_addr_const_extra): Likewise.
28828 (output_pic_addr_const): Lowercase @GOTNTPOFF.
28829 (output_addr_const_extra): Likewise.
28830 (output_pic_addr_const): Lowercase @INDNTPOFF.
28831 (output_addr_const_extra): Likewise.
28832 (output_pic_addr_const): Lowercase @NTPOFF.
28833 (output_addr_const_extra): Likewise.
28834 (output_pic_addr_const): Lowercase @TPOFF.
28835 (output_addr_const_extra): Likewise.
fb04bb84 28836 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
f1c26cad
RO
28837 (*tls_global_dynamic_64): Likewise.
28838 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
28839 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
28840
28841 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
28842 (ASM_OUTPUT_TLS_COMMON): Use it.
28843 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
28844
28845 PR target/38118
fb04bb84 28846 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
f1c26cad
RO
28847 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
28848 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
28849 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
28850 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28851 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
28852
d2af65b9
RO
288532010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28854
28855 * config/i386/i386.c (override_options): Don't accept
28856 -mtls-dialect=sun any longer.
28857 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
28858 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
28859 (*tls_local_dynamic_base_32_sun): Likewise.
28860 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28861
d0ed412a
JJ
288622010-03-24 Jakub Jelinek <jakub@redhat.com>
28863
1db0ea00
JJ
28864 PR debug/43508
28865 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28866 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
28867
3a6191b1
JJ
28868 PR debug/43479
28869 * ira.c (adjust_cleared_regs): New function.
28870 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
28871
d0ed412a
JJ
28872 PR debug/19192
28873 PR debug/43479
28874 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
28875 from gimple_block.
28876 * expr.c (expand_expr_real): Restore previous
28877 curr_insn_source_location and curr_insn_block after
28878 expand_expr_real_1 call.
28879 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
28880 instead of expand_expr_real_1.
28881
478ab26d
VM
288822010-03-23 Vladimir Makarov <vmakarov@redhat.com>
28883
28884 PR rtl-optimization/43413
28885 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
28886 hard regs too.
28887
67b476d1
JW
288882010-03-22 James E. Wilson <wilson@codesourcery.com>
28889
28890 PR target/43348
28891 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
fb04bb84 28892 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
67b476d1 28893
99eaa2e7
L
288942010-03-22 H.J. Lu <hongjiu.lu@intel.com>
28895
fb04bb84
UB
28896 * config/i386/i386.c (ix86_target_string): Add -mfma.
28897 Fix a typo in comment.
99eaa2e7 28898
212066e6
MS
288992010-03-22 Mike Stump <mikestump@comcast.net>
28900
28901 PR target/23071
28902 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
28903 Don't overly align based upon packed packed fields.
28904
ce30e6fd
JM
289052010-03-22 Jason Merrill <jason@redhat.com>
28906
28907 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
28908 Use () rather than [], and move before the element type.
28909
3a1ef68a
RO
289102010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28911
28912 * doc/configfiles.texi (Configuration Files): Removed
28913 fixinc/Makefile*, intl/Makefile.*.
fb04bb84
UB
28914 * doc/makefile.texi: Fixed markup. Abstract from version
28915 control system used.
eed023cc 28916 (Makefile): Removed obsolete java/parse.y example.
3a1ef68a
RO
28917 * doc/sourcebuild.texi: Likewise.
28918 (Top Level): Added config, gnattools, libdecnumber, libgcc,
fb04bb84 28919 libgomp, libssp. Removed fastjar.
3a1ef68a
RO
28920 (Miscellaneous Docs): Clarify location.
28921 Added COPYING3, COPYING3.LIB.
fb04bb84 28922 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3a1ef68a 28923
7f5441df
RO
289242010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28925
28926 PR target/38085
28927 * config/i386/i386.c (x86_function_profiler)
28928 [!NO_PROFILE_COUNTERS]: Fix typo.
28929 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
28930 instead of callq.
28931
d4f3924a 289322010-03-22 Janis Johnson <janis187@us.ibm.com>
f4a4b582 28933 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
d4f3924a
JJ
28934
28935 * doc/sourcebuild.texi (Test Directives): Split into six
28936 subsections, with most of the current text in new subsections
28937 Directives, Selectors, and Final Actions.
28938 (Directives): Split list of test directives into multiple
28939 subsubsections.
28940 (Selectors): Describe use and syntax of selectors.
28941 (Effective-Target Keywords): Describe all existing keywords.
28942 (Add Options): Describe features for dg-add-options.
28943 (Require Support): Describe variants of dg-require-support.
28944 (Final Actions): Describe commands to use in dg-final.
28945
047550e9
MM
289462010-03-22 Michael Matz <matz@suse.de>
28947
28948 PR middle-end/43475
28949 * recog.c (validate_replace_rtx_group): Replace also in
28950 REG_EQUAL and REG_EQUIV notes.
28951
6d7971b8
RG
289522010-03-22 Richard Guenther <rguenther@suse.de>
28953
28954 PR tree-optimization/43390
28955 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
28956 sure vector extracts are type correct.
28957
6af84c85
RG
289582010-03-22 Richard Guenther <rguenther@suse.de>
28959
28960 PR middle-end/40106
28961 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
28962 x * sqrt (x) even when optimizing for size if the target
28963 has native support for sqrt.
28964
539eb459
JJ
289652010-03-22 Jakub Jelinek <jakub@redhat.com>
28966
be36dd85
JJ
28967 * varasm.c (make_decl_rtl_for_debug): Also clear
28968 flag_mudflap for the duration of make_decl_rtl call.
28969
539eb459
JJ
28970 PR debug/43443
28971 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
28972 locs from preserved VALUEs.
28973
19c1be39
JDA
289742010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
28975
28976 PR middle-end/42718
28977 * pa.md (movmemsi): Set align to one if zero.
28978 (movmemdi): Likewise.
28979
f8b68ed3
RE
289802010-03-21 Richard Earnshaw <rearnsha@arm.com>
28981
28982 PR target/42321
28983 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
28984 with their corresponding prologue pushes.
28985
941ce52b
AP
289862010-03-20 Andrew Pinski <pinskia@gmail.com>
28987
28988 PR target/43156
28989 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
28990 at the begining or end.
28991 (spu_expand_epilogue): Likewise.
28992
d491d2af
RG
289932010-03-20 Richard Guenther <rguenther@suse.de>
28994
28995 PR rtl-optimization/43438
28996 * combine.c (make_extraction): Properly zero-/sign-extend an
28997 extraction of the low part of a CONST_INT. Also handle
28998 CONST_DOUBLE.
28999
4dd9ee92
MS
290002010-03-19 Mike Stump <mikestump@comcast.net>
29001
29002 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
29003 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
29004 (override_options): Use SUBTARGET32_DEFAULT_CPU.
29005
e49a760f
AP
290062010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
29007
6644642e 29008 PR c/43211
fb04bb84
UB
29009 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
29010 an error.
e49a760f 29011
f0c6475a 290122010-03-19 Bernd Schmidt <bernds@codesourcery.com>
002b2dee
BS
29013
29014 PR rtl-optimization/42258
29015 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
29016 use that may match DEF.
29017
c99102b8
BS
29018 PR target/40697
29019 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
29020 the cost of loading the constant rather than assuming
29021 COSTS_N_INSNS (1).
29022 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
29023 outer code is AND, do the same tests as the andsi3 expander and
29024 return COSTS_N_INSNS (1) if and is cheap.
fdb2c684
BS
29025
29026 * optabs.c (avoid_expensive_constant): Fix formatting.
29027
f9ceed32
MM
290282010-03-19 Michael Matz <matz@suse.de>
29029
29030 PR c++/43116
29031 * attribs.c (decl_attributes): When rebuilding a function pointer
29032 type use the same qualifiers as the original pointer type.
29033
3795eae6
MJ
290342010-03-19 Martin Jambor <mjambor@suse.cz>
29035
29036 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
29037 and is_gimple_ip_invariant_address.
29038
ae0bef88
RR
290392010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29040
29041 Revert
29042 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29043
29044 * config/arm/arm.c (arm_override_options): Turn off
29045 flag_dwarf2_cfi_asm for AAPCS variants.
29046
9abf5d7b
RR
290472010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29048
29049 PR target/43399
29050 * config/arm/arm.c (emit_multi_reg_push): Update comments.
29051 Use PRE_MODIFY instead of PRE_DEC.
29052 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
29053 (vfp_emit_fstmd): Likewise.
29054
8a0b1aa4
MM
290552010-03-19 Michael Matz <matz@suse.de>
29056
29057 PR target/43305
29058 * builtins.c (expand_builtin_interclass_mathfn,
29059 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
29060 if that fails.
29061
3e999e7b
RG
290622010-03-19 Richard Guenther <rguenther@suse.de>
29063
29064 PR tree-optimization/43415
29065 * tree-ssa-pre.c (phi_translate): Split out worker to ...
29066 (phi_translate_1): ... this.
29067 (phi_translate): Move all caching here. Cache all NARY
29068 and REFERENCE translations.
29069
9fd52c6c
DM
290702010-03-19 David S. Miller <davem@davemloft.net>
29071
29072 With help from Eric Botcazou.
29073 * config/sparc/sparc.c: Include dwarf2out.h.
29074 (emit_pic_helper): Delete.
29075 (pic_helper_symbol_name): Delete.
29076 (pic_helper_emitted_p): Delete.
29077 (pic_helper_needed): New.
29078 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
29079 (get_pc_thunk_name): New.
29080 (load_pic_register): Remove 'delay_pic_helper' arg. Use
29081 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
29082 Set pic_helper_needed to true. Don't call emit_pic_helper.
29083 (sparc_expand_prologue): Update load_pic_register call.
29084 (sparc_output_mi_thunk): Likewise.
29085 (sparc_file_end): Emit a hidden comdat symbol for the PIC
29086 thunk if possible. Output CFI information as needed.
29087
f4a4b582
EB
290882010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
29089 Jack Howarth <howarth@bromo.med.uc.edu>
b6010cab
FXC
29090
29091 PR target/36399
48019e3d 29092 * config/i386/i386.h: Fix ABI on darwin x86-32.
b6010cab 29093
b1aa0655
AH
290942010-03-18 Aldy Hernandez <aldyh@redhat.com>
29095
29096 * tree.h: Declare make_decl_rtl_for_debug.
29097 * varasm.c (make_decl_rtl_for_debug): New.
29098 * dwarf2out.c (rtl_for_decl_location): Call it.
29099 * cfgexpand.c (expand_debug_expr): Call it.
29100
f0c12fcc
JJ
291012010-03-18 Jakub Jelinek <jakub@redhat.com>
29102
9a05b749
JJ
29103 PR bootstrap/43399
29104 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
29105 mem_mode.
29106
f0c12fcc
JJ
29107 PR bootstrap/43403
29108 * var-tracking.c (vt_init_cfa_base): Do nothing if
fb04bb84 29109 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
f0c12fcc 29110
e999b0c9
AO
291112010-03-18 Alexandre Oliva <aoliva@redhat.com>
29112
29113 PR debug/42873
29114 * var-tracking.c (canonicalize_vars_star): New.
29115 (dataflow_post_merge_adjust): Use it.
29116
5644a3d0
JJ
291172010-03-18 Jakub Jelinek <jakub@redhat.com>
29118
29119 PR debug/43058
29120 * var-tracking.c (non_suitable_const): New function.
29121 (add_uses): For DEBUG_INSNs with constants, don't record any
29122 value, instead just the constant value itself.
29123 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
29124 is not VAR_LOC_UNKNOWN_P, set var to the constant.
29125 (emit_notes_in_bb): Likewise.
29126 (emit_note_insn_var_location): For onepart variables if
29127 cur_loc is a VOIDmode constant, use DECL_MODE.
29128
8132a837
MJ
291292010-03-18 Martin Jambor <mjambor@suse.cz>
29130
29131 PR middle-end/42450
29132 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
29133 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
29134 all non-clones. Moved call redirection...
fb04bb84 29135 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8132a837
MJ
29136 (cgraph_materialize_all_clones): Dispose of all
29137 combined_args_to_skip bitmaps.
29138 (verify_cgraph_node): Do not check for edges pointing to wrong
29139 nodes in inline clones.
29140 * tree-inline.c (copy_bb): Call
29141 cgraph_redirect_edge_call_stmt_to_callee.
29142 * ipa.c (cgraph_remove_unreachable_nodes): Call
29143 cgraph_node_remove_callees even when there are used clones.
29144
7893d7ac
L
291452010-03-18 H.J. Lu <hongjiu.lu@intel.com>
29146
29147 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
29148
cdfedab1
L
291492010-03-18 H.J. Lu <hongjiu.lu@intel.com>
29150
29151 PR target/43383
29152 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
29153 for 32bit.
29154
c21372c4
MM
291552010-03-18 Michael Matz <matz@suse.de>
29156
29157 PR middle-end/43419
29158 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
29159 into sqrt(x) if we need to preserve signed zeros.
29160
82fa5f8a
L
291612010-03-18 Steven Bosscher <steven@gcc.gnu.org>
29162 Eric Botcazou <ebotcazou@adacore.com>
29163
29164 PR rtl-optimization/43360
29165 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
29166 note if we don't know its invariant status.
29167
eb45755f
MM
291682010-03-18 Michael Matz <matz@suse.de>
29169
29170 PR tree-optimization/43402
29171 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
29172 PHI chains of ssa names registered for update.
29173
60936b22
PB
291742010-03-17 Peter Bergner <bergner@vnet.ibm.com>
29175
29176 PR target/42427
29177 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
29178 non-offsettable and pre_modify update addressing.
29179 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
29180 and "2" alternatives "#".
29181 (*movdd_softfloat32): Make all alternatives "#";
29182 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
29183 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
29184 (*movdf_softfloat32): Make all alternatives "#";
29185 (movdi): Use the new DIFD mode iterator to create a common splitter
29186 for movdi, movdf and movdd patterns.
29187
316fc112
SZ
291882010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
29189
29190 * common.opt (dumpdir): Remove redundant tab.
29191
ec24771f
MJ
291922010-03-17 Martin Jambor <mjambor@suse.cz>
29193
29194 PR tree-optimization/43347
29195 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
29196 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
29197
e33c42db
BS
291982010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
29199
29200 PR rtl-optimization/42216
29201 * regrename.c (create_new_chain): New function, broken out from...
29202 (scan_rtx_reg): ... here. Call it. Handle the case where we are
29203 appending a use to an empty chain.
29204 (build_def_use): Remove previous changes that convert OP_INOUT to
29205 OP_OUT operands; instead detect the case where an OP_INOUT operand
fb04bb84 29206 uses a previously untracked register and create an empty chain for it.
e33c42db 29207
4c4177dc
RW
292082010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29209
29210 * doc/extend.texi (Function Attributes): Rewrite unfinished
29211 sentence in ms_abi documentation.
29212
60ac9511
AM
292132010-03-17 Alan Modra <amodra@gmail.com>
29214
29215 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
29216 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
29217 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
29218 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
29219
e19d1f06
RH
292202010-03-16 Richard Henderson <rth@redhat.com>
29221
29222 PR middle-end/43365
29223 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
29224 (lower_try_finally): Save and restore eh_seq around the expansion
29225 of the try-finally.
29226
c36fed0c
AH
292272010-03-16 Aldy Hernandez <aldyh@redhat.com>
29228
29229 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
29230 statements before splitting block.
29231
f4a4b582 292322010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17a7cb4e
RO
29233
29234 * doc/sourcebuild.texi (Testsuites): Fix markup.
29235 Use pathnames relative to gcc/testsuite.
29236 (Test Directives): Move description of how timeout is determined.
29237 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
29238 (C Tests): Correct gcc.misc-tests directory.
29239 Framework tests now live in gcc.test-framework.
29240
7686fb74
RG
292412010-03-16 Richard Guenther <rguenther@suse.de>
29242
29243 PR middle-end/43379
fb04bb84
UB
29244 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
29245 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7686fb74 29246
7a181764
AH
292472010-03-16 Aldy Hernandez <aldyh@redhat.com>
29248 Alexandre Oliva <aoliva@redhat.com>
29249
29250 PR tree-optimization/42917
29251 * lambda-code.c (remove_iv): Skip debug statements.
29252 (lambda_loopnest_to_gcc_loopnest): Likewise.
29253 (not_interesting_stmt): Debug statements are not interesting.
29254
457eeaae
JJ
292552010-03-16 Jakub Jelinek <jakub@redhat.com>
29256
29257 PR debug/43051
29258 PR debug/43092
29259 * cselib.c (cselib_preserve_constants,
29260 cfa_base_preserved_val): New static variables.
29261 (preserve_only_constants): New function.
29262 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
fb04bb84 29263 clear its REG_VALUES. If cselib_preserve_constants, don't
457eeaae
JJ
29264 empty the whole hash table, but preserve there VALUEs with constants,
29265 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
29266 (cselib_preserve_cfa_base_value): New function.
29267 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
29268 (cselib_init): Change argument to int bitfield. Set
29269 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
29270 is in it.
29271 (cselib_finish): Clear cselib_preserve_constants and
29272 cfa_base_preserved_val.
29273 * cselib.h (enum cselib_record_what): New enum.
29274 (cselib_init): Change argument to int.
29275 (cselib_preserve_cfa_base_value): New prototype.
29276 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
29277 * dse.c (dse_step1): Likewise.
29278 * cfgcleanup.c (thread_jump): Likewise.
29279 * sched-deps.c (sched_analyze): Likewise.
29280 * gcse.c (local_cprop_pass): Likewise.
29281 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
29282 If FN is non-NULL, call the callback always and whenever it returns
29283 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
29284 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
29285 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
29286 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
29287 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
29288 * var-tracking.c: Include recog.h.
29289 (bb_stack_adjust_offset): Remove.
29290 (vt_stack_adjustments): Don't call it, instead just gather the
29291 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
29292 (adjust_stack_reference): Remove.
29293 (compute_cfa_pointer): New function.
29294 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
29295 (struct adjust_mem_data): New type.
29296 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
29297 functions.
29298 (get_address_mode): New function.
29299 (replace_expr_with_values): Use it.
29300 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
29301 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
29302 (adjust_sets): Remove.
29303 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
29304 Use get_address_mode.
29305 (get_adjusted_src): Remove.
29306 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
29307 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
29308 (add_with_sets): Don't call adjust_sets.
29309 (fp_setter, vt_init_cfa_base): New functions.
29310 (vt_initialize): Change return type to bool. Move most of pool etc.
29311 initialization to the beginning of the function from end. Pass
29312 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
29313 If !frame_pointer_needed, call vt_stack_adjustment before mos
29314 vector is filled, call vt_init_cfa_base if argp/framep has been
29315 eliminated to sp. If frame_pointer_needed and argp/framep has
29316 been eliminated to hard frame pointer, set
29317 hard_frame_pointer_adjustment and call vt_init_cfa_base after
29318 encountering fp setter in the prologue. For MO_ADJUST, call
29319 log_op_type before pusing the op into mos vector, not afterwards.
29320 Call adjust_insn before cselib_process_insn/add_with_sets,
29321 call cancel_changes (0) afterwards.
29322 (variable_tracking_main_1): Adjust for vt_initialize calling
29323 vt_stack_adjustments and returning whether it succeeded or not.
29324
7dee65d8
AH
293252010-03-15 Aldy Hernandez <aldyh@redhat.com>
29326
29327 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
29328 debug statements.
29329
6019a098
JJ
293302010-03-15 Jakub Jelinek <jakub@redhat.com>
29331
29332 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
29333 has been set.
29334 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
29335 drap_reg has not been set.
29336
c2172338
MM
293372010-03-15 Michael Matz <matz@suse.de>
29338
29339 PR middle-end/43300
29340 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
29341 use it to expand block copies.
29342 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
29343 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
29344 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
29345
610b64e2
RG
293462010-03-15 Richard Guenther <rguenther@suse.de>
29347
29348 PR tree-optimization/43367
29349 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
29350 elimination check.
29351
610de68d
RB
293522010-03-15 Richard Guenther <rguenther@suse.de>
29353
29354 PR tree-optimization/43317
29355 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
29356
932e2e64
MJ
293572010-03-15 Martin Jambor <mjambor@suse.cz>
29358
610de68d 29359 PR tree-optimization/43141
932e2e64
MJ
29360 * tree-sra.c (create_abstract_origin): New function.
29361 (modify_function): Call create_abstract_origin.
29362
c8c520dd
CD
293632010-03-15 Chris Demetriou <cgd@google.com>
29364
29365 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
29366 wasn't copied.
29367
7f931500
SP
293682010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29369
29370 PR middle-end/43354
29371 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
29372 call insert_out_of_ssa_copy for default definitions.
29373
293742010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29375
29376 * graphite-clast-to-gimple.c (my_long_long): Defined.
29377 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
29378 * graphite-sese-to-poly.c (my_long_long): Defined.
29379 (scop_ivs_can_be_represented): Use it.
29380
293812010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29382
29383 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
29384 graphite-max-bbs-per-function, and loop-block-tile-size.
29385 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
29386 with "maximum".
29387 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
29388
293892010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29390
29391 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
29392 forward declaration.
29393 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
29394 (add_upper_bounds_from_estimated_nit): New.
29395 (build_loop_iteration_domains): Use it.
29396
293972010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29398
29399 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
29400
294012010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29402
29403 PR middle-end/43306
29404 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
29405 should be an INTEGER_CST. Also handle CASE_CONVERT.
29406
294072010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29408
29409 * graphite.c (graphite_initialize): To bound the number of bbs per
29410 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
29411 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
29412 * doc/invoke.texi: Document it.
29413
294142010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29415
29416 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
29417 * graphite-sese-to-poly.h (build_poly_scop): Same.
29418
294192010-03-13 Sebastian Pop <sebastian.pop@amd.com>
29420
29421 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
29422 the number of parameters in the scop. Use as an upper bound
29423 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
29424 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
29425 * doc/invoke.texi: Document it.
29426
929769f4
JQ
294272010-03-13 Jerry Quinn <jlquinn@optonline.net>
29428
29429 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
29430 * doc/c-tree.texi: Remove.
29431 * doc/generic.texi: Merge c-tree.texi here.
29432 * doc/gccint.texi (Trees): Remove menu entry.
29433 (c-tree.texi): Remove @include.
29434 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
29435 * doc/languages.texi (Reading RTL): Ditto.
29436
9c8cab44
SE
294372010-03-12 Steve Ellcey <sje@cup.hp.com>
29438
29439 PR target/42869
29440 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
29441
08f9d725
MM
294422010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
29443
29444 PR middle-end/42431
eed023cc 29445 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
08f9d725
MM
29446 code added to work around reload clobbering CONST insns.
29447
70235ab9
JJ
294482010-03-12 Jakub Jelinek <jakub@redhat.com>
29449
0de3e43f
JJ
29450 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
29451 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
29452 (cselib_preserve_only_values): Remove retain argument, don't
29453 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
29454 * cselib.h (cselib_preserve_only_values): Remove retain argument.
29455 * var-tracking.c (micro_operation): Move insn field before union.
29456 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
29457 (struct variable_tracking_info_def): Remove n_mos field, change
29458 mos into a vector of micro_operations.
29459 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
29460 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
29461 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
29462 changing into a vector.
29463 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
29464 come before all other uops generated by add_stores.
29465 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
29466 argument removal.
29467 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
29468 a vector. Run just one pass over the bbs instead of separate counting
29469 and computation phase.
29470 (vt_finalize): Free VTI (bb)->mos vector instead of array.
29471
70235ab9
JJ
29472 PR debug/43329
29473 * tree-inline.c (remap_decls): Put old_var rather than origin_var
29474 into *nonlocalized_list vector.
29475 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
29476 even if origin is non-NULL.
29477 (gen_variable_die): Likewise.
29478 (process_scope_var): Don't change origin.
29479 (gen_decl_die): Likewise.
29480 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
29481 before adding new edges instead of after it, fix moving over
29482 debug stmts.
29483
7ac22e17
DM
294842010-03-11 David S. Miller <davem@davemloft.net>
29485
77514c73
UB
29486 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
29487 of four.
7ac22e17
DM
29488 * configure: Rebuild.
29489
0e0a1359
MJ
294902010-03-11 Martin Jambor <mjambor@suse.cz>
29491
29492 PR tree-optimization/43257
29493 * tree.c (assign_assembler_name_if_neeeded): New function.
29494 (free_lang_data_in_cgraph): Assembler name assignment moved to the
29495 above new function.
29496 * tree.h (assign_assembler_name_if_neeeded): Declare.
29497 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
29498 the function if needed.
29499
1d9edd01
CD
295002010-03-11 Chris Demetriou <cgd@google.com>
29501
29502 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
29503 include/stdint-gcc.h, and include/stdint.h world-readable.
29504
ff0a0c1d
RG
295052010-03-11 Richard Guenther <rguenther@suse.de>
29506
29507 PR tree-optimization/43255
29508 * tree-vrp.c (process_assert_insertions_for): Do not insert
29509 asserts for trivial conditions.
29510
b509e1fc
AK
295112010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29512
29513 PR tree-optimization/43280
77514c73
UB
29514 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
29515 generation. Move calculation of size out of the if branch.
b509e1fc
AK
29516 (find_bswap): Modify compare number generation.
29517
108ba00b
RG
295182010-03-11 Richard Guenther <rguenther@suse.de>
29519
29520 PR lto/43200
29521 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
29522 (input_gimple_stmt): Fixup handled component types during
29523 operand read. Also fix up decls in ADDR_EXPRs.
29524
f37f5bb9
EB
295252010-03-10 Eric Botcazou <ebotcazou@adacore.com>
29526
29527 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
29528 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
29529
e9fecf0e
JH
295302010-03-10 Jan Hubicka <jh@suse.cz>
29531
29532 PR c/43288
29533 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
29534 * varasm.c (get_variable_section): Don't do that here...
29535 (make_decl_rtl): ... and here.
29536 (do_assemble_alias): Produce decl RTL.
29537 (assemble_alias): Likewise.
29538
23f39b37
JJ
295392010-03-10 Jakub Jelinek <jakub@redhat.com>
29540
29541 PR debug/43290
29542 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
29543 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
29544 of fde->vdrap_reg.
29545 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
29546 (based_loc_descr): Only express drap or vdrap regno based expressions
29547 using DW_OP_fbreg when not optimizing.
29548 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
29549 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
29550 REG_CFA_SET_VDRAP note.
29551
6edd8198
AM
295522010-03-10 Alexander Monakov <amonakov@ispras.ru>
29553
29554 PR tree-optimization/43236
29555 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
29556 error in calculation of base address in reverse iteration case.
29557 (generate_builtin): Take number of latch executions if the statement
29558 is in the latch.
29559
9f698956
AB
295602010-03-10 Andrey Belevantsev <abel@ispras.ru>
29561
29562 PR middle-end/42859
29563 * tree-eh.c: Include pointer-set.h.
29564 (lower_eh_dispatch): Filter out duplicate case labels and
29565 remove the unneeded edge when the label is unused. Return
29566 true when some edges are removed.
29567 (execute_lower_eh_dispatch): When any lowering resulted in
29568 removing an edge, also delete unreachable blocks.
29569
ff4f03c3
JJ
295702010-03-10 Jakub Jelinek <jakub@redhat.com>
29571
29572 PR bootstrap/43287
29573 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
29574 UNSPEC_MACHOPIC_OFFSET.
29575
7b0f476d
AS
295762010-03-09 Andreas Schwab <schwab@linux-m68k.org>
29577
29578 PR target/43294
29579 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
29580 (m68k_delegitimize_address): New function.
29581
3b7998ea
JJ
295822010-03-09 Jakub Jelinek <jakub@redhat.com>
29583
eb1fcdaa
JJ
29584 PR debug/43299
29585 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
29586
69b89883
JJ
29587 PR debug/43299
29588 * var-tracking.c (adjust_sets): New function.
29589 (count_with_sets, add_with_sets): Use it.
29590 (get_adjusted_src): New inline function.
29591 (add_stores): Use it.
29592
3b7998ea
JJ
29593 PR debug/43304
29594 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
29595 call cselib_dummy_expand_value_rtx_cb instead of
29596 cselib_expand_value_rtx_cb.
bded9b70
JJ
29597
29598 PR debug/43293
29599 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
29600 * config/i386/i386.c: Include debug.h and dwarf2out.h.
29601 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
29602 and .cfi_endproc around the pic thunks.
29603 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
29604 all queued unwind info register saves are saved before the call.
29605 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
29606 considered as sp-=4 for unwind info and the pop as sp+=4 which
29607 also clobbers dest, but doesn't actually restore it.
4398467a
JJ
29608
29609 PR debug/43290
29610 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
29611 RTX_FRAME_RELATED_P.
29612
81ad4ac0
JZ
296132010-03-09 Jie Zhang <jie@codesourcery.com>
29614
29615 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
29616 whitespaces in output template.
29617
dc344e87
JZ
296182010-03-09 Jie Zhang <jie@codesourcery.com>
29619
29620 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
29621 out array boundary.
29622
ff12d3a6
JJ
296232010-03-08 Jakub Jelinek <jakub@redhat.com>
29624
29625 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
29626 builtins.exp in a separate job.
29627
b58543c3
SP
296282010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29629
29630 * graphite-sese-to-poly.c (add_param_constraints): Use
29631 lower_bound_in_type and upper_bound_in_type.
29632
296332010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29634
29635 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
29636 instead of unsigned_type_node.
29637
296382010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29639 Reza Yazdani <reza.yazdani@amd.com>
29640
29641 PR middle-end/43065
29642 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
29643 on pointer type parameters.
29644
296452010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
29646
29647 PR middle-end/42644
29648 PR middle-end/42130
29649 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
29650 handle conversions from pointer to integers.
29651 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
77514c73 29652 induction variable, to be able to work with code generated by CLooG.
b58543c3
SP
29653 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
29654 (build_poly_scop): Bail out if we cannot codegen a loop.
29655
296562010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
29657
29658 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
29659 code generation with gloog_error.
29660
296612010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29662
29663 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
29664 Call fold_convert on all the returned values.
77514c73
UB
29665 (expand_scalar_variables_expr): Pass to
29666 expand_scalar_variables_ssa_name the type of the resulting expression.
b58543c3
SP
29667
296682010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29669
29670 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
77514c73
UB
29671 ppl_min_for_le_pointset.
29672 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
b58543c3
SP
29673 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
29674
296752010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29676
29677 * graphite-dependences.c (map_into_dep_poly): Removed.
29678 (dependence_polyhedron_1): Use combine_context_id_scat.
29679
296802010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29681
29682 * graphite-poly.h (struct poly_scattering): Add layout documentation.
29683 (struct poly_bb): Same.
29684 (combine_context_id_scat): New.
29685
296862010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29687
29688 PR middle-end/42326
29689 * sese.c (name_defined_in_loop_p): Return false for default
29690 definitions.
29691
296922010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29693
29694 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
29695 and clean up the logic.
29696
296972010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29698
29699 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
29700 early return.
29701
1feb8238
JJ
297022010-03-08 Jakub Jelinek <jakub@redhat.com>
29703
29704 * var-tracking.c (remove_cselib_value_chains): Define only for
29705 ENABLE_CHECKING.
29706 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
29707 delete_slot_part, emit_notes_for_differences_1): Don't call
29708 remove_cselib_value_chains here.
29709 (set_slot_part, emit_notes_for_differences_2): Don't call
29710 add_cselib_value_chains here.
29711 (preserved_values): New vector.
29712 (preserve_value): New function.
29713 (add_uses, add_stores, vt_add_function_parameters): Use it
29714 instead of cselib_preserve_value.
29715 (changed_values_stack): New vector.
29716 (check_changed_vars_0): New function.
29717 (check_changed_vars_1, check_changed_vars_2): Use it.
29718 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
29719 changed_values_stack VALUEs.
29720 (vt_emit_notes): For all preserved_values call
29721 add_cselib_value_chains. If ENABLE_CHECKING call
29722 remove_cselib_value_chains before verifying value_chains is empty.
29723 Initialize and free changed_values_stack.
29724 (vt_initialize): Initialize preserved_values.
29725 (vt_finalize): Free preserved_values.
29726
cc788fcc
RG
297272010-03-08 Richard Guenther <rguenther@suse.de>
29728
29729 PR tree-optimization/43269
29730 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
29731 region detection.
29732
69c103c7
MJ
297332010-03-08 Martin Jambor <mjambor@suse.cz>
29734
29735 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
29736 (ipa_is_param_called): Removed.
29737 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
29738 (ipa_print_node_params): Do not print the called flag.
29739 (ipa_write_node_info): Do not stream the called flag.
29740 (ipa_read_node_info): Likewise.
29741
864ddef7
JJ
297422010-03-07 Jakub Jelinek <jakub@redhat.com>
29743
29744 PR debug/43176
29745 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
29746 * cselib.c (struct expand_value_data): Add dummy field.
29747 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
29748 dummy to false.
29749 (cselib_dummy_expand_value_rtx_cb): New function.
29750 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
29751 any rtl.
29752 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
29753 * var-tracking.c: Include pointer-set.h.
29754 (variable): Change n_var_parts to char from int. Add
29755 cur_loc_changed and in_changed_variables fields.
29756 (variable_canonicalize): Remove.
29757 (shared_var_p): New inline function.
29758 (unshare_variable): Maintain cur_loc_changed and
29759 in_changed_variables fields. If var was in changed_variables,
29760 replace it there with new_var. Just copy cur_loc instead of
29761 resetting it to something else.
29762 (variable_union): Don't recompute cur_loc. Use shared_var_p.
29763 (dataflow_set_union): Don't call variable_canonicalize.
29764 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
29765 of their DEBUG_EXPR_TREE_DECLs.
29766 (canonicalize_loc_order_check): Verify that cur_loc is NULL
29767 and in_changed_variables and cur_loc_changed is false.
29768 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
29769 and cur_loc_changed. Don't update cur_loc here.
29770 (variable_merge_over_src): Don't call variable_canonicalize.
29771 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
29772 removing loc that is equal to cur_loc, clear cur_loc,
29773 set cur_loc_changed and ensure variable_was_changed is called.
29774 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
29775 compare pointers in cur_loc check, if it is equal to loc,
29776 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
29777 (variable_different_p): Remove compare_current_location argument,
29778 don't compare cur_loc.
29779 (dataflow_set_different_1): Adjust variable_different_p caller.
29780 (variable_was_changed): If dv had some var in changed_variables
29781 already, reset in_changed_variables flag for it and propagate
29782 cur_loc_changed over to the new variable. On empty var
29783 always set cur_loc_changed. Set in_changed_variables on whatever
29784 var is added to changed_variables.
29785 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
29786 Use shared_var_p. When removing loc that is equal to cur_loc,
29787 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
29788 end, don't set it to something else, just call variable_was_changed.
29789 (delete_slot_part): Use shared_var_p. When cur_loc equals to
29790 loc being removed, clear cur_loc and set cur_loc_changed.
29791 Set cur_loc_changed if all locations have been removed.
29792 (struct expand_loc_callback_data): New type.
29793 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
29794 allocated. Always create SUBREGs if simplify_subreg failed.
29795 Prefer to use cur_loc, when that fails and still in
29796 changed_variables (and seen first time) recompute it. Set
29797 cur_loc_changed of variables which had to change cur_loc and
29798 compute elcd->cur_loc_changed if any of the subexpressions used
29799 had to change cur_loc.
29800 (vt_expand_loc): Adjust to pass arguments in
29801 expand_loc_callback_data structure.
29802 (vt_expand_loc_dummy): New function.
29803 (emitted_notes): New variable.
29804 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
29805 that weren't used for any other decl in current
29806 emit_notes_for_changes call call vt_expand_loc_dummy to update
29807 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
29808 first loc_chain location if NULL before. Always use just
29809 cur_loc instead of first loc_chain location. When cur_loc_changed
29810 is false, when not --enable-checking=rtl just don't emit any note.
29811 When rtl checking, compute the note and assert it is the same
29812 as previous note. Clear cur_loc_changed and in_changed_variables
29813 at the end before removing from changed_variables.
29814 (check_changed_vars_3): New function.
29815 (emit_notes_for_changes): Traverse changed_vars to call
29816 check_changed_vars_3 on each changed var.
29817 (emit_notes_for_differences_1): Clear cur_loc_changed and
29818 in_changed_variables. Recompute cur_loc of new_var.
77514c73 29819 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
864ddef7
JJ
29820 (vt_emit_notes): Initialize and destroy emitted_notes.
29821
c4137918
BS
298222010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
29823
29824 PR rtl-optimization/42220
29825 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
29826 Use verify_reg_tracked to determine if we should use OP_OUT rather
29827 than OP_INOUT.
29828 (build_def_use): If we see an in-out operand for a register that we
29829 know nothing about, treat is an output if possible, fail the block if
29830 not.
29831
cd6549e8
AO
298322010-03-06 Alexandre Oliva <aoliva@redhat.com>
29833
29834 PR debug/42897
29835 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
29836 permanently.
29837
aba09491
AO
298382010-03-06 Alexandre Oliva <aoliva@redhat.com>
29839
29840 PR debug/42897
29841 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
29842 uses of relevant DEFs that are dead outside the loop too.
29843
f4a4b582 298442010-03-06 Alexandre Oliva <aoliva@redhat.com>
60d7a09b
AO
29845
29846 * var-tracking.c (dataflow_set_merge): Swap src and src2.
29847 Reverted:
29848 2010-01-13 Jakub Jelinek <jakub@redhat.com>
29849 PR debug/41371
29850 * var-tracking.c (values_to_unmark): New variable.
29851 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
29852 values_to_unmark vector. Moved body to...
29853 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
29854 instead queue it into values_to_unmark vector.
29855 (vt_find_locations): Free values_to_unmark vector.
29856
eeb971c9
EB
298572010-03-05 Eric Botcazou <ebotcazou@adacore.com>
29858
29859 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
29860 (site.exp): Export them when plugins are enabled.
29861
ccc5b640
SP
298622010-03-05 Sebastian Pop <sebastian.pop@amd.com>
29863
29864 PR middle-end/42326
29865 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
29866 that contain scevs.
29867 (chrec_fold_multiply): Same.
29868
3e23fb2e
AP
298692010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
29870
29871 PR c/43248
29872 * c-decl.c (build_compound_literal): Return early if init is
29873 an error_mark_node.
29874
76f76cd0
MJ
298752010-03-04 Martin Jambor <mjambor@suse.cz>
29876
29877 PR tree-optimization/43164
29878 PR tree-optimization/43191
29879 * tree-sra.c (type_consists_of_records_p): Reject records with
29880 zero-size bit-fields at the end.
29881
b2d244d1
MS
298822010-03-04 Mike Stump <mikestump@comcast.net>
29883
29884 * Makefile.in (TAGS): Remove *.y.
29885
9ca87236
RB
298862010-03-04 Richard Guenther <rguenther@suse.de>
29887
29888 PR tree-optimization/40761
29889 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
29890 in reverse order.
29891 (my_rev_post_order_compute): New function.
29892 (init_pre): Call it.
29893
572ae476
CF
298942010-03-04 Changpeng Fang <changpeng.fang@amd.com>
29895
8c0386a4 29896 PR middle-end/43209
9ca87236
RB
29897 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
29898 decrease the cost of an IV candidate when the cost is infinite.
572ae476 29899
f8723eb6
RW
299002010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29901
29902 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
29903 Use '3DNow!' for the extension of that name, ensure normal space
29904 after the string.
29905 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
29906
d8a60d24
JL
299072010-03-03 Jeff Law <law@redhat.com>
29908
29909 * PR middle-end/32693
29910 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
29911 than gen_rtx_SUBREG.
29912 (extract_bit_field_1): Likewise.
29913
8ec49cff
JJ
299142010-03-03 Janis Johnson <janis187@us.ibm.com>
29915
29916 * doc/sourcebuild.texi (Test directives): Document that arguments
29917 include-opts and exclude-opts are now optional for dg-skip-if,
29918 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
29919
2c71ac78
JM
299202010-03-03 Jason Merrill <jason@redhat.com>
29921
29922 PR c++/12909
29923 * cgraph.h (varpool_node): Add extra_name field.
29924 * varpool.c (varpool_extra_name_alias): New.
29925 (varpool_assemble_decl): Emit extra name aliases.
29926 (varpool_mark_needed_node): Look past an extra name alias.
1d5053d6
JM
29927 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
29928 * lto-streamer-in.c (lto_input_tree): Read it.
29929 * lto-streamer-out.c (output_unreferenced_globals): Write it.
2c71ac78 29930
2587aa3b
EB
299312010-03-03 Eric Botcazou <ebotcazou@adacore.com>
29932
29933 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
29934 (sparc*-*-solaris2*): ...this.
29935
db51bb34
JJ
299362010-03-03 Jakub Jelinek <jakub@redhat.com>
29937
7ece48b1
JJ
29938 PR debug/43229
29939 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
29940 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
29941 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
29942 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
29943
0508bed7
JJ
29944 PR debug/43237
29945 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
29946 fallthrough to default handling, just with want_address 0 instead of 2.
29947 For single element lists, add_AT_loc directly, otherwise create an
29948 artificial variable DIE and stick location list to it.
29949
db51bb34
JJ
29950 PR debug/43177
29951 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
29952 (VAL_EXPR_HAS_REVERSE): Define.
29953 (reverse_op): New function.
29954 (add_stores): For reversible operations add an extra MO_VAL_USE.
29955
7428bc26
JM
299562010-03-02 Jason Merrill <jason@redhat.com>
29957
29958 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
29959
d1ced155
EB
299602010-03-02 Eric Botcazou <ebotcazou@adacore.com>
29961
29962 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
29963 (sparc64-*-linux*): Likewise.
29964 (sparc64-*-solaris2*): Include assembler files before linker ones.
29965 (sparc-*-solaris2*): Simplify and reorder to match previous case.
29966 * config/sparc/gas.h: Delete.
29967 * config/sparc/sol2-64.h: Add copyright notice.
29968 * config/sparc/sol2-gas-bi.h: Likewise.
29969 * config/sparc/sol2-gld.h: Likewise.
29970 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
29971 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
29972 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
29973 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
29974 (sparc_elf_asm_named_section): Rename into...
29975 (sparc_solaris_elf_asm_named_section): ...this. Always define.
29976
02d43000
UB
299772010-03-02 Uros Bizjak <ubizjak@gmail.com>
29978
29979 * config/alpha/alpha.c (override_options): Fix -mtune error message.
29980
f6c86fab
JL
299812010-03-02 Jeff Law <law@redhat.com>
29982
4e222e63 29983 PR middle-end/42431
f6c86fab
JL
29984 * reload1.c (rtx_p, substitute_stack): Declare.
29985 (substitute): Record addresses of changed rtxs.
29986 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
29987 Restore the original rtx when complete.
29988 (reload): Free subsitute_stack when complete.
29989
500cdcb0
JJ
299902010-03-02 Janis Johnson <janis187@us.ibm.com>
29991
29992 * doc/gccint.texi (menu): Add Testsuites as a chapter.
29993 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
29994 new chapter.
29995 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
29996 LTO Testing, gcov Testing, profopt Testing, compat Testing,
29997 Torture Tests): Change from subsection to section.
29998
d9a6979d
JJ
299992010-03-02 Jakub Jelinek <jakub@redhat.com>
30000 Steven Bosscher <steven@gcc.gnu.org>
30001
02d43000
UB
30002 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
30003 instead of bb.
d9a6979d 30004
61226dc8
SP
300052010-03-02 Reza Yazdani <reza.yazdani@amd.com>
30006
30007 PR middle-end/42640
30008 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
30009 the assignment from the new induction variable to the assignment
30010 of the value from the original loop PHI function.
30011
15e7a617
JJ
300122010-03-01 Janis Johnson <janis187@us.ibm.com>
30013 Daniel Jacobowitz <dan@codesourcery.com>
30014
30015 * doc/sourcebuild.texi (Test directives): Clarify options to
30016 dg-skip-if.
30017
eb2573ee
RO
300182010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30019
30020 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
30021 Disable cfi directives unless GCC and gas agree on using read-only
30022 .eh_frame sections for 64-bit.
30023 * configure: Regenerate.
30024
12f9ddbc
RG
300252010-03-01 Richard Guenther <rguenther@suse.de>
30026
30027 PR tree-optimization/43220
30028 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
30029 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
30030
f0c10f0f 300312010-03-01 Richard Guenther <rguenther@suse.de>
02d43000 30032 Martin Jambor <mjambor@suse.cz>
f0c10f0f
RG
30033
30034 PR middle-end/41250
30035 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
30036 gimplified parameters.
30037
c40b5400
CB
300382010-03-01 Christian Bruel <christian.bruel@st.com>
30039
30040 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
61226dc8 30041
3c775d2d
L
300422010-03-01 H.J. Lu <hongjiu.lu@intel.com>
30043
30044 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
30045
434c8f4b
RG
300462010-03-01 Richard Guenther <rguenther@suse.de>
30047
30048 PR middle-end/43213
30049 * expr.c (expand_assignment): Use the alias-oracle to tell
30050 if the rhs aliases the result decl.
30051
291c0a12
RO
300522010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30053
30054 PR pch/14940
30055 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
30056 to sol_gt_pch_get_address.
30057 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
30058 64-bit, SPARC and x86.
30059 (sol_gt_pch_get_address): New function.
30060
61226dc8 300612010-03-01 Marco Poletti <poletti.marco@gmail.com>
894e2652
SZ
30062
30063 * toplev.h (inform_n, error_n): Declare.
30064 * diagnostic.c (inform_n, error_n): New function.
30065
6c6366f6
JJ
300662010-03-01 Jakub Jelinek <jakub@redhat.com>
30067
30068 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
30069 has no rtl yet when processing local_decls, queue it and recheck
30070 if deferred stack allocation hasn't assigned it rtl.
30071
826159e5
KK
300722010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
30073
30074 * config/sh/sh.c (unspec_bbr_uid): New.
30075 (gen_block_redirect): Use it instead of INSN_UID.
30076 (gen_far_branch): Likewise.
30077
746ecbcd
L
300782010-02-28 H.J. Lu <hongjiu.lu@intel.com>
30079
30080 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
30081 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
30082
02a9370c
RW
300832010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30084
30085 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
30086 (Warning Options): -Wno-conversion-null is valid for
30087 Objective-C++ as well.
30088 * doc/tm.texi (Named Address Spaces): Likewise.
30089 * doc/plugins.texi (Plugins): Replace TABs with spaces.
30090 * doc/tree-ssa.texi (Tree SSA): Likewise.
30091
91ad7e13
L
300922010-02-27 H.J. Lu <hongjiu.lu@intel.com>
30093
30094 PR bootstrap/43202
30095 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
30096 by default. Don't set the default arch for
30097 i[34567]86-*-darwin*|x86_64-*-darwin*.
30098
55c4eeaa
L
300992010-02-27 H.J. Lu <hongjiu.lu@intel.com>
30100
30101 PR bootstrap/43202
30102 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
30103 default. Set the default 32bit/64bit archs with $with_arch
30104 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
30105
30bc1dca
RG
301062010-02-27 Richard Guenther <rguenther@suse.de>
30107
30108 PR tree-optimization/43186
30109 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
30110 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
30111 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
30112 unroller iterations.
30113
c6b9174f
L
301142010-02-27 H.J. Lu <hongjiu.lu@intel.com>
30115
30116 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
30117 required and i[34567]86-*-* targets don't support 64bit ISA.
30118
2743db69
EB
301192010-02-26 Eric Botcazou <ebotcazou@adacore.com>
30120
30121 PR ada/43096
30122 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
30123 the same alias set.
30124
4d16c0dc
L
301252010-02-26 H.J. Lu <hongjiu.lu@intel.com>
30126
30127 * config.gcc: Set the default arch at least to Prescott for
30128 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
30129 if SSE math is enabled.
30130
0e94b750
MLI
301312010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
30132
30133 * diagnostic.c (diagnostic_initialize): Update.
30134 (diagnostic_report_diagnostic): Test inhibit_notes_p for
30135 informative notes.
30136 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
30137 (diagnostic_inhibit_notes): New.
30138 * toplev.c (process_options): inhibit notes with -fcompare-debug.
30139
7e1542b9
MLI
301402010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
30141
30142 PR c/20631
30143 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
30144 * doc/standards.texi: Likewise.
30145 * doc/extend.texi: Likewise.
30146 * doc/trouble.texi: Likewise.
61226dc8 30147 * doc/cppopts.texi: Likewise.
7e1542b9
MLI
30148 * doc/install.texi: Likewise.
30149 * c.opt (std=c90,std=gnu90): New options.
30150 * c-opts.c (c_common_handle_option): Handle them.
30151
0b901e4c
MLI
301522010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
30153
30154 PR c/24577
30155 * c-decl.c (undeclared_variable): Use an informative note.
30156
37530014
RG
301572010-02-26 Richard Guenther <rguenther@suse.de>
30158
30159 PR tree-optimization/43186
30160 * gimple.h (gimple_fold): Remove.
30161 * gimple.c (gimple_fold): Remove. Inline into single user ...
30162 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
30163 Try harder for conditions.
30164
095c7b3c
JJ
301652010-02-26 Jakub Jelinek <jakub@redhat.com>
30166
30167 PR debug/43190
30168 * function.c (used_types_insert): Don't skip through named pointer
30169 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
30170 and it is different from the main variant's type.
30171
a1e205cf
NC
301722010-02-26 Nick Clifton <nickc@redhat.com>
30173
30174 * config/rx/rx.md (sminsi3): Remove bogus alternative.
30175
a3af5e26
L
301762010-02-26 H.J. Lu <hongjiu.lu@intel.com>
30177
30178 * config.gcc: Support --with-fpmath=sse for x86.
30179
30180 * config/i386/ssemath.h: New.
30181
30182 * doc/install.texi (--with-fpmath=sse): Documented.
30183
2f816591
RG
301842010-02-26 Richard Guenther <rguenther@suse.de>
30185
30186 PR tree-optimization/43188
30187 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
30188 vector types of over-aligned element type.
30189
7ce321b3
L
301902010-02-26 Uros Bizjak <ubizjak@gmail.com>
30191
30192 PR target/43175
30193 * config/i386/i386.c (expand_vec_perm_blend): Use correct
02d43000 30194 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
7ce321b3 30195
b55b184a
JK
301962010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
30197
30198 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
30199
e7140c8d
JJ
302002010-02-26 Jakub Jelinek <jakub@redhat.com>
30201
6764d92c
JJ
30202 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
30203 * var-tracking.c: Include diagnostic.h.
30204 (debug_dv): New function.
30205 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
30206
5a309965
JJ
30207 PR debug/43160
30208 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
30209 (add_value_chain, add_value_chains, remove_value_chain,
30210 remove_value_chains): Handle DEBUG_EXPRs.
30211 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
30212
e7140c8d
JJ
30213 PR debug/43161
30214 * regcprop.c (struct queued_debug_insn_change): New type.
30215 (struct value_data_entry): Add debug_insn_changes field.
30216 (struct value_data): Add n_debug_insn_changes field.
30217 (debug_insn_changes_pool): New variable.
30218 (free_debug_insn_changes, apply_debug_insn_changes,
30219 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
30220 (kill_value_one_regno): Call free_debug_insn_changes if needed.
30221 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
30222 fields.
30223 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
30224 changes for them.
30225 (copyprop_hardreg_forward_1): Don't call apply_change_group for
30226 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
30227 changes, call cprop_find_used_regs via note_stores.
30228 (copyprop_hardreg_forward): When copying vd from predecessor
30229 which has any queued DEBUG_INSN changes, make sure the pointers are
30230 cleared. At the end call df_analyze and then if there are any
30231 DEBUG_INSN changes queued at the end of some basic block for still
30232 live registers, apply them.
30233 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
30234
894b386f
UB
302352010-02-25 Uros Bizjak <ubizjak@gmail.com>
30236
30237 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
30238 (arm*-*-*): Ditto.
30239
3fd77630
L
302402010-02-25 H.J. Lu <hongjiu.lu@intel.com>
30241
30242 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
30243 targets. Set the default with_cpu/with_arch from arch/cpu.
30244 Allow x86-64 and native for with_cpu/with_arch.
30245
4b9c6075
NB
302462010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
30247
30248 * ebitmap.c: Change calls to verify_popcount with calls to
30249 sbitmap_verify_popcount.
30250 (ebitmap_clear_bit): Fixed map->cacheindex test and
30251 map>cache update when bit clearing results in an empty
30252 element.
30253
2fcd8e02
MM
302542010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
30255
30256 PR target/43154
30257 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
30258 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
30259 and support both V2DF and V2DI modes.
30260 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
30261 support both V2DF and V2DI modes.
30262 (general): Delete trailing whitespace from a few patterns.
30263
30264 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30265 V2DF/V2DI interleave high/low builtins.
30266
30267 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
30268 new VSX builtins.
30269
30270 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
30271 interleave high/low functions.
30272
f61ae065
GP
302732010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
30274
30275 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
30276 #pragma extern_prefix.
30277
7d5d39bb
JJ
302782010-02-25 Jakub Jelinek <jakub@redhat.com>
30279
06796564
JJ
30280 PR debug/43166
30281 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
30282 BLKmode, assert op0 is a MEM and just adjust its mode.
30283
7d5d39bb
JJ
30284 PR debug/43165
30285 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
30286 if bitpos isn't multiple of mode's bitsize.
30287
124e0d27
MLI
302882010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
30289
30290 * c.opt (-ftemplate-depth=): New.
30291 (-ftemplate-depth-): Deprecate.
30292 * optc-gen.awk: Handle -ftemplate-depth=.
30293 * opth-gen.awk: Likewise.
30294 * c-opts.c (c_common_handle_option): Likewise.
02d43000 30295 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
124e0d27 30296
0e7750a0
JM
302972010-02-24 Jason Merrill <jason@redhat.com>
30298
30299 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
30300
c26238f4
RO
303012010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30302
30303 * cfg.c (alloc_aux_for_block): Remove inline.
30304 (alloc_aux_for_edge): Likewise.
30305
bef64e0f
RO
303062010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30307
30308 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
30309
68ba2afe
RO
303102010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30311
30312 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
30313 * config/i386/sol2-gas.h: New file.
30314 * config.gcc (i[34567]86-*-solaris2*): Use it.
30315
2d2e923f
MLI
303162010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
30317
30318 PR c/43128
30319 * c-typeck.c (ep_convert_and_check): New.
30320 (build_conditional_expr): Use it.
30321 (build_binary_op): Likewise.
30322
2e957792
JJ
303232010-02-24 Jakub Jelinek <jakub@redhat.com>
30324
a46368b2
JJ
30325 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
30326
2e957792
JJ
30327 PR debug/43150
30328 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
30329 bounds even for -O+.
30330 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
30331 expr needs to have DECL_NAME set.
30332
12a54f54
NC
303332010-02-24 Nick Clifton <nickc@redhat.com>
30334
30335 * config/mep/mep.c: Include gimple.h.
30336 (mep_function_uses_sp): Delete unused function.
30337 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
30338 parameters. Use unsigned integers to count args. Return a
30339 NULL_RTX instead of an error_mark_node. Toidy up formatting.
30340
8f40ad50
JJ
303412010-02-23 Jakub Jelinek <jakub@redhat.com>
30342
30343 PR target/43107
30344 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
30345 greater or equal to nelt instead of 2 * nelt.
30346 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
30347 with nelt - 1.
30348
a3b20e90
JM
303492010-02-23 Jason Merrill <jason@redhat.com>
30350
3adcf52c
JM
30351 PR debug/42800
30352 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
30353 in cfun->local_decls even if they have register types.
30354
a3b20e90
JM
30355 PR c++/42837
30356 * stor-layout.c (place_field): Don't warn about unnecessary
30357 DECL_PACKED if the type is packed.
30358
5ead99fa
JJ
303592010-02-23 Jakub Jelinek <jakub@redhat.com>
30360
30361 PR target/43139
30362 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
30363 GOTOFF relocs, even when the base reg isn't pic pointer.
30364
2a8e30fb
MM
303652010-02-23 Michael Matz <matz@suse.de>
30366
30367 PR debug/43077
30368 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
30369 (expand_gimple_basic_block): Generate and use debug temps if there
30370 are debug uses left after the last real use of TERed ssa names.
30371 Unlink debug immediate uses when they are expanded.
30372
38170f34
MLI
303732010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
30374
30375 PR 43123
30376 * config/i386/i386.c (override_options): Reorganise to provide
30377 better error messages.
30378
0f9c8f56
SP
303792010-02-22 Sebastian Pop <sebastian.pop@amd.com>
30380
30381 PR middle-end/43083
30382 * graphite-scop-detection.c (create_single_exit_edge): Move
30383 the call to find_single_exit_edge to....
30384 (create_sese_edges): ...here. Don't handle multiple edges
30385 exiting the function.
30386 (build_graphite_scops): Don't handle multiple edges
30387 exiting the function.
30388
303892010-02-22 Sebastian Pop <sebastian.pop@amd.com>
30390
30391 PR middle-end/43097
30392 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
30393 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
30394
303952010-02-22 Sebastian Pop <sebastian.pop@amd.com>
30396
30397 PR middle-end/43026
30398 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
30399
a98c2819
MLI
304002010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
30401
30402 PR c++/43126
30403 * c-typeck.c (convert_arguments): Print declaration location.
30404 * c-common.c (validate_nargs): Rename as
30405 builtin_function_validate_nargs.
30406 (check_builtin_function_arguments): Update.
30407
ea2edf88
RG
304082010-02-22 Richard Guenther <rguenther@suse.de>
30409
30410 PR lto/43045
30411 * tree-inline.c (declare_return_variable): Use the type of
30412 the call stmt lhs if available.
30413
669887fc
DS
304142010-02-22 Duncan Sands <baldrick@free.fr>
30415
30416 * passes.c (register_pass): Always consider all pass lists when
30417 ref_pass_instance_number is zero.
30418
9efc83f4
RG
304192010-02-22 Richard Guenther <rguenther@suse.de>
30420
30421 PR tree-optimization/42749
30422 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
30423 parameter. Do arithmetic in the original type.
30424 (update_accumulator_with_ops): Likewise.
30425 (adjust_accumulator_values): Adjust.
30426
0a88561f
AK
304272010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30428
30429 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
30430 (QI to BLKmode splitter): New splitter.
30431
5c91eb02
L
304322010-02-22 H.J. Lu <hongjiu.lu@intel.com>
30433
30434 * config/i386/i386.c (initial_ix86_tune_features): Turn on
30435 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
30436
69e3b47f
RG
304372010-02-22 Richard Guenther <rguenther@suse.de>
30438
30439 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
5c91eb02 30440
45df0e43
HPN
304412010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
30442
30443 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
30444 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
30445 ($(T)crti.o, $(T)crtn.o): Remove rules.
30446
72bd130e
TB
304472010-02-21 Tobias Burnus <burnus@net-b.de>
30448
30449 PR fortran/35259
30450 * doc/invoke.texi (-fassociative-math): Document that this
30451 option is automatically enabled for Fortran.
30452
878ee0ab
DM
304532010-02-20 David S. Miller <davem@davemloft.net>
30454
30455 * configure.ac: Test if linker and assembler properly support
30456 GOTDATA_OP relocations.
30457 * configure: Rebuild.
30458 * config.in: Likewise.
30459 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
30460 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
30461 (movsi_high_pic): Likewise.
30462 (movdi_lo_sum_pic): Likewise.
30463 (movdi_high_pic): Likewise.
30464 (movsi_pic_gotdata_op): New pattern.
30465 (movdi_pic_gotdata_op): Likewise.
30466 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
30467 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
02d43000 30468
78c201a4
UB
304692010-02-20 Uros Bizjak <ubizjak@gmail.com>
30470
30471 PR target/43067
30472 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
30473 attribute to ssemul.
30474 (xop_mulv2div2di3_high): Ditto.
30475
17251338
MLI
304762010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
30477
30478 PR c++/35669
30479 * c.opt (Wconversion-null): New option.
30480 * doc/invoke.texi (Wconversion-null): Document.
30481
e7a84854
MLI
304822010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
30483
30484 * common.opt (Wlarger-than-): Add Undocumented.
78c201a4 30485
f233f7ed
MS
304862010-02-19 Mike Stump <mikestump@comcast.net>
30487
30488 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
30489
d88900d7
JM
304902010-02-19 Jason Merrill <jason@redhat.com>
30491
30492 PR target/40332
30493 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
30494 * configure: Likewise.
30495
715a4e08
AM
304962010-02-20 Alan Modra <amodra@gmail.com>
30497
30498 PR middle-end/42344
30499 * cgraph.h (cgraph_make_decl_local): Declare.
30500 * cgraph.c (cgraph_make_decl_local): New function.
30501 (cgraph_make_node_local): Use it.
30502 * cgraphunit.c (cgraph_function_versioning): Likewise.
30503 * ipa.c (function_and_variable_visibility): Likewise.
30504
ad3b056c
JJ
305052010-02-19 Jakub Jelinek <jakub@redhat.com>
30506
30507 PR bootstrap/43121
30508 * except.c (sjlj_emit_function_enter): Don't call
30509 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
30510 directly.
30511 * rtl.h (add_reg_br_prob_note): Remove prototype.
30512
58076e21
MLI
305132010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
30514
30515 PR 41779
30516 * c-common.c (conversion_warning): Remove widening conversions
30517 before checking the conversion of integers to reals.
30518
b42186f1
MS
305192010-02-19 Mike Stump <mikestump@comcast.net>
30520
c387e067
MS
30521 PR middle-end/43125
30522 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
30523
b42186f1
MS
30524 PR objc/43061
30525 * cgraphunit.c (process_function_and_variable_attributes): Check
30526 DECL_PRESERVE_P instead of looking up attribute "used".
30527 * ipa-pure-const.c (check_decl): Likewise.
30528 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
30529 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
30530 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
30531 instead of attribute "used".
30532 * config/sol2-c.c (solaris_pragma_init): Likewise.
30533 (solaris_pragma_fini): Likewise.
30534
8ac074e8
JJ
305352010-02-19 Jakub Jelinek <jakub@redhat.com>
30536
25c0cad4
JJ
30537 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
30538 Use XCNEW instead of xcalloc.
30539 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
30540 XNEW instead of xmalloc.
30541 (get_fields): Use XNEWVEC instead of xmalloc.
30542
e19bcb67
JJ
30543 PR debug/43084
30544 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
30545 populate vars array.
30546 (create_new_general_access): For debug stmts just reset value.
30547 (get_stmt_accesses): For accesses within debug stmts just record them
30548 using add_access_to_acc_sites instead of preventing the peeling or
30549 counting them as accesses.
30550
8ac074e8
JJ
30551 PR middle-end/42233
30552 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
30553
c7da0354
RG
305542010-02-19 Richard Guenther <rguenther@suse.de>
30555
30556 PR tree-optimization/42916
30557 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
30558 instructions.
30559
e5dfb95f
AS
305602010-02-19 Andreas Schwab <schwab@linux-m68k.org>
30561
30562 * configure.ac: Replace all uses of changequote in macro arguments
30563 with proper quoting.
30564
2bdd49f4
JJ
305652010-02-19 Jakub Jelinek <jakub@redhat.com>
30566
30567 PR middle-end/42233
30568 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
30569
604d0dbc
RG
305702010-02-19 Richard Guenther <rguenther@suse.de>
30571
30572 PR tree-optimization/42944
30573 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
30574 test for aliasing with errno.
30575
554cf330
JJ
305762010-02-19 Jakub Jelinek <jakub@redhat.com>
30577
40e90eac
JJ
30578 PR middle-end/42233
30579 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
30580 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
30581 * dojump.c: Include output.h.
30582 (inv): New inline function.
30583 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
30584 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
30585 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
30586 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
30587 argument, pass it down to other calls.
30588 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
30589 add REG_BR_PROB note to the conditional jump.
30590 * cfgexpand.c (add_reg_br_prob_note): Removed.
30591 (expand_gimple_cond): Don't call it, add the probability
30592 as last argument to jumpif_1/jumpifnot_1.
30593 * Makefile.in (dojump.o): Depend on output.h.
30594 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
30595 callers.
30596 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
30597 * stmt.c (do_jump_if_equal): Likewise.
30598 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
30599 * loop-unswitch.c (compare_and_jump_seq): Likewise.
30600 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
30601 Likewise.
30602 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
30603 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
30604 jumpifnot_1 callers.
30605 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
30606 callers.
30607 (store_expr): Adjust jumpifnot caller.
30608 (store_constructor): Adjust jumpif caller.
30609
554cf330
JJ
30610 PR middle-end/42233
30611 * gimplify.c (gimple_boolify): For __builtin_expect call
30612 gimple_boolify also on its first argument.
30613
1a242e3c
UB
306142010-02-18 Uros Bizjak <ubizjak@gmail.com>
30615
30616 * configure.ac (gnu-unique-object): Wrap regexps using [] in
30617 changequote block.
30618 (__stack_chk_fail): Ditto. Remove quadrigraphs.
30619 * configure: Regenerated.
30620
86866b28
UW
306212010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30622
30623 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
30624 lang_hooks.types_compatible_p instead of comptypes.
30625
f4a4b582 306262010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
8168ccc0
SH
30627
30628 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
30629 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
30630 if __prefer_thumb__ is defined.
30631
746e119f
MJ
306322010-02-18 Martin Jambor <mjambor@suse.cz>
30633
30634 PR tree-optimization/43066
30635 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
30636 array with zero-sized element type.
30637
82cf0c8c
JJ
306382010-02-18 Jakub Jelinek <jakub@redhat.com>
30639
30640 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
30641 rtx, allocate struct var_loc_node here and return it to the
30642 caller, and only if it is actually needed.
30643 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
30644 move it earlier and return immediately if it returns NULL.
30645
ccb265d6
MP
306462010-02-17 Mikael Pettersson <mikpe@it.uu.se>
30647
30648 * config/sparc/gas.h: New file. Restore
30649 TARGET_ASM_NAMED_SECTION to its ELF default.
30650 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
30651 check !HAVE_GNU_AS.
30652 * config/sparc/sparc.c (sparc_elf_asm_named_section):
30653 Likewise. Add ATTRIBUTE_UNUSED to prototype.
30654 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
30655 after sparc/sysv4.h.
30656
a30f3def
DK
306572010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
30658
30659 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
30660
2f6c5b27
SB
306612010-02-17 Steven Bosscher <steven@gcc.gnu.org>
30662
30663 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
30664 patterns from predicated pattern.
30665
b5e33e04
UB
306662010-02-17 Uros Bizjak <ubizjak@gmail.com>
30667
30668 PR target/43103
30669 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
30670 for insn mnemonic suffix.
30671
a95740b3
RG
306722010-02-17 Richard Guenther <rguenther@suse.de>
30673
30674 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
30675 to loop PHI nodes.
30676
169e464e
JJ
306772010-02-17 Jakub Jelinek <jakub@redhat.com>
30678
30679 PR debug/42918
30680 * caller-save.c (save_call_clobbered_regs): If BB ends with
30681 a DEBUG_INSN, move any notes in between last real insn and the last
30682 DEBUG_INSN after the last DEBUG_INSN.
30683
5498b6d2
JR
306842010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
30685
30686 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
30687 Fix return type. Fix argument type. Explain meaning of return value.
30688
b09bae68
RG
306892010-02-16 Richard Guenther <rguenther@suse.de>
30690
30691 PR tree-optimization/41043
a691bb08 30692 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
b09bae68
RG
30693 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
30694 statements ...
30695 (vrp_visit_phi_node): ... but only for loop PHI nodes.
30696
d5dceab8 306972010-02-16 Ira Rosen <irar@il.ibm.com>
99f51320
IR
30698
30699 PR tree-optimization/43074
30700 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
30701 * tree-vect-loop.c (vect_analyze_loop_operations): Add
30702 vectorizable cycles in hybrid SLP check.
30703 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
30704
f47e08d9
RG
307052010-02-16 Richard Guenther <rguenther@suse.de>
30706
b5e33e04 30707 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
f47e08d9
RG
30708 (true_dependence): If memrefs_conflict_p computes must-alias
30709 trust it. Move TBAA check after offset-based disambiguation.
30710 (canon_true_dependence): Likewise.
30711
ec8c3978
JJ
307122010-02-16 Alexandre Oliva <aoliva@redhat.com>
30713
30714 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
30715 * doc/invoke.texi: Document it.
30716 * var-tracking.c: Include toplev.h and params.h.
30717 (vt_find_locations): Return bool indicating success. Compute
30718 hash sizes unconditionally. Check new parameter, report.
30719 (variable_tracking_main_1): Check vt_find_locations results and
30720 retry. Renamed from...
30721 (variable_tracking_main): ... this. New wrapper to preserve
30722 flag_var_tracking_assignments.
30723 * Makefile.in (var-tracking.o): Adjust dependencies.
30724
f4a4b582
EB
307252010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
30726 Jakub Jelinek <jakub@redhat.com>
3bf6b403
JH
30727
30728 PR target/42854
30729 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
30730 if weak_import attribute is present.
30731 * config/darwin.c (machopic_select_section): Likewise.
30732
a934eb2d
JR
307332010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
30734
30735 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
30736 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
30737 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
30738 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
30739
74ca3393
EB
30740 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
30741 types.
a934eb2d
JR
30742
30743 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
30744 Fix argument types.
30745
30746 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
30747 Rewrite text to refer to the names.
30748
02edd2f6
SP
307492010-02-15 Sebastian Pop <sebastian.pop@amd.com>
30750
30751 * config/i386/i386-builtin-types.def
30752 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
30753 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
30754 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
30755 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
30756 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
30757 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
30758 IX86_BUILTIN_VPERMIL2PS256.
30759 (MULTI_ARG_4_DF2_DI_I): Defined.
30760 (MULTI_ARG_4_DF2_DI_I1): Defined.
30761 (MULTI_ARG_4_SF2_SI_I): Defined.
30762 (MULTI_ARG_4_SF2_SI_I1): Defined.
30763 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
30764 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
30765 __builtin_ia32_vpermil2ps256.
30766 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30767 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30768 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
30769 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30770 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30771 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
30772 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
30773 CODE_FOR_xop_vpermil2v8sf3.
30774 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
30775 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
30776 * config/i386/xopintrin.h (_mm_permute2_pd): New.
30777 (_mm256_permute2_pd): New.
30778 (_mm_permute2_ps): New.
30779 (_mm256_permute2_ps): New.
30780
ac447f25
NC
307812010-02-15 Nick Clifton <nickc@redhat.com>
30782
d079b87f 30783 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
ac447f25
NC
30784 boolean parameters. Use emit_jump_insn when emitting a pop
30785 instruction containing a return insn.
b5e33e04
UB
30786 (push): Use 'true' rather than '1' as second parameter to F.
30787 (h8300_expand_prologue): Likewise.
30788 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
30789 (h8300_expand_epilogue): Likewise.
ac447f25 30790
313333a6
RG
307912010-02-15 Richard Guenther <rguenther@suse.de>
30792
30793 PR middle-end/43068
30794 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
30795 if that is zero.
30796
653958e8
NC
307972010-02-15 Nick Clifton <nickc@redhat.com>
30798
30799 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
30800 delta.
30801
0f667308
MP
308022010-02-14 Marco Poletti <poletti.marco@gmail.com>
30803
30804 * intl.c (fake_ngettext): New function.
30805 * intl.h (fake_ngettext): Declare.
30806 (ngettext): Define macro.
30807 * collect2.c (notice_translated): New function.
30808 (main): Use notice_translated and ngettext.
30809 * collect2.h (notice_translated): Declare.
30810
912eb5a4
SB
308112010-02-14 Steven Bosscher <steven@gcc.gnu.org>
30812
30813 * reorg.c (delete_computation): Comment fixes.
30814 * caller-save.c (setup_save_areas): Idem.
30815 * sel-sched-dump.c (dump_lv_set): Idem.
30816 * rtl.def: Idem.
30817
244e6c5c
AK
308182010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30819
30820 * config/s390/s390.c (s390_sched_init): New function.
30821 (TARGET_SCHED_INIT): Target hook defined.
30822
9ab99933
DK
308232010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
30824 Jack Howarth <howarth@bromo.med.uc.edu>
f4a4b582 30825 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9ab99933
DK
30826
30827 PR target/42982
30828 Partial revert of unintended change in fix for PR41605.
30829 * config/darwin.h: Fix typo.
30830 * config/darwin9.h: Same.
30831
ed5bdeb6
JJ
308322010-02-11 Jakub Jelinek <jakub@redhat.com>
30833
30834 * c-pch.c (pch_init): Clear v.
30835
f432760f
SP
308362010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30837
30838 PR middle-end/42930
30839 * graphite-scop-detection.c (graphite_can_represent_scev): Call
30840 graphite_can_represent_init for MULT_EXPR.
30841
308422010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30843
30844 PR middle-end/42914
30845 PR middle-end/42530
30846 * graphite-sese-to-poly.c (remove_phi): New.
30847 (translate_scalar_reduction_to_array): Call remove_phi.
30848
308492010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30850
30851 PR middle-end/42771
30852 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
30853 * graphite-clast-to-gimple.h (gloog): Update declaration.
30854 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
30855 * graphite-poly.h (struct poly_bb): Add missing comments.
30856 (struct scop): Add poly_scop_p field.
30857 (POLY_SCOP_P): New.
30858 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
30859 * graphite.c (graphite_transform_loops): Build the polyhedral
30860 representation for each scop before code generation.
30861 * sese.c (rename_variables_in_operand): Removed.
30862 (rename_variables_in_expr): Return the renamed expression.
30863 (rename_sese_parameters): New.
30864 * sese.h (rename_sese_parameters): Declared.
30865
6d892147
RG
308662010-02-11 Richard Guenther <rguenther@suse.de>
30867
30868 PR tree-optimization/42998
30869 * tree-ssa-pre.c (create_expression_by_pieces): Treat
30870 POINTER_PLUS_EXPR properly.
30871
04eadb13
SP
308722010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30873 Changpeng Fang <changpeng.fang@amd.com>
30874
30875 PR middle-end/40886
30876 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
30877 the cost of an IV candidate when the IV is used in a test against zero.
30878
30879 * gcc.dg/tree-ssa/ivopts-3.c: New.
30880
91753e21
RG
308812010-02-11 Richard Guenther <rguenther@suse.de>
30882
30883 PR lto/41664
30884 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
30885 pointer-vs-decl case by swapping refs. Handle some cases
30886 of pointer-vs-decl disambiguations more conservatively.
30887 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
30888 to false after expanding.
30889
f68df07c
RG
308902010-02-11 Richard Guenther <rguenther@suse.de>
30891
30892 PR driver/43021
30893 * gcc.c (process_command): Handle LTO file@offset case more
30894 appropriately.
30895
d2d36740
JJ
308962010-02-11 Jakub Jelinek <jakub@redhat.com>
30897
8f6aedba
JJ
30898 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
30899 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
30900 of DEBUG_INSNs.
30901 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
30902
d2d36740
JJ
30903 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
30904 if MEM's mode size isn't DWARF2_ADDR_SIZE.
30905 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
30906 Optimize eq/ne comparisons when both arguments are known to be
30907 zero-extended.
30908 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
30909 Don't mask operands unnecessarily if they are known to be already
30910 zero-extended.
30911
56592e03
VM
309122010-02-10 Vladimir Makarov <vmakarov@redhat.com>
30913
30914 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
30915 instead of loop.
30916
5418fe84
RG
309172010-02-10 Richard Guenther <rguenther@suse.de>
30918
30919 PR tree-optimization/43017
30920 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
30921 for wrapping signed arithmetic.
30922
92e8e53a
JJ
309232010-02-10 Jakub Jelinek <jakub@redhat.com>
30924
30925 PR debug/43010
30926 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
30927 if no debug info should be emitted for it.
30928
bd55b817
KK
309292010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
30930
30931 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
30932 note when flag_exceptions is set.
30933
2ab43a52
DS
309342010-02-10 Duncan Sands <baldrick@free.fr>
30935
30936 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
30937
d977cb9c
RG
309382010-02-10 Richard Guenther <rguenther@suse.de>
30939
30940 PR c/43007
30941 * tree.c (get_unwidened): Handle constants.
30942 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
30943
563cb662
MJ
309442010-02-10 Martin Jambor <mjambor@suse.cz>
30945
30946 PR lto/42985
30947 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
30948 check for variable argument counts independently.
30949
9e3c399e
CB
309502010-02-10 Christian Bruel <christian.bruel@st.com>
30951
30952 PR target/42841
30953 * config/sh/sh.c (find_barrier): Increase length for non delayed
30954 conditional branches.
01305d24 30955
e938feb4
CB
309562010-02-10 Christian Bruel <christian.bruel@st.com>
30957
30958 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
01305d24 30959
cbb1ab10
JJ
309602010-02-10 Jakub Jelinek <jakub@redhat.com>
30961
30962 * builtins.c (set_builtin_user_assembler_name): Also handle
30963 ffs if int is smaller than word.
30964
b09495c1
VM
309652010-02-09 Vladimir Makarov <vmakarov@redhat.com>
30966
30967 PR middle-end/42973
30968 * ira-conflicts.c (get_dup): Remove.
30969 (process_reg_shuffles): Add new parameter. Use it as an
30970 additional guard for copy generation.
30971 (add_insn_allocno_copies): Rewrite.
30972
57257f0d
AM
309732010-02-09 Alexander Monakov <amonakov@ispras.ru>
30974
30975 * common.opt (fsched2-use-traces): Preserved for backward
30976 compatibility.
30977 * doc/invoke.texi: Remove the documentation about option
30978 -fsched2-use-traces.
30979 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
30980 flag_sched2_use_traces.
30981 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
30982 the backward compatibility flag section.
30983
72d182d3
RG
309842010-02-09 Richard Guenther <rguenther@suse.de>
30985
30986 PR tree-optimization/43008
30987 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
30988 make HEAP variables initialized from global memory if they
30989 are not known builtin functions.
30990 (find_func_aliases): Adjust.
30991
9605a606
RG
309922010-02-09 Richard Guenther <rguenther@suse.de>
30993
30994 PR tree-optimization/43000
30995 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
30996 arithmetic manually.
30997
8d9eca14
JJ
309982010-02-08 Jakub Jelinek <jakub@redhat.com>
30999
31000 PR tree-optimization/42931
31001 * tree-loop-linear.c (try_interchange_loops): Don't call
31002 double_int_mul if estimated_loop_iterations failed.
31003
d3545524
MJ
310042010-02-08 Martin Jambor <mjambor@suse.cz>
31005
31006 PR middle-end/42898
31007 * tree-sra.c (build_accesses_from_assign): Do not mark in
31008 should_scalarize_away_bitmap if stmt has volatile ops.
31009 (sra_modify_assign): Do not process assigns piecemeal if if stmt
31010 has volatile ops.
31011
8a9a2486
JR
310122010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
31013
31014 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
31015
7bf25dd6
AN
310162010-02-07 Adam Nemet <adambnmet@gmail.com>
31017
31018 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
31019 before the pattern.
31020
a46edbff
AP
310212010-02-07 Andrew Pinski <pinskia@gmail.com>
31022
31023 PR middle-end/42946
31024 * df-core.c (df_finish_pass): Change type of saved_flags to int.
31025
86da963e
SP
310262010-02-07 Sebastian Pop <sebastian.pop@amd.com>
31027
31028 PR middle-end/42988
31029 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
31030 to unknown_dependence.
31031 (graphite_legal_transform_dr): Handle the unknown_dependence.
31032 (graphite_carried_dependence_level_k): Same.
31033
310342010-02-07 Sebastian Pop <sebastian.pop@amd.com>
31035
31036 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
31037
997ac87b
RG
310382010-02-07 Richard Guenther <rguenther@suse.de>
31039
31040 PR middle-end/42991
31041 * expr.c (get_inner_reference): Always initialize *pbitsize.
31042
cb6b911a
RG
310432010-02-07 Richard Guenther <rguenther@suse.de>
31044
31045 PR middle-end/42956
31046 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
31047 new ARRAY_REFs on variable size element or minimal index arrays.
31048 Complete.
31049 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
31050 gimple_fold_indirect_ref.
31051
b761dbe6
RE
310522010-02-06 Richard Earnshaw <rearnsha@arm.com>
31053
31054 PR target/42957
31055 * arm.c (arm_override_options): Just return if the user has specified
31056 an invalid fpu name.
31057
b2469a9b
JM
310582010-02-03 Jason Merrill <jason@redhat.com>
31059
31060 PR c++/42870
31061 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
31062 i386_pe_maybe_record_exported_symbol.
31063
1f65437d
SE
310642010-02-05 Steve Ellcey <sje@cup.hp.com>
31065
31066 PR target/42924
31067 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31068 (pa_delegitimize_address): New function.
31069
126edba2
OS
310702010-02-05 Ozkan Sezer <sezeroz@gmail.com>
31071
31072 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
31073 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
31074
532df904
RG
310752010-02-05 Richard Guenther <rguenther@suse.de>
31076
31077 PR lto/42762
31078 * lto-streamer-in.c (get_resolution): Deal with references
31079 to undefined functions.
31080
5c95f07b
RG
310812010-02-05 Richard Guenther <rguenther@suse.de>
31082
b5e33e04 31083 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
5c95f07b
RG
31084 (fold_const_aggregate_ref): Likewise.
31085 (ccp_fold_stmt): Substitute loads.
31086 (maybe_fold_reference): Verify types before substituting.
31087 Unshare properly.
31088 (fold_gimple_assign): Unshare properly.
b5e33e04 31089 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
5c95f07b 31090
64aa00b1
NF
310912010-02-05 Nathan Froyd <froydnj@codesourcery.com>
31092
31093 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
31094 for rs6000_gen_cell_microcode.
31095
b0f19292
RG
310962010-02-04 Richard Guenther <rguenther@suse.de>
31097
31098 PR rtl-optimization/42952
31099 * dse.c (const_or_frame_p): Remove MEM handling.
31100
f7eb48b5
NC
311012010-02-04 Nick Clifton <nickc@redhat.com>
31102
31103 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
31104 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
31105 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
31106 (mn10300_asm_output_mi_thunk): New function.
31107 (mn10300_can_output_mu_thunk): New function.
31108 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
31109 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
31110 (FUNCTION_ARG): Delete incorrect comment.
31111
2aac1924
JM
311122010-02-03 Jason Merrill <jason@redhat.com>
31113
31114 PR c++/40138
31115 * fold-const.c (operand_equal_p): Handle erroneous types.
31116
3e5f930f 311172010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
07738b87
KP
31118
31119 * config/h8300/h8300.md (can_delay): Fix attibute condition.
31120
a7f3e500
VM
311212010-02-03 Vladimir Makarov <vmakarov@redhat.com>
31122
3e5f930f 31123 PR rtl-optimization/42941
a7f3e500
VM
31124 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
31125 of xmalloc.
31126
59d49708
JM
311272010-02-03 Jason Merrill <jason@redhat.com>
31128
31129 PR c++/35652
31130 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
31131
5440c0e7
AO
311322010-02-03 Alexandre Oliva <aoliva@redhat.com>
31133
31134 PR debug/42896
02d43000 31135 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
5440c0e7
AO
31136 (cselib_reset_table): Renamed from...
31137 (cselib_reset_table_with_next_value): ... this.
31138 (cselib_get_next_uid): Renamed from...
31139 (cselib_get_next_unknown_value): ... this.
31140 * cselib.c (next_uid): Renamed from...
31141 (next_unknown_value): ... this.
31142 (cselib_clear_table): Adjust.
31143 (cselib_reset_table): Adjust. Renamed from...
31144 (cselib_reset_table_with_next_value): ... this.
31145 (cselib_get_next_uid): Adjust. Renamed from...
31146 (cselib_get_next_unknown_value): ... this.
31147 (get_value_hash): Use hash.
31148 (cselib_hash_rtx): Likewise.
31149 (new_cselib_val): Adjust. Set and dump uid.
31150 (cselib_lookup_mem): Pass next_uid as hash.
31151 (cselib_subst_to_values): Likewise.
31152 (cselib_log_lookup): Dump uid.
31153 (cselib_lookup): Pass next_uid as hash. Adjust.
31154 (cselib_process_insn): Adjust.
31155 (cselib_init): Initialize next_uid.
31156 (cselib_finish): Adjust.
31157 (dump_cselib_table): Likewise.
31158 * dse.c (canon_address): Dump value uid.
31159 * print-rtl.c (print_rtx): Print value uid.
31160 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
31161 (dvuid): New type.
31162 (dv_uid): New function, sort of renamed from...
31163 (dv_htab_hash): ... this, reimplemented in terms of it and...
31164 (dv_uid2hash): ... this. New.
31165 (variable_htab_eq): Drop excess assertions.
31166 (tie_break_pointers): Removed.
31167 (canon_value_cmp): Compare uids.
31168 (variable_post_merge_New_vals): Print uids.
31169 (vt_add_function_parameters): Adjust.
31170 (vt_initialize): Reset table. Adjust.
31171
e3c70387
RG
311722010-02-03 Richard Guenther <rguenther@suse.de>
31173
31174 PR tree-optimization/42944
b5e33e04 31175 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
e3c70387
RG
31176 (call_may_clobber_ref_p_1): Likewise. Properly handle
31177 malloc and calloc clobbering errno.
31178
4cad6dba
SB
311792010-02-03 Steven Bosscher <steven@gcc.gnu.org>
31180
31181 * doc/invoke.texi: Fix name of sched1 dump.
31182
31183 * opts.c (decode_options): Set flag_tree_switch_conversion
31184 only conditionally on optimize >= 2.
31185
31186 * gcse.c: Assorted comment fixes in pass description.
31187
693ee8cf
AG
311882010-02-03 Anthony Green <green@moxielogic.com>
31189
31190 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
31191 nop padding in order to maintain alignment of storage location of
31192 target function address.
31193 (moxie_trampoline_init): Store target function address at newly
31194 aligned location.
31195 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
31196 to 32.
31197 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
31198
bf8e3b77
RG
311992010-02-03 Richard Guenther <rguenther@suse.de>
31200
31201 PR middle-end/42927
31202 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
31203
bde17fdc
RO
312042010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31205
31206 * config.gcc: Reenable check for obsolete targets.
31207 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
31208 mips-sgi-irix6.[0-4]*.
31209
c9c27b72
NC
312102010-02-02 Nick Clifton <nickc@redhat.com>
31211
31212 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
31213 constant size of 4 as being the same as 0.
31214 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
31215 can take values in the range 0..4.
31216
fc15bd03
JH
312172010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
31218
31219 PR java/41991
31220 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
31221 as _darwin10_Unwind_FindEnclosingFunction().
31222 * libgcc-libsystem.ver: New.
31223
6eeea7a7
VM
312242010-02-01 Vladimir Makarov <vmakarov@redhat.com>
31225
31226 PR target/41399
31227 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
31228 implicitly set registers.
31229
87d05b44
RE
312302010-02-01 Richard Earnshaw <rearnsha@arm.com>
31231
31232 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
31233 (arm_override_options): Allow automatic selection of the thread
31234 pointer register if thumb2.
31235 (legitimize_pic_address): Improve code sequences for Thumb2.
31236 (arm_call_tls_get_addr): Likewise.
31237 (legitimize_tls_address): Likewise.
31238 * arm.md (pic_load_addr_arm): Delete. Replace with ...
31239 (pic_load_addr_32bit): ... this. New named pattern.
31240 * thumb2.md (pic_load_addr_thumb2): Delete.
31241 (pic_load_dot_plus_four): Delete.
31242 (tls_load_dot_plus_four): New named pattern.
31243
cb717ac4
RO
312442010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31245
31246 PR libgomp/29986
31247 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
31248 Document fix for TLS bug.
31249
44f89620
RG
312502010-01-31 Richard Guenther <rguenther@suse.de>
31251
31252 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
31253 conservatively correct.
31254
747b0aed
JDA
312552010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31256
31257 PR target/42850
31258 Revert:
31259 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31260
31261 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
31262
362c6d2f
KG
312632010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
31264
31265 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
31266
8370a62a
KT
312672010-01-31 Kai Tietz <kai.tietz@onevision.com>
31268
31269 * config.gcc: Adjust order of makefile fragments for mingw targets.
31270
61c7cbf8
RG
312712010-01-31 Richard Guenther <rguenther@suse.de>
31272
31273 PR middle-end/42898
31274 * gimplify.c (gimplify_init_constructor): For volatile LHS
31275 initialize a temporary.
31276
b0a69d20
MK
312772010-01-31 Matthias Klose <doko@ubuntu.com>
31278
31279 * configure.ac: Fix __stack_chk_fail check for cross builds configured
31280 --with-headers
31281 * configure: Regenerate.
31282
55eb4dab
EB
312832010-01-29 Eric Botcazou <ebotcazou@adacore.com>
31284
31285 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
31286 the same alias set and their sizes different constantness.
31287 (aliasing_component_refs_p): Revert 2009-10-24 change.
31288
f9e06dbc
RO
312892010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31290
31291 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
31292 unused.
31293
eb6b98c7
RG
312942010-01-29 Richard Guenther <rguenther@suse.de>
31295
31296 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
31297 Assert we successfully updated the call.
31298
c23cd1d6
JJ
312992010-01-29 Jakub Jelinek <jakub@redhat.com>
31300
31301 PR rtl-optimization/42889
31302 * df.h (df_set_bb_dirty_nonlr): New prototype.
31303 * df-core.c (df_set_bb_dirty_nonlr): New function.
31304 * df-scan.c (df_insn_rescan): Call it instead of
31305 df_set_bb_dirty for DEBUG_INSNs.
31306
38bc76da
RG
313072010-01-29 Richard Guenther <rguenther@suse.de>
31308
31309 PR middle-end/37448
31310 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
31311 quadratic behavior in most cases.
31312
d819472d
UB
313132010-01-28 Uros Bizjak <ubizjak@gmail.com>
31314
31315 PR target/42891
31316 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
31317 in the call to gen_x86_movsicc_0_m1.
31318
3ed7d068
RG
313192010-01-28 Richard Guenther <rguenther@suse.de>
31320
31321 PR tree-optimization/42871
01305d24 31322 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
3ed7d068 31323
830bc550
RG
313242010-01-28 Richard Guenther <rguenther@suse.de>
31325
31326 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
31327 into call arguments.
31328
28e5ca15
RB
313292010-01-28 Richard Guenther <rguenther@suse.de>
31330
31331 PR middle-end/42883
31332 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
31333 the forwarder if the destination is an EH landing pad.
31334
313352010-01-28 Razya Ladelsky <razya@il.ibm.com>
8adfe01d 31336
d819472d 31337 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
8adfe01d
RL
31338 block list passed to gimple_duplicate_sese_tail.
31339 (parallelize_loops): Avoid parallelization when the function
31340 has_nonlocal_label.
31341 Avoid parallelization when the preheader is IRREDUCIBLE.
31342 Try to optimize when estimated_loop_iterations_int is unresolved.
31343 Add the loop's location to the dump file.
28e5ca15 31344 * tree-cfg.c (add_phi_args_after_redirect): Remove.
8adfe01d
RL
31345 (gimple_duplicate_sese_tail): Remove the check for the latch.
31346 Redirect nexits to the exit block.
31347 Remove handling of the incoming edges to the latch.
31348 Redirect the backedge from the copied latch to the exit bb.
31349
3d952fb7
MM
313502010-01-28 Michael Matz <matz@suse.de>
31351
31352 PR target/42881
31353 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
31354 Wrap force_reg into a sequence, emit it before user.
31355
4fc2b1aa
ST
313562010-01-28 Stephen Thomas <stephen.thomas@arm.com>
31357
31358 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
31359 (arm_rev): New.
31360 (arm_legacy_rev): Likewise.
31361 (thumb_legacy_rev): Likewise.
31362
0f277ad4
JJ
313632010-01-27 Jakub Jelinek <jakub@redhat.com>
31364
31365 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
31366 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
31367 on MEM's address failed, try avoid_constant_pool_reference and
31368 recurse if it returned something different.
31369 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
31370 address, try avoid_constant_pool_reference and recurse if it
31371 returned something different.
31372 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
31373 address and avoid_constant_pool_reference returned something
31374 different, don't set have_address.
31375
fb4cbb9f
AO
313762010-01-27 Alexandre Oliva <aoliva@redhat.com>
31377
31378 PR debug/42861
31379 * var-tracking.c (val_store): Add modified argument, obey it.
31380 Adjust callers.
31381 (count_uses): Move down logging of main.
31382 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
31383 don't need resolution.
31384 (emit_notes_in_bb): Likewise.
31385
e87da263
RG
313862010-01-27 Richard Guenther <rguenther@suse.de>
31387
31388 PR middle-end/42878
31389 * tree-inline.c (remap_decl): Delay remapping of SSA name
31390 default definitions until we need them.
31391
c6d99cad
JJ
313922010-01-27 Jakub Jelinek <jakub@redhat.com>
31393
9a78eb71
JJ
31394 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31395 (rs6000_delegitimize_address): New function.
31396
e8d8f497
JJ
31397 * config/s390/s390.c (s390_delegitimize_address): Call
31398 delegitimize_mem_from_attrs.
31399
c6d99cad
JJ
31400 PR middle-end/42874
31401 * tree-inline.c (cannot_copy_type_1): Removed.
31402 (copy_forbidden): Don't forbid copying of functions containing
31403 records/unions with variable length fields.
31404
4f6fee0f
CB
314052010-01-27 Christian Bruel <christian.bruel@st.com>
31406
31407 Revert:
31408 PR target/42841
31409 * config/sh/sh.c (find_barrier): Increase length for non delayed
31410 conditional branches.
d819472d 31411
cdf6bfb7
MK
314122010-01-27 Matthias Klose <doko@ubuntu.com>
31413
31414 * configure.ac (gnu-unique-object): Fix ldd version check.
31415 * configure: Regenerate.
31416
31b21739
RO
314172010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31418
31419 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
31420 HAVE_GNU_AS value.
31421 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
31422 Test for HAVE_GNU_AS value.
31423
dc4f0670
RO
314242010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31425
31426 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
31427 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
31428 INT64_TYPE): Define.
31429 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
31430 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
31431 INT_LEAST64_TYPE): Define.
31432 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
31433 UINT_LEAST64_TYPE): Define.
31434 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
31435 INT_FAST64_TYPE): Define.
31436 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
31437 UINT_FAST64_TYPE): Define.
31438 (INTMAX_TYPE, UINTMAX_TYPE): Define.
31439 (INTPTR_TYPE, UINTPTR_TYPE): Define.
31440 (SIG_ATOMIC_TYPE): Define.
31441
a099f7d4
RG
314422010-01-26 Richard Guenther <rguenther@suse.de>
31443
31444 * df-scan.c (df_scan_set_bb_info): Remove assert.
31445 (df_insn_rescan_debug_internal): Merge asserts.
31446 (df_install_ref): Likewise.
31447 (df_mark_reg): Use bitmap_set_range.
31448 (df_hard_reg_used_p): Remove assert.
31449 (df_hard_reg_used_count): Likewise.
31450
0d9b0371
RG
314512010-01-26 Richard Guenther <rguenther@suse.de>
31452
31453 PR rtl-optimization/42685
31454 * web.c (web_main): Ignore DEBUG_INSNs.
31455
7a241624
JR
314562010-01-26 Joern Rennecke <amylaar@spamcop.net>
31457
31458 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
31459
31460 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
31461 Fix types of fndecl and arglist parameters.
31462
3333cd50
RG
314632010-01-26 Richard Guenther <rguenther@suse.de>
31464
31465 PR middle-end/42806
31466 * tree-eh.c (unsplit_eh): Skip debug insns.
31467
7f657dde
RG
314682010-01-26 Richard Guenther <rguenther@suse.de>
31469
31470 PR tree-optimization/42250
31471 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
31472
057dd91d
JJ
314732010-01-26 Jakub Jelinek <jakub@redhat.com>
31474
31475 PR fortran/42866
31476 * omp-low.c (expand_omp_sections): Only use single_pred if
31477 l2_bb is single_pred_p.
31478
69b18163
CB
314792010-01-25 Christian Bruel <christian.bruel@st.com>
31480
31481 PR target/42841
31482 * config/sh/sh.c (find_barrier): Increase length for non delayed
31483 conditional branches.
31484 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
31485
00f88f07
DM
314862010-01-24 David S. Miller <davem@davemloft.net>
31487
31b21739 31488 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
00f88f07 31489 define if not using GAS.
31b21739 31490 * config/sparc/sparc.c (sparc_elf_asm_named_section):
00f88f07
DM
31491 Likewise. Delete SECTION_MERGE code, which is only applicable
31492 when using GAS.
31493
d147cbd9
MM
314942010-01-24 Mark Mitchell <mark@codesourcery.com>
31495
31496 PR c++/42748
31497 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
31498 mangling of va_list in system headers.
31499
a90352a0
TM
315002010-01-23 Toon Moene <toon@moene.org>
31501
31502 * tree-predcom.c (combine_chains): Return NULL, not false.
31503
e96d7dd7
JR
315042010-01-23 Joern Rennecke <amylaar@spamcop.net>
31505
31506 * tree-loop-distribution.c (distribute_loop): Fix declaration and
31507 initialization of variable res to agree with return type.
31508
65c0a517
SE
315092010-01-22 Steve Ellcey <sje@cup.hp.com>
31510
31511 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
31512 * tree-sra.c: Add include of expr.h.
31513
c47987fa
JJ
315142010-01-22 Jakub Jelinek <jakub@redhat.com>
31515
31516 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
31517 insert the debug stmt on the single non-EH edge from the stmt.
31518
002cda0a
RH
315192010-01-22 Richard Henderson <rth@redhat.com>
31520
31521 PR tree-opt/42833
31522 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
31523 the RHS until after generate_subtree_copies has insertted its
31524 code before the current statement.
31525
728d406c
JR
315262010-01-22 Joern Rennecke <amylaar@spamcop.net>
31527
31528 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
31529
45bbb86d
JR
31530 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
31531
7744b697
MJ
315322010-01-21 Martin Jambor <mjambor@suse.cz>
31533
31534 PR tree-optimization/42585
31535 * tree-sra.c (struct access): New field grp_total_scalarization.
31536 (dump_access): Dump the new field.
31537 (should_scalarize_away_bitmap): New variable.
31538 (cannot_scalarize_away_bitmap): Likewise.
31539 (sra_initialize): Allocate new bitmaps.
31540 (sra_deinitialize): Free new bitmaps.
31541 (create_access_1): New function.
31542 (create_access): Parts moved to create_access_1.
31543 (type_consists_of_records_p): New function.
31544 (completely_scalarize_record): Likewise.
31545 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
31546 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
31547 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
31548 access.
31549 (analyze_all_variable_accesses): Completely scalarize small eligible
31550 records.
31551
fff08961
MJ
315522010-01-21 Martin Jambor <mjambor@suse.cz>
31553
31554 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
31555
a288b143
AH
315562010-01-21 Andrew Haley <aph@redhat.com>
31557
d819472d
UB
31558 * gcc.c (process_command): Move lang_specific_driver before
31559 setting cc_libexec_prefix.
a288b143 31560
4e62a017
RG
315612010-01-21 Richard Guenther <rguenther@suse.de>
31562
31563 PR middle-end/19988
31564 * fold-const.c (negate_expr_p): Pretend only negative
31565 real constants are easily negatable.
31566
ebf0bf7f
JJ
315672010-01-20 Janis Johnson <janis187@us.ibm.com>
31568 Jason Merrill <jason@redhat.com>
31569
31570 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
31571 (TYPE_TRANSPARENT_AGGR): this, for union and record.
31572 * calls.c (initialize argument_information): Handle it.
31573 * c-common.c (handle_transparent_union_attribute): Use new name.
31574 * c-decl.c (finish_struct): Ditto.
31575 * c-typeck.c (type_lists_compatible_p): Ditto.
31576 (convert_for_assignment): Use new name and also handle record.
31577 * function.c (aggregate_value_p): Handle it.
31578 (pass_by_reference): Ditto.
31579 (assign_parm_data_types): Ditto.
31580 * print-tree.c (print_node): Ditto.
31581 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
31582 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
31583 * tree.c (first_field): New fn.
31584
907c6efd
DK
315852010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
31586
31587 PR target/42818
31588 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
31589 even when linking statically, for now.
31590
f827f659
AO
315912010-01-20 Alexandre Oliva <aoliva@redhat.com>
31592
31593 PR debug/42715
31594 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
31595 without a cselib val.
31596 (count_uses): Accept MO_VAL_SET with no val on stores.
31597 (add_stores): Likewise.
31598
a85caf9e
JJ
315992010-01-20 Jakub Jelinek <jakub@redhat.com>
31600
31601 * var-tracking.c (check_value_val): Add a compile time assertion.
31602 (dv_is_decl_p): Simplify.
31603 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
31604 gcc_assert if ENABLE_CHECKING.
31605
4a4d4c08
AO
316062010-01-20 Alexandre Oliva <aoliva@redhat.com>
31607
31608 PR debug/42782
31609 * var-tracking.c: Include tree-flow.h.
31610 (mem_dies_at_call): New.
31611 (dataflow_set_preserve_mem_locs): Use it.
31612 (dataflow_set_remove_mem_locs): Likewise.
31613 (dump_var): Renamed from dump_variable. Adjust all callers.
31614 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
31615 * Makefile.in (var-tracking.o): Adjust deps.
31616
50e87e30
JR
316172010-01-20 Joern Rennecke <amylaar@spamcop.net>
31618
31619 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
31620
e9a8afaa
RG
316212010-01-20 Richard Guenther <rguenther@suse.de>
31622
31623 PR tree-optimization/42717
31624 * tree-ssa-dce.c (get_live_post_dom): Remove.
31625 (forward_edge_to_pdom): Take an arbitrary edge to copy
31626 degenerate PHI args from.
31627 (remove_dead_stmt): Use the first post-dominator even if it
31628 does not contain live statements as redirection destination.
31629
be2fd187
RG
316302010-01-20 Richard Guenther <rguenther@suse.de>
31631
31632 * tree-inline.c (estimate_num_insns): Handle EH builtins.
31633
1124098b
JJ
316342010-01-20 Jakub Jelinek <jakub@redhat.com>
31635
31636 * sel-sched.c (create_speculation_check): Remove set but not used
31637 variable twin.
31638 (try_transformation_cache): Remove set but not used variable ds.
31639 (calculate_privileged_insns): Remove set but not used variables
31640 cur_insn and min_spec_insn.
31641 (find_best_expr): Remove set but not used variable avail_n.
31642 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
31643 variable e.
31644 * cgraphunit.c (assemble_thunk): Remove set but not used variable
31645 false_label.
31646 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
31647 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
31648 new_scop_exit_edge.
31649
83a5ef25
FW
316502010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
31651
31652 PR bootstrap/42786
31653 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
31654 cpu types. Add support for *-sse3 cpu types.
31655 (x86_64-*-*): Ditto.
31656
b5c0899b
JJ
316572010-01-20 Jakub Jelinek <jakub@redhat.com>
31658
31659 PR middle-end/42803
31660 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
31661 argument, call initializer_constant_valid_p_1 instead of
31662 initializer_constant_valid_p, pass CACHE to it, return NULL
31663 immediately if first call returns NULL.
31664 (initializer_constant_valid_p_1): New function.
31665 (initializer_constant_valid_p): Use it.
31666
5f8f3f94
TQ
316672010-01-20 Thomas Quinot <quinot@adacore.com>
31668
31669 * tree.def (PLACEHOLDER_EXPR): Fix comment.
31670
80c35b40
JJ
316712010-01-20 Jakub Jelinek <jakub@redhat.com>
31672
31673 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
31674 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
31675 (loc_list_from_tree): Don't handle unsigned division. Handle
31676 signed modulo using DW_OP_{over,over,div,mul,minus}.
31677 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
31678 modulo instead of signed.
31679
c72ea086
DD
316802010-01-20 DJ Delorie <dj@redhat.com>
31681
31682 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
31683 (Fpa): Pass it
31684 (h8300_emit_stack_adjustment): Propogate it.
31685 (push): Pass it.
31686 (h8300_expand_prologue): Likewise.
31687 (h8300_expand_epilogue): Likewise.
31688
b61b1f17
MM
316892010-01-19 Michael Matz <matz@suse.de>
31690
31691 PR tree-optimization/41783
31692 * tree-data-ref.c (toplevel): Include flags.h.
31693 (dump_data_dependence_relation): Also dump the inputs if the
31694 result will be unknown.
31695 (split_constant_offset_1): Look through some conversions.
31696 * tree-predcom.c (determine_roots_comp): Restart a new chain if
31697 the offset from last element is too large.
31698 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
31699 (reassociate_to_the_same_stmt): Handle vector registers.
31700 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
31701 (e.g. conversions).
31b21739 31702 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
b61b1f17
MM
31703 wide_prolog_niters argument, emit widening instructions.
31704 (vect_do_peeling_for_alignment): Adjust caller, use widened
31705 variant of the iteration cound.
31706 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
31707
b3d7e191
RR
317082010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31709
b61b1f17
MM
31710 PR target/38697
31711 * config/arm/neon-testgen.m (emit_automatics): New parameter
b3d7e191
RR
31712 features. Adjust for Fixed_return_reg feature.
31713 (test_intrinsic): Call emit_automatics with new feature.
b61b1f17 31714 * config/arm/neon.ml: Update copyright years.
b3d7e191
RR
31715 (features): New Fixed_return_reg feature.
31716 (ops): Update feature for Vget_low.
31717
2178b0f9
JJ
317182010-01-19 Jakub Jelinek <jakub@redhat.com>
31719
d6600130
JJ
31720 PR tree-optimization/42719
31721 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
31722 stmt uses.
31723
2178b0f9
JJ
31724 PR debug/42728
31725 * fwprop.c (all_uses_available_at): Return false if def_set dest
31726 is a REG that is used in def_insn.
31727
ab7e224a
JR
317282010-01-19 Joern Rennecke <amylaar@spamcop.net>
31729
31730 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
31731
31732 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
31733 Add argument names.
31734
31735 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
31736
f7154d49
JR
31737 * target.h (struct gcc_target) <secondary_reload>: Change type
31738 of last argument to secondary_reload_info *.
31739
f249b405
UB
317402010-01-18 Uros Bizjak <ubizjak@gmail.com>
31741
31742 PR target/42774
31743 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
31744 memory references with unaligned offsets. Remove CQImode handling.
31745 (unaligned_memory_operand): Return 1 for memory references with
31746 unaligned offsets. Remove CQImode handling.
31747
e23817b3
RG
317482010-01-18 Richard Guenther <rguenther@suse.de>
31749
31750 PR middle-end/39954
31751 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
31752 builtin calls.
31753
1cfd38be
RG
317542010-01-18 Richard Guenther <rguenther@suse.de>
31755
31756 PR tree-optimization/42781
31757 * tree-ssa-structalias.c (find_what_var_points_to): Skip
b5e33e04 31758 restrict processing only if the original variable was artificial.
1cfd38be 31759
72392b81
JR
317602010-01-18 Joern Rennecke <amylaar@spamcop.net>
31761
31762 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
31763 find number of popped argument bytes.
31764
31765 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
31766 Fix the text that describes the return value for invalid insns.
31767
31768 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
31769
31770 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
31771 Clarify what 'cost of the -dependence' is. Fix quoting.
31772
0678ade0
JR
31773 * toplev.c (default_get_pch_validity): Rename argument to "sz".
31774 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
31775
e5165811
JJ
317762010-01-17 Jakub Jelinek <jakub@redhat.com>
31777
31778 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31779 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
31780
3b3f318a
RG
317812010-01-17 Richard Guenther <rguenther@suse.de>
31782
31783 PR middle-end/42248
31784 * function.c (split_complex_args): Take a VEC to modify.
31785 (assign_parms_augmented_arg_list): Build a VEC instead of
31786 a chain of PARM_DECLs.
31787 (assign_parms_unsplit_complex): Take a VEC of arguments.
31788 Do not fixup unmodified parms.
31789 (assign_parms): Deal with the VEC.
31790 (gimplify_parameters): Likewise.
31791
8eacd016
RG
317922010-01-17 Richard Guenther <rguenther@suse.de>
31793
31794 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
31795 node existence check.
31796 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
31797 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
31798 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
31799 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
31800 (gimple_execute_on_growing_pred): Likewise.
31801
9adf0570
RG
318022010-01-17 Richard Guenther <rguenther@suse.de>
31803
31804 PR tree-optimization/42773
31805 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
31806 (compute_antic_aux): Likewise.
31807 (compute_partial_antic_aux): Likewise.
31808
a90110c3
JZ
318092010-01-17 Jie Zhang <jie.zhang@analog.com>
31810
31811 PR debug/42767
31812 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
31813 and US_TRUNCATE.
31814
914d25dc
JR
318152010-01-17 Joern Rennecke <amylaar@spamcop.net>
31816
31817 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
31818 appearance.
31819
31820 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
31821 Fix markup for strict argument.
31822
31823 (TARGET_SCHED_REORDER2): Fix argument types.
31824
31825 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
31826 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
31827
31828 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
31829 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
31830
31831 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
31832 Add argument name.
31833
31834 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
31835 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
31836 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
31837 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
31838 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
31839
31840 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
31841
31842 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
31843
31844 (TARGET_ASM_RELOC_RW_MASK): Add return type.
31845 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
31846
31847 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
31848
31849 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
31850 Use prototype.
31851
31852 (TARGET_ASM_NAMED_SECTION): Fix argument list.
31853
31854 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
31855 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
31856
31857 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
31858
31859 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
31860
31861 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
31862 referring to it. Fix language.
31863
31864 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
31865
31866 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
31867
31868 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
31869
31870 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
31871
31872 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
31873 '@var{stream}. Remove stray 'and'.
31874
31875 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
31876
31877 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
31878
31879 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
31880
31b21739 31881 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
914d25dc
JR
31882 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
31883
31884 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
31885 Fix description of return value.
31886 Rename argument "sz" to "len."
31887
31888 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
31889 Clarify meaning of 'true' return value.
31890
31891 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
31892
31893 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
31894 rep_mode versus mode_rep.
31895
31896 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
31897
31898 (TARGET_BUILTIN_DECL): Fix name.
31899
31900 (TARGET_COMMUTATIVE_P): Fix type of first argument.
31901
31902 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
31903
31904 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
31905
31906 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
31907
31908 (TARGET_RELAXED_ORDERING): Use @deftypevr.
31909
31910 (TARGET_GET_DRAP_RTX): Note that this is a hook.
31911 Clarify language.
31912
5eb7ce91
JR
31913 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
31914 Rename argument tm_fn to md_fn.
31915
d2143a2f
JR
31916 (TARGET_OPTION_PRINT): Fix argument list.
31917
8f7fd2da
HJ
319182010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
31919
31920 PR target/42664
31921 * config/i386/i386.c (ix86_fixup_binary_operands):
31922 Revert FMA4 fixup of operands.
31923
2fdb618d
RW
319242010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
31925
31926 PR gcc/42525
31927 * Makefile.in (write_entries_to_file, install-plugin):
31928 Use \012 instead of \n with tr.
31929
636cf8b1
RS
319302010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
31931
31932 * configure.ac (HAVE_AS_REF): New C macro.
31933 * configure: Regenerate.
31934 * config.in: Likewise.
31935 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
31936 if HAVE_AS_REF.
31937 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
31938 if HAVE_AS_REF.
31939
b6fd8800
JR
319402010-01-16 Joern Rennecke <amylaar@spamcop.net>
31941
31942 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
31943
31944 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
31945
31946 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
31947
31948 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
31949
31950 (TARGET_IN_SMALL_DATA_P): Fix argument type.
31951
31952 (TARGET_BINDS_LOCAL_P): Fix argument type.
31953
31954 (TARGET_ASM_FILE_END): Use prototype.
31955
31956 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
31957
31958 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
31959
31960 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
31961
31962 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
31963
31964 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
31965 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
31966
31967 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
31968 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
31969
31970 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
31971 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
31972 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
31973 (TARGET_ADDR_SPACE_CONVERT): Likewise.
31974
31975 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
31976
31977 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
31978
31979 (TARGET_INIT_BUILTINS): Use prototype.
31980
31981 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
31982 Put 'const char *' in braces. Fix parameter types.
31983 (TARGET_INVALID_CONVERSION): Fix parameter types.
31984 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
31985 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
31986
31987 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
31988 Fix argument type.
31989
31990 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
31991
31992 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
31993
9ddb66ef
JR
319942010-01-15 Joern Rennecke <amylaar@spamcop.net>
31995
31996 * doc/tm.texi (TARGET_HELP): Fix return type.
31997
31998 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
31999 in braces. Fix argument types.
32000
32001 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
32002
32003 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
32004
32005 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
32006
32007 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
32008 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
32009
32010 (TARGET_MANGLE_TYPE): Fix argument types.
32011
32012 (TARGET_IRA_COVER_CLASSES): Use prototype.
32013
32014 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
32015
32016 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
32017
32018 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
32019
32020 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
32021
32022 (TARGET_CALLEE_COPIES): Fix argument types.
32023
32024 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
32025
32026 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
32027
32028 (TARGET_FUNCTION_VALUE): Fix argument types.
32029
32030 (TARGET_RETURN_IN_MSB): Fix argument type.
32031
32032 (TARGET_RETURN_IN_MEMORY): Fix argument types.
32033
32034 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
32035
32036 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
32037
32038 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
32039 agree with return type.
32040
32041 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
32042
4a62494d
JY
320432010-01-15 Jing Yu <jingyu@google.com>
32044
32045 PR rtl-optimization/42691
32046 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
32047 a pseudo to a constant and are merged, and adjust comments.
32048
a1b5171b
EB
320492010-01-15 Eric Botcazou <ebotcazou@adacore.com>
32050
32051 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
32052
1197e789
RG
320532010-01-15 Richard Guenther <rguenther@suse.de>
32054
32055 PR middle-end/42739
32056 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
32057 labels of computed or non-local gotos to the destination.
32058 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
32059 landing pad label is the first label.
32060
cbe80ff8
RG
320612010-01-15 Richard Guenther <rguenther@suse.de>
32062
32063 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
32064
c919858d
MM
320652010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
32066
32067 PR target/42747
32068 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
32069 to allow generation of the xssqrtdp instruction on power7.
32070 (sqrtdf2_fpr): Ditto.
32071
5b1cbe14
JJ
320722010-01-14 Jakub Jelinek <jakub@redhat.com>
32073
ef5d1181
JJ
32074 PR middle-end/42674
32075 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
32076 functions with noreturn attribute.
32077
5b1cbe14
JJ
32078 PR c++/42608
32079 * varasm.c (declare_weak): Add weak attribute to decl if it
32080 doesn't have one already.
32081 (assemble_external): Only add decls to weak_decls if they also
32082 have weak attribute.
32083
7d2a8452
AO
320842010-01-14 Alexandre Oliva <aoliva@redhat.com>
32085
32086 * var-tracking.c (var_reg_delete): Don't delete the association
32087 between REGs and values or one-part variables if the register
32088 isn't clobbered.
32089
d17af147
JJ
320902010-01-14 Jakub Jelinek <jakub@redhat.com>
32091
32092 PR debug/42657
32093 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
32094 because its first operand is a non-localized variable.
32095
2f3cdcf5
MJ
320962010-01-14 Martin Jambor <mjambor@suse.cz>
32097
32098 PR tree-optimization/42706
32099 * tree-sra.c (encountered_recursive_call): New variable.
32100 (encountered_unchangable_recursive_call): Likewise.
32101 (sra_initialize): Initialize both new variables.
32102 (callsite_has_enough_arguments_p): New function.
32103 (scan_function): Call decl and flags check only for IPA-SRA, check
32104 whether there is a recursive call and whether it has enough arguments.
32105 (all_callers_have_enough_arguments_p): New function.
32106 (convert_callers): Look for recursive calls only when
32107 encountered_recursive_call is set.
32108 (ipa_early_sra): Bail out either if
32109 !all_callers_have_enough_arguments_p or
32110 encountered_unchangable_recursive_call.
32111
c02e2d5c
AM
321122010-01-14 Alexander Monakov <amonakov@ispras.ru>
32113
32114 * sel-sched.c: Add 2010 to copyright years.
32115 * sel-sched-ir.c: Likewise.
32116 * sel-sched-ir.h: Likewise.
32117
92e97cdd
MJ
321182010-01-14 Martin Jambor <mjambor@suse.cz>
32119
32120 PR tree-optimization/42714
32121 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
32122 constructors specially.
32123
a0463099
AK
321242010-01-14 Andi Kleen <ak@linux.intel.com>
32125
32126 * config/i386/drivers-i386.c (detect_caches_intel):
32127 Add l2sizekb parameter and fill in.
32128 (host_detect_local_cpu): Add l2sizekb, fill in.
32129 Add Atom small cache heuristic.
32130
321312010-01-14 Andi Kleen <ak@linux.intel.com>
32132
32133 * config/i386/drivers-i386.c (detect_caches_cpuid4):
32134 Add level3 parameter and fill in.
32135 (detect_caches_intel): Handle level3 cache.
32136
321372010-01-14 Andi Kleen <ak@linux.intel.com>
32138
32139 * config/i386/drivers-i386.c (host_detect_local_cpu):
32140 Fix core duo detection.
32141
321422010-01-14 Andi Kleen <ak@linux.intel.com>
32143
32144 * config/i386/drivers-i386.c (host_detect_local_cpu):
32145 Fix Atom detection.
32146
dd6739e3
AM
321472010-01-14 Alexander Monakov <amonakov@ispras.ru>
32148
32149 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
32150 (rs6000_variable_issue_1): this. Use...
32151 (rs6000_variable_issue): here. Reimplement. Print debug info.
32152
7898b93b
AM
321532010-01-14 Alexander Monakov <amonakov@ispras.ru>
32154
a0463099
AK
32155 * sel-sched-ir.c (sel_restore_other_notes): Rename to
32156 sel_restore_notes. Update all callers. Call reemit_notes
32157 for all insns.
7898b93b 32158
65b659ff
AB
321592010-01-14 Andrey Belevantsev <abel@ispras.ru>
32160
32161 PR rtl-optimization/42246
32162 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
32163 loops.
32164
c6486552
AB
321652010-01-14 Andrey Belevantsev <abel@ispras.ru>
32166
32167 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
32168 all successors is the same as number of successors in current region.
32169
f07013eb
AM
321702010-01-14 Alexander Monakov <amonakov@ispras.ru>
32171
32172 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
32173 to rename is not separable. Otherwise check that its LHS is not NULL.
32174
a9ced68b
AM
321752010-01-14 Alexander Monakov <amonakov@ispras.ru>
32176
32177 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
32178
0c94f956
AM
321792010-01-14 Alexander Monakov <amonakov@ispras.ru>
32180
32181 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
32182 available registers when failed to discover LHS register class.
32183 Fix indentation. Update comment.
32184
136e01a3
AB
321852010-01-14 Andrey Belevantsev <abel@ispras.ru>
32186 Alexander Monakov <amonakov@ispras.ru>
32187
32188 PR rtl-optimization/42389
32189 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
32190 to can_issue_more.
32191 (advance_state_on_fence): Likewise.
32192 (sel_target_adjust_priority): Print debug output only when
32193 sched_verbose >= 4, not 2.
32194 (get_expr_cost): Do not issue all unique insns on the next cycle.
32195 (fill_insns): Initialize can_issue_more from the value saved
32196 with the fence.
32197 * sel-sched-ir.c (flist_add): New parameter issue_more.
32198 Init FENCE_ISSUE_MORE with it.
32199 (merge_fences): Likewise.
32200 (init_fences): Update call to flist_add.
32201 (add_to_fences, add_clean_fence_to_fences)
32202 (add_dirty_fence_to_fences): Likewise.
32203 (move_fence_to_fences): Update call to merge_fences.
32204 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
32205 sched groups.
32206 * sel-sched-ir.h (struct _fence): New field issue_more.
32207 (FENCE_ISSUE_MORE): New accessor macro.
32208
762bffba
AB
322092010-01-14 Andrey Belevantsev <abel@ispras.ru>
32210
32211 PR rtl-optimization/42388
32212 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
32213 that have no predecessors nor successors. Do not call move_bb_info
32214 for empty blocks outside of current region.
32215
14f30b87
AM
322162010-01-14 Alexander Monakov <amonakov@ispras.ru>
32217
32218 PR rtl-optimization/42294
32219 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
32220 * sel-sched.c (move_exprs_to_boundary): Transitively add all
32221 originators' originators.
32222
8ec4d0ad
AM
322232010-01-14 Alexander Monakov <amonakov@ispras.ru>
32224
32225 PR rtl-optimization/39453
32226 PR rtl-optimization/42246
32227 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
32228 for pipelining_p.
32229 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
32230
b59ab570
AM
322312010-01-14 Andrey Belevantsev <abel@ispras.ru>
32232 Alexander Monakov <amonakov@ispras.ru>
32233
32234 PR middle-end/42245
32235 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
32236 (maybe_tidy_empty_bb): ... here. Make static. Add new
32237 argument. Update all callers.
32238 (tidy_control_flow): ... and here. Recompute topological order
32239 of basic blocks in region if necessary.
32240 (sel_redirect_edge_and_branch): Change return type. Return true
32241 if topological order might have been invalidated.
32242 (purge_empty_blocks): Export and move from...
32243 * sel-sched.c (purge_empty_blocks): ... here.
32244 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
c02e2d5c 32245 (maybe_tidy_empty_bb): Delete prototype.
b59ab570
AM
32246 (purge_empty_blocks): Declare.
32247
f4a4b582 322482010-01-14 Andrey Belevantsev <abel@ispras.ru>
0666ff4e 32249
b59ab570 32250 PR rtl-optimization/42249
0666ff4e
AB
32251 * sel-sched.c (try_replace_dest_reg): When chosen register
32252 and original register is the same, do not bail out early, but
32253 still check all original insns for validity of replacing destination
32254 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
32255 in this case.
32256
5f8d5023
JJ
322572010-01-14 Jakub Jelinek <jakub@redhat.com>
32258
32259 PR c/42721
a0463099 32260 Port from no-undefined-overflow branch:
5f8d5023
JJ
32261 2009-03-09 Richard Guenther <rguenther@suse.de>
32262
a0463099 32263 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
5f8d5023 32264
429c98c9
RG
322652010-01-14 Richard Guenther <rguenther@suse.de>
32266
32267 PR lto/42665
b5e33e04 32268 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
429c98c9 32269
cd481d83
IR
322702010-01-14 Ira Rosen <irar@il.ibm.com>
32271
32272 PR tree-optimization/42709
32273 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
32274 as scalar type in creation of constant vector operand.
32275
453897b4
RW
322762010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32277
32278 PR testsuite/42414
32279 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
32280 (check-parallel-%): Match `testsuite' directory component only
32281 at the end.
32282
5bc69b92
SZ
322832010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
32284
32285 PR translation/39521
32286 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
32287 strings with _().
32288
5db959b6
RG
322892010-01-13 Richard Guenther <rguenther@suse.de>
32290
32291 PR tree-optimization/42730
32292 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
32293 offset zero.
32294
9540f5ef
SE
322952010-01-13 Steve Ellcey <sje@cup.hp.com>
32296
32297 PR target/pr42542
32298 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
32299 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
32300 them signed.
32301
84fb8ff5
BS
323022010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
32303
32304 * config/bfin/libgcc-bfin.ver: Regenerate based on current
32305 libgcc-std.ver. Add entries for ___smulsi3_highpart and
32306 ___umulsi3_highpart.
32307
6cca15ea
BS
32308 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
32309 rather than schedule_insns if the pass is enabled.
32310
19656178
MJ
323112010-01-13 Martin Jambor <mjambor@suse.cz>
32312
32313 PR tree-optimization/42704
32314 * tree-sra.c (sra_modify_assign): Do not delete assignments to
32315 SSA_NAMEs.
32316
6dc93b16
MJ
323172010-01-13 Martin Jambor <mjambor@suse.cz>
32318
32319 PR tree-optimization/42703
32320 * tree-sra.c (analyze_access_subtree): Check that we can build a
32321 reference to the original data within the aggregate.
32322
1d21a8e5
RG
323232010-01-13 Richard Guenther <rguenther@suse.de>
32324
32325 PR tree-optimization/42705
b5e33e04 32326 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
1d21a8e5 32327
48f30f62
RG
323282010-01-13 Richard Guenther <rguenther@suse.de>
32329
32330 PR middle-end/42716
32331 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
32332
9e73c690
JJ
323332010-01-13 Jakub Jelinek <jakub@redhat.com>
32334
32335 PR debug/41371
32336 * var-tracking.c (values_to_unmark): New variable.
32337 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
32338 values_to_unmark vector. Moved body to...
32339 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
32340 instead queue it into values_to_unmark vector.
32341 (vt_find_locations): Free values_to_unmark vector.
32342
dc2f28c5
WG
323432010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
32344
32345 * config/s390/s390.c (override_options): Set
32346 default of max-pending-list-length to 256
32347
688a482d
RG
323482010-01-13 Richard Guenther <rguenther@suse.de>
32349
32350 PR lto/42678
32351 * tree-pass.h (PROP_gimple_lcx): New.
32352 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
32353 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
32354 before the final cleanup_eh.
32355 (dump_properties): Dump PROP_gimple_lcx.
32356 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
32357 (tree_lower_complex_O0): Remove.
32358 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
32359 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
32360 tree_lower_complex, schedule TODO_update_ssa.
32361 * lto-streamer-out.c (output_function): Stream the functions
32362 properties.
32363 * lto-streamer-in.c (input_function): Likewise.
32364 (lto_read_body): Do not override them here.
32365
e616f54d
JM
323662010-01-12 Joseph Myers <joseph@codesourcery.com>
32367
32368 PR c/42708
32369 * c-typeck.c (build_c_cast): Fold value cast to union type before
32370 wrapping it in a CONSTRUCTOR.
32371
b4ab701f
JJ
323722010-01-12 Jakub Jelinek <jakub@redhat.com>
32373
32374 PR rtl-optimization/42699
32375 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
32376 involved.
32377
4dde664f
RO
323782010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32379
32380 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32381 SUBTARGET_WARN_UNUSED_SPEC): Move ...
32382 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32383 SUBTARGET_WARN_UNUSED_SPEC): ... here
32384 * config/mips/iris5.h (LIBGCC_SPEC): Define.
32385
24fe19c3
JB
323862010-01-12 Julian Brown <julian@codesourcery.com>
32387
a0463099 32388 * config/arm/neon-schedgen.ml (Utils): Don't try to
24fe19c3 32389 open missing module.
a0463099 32390 (find_with_result): New.
24fe19c3 32391
082ab5ff
JJ
323922010-01-12 Jakub Jelinek <jakub@redhat.com>
32393
4942b76b
JJ
32394 PR debug/42662
32395 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
32396 sharing when canonicalizing ({lt,ge}u (plus a b) b).
32397
082ab5ff
JJ
32398 PR tree-optimization/42645
32399 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
32400 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
32401 decl_map, set processing_debug_stmt to -1 and return name without
32402 any remapping.
32403
977f7997
DK
324042010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
32405
32406 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
32407 binutils version, and reword target configuration description.
32408
2685baa1
AH
324092010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
32410
a0463099 32411 * config/avr/avr.h (LINKER_NAME): Remove.
2685baa1 32412
3767f512
JJ
324132010-01-11 Janis Johnson <janis187@us.ibm.com>
32414
32415 PR target/42416
32416 * config/rs6000/rs6000.c (rs6000_override_options): On targets
32417 that support VSX, warn for -mno-altivec if vsx is not disabled,
32418 and disable vsx.
32419
f94e1d66
JM
324202010-01-11 Joseph Myers <joseph@codesourcery.com>
32421 Shujing Zhao <pearly.zhao@oracle.com>
a0463099 32422
f94e1d66
JM
32423 PR translation/42469
32424 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
32425 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
32426 character between option name and help text.
32427 * c.opt (imultilib): Likewise.
32428
06bfe1d0
RAE
324292010-01-10 Rafael Avila de Espindola <espindola@google.com>
32430
32431 * lto-streamer-out.c (output_unreferenced_globals): Output static
32432 variables.
32433
c21f33b6
SB
324342010-01-10 Steven Bosscher <steven@gcc.gnu.org>
32435
32436 PR rtl-optimization/42621
32437 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
32438 optimizing for size.
32439 (duplicate_computed_gotos): Remove now-redundant check.
32440
30ce157e
SE
324412010-01-10 Steve Ellcey <sje@cup.hp.com>
32442
32443 PR target/37454
32444 * configure.ac: Save and restore LDFLAGS and LIBS
32445 * configure: Regenerate.
32446
ab996409
RG
324472010-01-10 Richard Guenther <rguenther@suse.de>
32448
32449 PR middle-end/42667
32450 * builtins.c (fold_builtin_strlen): Add type argument and
32451 convert the resulting length to it.
32452 (fold_builtin_1): Adjust.
32453
7234a615
JJ
324542010-01-09 Jakub Jelinek <jakub@redhat.com>
32455
32456 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
32457 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
32458 1 insn.
32459 (num_insns_constant_wide): Adjust for that change.
32460
994ae26c
AO
324612010-01-09 Alexandre Oliva <aoliva@redhat.com>
32462
32463 PR debug/42631
32464 * web.c (union_defs): Add used argument, to combine uses of
32465 uninitialized regs.
32466 (entry_register): Adjust type and tests of used argument.
32467 (web_main): Widen used for new use. Pass it to union_defs.
32468 * df.h (union_defs): Adjust prototype.
32469
60c48e4c
AO
324702010-01-09 Alexandre Oliva <aoliva@redhat.com>
32471
32472 PR debug/42630
32473 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
32474 uses in new incoming argument. Free body.
32475 (reset_debug_uses_in_loop): New.
32476 (analyze_insn_to_expand_var): Call the latter if the former found
32477 anything. Fix whitespace. Reject invalid dest overlaps before
32478 going through all insns in the loop.
32479
bb956f3e
AO
324802010-01-09 Alexandre Oliva <aoliva@redhat.com>
32481
32482 PR debug/42629
32483 * haifa-sched.c (dying_use_p): Debug insns don't count.
32484
5de8da9b
AO
324852010-01-09 Alexandre Oliva <aoliva@redhat.com>
32486
32487 PR middle-end/42363
32488 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
32489 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
32490 (verify_gimple_call): Reject LHS in noreturn calls.
32491
684f25f4
AO
324922010-01-09 Alexandre Oliva <aoliva@redhat.com>
32493
32494 PR debug/42604
32495 PR debug/42395
32496 * tree-vect-loop-manip.c (adjust_info): New type.
32497 (adjust_vec): New pointer to vector.
32498 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
32499 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
32500 (slpeel_update_phis_for_duplicate_loop): Use them.
32501 (slpeel_update_phi_nodes_for_guard1): Likewise.
32502 (slpeel_update_phi_nodes_for_guard2): Likewise.
32503 (slpeel_tree_peel_loop_to_edge): Likewise.
32504 (vect_update_ivs_after_vectorizer): Likewise.
32505
0e00563c
AO
325062010-01-09 Alexandre Oliva <aoliva@redhat.com>
32507
32508 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
32509 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
32510
0ce659eb
AO
325112010-01-09 Alexandre Oliva <aoliva@redhat.com>
32512
32513 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
32514 bogus uninitialized warning.
32515
73c865fa
RG
325162010-01-09 Richard Guenther <rguenther@suse.de>
32517
32518 PR middle-end/42512
32519 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
32520 the evolution is compatible with the initial condition.
32521
bd5c3aa5
JJ
325222010-01-09 Jakub Jelinek <jakub@redhat.com>
32523
32524 * gcc.c (process_command): Update copyright notice dates.
32525 * gcov.c (print_version): Likewise.
32526 * gcov-dump.c (print_version): Likewise.
32527 * mips-tfile.c (main): Likewise.
32528 * mips-tdump.c (main): Likewise.
32529
58f0ea2f
AH
325302010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
32531
32532 PR target/41885
2685baa1 32533 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
58f0ea2f
AH
32534 (rotlhi3): Delete.
32535 (rotlhi3_8): Delete.
32536 (rotlsi3): Delete.
32537 (rotlsi3_8): Delete.
32538 (rotlsi3_16): Delete.
32539 (rotlsi3_24): Delete.
32540 (rotl<mode>3): New.
32541 (*rotw<mode>3): New.
32542 (*rotb<mode>3): New.
2685baa1 32543 * config/avr/avr.c (avr_rotate_bytes): New function.
a0463099 32544 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
58f0ea2f 32545
601fc26e
SE
325462010-01-08 Steve Ellcey <sje@cup.hp.com>
32547
32548 PR target/37454
32549 * configure.ac: Modify -rdynamic check.
32550 * configure: Regenerate.
32551
6a62ca52
DD
325522010-01-08 DJ Delorie <dj@redhat.com>
32553
32554 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
32555 register popping order.
32556
c59449fa
RG
325572010-01-08 Richard Guenther <rguenther@suse.de>
32558
32559 PR lto/42528
32560 * c.opt (fsigned-char): Also let LTO handle this option.
32561 (funsigned-char): Likewise.
32562
f68a75df
RG
325632010-01-07 Richard Guenther <rguenther@suse.de>
32564
32565 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
32566 (gimple_op): Likewise.
32567 (gimple_op_ptr): Likewise.
32568 (gimple_assign_set_lhs): Remove gcc_assert.
32569 (gimple_assign_set_rhs1): Likewise.
32570 (gimple_assign_set_rhs2): Likewise.
32571 (gimple_call_set_lhs): Likewise.
32572 (gimple_call_set_fn): Likewise.
32573 (gimple_call_set_fndecl): Likewise.
32574 (gimple_call_fndecl): Likewise.
32575 (gimple_call_return_type): Likewise.
32576 (gimple_call_set_chain): Likewise.
32577 (gimple_call_num_args): Likewise.
32578 (gimple_call_set_arg): Likewise.
32579 (gimple_cond_set_code): Likewise.
32580 (gimple_cond_set_lhs): Likewise.
32581 (gimple_cond_set_rhs): Likewise.
32582 (gimple_cond_set_true_label): Likewise.
32583 (gimple_cond_set_false_label): Likewise.
32584 (gimple_label_set_label): Likewise.
32585 (gimple_goto_set_dest): Likewise.
32586 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
32587 (gimple_debug_bind_get_value): Likewise.
32588 (gimple_debug_bind_get_value_ptr): Likewise.
32589 (gimple_debug_bind_set_var): Likewise.
32590 (gimple_debug_bind_set_value): Likewise.
32591 (gimple_debug_bind_reset_value): Likewise.
32592 (gimple_debug_bind_has_value_p): Likewise.
32593 (gimple_return_retval_ptr): Remove gcc_assert.
32594 (gimple_return_retval): Likewise.
32595 (gimple_return_set_retval): Likewise.
32596 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
32597 (safe_referenced_var_iterator): Remove.
32598 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
32599 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
32600 (fill_referenced_var_vec): Remove.
32601 (first_readonly_imm_use): Remove redundant gcc_assert.
32602 (phi_arg_index_from_use): Combine gcc_asserts.
32603 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
32604 (first_imm_use_stmt): Remove redundant gcc_assert.
32605 * tree-cfg.c (verify_gimple_call): Verify function and chain
32606 operands. Verify arguments.
32607 (verify_types_in_gimple_stmt): Verify condition code and labels.
32608
617531d9
RG
326092010-01-07 Richard Guenther <rguenther@suse.de>
32610
32611 PR tree-optimization/42641
32612 * sese.c (rename_map_elt_info): Use the SSA name version, do
32613 not hash pointers.
32614
4139c7ef
JJ
326152010-01-07 Jakub Jelinek <jakub@redhat.com>
32616
32617 PR tree-optimization/42625
32618 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
b5e33e04 32619 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
4139c7ef 32620
01094033
DS
326212010-01-07 Duncan Sands <baldrick@free.fr>
32622
32623 * Makefile.in (PLUGIN_HEADERS): Add version.h.
32624
4b9ed9aa
UB
326252010-01-07 Uros Bizjak <ubizjak@gmail.com>
32626
32627 PR target/42511
32628 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
32629 note itself is not function_invariant_p.
32630
f50f5566
SB
326312009-01-07 Steven Bosscher <steven@gcc.gnu.org>
32632
32633 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
32634 Do not add the DF_NOTE problem.
32635 * store-motion.c (execute_rtl_store_motion): Likewise.
32636
d05fe940
MJ
326372010-01-07 Martin Jambor <mjambor@suse.cz>
32638
32639 PR tree-optimization/42157
32640 * tree-sra.c (compare_access_positions): Stabilize sort if both
32641 accesses have integer types, return zero immediately if they are the
32642 same.
32643
e67271bd
RH
326442010-01-06 Richard Henderson <rth@redhat.com>
32645
32646 PR middle-end/41883
32647 * haifa-sched.c (add_to_note_list): Merge into ...
32648 (concat_note_lists): ... here, and ...
32649 (unlink_other_notes, rm_other_notes): Merge into...
32650 (remove_notes): ... here. Create REG_SAVE_NOTEs for
a0463099 32651 NOTE_INSN_EPILOGUE_BEG.
e67271bd 32652
6209a13e
RG
326532010-01-06 Richard Guenther <rguenther@suse.de>
32654
32655 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
32656 not inline regular functions into always-inline functions.
32657
5f75e477
NC
326582010-01-06 Nick Clifton <nickc@redhat.com>
32659
32660 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
32661 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
32662 used together.
32663 (OVERRIDE_OPTIONS): Delete.
32664 (OPTIMIZATION_OPTIONS): Define.
32665 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
32666 * config/rx/rx.c (rx_handle_option): Issue an error message if
32667 -mcpu=rx200 and -fpu are used together.
32668 (rx_set_optimization_options): New function. Issue an error
32669 message if an optimization attribute attempts to reset the FPU/
32670 math optimization pairing.
32671 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
32672 * config/rx/rx.opt: Set the default to 32-bit doubles.
32673 * config/rx/t-rx: Add multilibs for -nofpu option.
32674 * doc/invoke.texi: Update documentation of RX options.
32675
13de9095
RG
326762010-01-06 Richard Guenther <rguenther@suse.de>
32677
32678 * tree-ssa-pre.c (name_to_id): New global.
32679 (alloc_expression_id): Simplify SSA name handling.
32680 (lookup_expression_id): Likewise.
32681 (init_pre): Zero name_to_id.
32682 (fini_pre): Free it.
32683
786c3fbc
UB
326842010-01-06 Uros Bizjak <ubizjak@gmail.com>
32685
32686 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
32687
fa1a4144
L
326882010-01-05 H.J. Lu <hongjiu.lu@intel.com>
32689
32690 PR target/42542
32691 * config/i386/sse.md (smaxv2di3): New.
32692 (umaxv2di3): Likewise.
32693 (sminv2di3): Likewise.
32694 (uminv2di3): Likewise.
32695
208384fd
EB
326962010-01-05 Eric Botcazou <ebotcazou@adacore.com>
32697
32698 PR target/42564
32699 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
32700 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
32701 (legitimize_tls_address): Likewise.
32702 (sparc_tls_referenced_p): Likewise.
32703 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
32704 and adjust calls to legitimize_pic_address.
32705 (legitimate_constant_p) Use sparc_tls_referenced_p.
32706 (legitimate_pic_operand_p): Likewise.
32707 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
32708 (sparc_tls_symbol_ref_1): Delete.
32709 (sparc_tls_referenced_p): Make static, recognize specific patterns.
32710 (legitimize_tls_address): Make static, handle CONST patterns.
32711 (legitimize_pic_address): Make static, remove unused parameter and
32712 adjust recursive calls.
32713 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
32714 and adjust call to legitimize_pic_address.
32715 (sparc_output_mi_thunk): Likewise.
32716
4b9ed9aa 327172010-01-05 Paolo Bonzini <bonzini@gnu.rg>
43d4b97d
L
32718 H.J. Lu <hongjiu.lu@intel.com>
32719
32720 PR target/42542
32721 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
32722 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
32723 operands to make them signed.
32724
931c6b3e
UB
32725 Revert:
32726 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
32727
32728 PR target/42542
32729 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32730 GTU to GT for V4SI and V2DI.
32731
32732 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32733 (umin<mode>3): Removed.
32734 (uminv8hi3): New.
43d4b97d
L
32735 (uminv4si3): Likewise.
32736
9bf4cdf5
MJ
327372010-01-05 Martin Jambor <mjambor@suse.cz>
32738
32739 PR tree-optimization/42462
32740 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
32741 current_function_decl to helper functions and macros.
32742
6a4d4e8a
RO
327432010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32744
32745 PR bootstrap/41771
32746 * flags.h: Don't include real.h.
32747 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
32748 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
32749 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
32750 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
32751 * dominance.c: Update copyright.
32752 * gimple.c (walk_gimple_op): Remove inline.
32753 * tree-ssa-reassoc.c: Include real.h.
32754 * Makefile.in (FLAGS_H): Remove $(REAL_H).
32755 (tree-ssa-reassoc.o): Depend on $(REAL_H).
32756
105249d1
NC
327572010-01-05 Nick Clifton <nickc@redhat.com>
32758
32759 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
32760 register to push into the stack frame when the accumulator has to
32761 be saved during interrupts.
32762
bc3c12a2
EF
327632010-01-05 Eric Fisher <joefoxreal@gmail.com>
32764
32765 * doc/invoke.texi: Remove the documentation about option
32766 -Wunreachable-code.
32767 * common.opt (Wunreachable-code): Preserved for backward
32768 compatibility.
32769 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
32770 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
32771 the backward compatibility flag section.
32772
1befacc8
RG
327732010-01-05 Richard Guenther <rguenther@suse.de>
32774
32775 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
32776
566f27e4
JJ
327772010-01-05 Jakub Jelinek <jakub@redhat.com>
32778
7604eb4e
JJ
32779 PR other/42611
32780 * cfgexpand.c (expand_one_var): Diagnose too large variables.
32781
566f27e4
JJ
32782 PR tree-optimization/42508
32783 * tree-sra.c (convert_callers): Check for recursive call
32784 by comparing cgraph nodes instead of decls.
32785 (modify_function): Call ipa_modify_formal_parameters also
32786 on all same_body aliases.
32787
32788 * cgraphunit.c (cgraph_materialize_all_clones): Compare
32789 cgraph nodes when checking for same_body aliases.
32790
5f5126d6
RG
327912010-01-05 Richard Guenther <rguenther@suse.de>
32792
32793 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
32794 allocation and lookup.
32795 (get_or_alloc_expr_for_constant): Likewise.
32796 (phi_translate): Sink allocation.
32797
a7d04a53
RG
327982010-01-04 Richard Guenther <rguenther@suse.de>
32799
32800 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
32801 a new entry only if needed.
32802 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
32803 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
32804 hashtable lookup.
32805 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
32806 the result array.
32807 (phi_translate): Handle CONSTANTs early.
32808
caee6ca1
MJ
328092010-01-04 Martin Jambor <mjambor@suse.cz>
32810
32811 PR tree-optimization/42398
32812 * tree-sra.c (struct access): Removed flag grp_different_types.
32813 (dump_access): Do not dump the removed flag.
32814 (sort_and_splice_var_accesses): Do not set the removed flag.
32815 (sra_modify_expr): Check for type compatibility directly.
32816
438789ff
MJ
328172010-01-04 Martin Jambor <mjambor@suse.cz>
32818
32819 PR tree-optimization/42366
32820 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
32821 edges with variable number of parameters.
32822 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
32823 flag instead of asserting it.
32824 (ipa_read_node_info): Read uses_analysis_done flag.
32825
9708c51d
RG
328262010-01-04 Richard Guenther <rguenther@suse.de>
32827
32828 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
32829 iterative_hash_* as intended.
32830 (vn_reference_compute_hash): Likewise. Simplify hashing
32831 SSA names.
32832 (vn_reference_lookup_2): Likewise.
32833 (vn_nary_op_compute_hash): Likewise.
32834 (vn_phi_compute_hash): Likewise.
32835 (expressions_equal_p): Remove strange code.
32836 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
32837 (pre_expr_hash): Likewise. Simplify hashing SSA names.
32838 (bitmap_insert_into_set_1): Take value-id as parameter.
32839 (add_to_value): Pass it.
32840 (bitmap_insert_into_set): Likewise.
32841 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
32842
94b90527
JJ
328432010-01-04 Jakub Jelinek <jakub@redhat.com>
32844
32845 PR driver/42442
32846 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
32847 (do_self_spec): For switches with SWITCH_IGNORE set set also
32848 SWITCH_IGNORE_PERMANENTLY.
32849 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
32850 of SWITCH_IGNORE.
32851
785ca514
RAE
328522010-01-04 Rafael Avila de Espindola <espindola@google.com>
32853
32854 * lto-streamer-out.c (output_unreferenced_globals): Output the full
32855 tree of an unreferenced global var.
32856
22554cf9
L
328572010-01-04 H.J. Lu <hongjiu.lu@intel.com>
32858
32859 PR target/42542
32860 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32861 GTU to GT for V4SI and V2DI.
32862
32863 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32864 (umin<mode>3): Removed.
32865 (uminv8hi3): New.
32866 (uminv4si3): Likewise.
32867
7152f51e
L
328682010-01-04 H.J. Lu <hongjiu.lu@intel.com>
32869
32870 PR lto/42581
32871 * collect2.c (main): Turn on trace in collect2 if -v is passed
32872 to gcc with LTO.
32873
f4262155
JQ
328742010-01-03 Jerry Quinn <jlquinn@optonline.net>
32875
32876 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
32877 description of expression operand.
32878
55bcd32b
AJ
328792010-01-03 Andrew Jenner <andrew@codesourcery.com>
32880
32881 * configure.ac: Add install-html to target_list for Make-hooks.
32882 * configure: Regenerate.
32883 * fortran/Make-lang.in (F95_HTMLFILES): New.
32884 (fortran.html): Use it.
32885 (fortran.install-html): New.
32886 * Makefile.in (install-html): Add lang.install-html.
32887 * java/Make-lang.in (JAVA_HTMLFILES): New.
32888 (java.html): Use it.
32889 (java.install-html): New.
32890 * objc/Make-lang.in (objc.install-html): New.
32891 * objcp/Make-lang.in (obj-c++.install-html): New.
32892 * cp/Make-lang.in (c++.install-html): New.
32893 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
32894 * lto/Make-lang.in (lto.install-html): New.
32895
f0d61983
L
328962010-01-03 H.J. Lu <hongjiu.lu@intel.com>
32897
32898 PR lto/42520
32899 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
32900
2ad1dda0
SB
329012009-01-03 Steven Bosscher <steven@gcc.gnu.org>
32902
32903 PR rtl-optimization/41862
32904 * store-motion.c (store_killed_in_insn, compute_store_table,
32905 remove_reachable_equiv_notes, replace_store_insn,
32906 build_store_vectors): Ignore all DEBUG_INSNs.
32907
d7fb0a6d
L
329082010-01-03 H.J. Lu <hongjiu.lu@intel.com>
32909
32910 PR lto/41564
32911 * common.opt: Add dumpdir.
32912
32913 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
32914 isn't specified.
32915 (option_map): Add --dumpdir.
32916
32917 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
32918
32919 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
32920
32921 * opts.c (decode_options): Try dump_dir_name first if
32922 dump_base_name isn't an absolute path.
32923 (common_handle_option): Handle OPT_dumpdir.
32924
32925 * toplev.c (dump_dir_name): New.
32926 (print_switch_values): Also ignore -dumpdir.
32927
32928 * toplev.h (dump_dir_name): New.
32929
ba1ee228
RG
329302010-01-03 Richard Guenther <rguenther@suse.de>
32931
32932 PR tree-optimization/42589
32933 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
32934 double-word expansion of bswap32.
32935
b0de17ef
SB
329362010-01-03 Steven Bosscher <steven@gcc.gnu.org>
32937
32938 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
32939 with BLOCK_FOR_INSN.
32940 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
32941 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
32942 noce_process_if_block): Likewise.
32943 * gcse.c (compute_local_properties, insert_expr_in_table,
32944 insert_set_in_table, canon_list_insert, find_avail_set,
32945 pre_insert_copy_insn): Likewise.
32946
32947 * basic-block.h (BLOCK_NUM): Move from here...
32948 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
32949
a19eb9d2
RG
329502010-01-03 Richard Guenther <rguenther@suse.de>
32951
32952 PR tree-optimization/42438
32953 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
32954 contains_may_not_return_call flag.
32955 (BB_MAY_NOTRETURN): New.
32956 (valid_in_sets): Trapping nary operations are not valid
32957 in blocks that may not return.
b5e33e04 32958 (insert_into_preds_of_block): Remove check for trapping expressions.
a19eb9d2
RG
32959 (compute_avail): Compute also BB_MAY_NOTRETURN.
32960
c41b7b13
GP
329612010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
32962
32963 * doc/invoke.texi: Add 2010 to copyright years.
32964
4900aa61
EB
329652010-01-03 Eric Botcazou <ebotcazou@adacore.com>
32966
32967 * config/sparc/sparc.c: Fix formatting nits.
32968
711a778c 329692010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
77102854 32970 Alexander Monakov <amonakov@ispras.ru>
711a778c
GP
32971
32972 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
32973
1d86f5e9
RG
329742010-01-02 Richard Guenther <rguenther@suse.de>
32975
32976 PR middle-end/42577
32977 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
32978 (simplify_switch_using_ranges): Mark to be removed edges
32979 as non-executable.
32980
91e1a80a
JDA
329812010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32982
b86799ba
JDA
32983 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
32984
91e1a80a
JDA
32985 * collect2.c (scan_libraries): Add missing argument in call to
32986 scan_prog_file.
32987
329882010-01-02 Uros Bizjak <ubizjak@gmail.com>
32989
32990 PR target/42448
32991 * config/alpha/predicates.md (aligned_memory_operand): Return false
32992 for CQImode.
32993 (unaligned_memory_operand): Return true for CQImode.
32994 * config/alpha/alpha.c (get_aligned_mem): Assert that location
32995 doesn not cross aligned SImode word boundary.
32996
329972010-01-02 Anatoly Sokolov <aesok@post.ru>
32998
32999 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
33000 Remove.
33001 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
33002 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
33003
330042010-01-02 Richard Guenther <rguenther@suse.de>
33005
33006 PR lto/41597
33007 * toplev.c (compile_file): Emit LTO marker properly. Change
33008 it to __gnu_lto_v1.
33009 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
5a013dc4 33010
aecd4d81
RG
330112010-01-01 Richard Guenther <rguenther@suse.de>
33012
33013 PR debug/42455
02143d0b 33014 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
aecd4d81 33015
e4a95933
RG
330162010-01-01 Richard Guenther <rguenther@suse.de>
33017
33018 PR c/42570
33019 * c-decl.c (grokdeclarator): For zero-size arrays force
33020 structural equality checks as layout_type does.
33021
0bdf1263
L
330222010-01-01 H.J. Lu <hongjiu.lu@intel.com>
33023
33024 * builtins.c: Update copyright to 2010.
33025
91539475 330262010-01-01 H.J. Lu <hongjiu.lu@intel.com>
8589115b
DK
33027
33028 PR lto/42531
91539475 33029 * lto-streamer-out.c (produce_asm): Revert the last change.
8589115b
DK
33030 (copy_function): Likewise.
33031
91539475
L
33032 * lto-streamer.c (lto_get_section_name): Skip any leading
33033 asterisk in name.
20cdc2be 33034
91539475 330352010-01-01 Richard Guenther <rguenther@suse.de>
cf9eb565 33036
91539475
L
33037 PR middle-end/42559
33038 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
33039 for LABEL_DECLs.
ad41bd84
JM
33040
33041\f
91539475 33042Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
33043
33044Copying and distribution of this file, with or without modification,
33045are permitted in any medium without royalty provided the copyright
33046notice and this notice are preserved.