]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
dbgcnt.c (dbg_cnt_process_single_pair): constify.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
86373e7e
JM
12009-09-10 Jason Merrill <jason@redhat.com>
2
3 * dbgcnt.c (dbg_cnt_process_single_pair): constify.
4 * opts.c (common_handle_option): constify.
5
8ff51917
GP
62009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
7
beb1adc1
GP
8 * doc/install.texi (avr): Remove obsolete reference site.
9
102009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
11
8ff51917
GP
12 * doc/install.texi (Binaries): Adjust AIX link.
13
460ba396
AD
142009-09-12 Akim Demaille <demaille@gostai.com>
15
16 * doc/invoke.texi (-fstrict-aliasing): Correct two examples.
17 Use an imperative sentence.
18
f2c4a81c
RH
192009-09-11 Richard Henderson <rth@redhat.com>
20
21 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
22 structure-name and has-tree-operands arguments; update all entries.
23 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
24 update all entries.
25 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
26 (gsstruct_code_size): New.
27 (gss_for_code_): New.
28 (gss_for_code): Remove.
29 (gimple_size): Rewrite using gsstruct_code_size.
30 (gimple_statement_structure): Move to gimple.h.
31 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
32 (gss_for_code, gimple_statement_structure): New.
33 (gimple_ops): Use new arrays; tidy.
34
85ed9a33
JDA
352009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
36
37 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
38 operand to be a PLUS expression.
39 * config/pa/pa.c (pa_secondary_reload): Likewise.
40
137a05d3
JJ
412009-09-11 Jakub Jelinek <jakub@redhat.com>
42
9258b4c1
JJ
43 * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
44
137a05d3
JJ
45 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
46 XEXP (in_rtx, 8).
47
603bb63e
BS
482009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
49
50 From Jie Zhang <jie.zhang@analog.com>:
51 * doc/extend.texi (node Function Attributes): Document l2
52 function attribute.
53 (node Blackfin Variable Attributes): Document l2 variable attributes.
54
8a47c6c4
LR
552009-09-11 Loren J. Rittle <ljrittle@acm.org>
56
57 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
58 to match the system compiler's configuration at inflection point.
59 Add comment to remark a remaining difference with system compiler.
60
61e1d511
LR
61 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
62 * configure: Regenerate.
63
db689ed6
BS
642009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
65
66 From Jie Zhang <jie.zhang@analog.com>:
67 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
68 (bfin_handle_l2_attribute): New.
69 (bfin_attribute_table): Add l2 attribute.
70
5c3ec539
MM
712009-09-11 Michael Matz <matz@suse.de>
72
73 PR middle-end/41275
74 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
75 on the local_decls list.
76
0b7e34d7
AO
772009-09-11 Alexandre Oliva <aoliva@redhat.com>
78
79 PR debug/41276
80 PR debug/41307
81 * cselib.c (cselib_expand_value_rtx_cb): Document callback
82 interface.
83 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
84 for VALUEs, to implement the documented interface.
85 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
86 Adjust for VALUEs and anything else, to implement the
87 documented interface.
88
b851135c
NF
892009-09-10 Nathan Froyd <froydnj@codesourcery.com>
90
91 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
92 with actual SPE/paired vector modes before using 64-bit alignment.
93 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
94
5ba863d7
DD
952009-09-10 DJ Delorie <dj@redhat.com>
96
97 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
98 emitted.
99
100 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
101 * config/mep/mep.c (mep_legitimate_constant_p): New.
102 * config/mep/mep-protos.h: Prototype it.
103
68bcdeed
RH
1042009-09-10 Richard Henderson <rth@redhat.com>
105
106 * print-rtl.c (print_rtx): Fix JUMP_LABEL index.
107
ad42ff1e
JM
1082009-09-10 Jason Merrill <jason@redhat.com>
109
110 * tree.c (chain_index): New fn.
111 * tree.h: Declare it.
112
0e6748ab
RO
1132009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
114
115 * config/sol2-c.c (cmn_err_length_specs): Initialize
116 scalar_identity_flag.
117
671f9f30
RH
1182009-09-10 Richard Henderson <rth@redhat.com>
119
b6777fea
RH
120 * tree.h (struct tree_decl_common): Move align member earlier;
121 move label_decl_uid member ...
122 (struct tree_label_decl): ... here.
123 (LABEL_DECL_UID): Update to match.
124
feb4e5ba
RH
125 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
126 not TDF_DETAILS.
127
1c061be5
RH
128 * tree-cfg.c (gimple_redirect_edge_and_branch): Do
129 gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
130
88e24a5a
RH
131 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
132 dest_prev if the edge is complex.
133
40a32862
RH
134 * tree-cfg.c (is_ctrl_stmt): Use a switch.
135
8e7c5fdd
RH
136 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and
137 loop latch tests earlier.
138
07c358c6
RH
139 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert
140 before GIMPLE_RETURN, not after its predecessor; insert
141 before GIMPLE_RESX.
142
671f9f30
RH
143 * gimple-iterator.c (gimple_find_edge_insert_loc): Use
144 gimple_seq_empty_p to test for no PHI nodes.
145 * tree-cfg.c (split_critical_edges): Likewise.
146
15a15e8d
RH
147 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.
148
f90f4827
HS
1492009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
150
151 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
152 introduced by the VTA branch merge.
153
edb30094
UB
1542009-09-10 Uros Bizjak <ubizjak@gmail.com>
155
156 * ira-conflicts.c: Use fputs or putc instead of fprintf
157 where appropriate.
158 * cfg.c: Ditto.
159 * toplev.c: Ditto.
160 * tree-switch-conversion.c: Ditto.
161
1622009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
f3d9e91b
HS
163
164 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
165 introduced by the VTA branch merge.
166
edb30094 1672009-09-10 Uros Bizjak <ubizjak@gmail.com>
3a3d54f2
UB
168
169 Revert:
170 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
171
172 PR rtl-optimization/39779
173 * expr.c (convert_modes): Return when mode == oldmode after
174 CONST_INTs are processed.
175
1c6679e2
NC
1762009-09-10 Nick Clifton <nickc@redhat.com>
177
178 * config/mep/mep.c (mep_encode_section_info): Copy weakness
179 attribute and referring decl when creating renamed symbol.
180
90097c67
RG
1812009-09-10 Richard Guenther <rguenther@suse.de>
182
183 PR middle-end/41257
184 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
185 reachable nodes.
186 (cgraph_finalize_compilation_unit): Compute reachability
187 before emitting thunks. Properly process aliases before
188 possibly removing unreachable nodes.
189
c7a3980a
RG
1902009-09-10 Richard Guenther <rguenther@suse.de>
191
192 PR middle-end/41254
193 * tree.c (struct free_lang_data_d): Add worklist member.
194 (find_decls_types_r): Push onto the worklist instead of recursing.
195 Handle TREE_BINFOs properly.
196 (find_decls_types): New function wrapped around find_decls_types_r
197 to process the worklist.
198 (find_decls_types_in_eh_region): Use it.
199 (find_decls_types_in_node): Likewise.
200 (find_decls_types_in_var): Likewise.
201 (free_lang_data_in_cgraph): Likewise. Free the worklist.
202 * tree.h (RECORD_OR_UNION_TYPE_P): New.
203 (AGGREGATE_TYPE_P): Adjust.
204
e00ded68
JM
2052009-09-09 Jason Merrill <jason@redhat.com>
206
207 * configure.ac: Check glibc version even if we have an in-tree
208 assembler.
209
75cd1c8f
AG
2102009-09-09 Anthony Green <green@moxielogic.com>
211
212 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
213 the constant 0 when appropriate.
214 * config/moxie/constraints.md: Add constraint O.
215
216 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
217 to pass up to 6 32-bit argument values in registers.
218 (moxie_function_arg): Ditto.
219 (moxie_arg_partial_bytes): Ditto.
220 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
221 (REG_PARM_STACK_SPACE): Ditto.
222 (FUNCTION_ARG_REGNO_P): Ditto.
223
224 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
225 instruction to allocate stack space.
226
93fbf857
SB
2272009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
228
229 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix
230 unnecessarily stringent constraints. Fix address
231 calculation in the splitters.
232
ed9d5a4a
UB
2332009-09-09 Uros Bizjak <ubizjak@gmail.com>
234
235 PR rtl-optimization/39779
236 * expr.c (convert_modes): Return when mode == oldmode after
237 CONST_INTs are processed.
238
3d887721
KT
2392009-09-09 Kai Tietz <kai.tietz@onevision.com>
240
241 PR/41315
ed9d5a4a 242 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
3d887721
KT
243 (ix86_expand_prologue): Take frame.padding0 into logic of
244 to_allocate checks.
245 (ix86_expand_epilogue): Likewise.
246
80a76d1d
JJ
2472009-09-09 Jakub Jelinek <jakub@redhat.com>
248
249 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
250 New variables.
251 (SHLIB_LINK, SHLIB_INSTALL): Use them.
252 * config/t-slibgcc-libgcc: New file.
253 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
254
ca1bb752
MJ
2552009-09-09 Martin Jambor <mjambor@suse.cz>
256
257 PR tree-optimization/41089
258 * tree-sra.c (find_var_candidates): Do not consider va_lists in
259 early SRA.
260
8b9db065
RH
2612009-09-09 Richard Henderson <rth@redhat.com>
262
263 * gimple.h (CASE_GIMPLE_OMP): New.
264 (is_gimple_omp): Use it.
265 * tree-cfg.c (is_ctrl_altering_stmt): Likewise.
266 (verify_gimple_debug): Likewise.
267
70a6b17e
RG
2682009-09-09 Richard Guenther <rguenther@suse.de>
269
270 PR tree-optimization/41101
271 * tree-ssa-pre.c (maximal_set): Remove.
272 (compute_antic_aux): Treat the maximal set as implicitly all ones.
273 Defer all blocks we didn't visit at least one successor.
274 (add_to_exp_gen): Do not add to the maximal set.
275 (make_values_for_phi): Likewise.
276 (compute_avail): Likewise.
277 (init_pre): Do not allocate the maximal set.
278 (execute_pre): Do not dump it.
279
7648edc4
MJ
2802009-09-09 Martin Jambor <mjambor@suse.cz>
281
282 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
283 an SSA_NAME rather than a is_gimple_variable.
284
5a4b005f
RG
2852009-09-09 Richard Guenther <rguenther@suse.de>
286
287 PR middle-end/41317
288 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
289 code dealing with plain pointer bases.
290 (maybe_fold_offset_to_reference): Likewise.
291 (maybe_fold_stmt_addition): Adjust.
292
ccffb755
RG
2932009-09-09 Richard Guenther <rguenther@suse.de>
294
295 * tree.c (free_lang_data_in_type): Do not free the type variant
296 chains.
297 (free_lang_data): Merge char_type_node with its properly signed
298 variant.
299 (pass_ipa_free): Collect after freeing language specific data.
300
4e18a7d4
MM
3012009-09-09 Michael Matz <matz@suse.de>
302
303 PR middle-end/41268
304 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
305 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
306 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
307 to reflect reality.
308
5fb455bc
DD
3092009-09-08 DJ Delorie <dj@redhat.com>
310
311 * config/mep/mep.c (conversions[]): Add "ml" pattern.
312
d5df7223
JM
3132009-09-04 Jason Merrill <jason@redhat.com>
314
315 * tree.c (tree_find_value): Remove.
316 * tree.h: Remove prototype.
317 * varasm.c (assemble_external): Use value_member instead.
318
6a57e634
AO
3192009-09-08 Alexandre Oliva <aoliva@redhat.com>
320
321 * toplev.c (process_options): Choose default debugging type when
322 gtoggle enables debug info and type is unset.
323
da4a9479
AO
3242009-09-08 Alexandre Oliva <aoliva@redhat.com>
325
326 PR debug/41276
327 PR debug/41307
328 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of
329 invalid subreg.
330
713e2ea6
AO
3312009-09-08 Alexandre Oliva <aoliva@redhat.com>
332
333 * configure: Rebuilt with modified libtool.m4.
334
91642126
AO
3352009-09-08 Alexandre Oliva <aoliva@redhat.com>
336
337 PR debug/41229
338 PR debug/41291
339 PR debug/41300
340 * tree-ssa.c (execute_update_addresses_taken): Update debug insns.
341
ae0a4449
AO
3422009-09-08 Alexandre Oliva <aoliva@redhat.com>
343
344 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
345 (remove_statement): Likewise.
346 (rewrite_use_nonlinear_expr): Adjust.
347 (remove_unused_ivs): Collect SSA NAMEs to remove and call...
348 * tree-ssa.c (release_defs_bitset): ... this. New.
349 * tree-flow.h (release_defs_bitset): Declare.
350
21719cea
AO
3512009-09-08 Alexandre Oliva <aoliva@redhat.com>
352
353 PR debug/41232
354 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
355 in the middle block.
356
7c2a2dbf
KT
3572009-09-08 Kai Tietz <kai.tietz@onevision.com>
358
34c6743c
KT
359 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer
360 via intptr_t to long type.
361 (insert_operand_rank): Cast long type via intptr_t to
362 pointer type.
363 * genattrtab.c (RTL_HASH): Use intptr_t to cast from
364 pointer to scalar.
365 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast
366 from pointer to unsigned via uintptr_t.
367
7c2a2dbf
KT
368 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
369 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
370 and HAVE_INTPTR_T.
371 * configure: Regenerated.
372 * config.in: Regenerated
373 * system.h (stdint.h): Add include.
374 (inttypes.h): Likewise.
375 * Makefile.in (aclocal): Add config/stdint.m4.
376 * aclocal.m4: Regenerated.
377
8472b255
BS
3782009-09-08 Bernd Schmidt <bernd.schmidt@analog.com>
379
380 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static
381 variables.
382 (note_np_check_stores): New function.
383 (harmless_null_pointer_p): New function.
384 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers
385 changed. Take into account whether we're in the shadow of a condjump
386 that tested NP_REG for NULL.
387 Lose all code that tested for SEQUENCEs.
388 (workaround_speculation): Avoid inserting NOPs for loads that are
389 either always executed or a NULL pointer.
390
ac875c2e
JH
3912009-09-08 Jan Hubicka <jh@suse.cz>
392
393 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
394 * params.def (early-inlining-insns): Likewise.
395
1098d3a5
JJ
3962009-09-08 Jakub Jelinek <jakub@redhat.com>
397
398 PR rtl-optimization/41239
399 * sched-int.h (struct deps): Add last_function_call_may_noreturn field.
400 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
401 lists.
402 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
403 across calls, as the calls might not always return normally.
404 (call_may_noreturn_p): New function.
405 (deps_analyze_insn): Update last_function_call_may_noreturn list.
406 (init_deps): Initialize it.
407 (remove_from_deps): Also remove calls from
408 last_function_call_may_noreturn list.
409
35ecd408
RH
4102009-09-07 Richard Henderson <rth@redhat.com>
411
412 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
413 more VR->OPERANDS than LHS operands. Free LHS before returning.
414
c7cb1555
BS
4152009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
416
417 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
418 (attr "addrtype"): New member "spreg".
419 Use it if mem_spfp_address_operand is true for the address.
420 (attr "type"): New entry "stall".
421 (cpu_unit "load"): New.
422 (insn_reservations "load32", "loadp", "loadi"): Add reservation of
423 "load".
424 (insn_reservation "loadsp"): New.
425 (insn_reservation "load_stall1"): New.
426 (insn_reservation "load_stall3"): New.
ed9d5a4a 427 (stall): New insn.
c7cb1555
BS
428 * config/bfin/predicates.md (const1_operand, const3_operand): New.
429 (mem_p_address_operand): Exclude stack and frame pointer based
430 addresses.
431 (mem_spfp_address_operand): New; match them here.
432 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
433 (bfin_reorg): Call it if scheduling insns.
434 (bfin_gen_bundles): Remove dummy insns created by
435 add_sched_insns_for_speculation.
436
4dce27df
BS
437 From Jie Zhang <jie.zhang@analog.com>:
438 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
439 bfin_si_revision, bfin_workarounds): Move these ...
440 * config/bfin/bfin.h: ... here.
441
5254cd50
BS
442 From Mike Frysinger <michael.frysinger@analog.com>
443 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
444 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
ed9d5a4a
UB
445 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
446 bf547m, bf548m, and bf549m.
5254cd50 447 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
ed9d5a4a
UB
448 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
449 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
450 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
5254cd50
BS
451 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
452 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
453 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
454 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
455 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
456 bf542m, bf544m, bf547m, bf548m, and bf549m.
457
b3187e24 458 From Jie Zhang <jie.zhang@analog.com>:
ed9d5a4a 459 * config/bfin/predicates.md (p_register_operand): New predicate.
b3187e24
BS
460 (dp_register_operand): New predicate.
461 * config/bfin/bfin-protos.h (WA_05000074): Define.
462 (ENABLE_WA_05000074): Define.
ed9d5a4a 463 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
b3187e24
BS
464 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
465 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
ed9d5a4a 466 (define_attr addrtype): Allow load/store register to be P register.
b3187e24
BS
467 (define_attr storereg): New.
468 (define_cpu_unit anomaly_05000074): New.
469 (define_insn_reservation dsp32shiftimm): New.
470 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
471 (define_insn_reservation loadp): Cannot use slot2.
472 (define_insn_reservation loadsp): Cannot use slot2.
473 (define_insn_reservation storep): Cannot use slot2. Does not
474 apply when working around 05000074.
475 (define_insn_reservation storep_anomaly_05000074): New.
476 (define_insn_reservation storei): Does not apply when working
477 around 05000074.
478 (define_insn_reservation storei_anomaly_05000074): New.
479 (define_attr length): Add dsp32shiftimm case.
480 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
481 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
482 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
483 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
484 Set type as dsp32shiftimm for dsp32shiftimm alternatives.
485
4a50e99c
MJ
4862009-09-07 Martin Jambor <mjambor@suse.cz>
487
488 PR middle-end/41282
489 * tree-sra.c (create_artificial_child_access): Return NULL if
490 build_ref_for_offset fails.
491 (propagate_subacesses_accross_link): Allow build_ref_for_offset
492 and create_artificial_child_access to fail.
493
e5b258a4
DG
4942009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
495
496 PR c++/41214
497 * unwind-dw2.c (uw_init_context_1): Mark noinline.
498 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
499 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
500
8ff7f824
BS
5012009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
502
503 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
504 block, ensure it has an exit edge. Emit a barrier after a jump.
505
3beb864c
NC
5062009-09-07 Nick Clifton <nickc@redhat.com>
507
508 * gcc.c (this_is_linker_script): New variable. Like
509 this_is_library_file but for the %T constructor.
510 (end_going_arg): If this_is_linker_script is set then locate the
511 script and insert a --script switch before it
512 (do_spec_2): Initialise this_is_linker_script.
513 (do_spec_1): Likewise. Handle %T construct.
514 (eval_spec_function): Preserve this_is_linker_script.
515 * doc/invoke.texi: Document %T construct in spec files.
516 * config/m32c/m32c.h (LIB_SPEC): Use it.
517
3fce100b
AK
5182009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
519
ed9d5a4a 520 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
3fce100b
AK
521 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
522 when volatile flag is set.
523 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.
524
1362aa31
EB
5252009-09-06 Eric Botcazou <ebotcazou@adacore.com>
526
527 PR bootstrap/41241
528 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
529 (combine_stack_adjustments_for_block): Allow insns between stack
7717df30
EB
530 adjustments and stores with corresponding pre-(dec|inc)rement or
531 pre-modify operation.
1362aa31 532
90588a10
JJ
5332009-09-06 Jakub Jelinek <jakub@redhat.com>
534
535 PR bootstrap/41241
536 * combine-stack-adj.c (struct csa_memlist): Rename to...
537 (struct csa_reflist): ... this. Rename mem field to ref.
538 (free_csa_memlist): Rename to...
539 (free_csa_reflist): ... this.
540 (record_one_stack_memref): Rename to...
541 (record_one_stack_ref): ... this. Handle also REG_P.
542 (try_apply_stack_adjustment): Handle also REG_P.
543 (struct record_stack_memrefs_data): Rename to...
544 (struct record_stack_refs_data): ... this. Rename memlist field to
545 reflist.
546 (record_stack_memrefs): Rename to...
547 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing
548 subexpressions instead of failing when a MEM contains SP references.
549 For SP itself in DEBUG_INSNs queue it also onto reflist chain.
550 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
551
3797a0ff
RG
5522009-09-06 Richard Guenther <rguenther@suse.de>
553
554 PR middle-end/41144
555 * tree.c (build_array_type): Do not record types marked
556 with structural equality in the canonical type hashtable.
557
3c45b96b
RG
5582009-09-06 Richard Guenther <rguenther@suse.de>
559
560 PR middle-end/41261
561 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.
562
6a129567
RG
5632009-09-05 Richard Guenther <rguenther@suse.de>
564
565 PR middle-end/41181
566 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.
567
432b4b31
RG
5682009-09-05 Richard Guenther <rguenther@suse.de>
569
570 PR debug/41273
571 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.
572
575140c2
RG
5732009-09-05 Richard Guenther <rguenther@suse.de>
574
575 PR middle-end/41271
576 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
577 before comparing function argument types.
578
896237cd
FXC
5792009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
580
581 PR target/41024
582 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
583 the assembler.
584
e139ab34
UB
5852009-09-04 Uros Bizjak <ubizjak@gmail.com>
586
587 Revert:
588 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
589
590 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
591 locators before emit_insn is called.
592
1fe28116
VM
5932009-09-04 Vladimir Makarov <vmakarov@redhat.com>
594
595 PR bootstrap/41241
596 * ira.c (update_equiv_reg): Revert my previous patch for the PR.
597 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
598 (reginfo_init): Don't call allocate_reg_info.
599
14e58be0
UB
6002009-09-04 Uros Bizjak <ubizjak@gmail.com>
601
602 PR target/41262
603 * config/alpha/alpha.c (alpha_does_function_need_gp): Use
604 NONDEBUG_INSN_P instead of INSN_P.
605
3157b0c2
AO
6062009-09-04 Alexandre Oliva <aoliva@redhat.com>
607
608 PR debug/41225
609 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
610
510bc854
AO
6112009-09-04 Alexandre Oliva <aoliva@redhat.com>
612
613 PR target/41252
614 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
615 pattern of the split.
616
6751b6f6
AO
6172009-09-04 Alexandre Oliva <aoliva@redhat.com>
618
619 * toplev.c (process_options): Move setter of flag_var_tracking
620 before other tests that depend on it. Move down setter of
621 flag_rename_registers. Don't enable var-tracking-assignments
622 by default if selective scheduling is enabled. Warn if both
623 are enabled.
624
24277d34
AO
6252009-09-04 Alexandre Oliva <aoliva@redhat.com>
626
627 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
628 comment. Use switch statement to catch overlaps between rtx
629 and tree codes. Accept FUNCTION_DECLs in addition to those in...
630 (IS_DECL_CODE): ... here. Remove.
631 (check_value_is_not_decl): Remove.
632 (dv_from_decl, dv_from_value): Check after conversion.
633
5f1a9ebb
RG
6342009-09-04 Richard Guenther <rguenther@suse.de>
635
636 PR middle-end/41257
637 * (cgraph_finalize_compilation_unit): Move finalizing aliases
638 after emitting tunks. Move emitting thunks and ctors from ...
639 (cgraph_optimize): ... here. Remove redundant
640 cgraph_analyze_functions.
641 * varasm.c (find_decl_and_mark_needed): Remove no longer
642 necessary check.
643 (finish_aliases_1): Adjust check for thunk aliases.
644
8d142c15
DG
6452009-09-04 Daniel Gutson <dgutson@codesourcery.com>
646
647 * config/arm/arm.md (ctzsi2): Added braces
648 to avoid warning that broke booststrap.
649
22fc64b4
MJ
6502009-09-04 Martin Jambor <mjambor@suse.cz>
651
652 PR tree-optimization/41112
653 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot
654 handle variable-bounded arrays.
655 (expr_with_var_bounded_array_refs_p): New function.
656 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.
657
2cdece44
WG
6582009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com>
659
660 * config/s390/2097.md: Removed two incorrect bypasses.
661 (z10_fsimpdf): Fixed latency.
662 (z10_fhex): New insn_reservation.
663 (z10_floaddf): Fixed latency.
664 (z10_floadsf): Fixed latency.
665 (z10_ftrunctf): Fixed latency.
666 (z10_ftruncdf): Fixed latency.
667 * config/s390/s390.c (z10_cost): Fixed values.
668 (s390_adjust_priority): Added z10 path.
669 * config/s390/s390.md (type): Added fhex.
670 (*mov<mode>_64dfp): Updated type attribute.
671 (*mov<mode>_64): Updated type attribute.
672 (*mov<mode>_31): Updated type attribute.
673 (*mov<mode>"): Likewise.
674 * config/s390/2084.md (x_fsimpdf): Updated condition.
675
b09062ee
AK
6762009-09-04 Andreas Krebbel <krebbel1@de.ibm.com>
677
678 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
679 RTXs in the predicate for operand 1.
680
ca96ed43
DG
6812009-09-03 Daniel Gutson <dgutson@codesourcery.com>
682
683 * config/arm/arm.md (UNSPEC_RBIT): New constant.
684 (rbitsi2): New insn.
685 (ctzsi2): New expand.
686 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
687
687b5078
MJ
6882009-09-03 Martin Jambor <mjambor@suse.cz>
689
690 * tree-sra.c (duplicate_expr_for_different_base): Removed.
691 (create_artificial_child_access): Use build_ref_for_offset instead
692 of duplicate_expr_for_different_base.
693 (propagate_subacesses_accross_link): Likewise.
14e58be0 694
006b29ab
RS
6952009-09-03 Richard Sandiford <rdsandiford@googlemail.com>
696
697 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
698 of INSN_P.
699 (mips16e_collect_argument_saves): Skip debug instructions.
700 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
701 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
702 (r10k_insert_cache_barriers): Likewise.
703 (mips_reorg_process_insns): Likewise.
704
691571d2
VM
7052009-09-03 Vladimir Makarov <vmakarov@redhat.com>
706
707 PR bootstrap/41241
708 * ira.c (update_equiv_reg): Remove check on class likely spill.
709
08ab0acf
JJ
7102009-09-03 Jakub Jelinek <jakub@redhat.com>
711
7d4507cb
JJ
712 PR debug/41236
713 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
714 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of
715 it or SUBREG.
716
08ab0acf
JJ
717 PR debug/41238
718 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
719 the stack slot if it is passed by invisible reference.
755d55bb
EB
720 * var-tracking.c (vt_add_function_parameters): Handle arguments passed
721 by invisible reference.
08ab0acf 722
9840d30a
BS
7232009-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
724
725 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
726 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
727 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
728 0.
729 * config/bfin/sync.md: New file.
730 * config/bfin/bfin.md: Include it.
731 (UNSPEC_ATOMIC): New.
732 (UNSPEC_ONES): Provide a unique number.
733
734 From Jie Zhang <jie.zhang@analog.com>:
735 * config/bfin/bfin.c (ret_regs): New.
736 (must_save_fp_p): Don't return true because of frame_pointer_needed.
737 (must_save_rets_p): New.
738 (n_regs_saved_by_prologue): Use must_save_rets_p instead of
739 current_function_is_leaf.
740 (do_link): Likewise.
741 (do_unlink): Likewise.
742 (expand_interrupt_handler_prologue): Use ret_regs array.
743 (expand_interrupt_handler_epilogue): Use ret_regs array and
744 pass return register to gen_return_internal.
745 (bfin_expand_epilogue): Pass return register to
746 gen_return_internal.
747 (bfin_expand_call): Explicitly clobber RETS.
748 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
749 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
750 call_insn_fdpic, call_value_insn_fdpic, call_symbol,
751 call_value_symbol, call_insn, call_value_insn): Explicitly clobber
752 RETS.
753 (return_internal): Take a reg rtx rather than the register number.
754
8e094aa2
L
7552009-09-03 H.J. Lu <hongjiu.lu@intel.com>
756
757 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
758 when comparing against estimated_loop_iterations_int return.
759
e20c9328
RG
7602009-09-03 Richard Guenther <rguenther@suse.de>
761
762 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
763 eh_personality_libfunc.
764
c9630c40
RL
7652009-09-03 Razya Ladelsky <razya@il.ibm.com>
766
767 * tree-parloops.c (separate_decls_in_region): Add space.
14e58be0 768
e7df16a5
RL
7692009-09-03 Razya Ladelsky <razya@il.ibm.com>
770
14e58be0 771 * tree-parloops.c (separate_decls_in_region): Change the condition
e7df16a5
RL
772 checking if there are reductions in the loop.
773
785aa2a7
RL
7742009-09-03 Razya Ladelsky <razya@il.ibm.com>
775
776 PR tree-optimization/38275
14e58be0 777 * tree-parloops.c (parallelize_loops): Replace profitability condition
785aa2a7
RL
778 for expected number of iterations.
779
e12c4094
AO
7802009-09-03 Alexandre Oliva <aoliva@redhat.com>
781
782 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
783 (bootstrap-debug): Explain conditions in which it becomes default.
784 (bootstrap-debug-big): Rather than duplicate bootstrap-debug,
785 make it add to it.
786
95da10ea
NK
7872009-09-03 Namhyung Kim <namhyung@gmail.com>
788
789 * doc/invoke.texi (Optimize Options): Move
790 -finline-small-functions to the -O2 list.
791
73d598d5
AO
7922009-09-03 Alexandre Oliva <aoliva@redhat.com>
793
794 * toplev.c (process_options): Enable var-tracking-assignments
795 by default if var-tracking is enabled.
796
896aa4ea
DD
7972009-09-02 David Daney <ddaney@caviumnetworks.com>
798
799 * cfgbuild.c (find_bb_boundaries): Split blocks containing a
800 barrier.
801 * emit-rtl.c (prev_nonnote_insn_bb): New function.
802 * rtl.h (prev_nonnote_insn_bb): Declare it.
803
4537ec0c
DN
8042009-09-03 Diego Novillo <dnovillo@google.com>
805
806 * cgraph.c (cgraph_node_for_decl): New.
807 * cgraph.h (cgraph_node_for_decl): Declare.
808 * tree.c (host_integerp): Return 0 if T is NULL.
809
8102009-09-03 Diego Novillo <dnovillo@google.com>
811
812 * tree.h (struct alias_pair): Move from varasm.c.
813 (alias_pairs): Likewise.
814 (TYPE_MAXVAL): Define.
815 (TYPE_MINVAL): Define.
816 (iterative_hash_host_wide_int): Declare.
817 (remove_unreachable_alias_pairs): Declare.
818 * tree-pass.h (pass_ipa_free_lang_data): Declare.
819 * diagnostic.c (default_diagnostic_starter): Make extern.
820 (default_diagnostic_finalizer): Make extern.
821 * diagnostic.h (default_diagnostic_starter): Declare.
822 (default_diagnostic_finalizer): Declare.
823 (default_tree_printer): Declare.
824 * toplev.c (default_tree_printer): Make extern.
825
8262009-09-03 Richard Guenther <rguenther@suse.de>
827 Diego Novillo <dnovillo@google.com>
828
829 * cgraph.c (cgraph_add_new_function): Remove gimplification.
830 * cgraphunit.c (cgraph_expand_function): Do not emit
831 associated thunks from here.
832 (cgraph_emit_thunks): New.
833 (cgraph_optimize): Call it.
834 Return if any IPA pass finds an error.
835 * varasm.c (finish_aliases_1): Ignore errorneous aliases used
836 by thunks.
837
8382009-09-03 Simon Baldwin <simonb@google.com>
839 Rafael Espindola <espindola@google.com>
840 Richard Guenther <rguenther@suse.de>
841 Doug Kwan <dougkwan@google.com>
842 Diego Novillo <dnovillo@google.com>
843
844 * tree.c: Include tree-pass.h, langhooks-def.h,
845 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
846 (free_lang_data_in_type): New.
847 (need_assembler_name_p): New.
848 (free_lang_data_in_block): New.
849 (free_lang_data_in_decl): New.
850 (struct free_lang_data_d): New.
851 (add_tree_to_fld_list): New.
852 (find_decls_types_r): New.
853 (get_eh_types_for_runtime): New.
854 (find_decls_types_in_eh_region): New.
855 (find_decls_types_in_node): New.
856 (find_decls_types_in_var): New.
857 (free_lang_data_in_cgraph): New.
858 (free_lang_data): New.
859 (gate_free_lang_data): New.
860 (pass_ipa_free_lang_data): New.
861
8622009-09-03 Diego Novillo <dnovillo@google.com>
863
864 * timevar.def (TV_IPA_FREE_LANG_DATA): Define.
865 * langhooks.h (struct lang_hooks): Add field free_lang_data.
866 (lang_hooks): Remove const qualifier.
867 * ipa.c (cgraph_remove_unreachable_nodes): Call
868 remove_unreachable_alias_pairs.
869 * except.c (add_type_for_runtime): Check if TYPE has
870 already been converted.
871 (lookup_type_for_runtime): Likewise.
872 (check_handled): Handle converted types.
873 * varasm.c (remove_unreachable_alias_pairs): New.
874 * gimple.c: Include demangle.h.
875 (gimple_decl_printable_name): New.
876 (gimple_fold_obj_type_ref): New.
877 * gimple.h (gimple_decl_printable_name): Declare.
878 (gimple_fold_obj_type_ref): Declare.
879 * passes.c (init_optimization_passes): Add pass
880 pass_ipa_free_lang_data.
881 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
882 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.
883
8842009-09-03 Diego Novillo <dnovillo@google.com>
885
886 * c-lang.c (lang_hooks): Remove const qualifier.
887
02c8b4f8
LR
8882009-09-02 Loren James Rittle <ljrittle@acm.org>
889
890 * doc/install.texi (*-*-freebsd*): Update target information.
891
adee59ae
AS
8922009-09-02 Anatoly Sokolov <aesok@post.ru>
893
894 * hard-reg-set.h (call_fixed_regs): Remove.
895 * reginfo.c (call_fixed_regs): Remove.
896 (init_reg_sets_1): Remove initialization of call_fixed_regs.
897 (globalize_reg): Don't use call_fixed_regs.
898 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
899 call_fixed_regs.
900
28ed065e
MM
9012009-09-01 Michael Matz <matz@suse.de>
902
903 * expr.h (emit_storent_insn, expand_expr_real_1,
904 expand_expr_real_2): Declare.
905 * expr.c (emit_storent_insn, expand_expr_real_1,
906 expand_expr_real_2): Export.
ed9d5a4a 907 (store_expr): Setting and evaluating dont_return_target is useless.
28ed065e
MM
908 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
909 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
910 * except.c (expand_resx_expr): Rename to ...
911 (expand_resx_stmt): ... this. Rewrite to take gimple statement.
912 * except.h (expand_resx_stmt): Declare.
913 * stmt.c: Add include gimple.h
914 (expand_asm_expr): Rename to ...
915 (expand_asm_stmt): ... this. Rewrite to take gimple statement.
916 (expand_case): Rewrite to take gimple statement.
917 * tree.h (expand_asm_stmt): Declare.
918 (expand_case): Change prototype.
919 * Makefile.in (stmt.o): Depend on gimple.h.
920 * builtins.c (expand_builtin_synchronize): Build gimple asm
921 statement, not an ASM_EXPR.
922 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
923 gimple_to_tree, release_stmt_tree): Remove.
924 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
925 ggc_free, but hold comparison code and operands separately.
926 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
927 (expand_call_stmt, expand_gimple_stmt_1,
928 expand_gimple_stmt): New helpers.
929 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
930 release_stmt_tree. Call expand_gimple_stmt instead.
931 (expand_gimple_basic_block): Ditto.
932
933 * calls.c (emit_call_1): Don't look at EH regions here, make
934 fntree parameter useless.
935 (expand_call): New local rettype for TREE_TYPE(exp), use it
936 throughout. Remove local p, use addr instead.
937 Don't look at EH regions here.
938
ce18efcb
VM
9392009-09-02 Vladimir Makarov <vmakarov@redhat.com>
940
941 * doc/invoke.texi (-fsched-pressure): Document it.
942 (-fsched-reg-pressure-heuristic): Remove it.
14e58be0 943
ce18efcb
VM
944 * reload.c (ira.h): Include.
945 (find_reloads): Add choosing reload on number of small spilled
946 classes.
14e58be0 947
ce18efcb
VM
948 * haifa-sched.c (ira.h): Include.
949 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
950 saved_reg_pressure, curr_reg_live, saved_reg_live,
951 region_ref_regs): New variables.
952 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
953 initiate_reg_pressure_info, setup_ref_regs,
954 initiate_bb_reg_pressure_info, save_reg_pressure,
955 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
956 functions.
957 (setup_insn_reg_pressure_info): New function.
958 (rank_for_schedule): Add pressure checking and insn issue time.
959 Remove comparison of insn reg weights.
960 (ready_sort): Set insn reg pressure info.
961 (update_register_pressure, setup_insn_max_reg_pressure,
962 update_reg_and_insn_max_reg_pressure,
963 sched_setup_bb_reg_pressure_info): New functions.
ed9d5a4a 964 (schedule_insn): Add code for printing and updating reg pressure info.
ce18efcb
VM
965 (find_set_reg_weight, find_insn_reg_weight): Remove.
966 (ok_for_early_queue_removal): Do nothing if pressure_only_p.
967 (debug_ready_list): Print reg pressure info.
968 (schedule_block): Ditto. Check insn issue time.
969 (sched_init): Set up sched_pressure_p. Allocate and set up some
970 reg pressure related info.
971 (sched_finish): Free some reg pressure related info.
972 (fix_tick_ready): Make insn always ready if pressure_p.
973 (init_h_i_d): Don't call find_insn_reg_weight.
974 (haifa_finish_h_i_d): Free insn reg pressure info.
14e58be0 975
ce18efcb
VM
976 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
977 ira_memory_move_cost, ira_class_hard_regs,
978 ira_class_hard_regs_num, ira_no_alloc_regs,
979 ira_available_class_regs, ira_reg_class_cover_size,
980 ira_reg_class_cover, ira_class_translate): Move to ira.h.
981
982 * ira-lives.c (single_reg_class): Check mode to find how many
983 registers are necessary for operand.
984 (ira_implicitly_set_insn_hard_regs): New.
985
986 * common.opt (fsched-pressure): New options.
987 (fsched-reg-pressure-heuristic): Remove.
988
989 * ira.c (setup_eliminable_regset): Rename to
990 ira_setup_eliminable_regset. Make it external.
991 (expand_reg_info): Pass cover class to setup_reg_classes.
992 (ira): Call resize_reg_info instead of allocate_reg_info.
993
994 * sched-deps.c: Include ira.h.
995 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
996 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
997 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
998 mark_insn_hard_regno_birth, mark_insn_reg_birth,
999 mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
1000 mark_insn_reg_store, mark_insn_reg_clobber,
1001 setup_insn_reg_pressure_info): New.
1002 (sched_analyze_1): Update implicit_reg_pending_uses.
1003 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
1004 Use them to create dependencies. Set insn reg uses and pressure
1005 info. Process reg_pending_uses in one place.
1006 (free_deps): Free implicit sets.
1007 (remove_from_deps): Remove implicit sets if necessary. Check
1008 implicit sets when clearing reg_last_in_use.
1009 (init_deps_global): Clear implicit_reg_pending_clobbers and
1010 implicit_reg_pending_uses.
14e58be0 1011
ce18efcb
VM
1012 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
1013 ira_memory_move_cost, ira_class_hard_regs,
1014 ira_class_hard_regs_num, ira_no_alloc_regs,
1015 ira_available_class_regs, ira_reg_class_cover_size,
1016 ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
1017 (ira_setup_eliminable_regset, ira_set_pseudo_classes,
1018 ira_implicitly_set_insn_hard_regs): New prototypes.
14e58be0 1019
ce18efcb
VM
1020 * ira-costs.c (pseudo_classes_defined_p, allocno_p,
1021 cost_elements_num): New variables.
1022 (allocno_costs, total_costs): Rename to costs and
1023 total_allocno_costs.
1024 (COSTS_OF_ALLOCNO): Rename to COSTS.
1025 (allocno_pref): Rename to pref.
1026 (allocno_pref_buffer): Rename to pref_buffer.
1027 (common_classes): Rename to regno_cover_class.
1028 (COST_INDEX): New.
1029 (record_reg_classes): Set allocno attributes only if allocno_p.
ed9d5a4a 1030 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM.
ce18efcb
VM
1031 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
1032 and COSTS_OF_ALLOCNO.
1033 (print_costs): Rename to print_allocno_costs.
1034 (print_pseudo_costs): New.
1035 (process_bb_node_for_costs): Split into 2 functions with new
1036 function process_bb_for_costs. Pass BB to process_bb_for_costs.
1037 (find_allocno_class_costs): Rename to find_costs_and_classes. Add
1038 new parameter dump_file. Use cost_elements_num instead of
1039 ira_allocnos_num. Make one iteration if preferred classes were
1040 already calculated for scheduler. Make 2 versions of code
1041 depending on allocno_p.
1042 (setup_allocno_cover_class_and_costs): Check allocno_p. Use
1043 regno_cover_class and COSTS instead of common_classes and
1044 COSTS_OF_ALLOCNO.
1045 (init_costs, finish_costs): New.
1046 (ira_costs): Set up allocno_p and cost_elements_num. Call
1047 init_costs and finish_costs.
1048 (ira_set_pseudo_classes): New.
1049
1050 * rtl.h (allocate_reg_info): Remove.
1051 (resize_reg_info): Change return type.
1052 (reg_cover_class): New.
1053 (setup_reg_classes): Add new parameter.
14e58be0 1054
ce18efcb 1055 * sched-int.h (struct deps_reg): New member implicit_sets.
ed9d5a4a 1056 (sched_pressure_p, sched_regno_cover_class): New external definitions.
ce18efcb
VM
1057 (INCREASE_BITS): New macro.
1058 (struct reg_pressure_data, struct reg_use_data): New.
1059 (struct _haifa_insn_data): Remove reg_weight. Add members
1060 reg_pressure, reg_use_list, reg_set_list, and
1061 reg_pressure_excess_cost_change.
1062 (struct deps): New member implicit_sets.
1063 (pressure_p): New variable.
1064 (COVER_CLASS_BITS, INCREASE_BITS): New macros.
1065 (struct reg_pressure_data, struct reg_use_data): New.
1066 (INSN_REG_WEIGHT): Remove.
1067 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
ed9d5a4a 1068 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
ce18efcb
VM
1069 (sched_init_region_reg_pressure_info,
1070 sched_setup_bb_reg_pressure_info): New prototypes.
14e58be0
UB
1071
1072 * reginfo.c (struct reg_pref): New member coverclass.
ce18efcb
VM
1073 (reg_cover_class): New function.
1074 (reginfo_init, pass_reginfo_init): Move after free_reg_info.
1075 (reg_info_size): New variable.
1076 (allocate_reg_info): Make static. Setup reg_info_size.
1077 (resize_reg_info): Use reg_info_size. Return flag of resizing.
1078 (setup_reg_classes): Add a new parameter. Setup cover class too.
1079
ed9d5a4a
UB
1080 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
1081 the dependencies.
ce18efcb
VM
1082
1083 * sched-rgn.c (deps_join): Set up implicit_sets.
1084 (schedule_region): Set up region and basic blocks pressure
1085 relative info.
14e58be0 1086
ce18efcb
VM
1087 * passes.c (init_optimization_passes): Move
1088 pass_subregs_of_mode_init before pass_sched.
14e58be0 1089
fef94f76
MJ
10902009-09-02 Martin Jambor <mjambor@suse.cz>
1091
1092 * tree-sra.c (struct access): New field grp_hint.
1093 (dump_access): Dump grp_hint.
1094 (sort_and_splice_var_accesses): Set grp_hint if a group is read
1095 multiple times.
1096 (analyze_access_subtree): Only scalarize accesses with grp_hint set or
1097 those which have been specifically read and somehow written to.
1098 (propagate_subacesses_accross_link): Set grp_hint of right child and
1099 also possibly of the left child.
1100
ded97380
JJ
11012009-09-02 Jakub Jelinek <jakub@redhat.com>
1102
1103 * tree-object-size.c (addr_object_size): Always use object_size_type
1104 0 or 2 when determining the pointer pointed object size.
1105
63838157
RG
11062009-09-02 Richard Guenther <rguenther@suse.de>
1107
1108 Revert
1109 2009-08-31 Richard Guenther <rguenther@suse.de>
1110
1111 * builtins.c (fold_builtin_memory_op): Use the alias oracle
1112 to query if the memory regions for memmove overlap.
1113 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
1114 asserts on pointers, instead deal with odd trees.
1115 (ptr_derefs_may_alias_p): Likewise.
1116 (refs_may_alias_p_1): Constructor bases also never alias.
1117
c68e4eed
CB
11182009-08-01 Christian Bruel <christian.bruel@st.com>
1119
1120 Revert:
1121 2009-07-31 Christian Bruel <christian.bruel@st.com>
1122 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
14e58be0 1123
8fc68cba
AO
11242009-09-01 Alexandre Oliva <aoliva@redhat.com>
1125
1126 * doc/invoke.texi (-fvar-tracking-assignments): New.
1127 (-fvar-tracking-assignments-toggle): New.
1128 (-fdump-final-insns=file): Mark filename as optional.
1129 (--param min-nondebug-insn-uid): New.
1130 (-gdwarf-@{version}): Mention version 4.
1131 * opts.c (common_handle_option): Accept it.
1132 * tree-vrp.c (find_assert_locations_1): Skip debug stmts.
1133 * regrename.c (regrename_optimize): Drop last. Don't count debug
1134 insns as uses. Don't reject change because of debug insn.
1135 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
ed9d5a4a 1136 from the chain starter, and check for inexact matches in DEBUG_INSNS.
8fc68cba
AO
1137 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
1138 (build_def_use): Simplify and fix the marking of DEBUG_INSNs.
1139 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
1140 * fwprop.c (forward_propagate_and_simplify): ...into debug insns.
1141 * doc/gimple.texi (is_gimple_debug): New.
1142 (gimple_debug_bind_p): New.
1143 (is_gimple_call, gimple_assign_cast_p): End sentence with period.
1144 * doc/install.texi (bootstrap-debug): More details.
1145 (bootstrap-debug-big, bootstrap-debug-lean): Document.
1146 (bootstrap-debug-lib): More details.
1147 (bootstrap-debug-ckovw): Update.
1148 (bootstrap-time): New.
1149 * tree-into-ssa.c (mark_def_sites): Skip debug stmts.
1150 (insert_phi_nodes_for): Insert debug stmts.
1151 (rewrite_stmt): Take iterator. Insert debug stmts.
1152 (rewrite_enter_block): Adjust.
1153 (maybe_replace_use_in_debug_stmt): New.
1154 (rewrite_update_stmt): Use it.
1155 (mark_use_interesting): Return early for debug stmts.
1156 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
1157 stmts before replacing stmt.
1158 (move_computations_stmt): Likewise.
1159 * ira-conflicts.c (add_copies): Skip debug insns.
1160 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
1161 (regstat_bb_compute_ri): Skip debug insns.
1162 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
1163 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
1164 check_loop_closed_ssa_stmt): Skip debug stmts.
1165 * tree-tailcall.c (find_tail_calls): Likewise.
1166 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
1167 * tree.h (MAY_HAVE_DEBUG_STMTS): New.
1168 (build_var_debug_value_stat): Declare.
1169 (build_var_debug_value): Define.
1170 (target_for_debug_bind): Declare.
1171 * reload.c (find_equiv_reg): Skip debug insns.
1172 * rtlanal.c (reg_used_between_p): Skip debug insns.
1173 (side_effects_p): Likewise.
1174 (canonicalize_condition): Likewise.
14e58be0 1175 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
8fc68cba
AO
1176 insns never depend on debug insns.
1177 (create_ddg_dep_no_link): Likewise.
1178 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
1179 Don't add inter-loop dependencies for debug insns.
1180 (build_intra_loop_deps): Likewise.
1181 (create_ddg): Count debug insns.
1182 * ddg.h (struct ddg::num_debug): New.
1183 (num_backargs): Pair up with previous int field.
1184 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on
1185 -fcompare-debug-second.
1186 * final.c (get_attr_length_1): Skip debug insns.
1187 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
1188 * gcc.c (invoke_as): Call compare-debug-dump-opt.
1189 (driver_self_specs): Map -fdump-final-insns to
1190 -fdump-final-insns=..
1191 (get_local_tick): New.
1192 (compare_debug_dump_opt_spec_function): Test for . argument and
1193 compute output name. Compute temp output spec without flag name.
1194 Compute -frandom-seed.
1195 (OPT): Undef after use.
1196 * cfgloopanal.c (num_loop_insns): Skip debug insns.
1197 (average_num_loop_insns): Likewise.
1198 * params.h (MIN_NONDEBUG_INSN_UID): New.
1199 * gimple.def (GIMPLE_DEBUG): New.
1200 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
1201 * auto-inc-dec.c (merge_in_block): Skip debug insns.
1202 (merge_in_block): Fix whitespace.
1203 * toplev.c (flag_var_tracking): Update comment.
1204 (flag_var_tracking_assignments): New.
1205 (flag_var_tracking_assignments_toggle): New.
1206 (process_options): Don't open final insns dump file if we're not
1207 going to write to it. Compute defaults for var_tracking.
1208 * df-scan.c (df_insn_rescan_debug_internal): New.
1209 (df_uses_record): Handle debug insns.
1210 * haifa-sched.c (ready): Initialize n_debug.
1211 (contributes_to_priority): Skip debug insns.
1212 (dep_list_size): New.
1213 (priority): Use it.
14e58be0 1214 (rank_for_schedule): Likewise. Schedule debug insns as soon as
8fc68cba
AO
1215 they're ready. Disregard previous debug insns to make decisions.
1216 (queue_insn): Never queue debug insns.
1217 (ready_add, ready_remove_first, ready_remove): Count debug insns.
1218 (schedule_insn): Don't reject debug insns because of issue rate.
1219 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
1220 (queue_to_ready): Skip and discount debug insns.
1221 (choose_ready): Let debug insns through.
1222 (schedule_block): Check boundary debug insns. Discount debug
1223 insns, schedule them early. Adjust whitespace.
1224 (set_priorities): Check for boundary debug insns.
1225 (add_jump_dependencies): Use dep_list_size.
1226 (prev_non_location_insn): New.
1227 (check_cfg): Use it.
1228 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
1229 stmts.
1230 (remove_unused_ivs): Reset debug stmts.
1231 * modulo-sched.c (const_iteration_count): Skip debug insns.
1232 (res_MII): Discount debug insns.
1233 (loop_single_full_bb_p): Skip debug insns.
1234 (sms_schedule): Likewise.
1235 (sms_schedule_by_order): Likewise.
1236 (ps_has_conflicts): Likewise.
1237 * caller-save.c (refmarker_fn): New.
1238 (save_call_clobbered_regs): Replace regs with saved mem in
1239 debug insns.
1240 (mark_referenced_regs): Take pointer, mark and arg. Adjust.
1241 Call refmarker_fn mark for hardregnos.
1242 (mark_reg_as_referenced): New.
1243 (replace_reg_with_saved_mem): New.
1244 * ipa-pure-const.c (check_stmt): Skip debug stmts.
1245 * cse.c (cse_insn): Canonicalize debug insns. Skip them when
1246 searching back.
1247 (cse_extended_basic_block): Skip debug insns.
1248 (count_reg_usage): Likewise.
1249 (is_dead_reg): New, split out of...
1250 (set_live_p): ... here.
1251 (insn_live_p): Use it for debug insns.
1252 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
1253 (execute_optimize_stdarg): Likewise.
1254 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1255 * tree-ssa-propagate.c (substitute_and_fold): Don't regard
1256 changes in debug stmts as changes.
1257 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
1258 (moveup_expr): Don't move across debug insns. Don't move
1259 debug insn if it would create a bookkeeping block.
1260 (moveup_expr_cached): Don't use cache for debug insns that
1261 are heads of blocks.
1262 (compute_av_set_inside_bb): Skip debug insns.
1263 (sel_rank_for_schedule): Schedule debug insns first. Remove
1264 dead code.
1265 (block_valid_for_bookkeeping_p); Support lax searches.
1266 (create_block_for_bookkeeping): Adjust block numbers when
1267 encountering debug-only blocks.
1268 (find_place_for_bookkeeping): Deal with debug-only blocks.
1269 (generate_bookkeeping_insn): Accept no place to insert.
1270 (remove_temp_moveop_nops): New argument full_tidying.
1271 (prepare_place_to_insert): Deal with debug insns.
1272 (advance_state_on_fence): Debug insns don't start cycles.
1273 (update_boundaries): Take fence as argument. Deal with
1274 debug insns.
1275 (schedule_expr_on_boundary): No full_tidying on debug insns.
1276 (fill_insns): Deal with debug insns.
1277 (track_scheduled_insns_and_blocks): Don't count debug insns.
1278 (need_nop_to_preserve_insn_bb): New, split out of...
1279 (remove_insn_from_stream): ... this.
1280 (fur_orig_expr_not_found): Skip debug insns.
1281 * rtl.def (VALUE): Move up.
1282 (DEBUG_INSN): New.
ed9d5a4a 1283 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
8fc68cba
AO
1284 (nearest_common_dominator_of_uses): Take debug_stmts argument.
1285 Set it if debug stmts are found.
1286 (statement_sink_location): Skip debug stmts. Propagate
1287 moving defs into debug stmts.
1288 * ifcvt.c (first_active_insn): Skip debug insns.
1289 (last_active_insns): Likewise.
1290 (cond_exec_process_insns): Likewise.
1291 (noce_process_if_block): Likewise.
1292 (check_cond_move_block): Likewise.
1293 (cond_move_convert_if_block): Likewise.
1294 (block_jumps_and_fallthru_p): Likewise.
1295 (dead_or_predicable): Likewise.
1296 * dwarf2out.c (debug_str_hash_forced): New.
1297 (find_AT_string): Add comment.
1298 (gen_label_for_indirect_string): New.
1299 (get_debug_string_label): New.
1300 (AT_string_form): Use it.
1301 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
1302 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
1303 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
1304 several operations that cannot be represented with DWARF opcodes.
1305 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
1306 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
1307 (dwarf2out_var_location): Take during-call mark into account.
1308 (output_indirect_string): Update comment. Output if there are
1309 label and references.
1310 (prune_indirect_string): New.
1311 (prune_unused_types): Call it if debug_str_hash_forced.
1312 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
1313 (dw_long_long_const): Remove.
1314 (struct dw_val_struct): Change val_long_long type to rtx.
1315 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
1316 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
1317 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
1318 component instead of HOST_BITS_PER_LONG.
14e58be0 1319 (output_loc_operands): Likewise. For const8* assert
8fc68cba
AO
1320 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
1321 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
1322 rather than HOST_BITS_PER_LONG is >= 64.
1323 (add_AT_long_long): Remove val_hi and val_lo arguments, add
1324 val_const_double.
1325 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
1326 HOST_BITS_PER_LONG for dw_val_class_long_long.
1327 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't
1328 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
1329 (dwarf_stack_op_name): Handle DW_OP_implicit_value and
1330 DW_OP_stack_value.
1331 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1332 Handle DW_OP_implicit_value.
1333 (extract_int): Move prototype earlier.
1334 (mem_loc_descriptor): For SUBREG punt if inner
1335 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
1336 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
1337 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
1338 UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
1339 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
1340 instead of Pmode size.
1341 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
1342 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
1343 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
1344 (concat_loc_descriptor, concatn_loc_descriptor,
1345 loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
1346 (add_location_or_const_value_attribute): Likewise. For single
1347 location loc_lists attempt to use add_const_value_attribute
1348 for constant decls. Add DW_AT_const_value even if
1349 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
1350 in its expression.
1351 * cfgbuild.c (inside_basic_block_p): Handle debug insns.
1352 (control_flow_insn_p): Likewise.
ed9d5a4a 1353 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
8fc68cba
AO
1354 (separate_decls_in_region_debug_bind): New.
1355 (separate_decls_in_region): Process debug bind stmts afterwards.
1356 * recog.c (verify_changes): Handle debug insns.
1357 (extract_insn): Likewise.
1358 (peephole2_optimize): Skip debug insns.
1359 * dse.c (scan_insn): Skip debug insns.
1360 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
1361 Pass it on.
1362 (setup_id_for_insn): Handle debug insns.
1363 (maybe_tidy_empty_bb): Adjust whitespace.
1364 (tidy_control_flow): Skip debug insns.
1365 (sel_remove_insn): Adjust for debug insns.
1366 (sel_estimate_number_of_insns): Skip debug insns.
1367 (create_insn_rtx_from_pattern): Handle debug insns.
1368 (create_copy_of_insn_rtx): Likewise.
1369 * sel-sched-.h (sel_bb_end): Declare.
1370 (sel_bb_empty_or_nop_p): New.
1371 (get_all_loop_exits): Use it.
1372 (_eligible_successor_edge_p): Likewise.
1373 (return_nop_to_pool): Adjust.
1374 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
1375 * ira-lives.c (process_bb_node_lives): Skip debug insns.
1376 * gimple-pretty-print.c (dump_gimple_debug): New.
1377 (dump_gimple_stmt): Use it.
1378 (dump_bb_header): Skip gimple debug stmts.
1379 * regmove.c (optimize_reg_copy_1): Discount debug insns.
1380 (fixup_match_2): Likewise.
1381 (regmove_backward_pass): Likewise. Simplify combined
1382 replacement. Handle debug insns.
1383 * function.c (instantiate_virtual_regs): Handle debug insns.
1384 * function.h (struct emit_status): Add x_cur_debug_insn_uid.
1385 * print-rtl.h: Include cselib.h.
ed9d5a4a 1386 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs.
8fc68cba
AO
1387 * df.h (df_inns_rescan_debug_internal): Declare.
1388 * gcse.c (alloc_hash_table): Estimate n_insns.
1389 (cprop_insn): Don't regard debug insns as changes.
1390 (bypass_conditional_jumps): Skip debug insns.
1391 (one_pre_gcse_pass): Adjust.
1392 (one_code_hoisting_pass): Likewise.
1393 (compute_ld_motion_mems): Skip debug insns.
1394 (one_cprop_pass): Adjust.
1395 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
1396 (if_convertible_stmt_p): Handle debug stmts.
1397 * init-regs.c (initialize_uninitialized_regs): Skip debug insns.
1398 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
1399 * ira-build.c (create_bb_allocnos): Skip debug insns.
1400 * tree-flow-inline.h (has_zero_uses): Discount debug stmts.
1401 (has_single_use): Likewise.
1402 (single_imm_use): Likewise.
1403 (num_imm_uses): Likewise.
1404 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
1405 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
1406 (create_outofssa_var_map): Likewise.
1407 * lower-subreg.c (adjust_decomposed_uses): New.
1408 (resolve_debug): New.
1409 (decompose_multiword_subregs): Use it.
1410 * tree-dfa.c (find_referenced_vars): Skip debug stmts.
1411 * emit-rtl.c: Include params.h.
1412 (cur_debug_insn_uid): Define.
1413 (set_new_first_and_last_insn): Set cur_debug_insn_uid too.
1414 (copy_rtx_if_shared_1): Handle debug insns.
1415 (reset_used_flags): Likewise.
1416 (set_used_flags): LIkewise.
1417 (get_max_insn_count): New.
1418 (next_nondebug_insn): New.
1419 (prev_nondebug_insn): New.
1420 (make_debug_insn_raw): New.
1421 (emit_insn_before_noloc): Handle debug insns.
1422 (emit_jump_insn_before_noloc): Likewise.
1423 (emit_call_insn_before_noloc): Likewise.
1424 (emit_debug_insn_before_noloc): New.
1425 (emit_insn_after_noloc): Handle debug insns.
1426 (emit_jump_insn_after_noloc): Likewise.
1427 (emit_call_insn_after_noloc): Likewise.
1428 (emit_debug_insn_after_noloc): Likewise.
1429 (emit_insn_after): Take loc from earlier non-debug insn.
1430 (emit_jump_insn_after): Likewise.
1431 (emit_call_insn_after): Likewise.
1432 (emit_debug_insn_after_setloc): New.
1433 (emit_debug_insn_after): New.
1434 (emit_insn_before): Take loc from later non-debug insn.
1435 (emit_jump_insn_before): Likewise.
1436 (emit_call_insn_before): Likewise.
1437 (emit_debug_insn_before_setloc): New.
1438 (emit_debug_insn_before): New.
1439 (emit_insn): Handle debug insns.
1440 (emit_debug_insn): New.
1441 (emit_jump_insn): Handle debug insns.
1442 (emit_call_insn): Likewise.
1443 (emit): Likewise.
1444 (init_emit): Take min-nondebug-insn-uid into account.
1445 Initialize cur_debug_insn_uid.
1446 (emit_copy_of_insn_after): Handle debug insns.
1447 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
1448 location of single rhs in place.
1449 (maybe_dump_rtl_for_gimple_stmt): Dump lineno.
1450 (floor_sdiv_adjust): New.
1451 (cell_sdiv_adjust): New.
1452 (cell_udiv_adjust): New.
1453 (round_sdiv_adjust): New.
1454 (round_udiv_adjust): New.
1455 (wrap_constant): Moved from cselib.
1456 (unwrap_constant): New.
1457 (expand_debug_expr): New.
1458 (expand_debug_locations): New.
1459 (expand_gimple_basic_block): Drop hiding redeclaration. Expand
1460 debug bind stmts.
1461 (gimple_expand_cfg): Expand debug locations.
1462 * cselib.c: Include tree-pass.h.
1463 (struct expand_value_data): New.
1464 (cselib_record_sets_hook): New.
1465 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
1466 (cselib_clear_table): Move, and implemnet in terms of...
1467 (cselib_reset_table_with_next_value): ... this.
1468 (cselib_get_next_unknown_value): New.
1469 (discard_useless_locs): Don't discard preserved values.
1470 (cselib_preserve_value): New.
1471 (cselib_preserved_value_p): New.
1472 (cselib_preserve_definitely): New.
1473 (cselib_clear_preserve): New.
1474 (cselib_preserve_only_values): New.
1475 (new_cselib_val): Take rtx argument. Dump it in details.
1476 (cselib_lookup_mem): Adjust.
1477 (expand_loc): Take regs_active in struct. Adjust. Silence
1478 dumps unless details are requested.
1479 (cselib_expand_value_rtx_cb): New.
1480 (cselib_expand_value_rtx): Rename and reimplment in terms of...
1481 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
1482 without details. Copy more subregs. Try to resolve values
1483 using a callback. Wrap constants.
1484 (cselib_subst_to_values): Adjust.
1485 (cselib_log_lookup): New.
1486 (cselib_lookup): Call it.
ed9d5a4a 1487 (cselib_invalidate_regno): Don't count preserved values as useless.
8fc68cba
AO
1488 (cselib_invalidate_mem): Likewise.
1489 (cselib_record_set): Likewise.
1490 (struct set): Renamed to cselib_set, moved to cselib.h.
1491 (cselib_record_sets): Adjust. Call hook.
1492 (cselib_process_insn): Reset table when it would be cleared.
1493 (dump_cselib_val): New.
1494 (dump_cselib_table): New.
1495 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
1496 (remove_forwarder_block): Support moving debug stmts.
1497 * cselib.h (cselib_record_sets_hook): Declare.
1498 (cselib_expand_callback): New type.
1499 (cselib_expand_value_rtx_cb): Declare.
1500 (cselib_reset_table_with_next_value): Declare.
1501 (cselib_get_next_unknown_value): Declare.
1502 (cselib_preserve_value): Declare.
1503 (cselib_preserved_value_p): Declare.
1504 (cselib_preserve_only_values): Declare.
1505 (dump_cselib_table): Declare.
1506 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
1507 (try_crossjump_to_edge): Likewise.
1508 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after
1509 dominated blocks when debug stmts are present.
1510 * simplify-rtx.c (delegitimize_mem_from_attrs): New.
1511 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
1512 (set_var_live_on_entry): Likewise.
1513 * loop-invariant.c (find_invariants_bb): Skip debug insns.
1514 * cfglayout.c (curr_location, last_location): Make static.
1515 (set_curr_insn_source_location): Don't avoid bouncing.
1516 (get_curr_insn_source_location): New.
1517 (get_curr_insn_block): New.
1518 (duplicate_insn_chain): Handle debug insns.
1519 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
1520 into debug stmts.
1521 * common.opt (fcompare-debug): Move to sort order.
1522 (fdump-unnumbered-links): Likewise.
1523 (fvar-tracking-assignments): New.
1524 (fvar-tracking-assignments-toggle): New.
1525 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
1526 because of debug stmts.
1527 (mark_stmt_if_obviously_necessary): Mark debug stmts.
1528 (eliminate_unnecessary_stmts): Walk dominated blocks before
1529 dominators.
1530 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
1531 * ira.c (memref_used_between_p): Skip debug insns.
1532 (update_equiv_regs): Likewise.
1533 * sched-deps.c (sd_lists_size): Accept empty list.
1534 (sd_init_insn): Mark debug insns.
1535 (sd_finish_insn): Unmark them.
1536 (sd_add_dep): Reject non-debug deps on debug insns.
1537 (fixup_sched_groups): Give debug insns group treatment.
1538 Skip debug insns.
1539 (sched_analyze_reg): Don't mark debug insns for sched before call.
1540 (sched_analyze_2): Handle debug insns.
1541 (sched_analyze_insn): Compute next non-debug insn. Handle debug
1542 insns.
1543 (deps_analyze_insn): Handle debug insns.
1544 (deps_start_bb): Skip debug insns.
1545 (init_deps): Initialize last_debug_insn.
1546 * tree-ssa.c (target_for_debug_bind): New.
1547 (find_released_ssa_name): New.
1548 (propagate_var_def_into_debug_stmts): New.
1549 (propagate_defs_into_debug_stmts): New.
1550 (verify_ssa): Skip debug bind stmts without values.
1551 (warn_uninialized_vars): Skip debug stmts.
1552 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
1553 * rtl.c (rtx_equal_p_cb): Handle VALUEs.
1554 (rtx_equal_p): Likewise.
1555 * ira-costs.c (scan_one_insn): Skip debug insns.
1556 (process_bb_node_for_hard_reg_moves): Likewise.
1557 * rtl.h (DEBUG_INSN_P): New.
1558 (NONDEBUG_INSN_P): New.
1559 (MAY_HAVE_DEBUG_INSNS): New.
1560 (INSN_P): Accept debug insns.
1561 (RTX_FRAME_RELATED_P): Likewise.
1562 (INSN_DELETED_P): Likewise
1563 (PAT_VAR_LOCATION_DECL): New.
1564 (PAT_VAR_LOCATION_LOC): New.
1565 (PAT_VAR_OCATION_STATUS): New.
1566 (NOTE_VAR_LOCATION_DECL): Reimplement.
1567 (NOTE_VAR_LOCATION_LOC): Likewise.
1568 (NOTE_VAR_LOCATION_STATUS): Likewise.
1569 (INSN_VAR_LOCATION): New.
1570 (INSN_VAR_LOCATION_DECL): New.
1571 (INSN_VAR_LOCATION_LOC): New.
1572 (INSN_VAR_LOCATION_STATUS): New.
1573 (gen_rtx_UNKNOWN_VAR_LOC): New.
1574 (VAR_LOC_UNKNOWN_P): New.
1575 (NOTE_DURING_CALL_P): New.
1576 (SCHED_GROUP_P): Accept debug insns.
1577 (emit_debug_insn_before): Declare.
1578 (emit_debug_insn_before_noloc): Declare.
1579 (emit_debug_insn_beore_setloc): Declare.
1580 (emit_debug_insn_after): Declare.
1581 (emit_debug_insn_after_noloc): Declare.
1582 (emit_debug_insn_after_setloc): Declare.
1583 (emit_debug_insn): Declare.
1584 (make_debug_insn_raw): Declare.
1585 (prev_nondebug_insn): Declare.
1586 (next_nondebug_insn): Declare.
1587 (delegitimize_mem_from_attrs): Declare.
1588 (get_max_insn_count): Declare.
1589 (wrap_constant): Declare.
1590 (unwrap_constant): Declare.
1591 (get_curr_insn_source_location): Declare.
1592 (get_curr_insn_block): Declare.
1593 * tree-inline.c (insert_debug_decl_map): New.
1594 (processing_debug_stmt): New.
1595 (remap_decl): Don't create new mappings in debug stmts.
1596 (remap_gimple_op_r): Don't add references in debug stmts.
1597 (copy_tree_body_r): Likewise.
1598 (remap_gimple_stmt): Handle debug bind stmts.
1599 (copy_bb): Skip debug stmts.
1600 (copy_edges_for_bb): Likewise.
1601 (copy_debug_stmt): New.
1602 (copy_debug_stmts): New.
1603 (copy_body): Copy debug stmts at the end.
1604 (insert_init_debug_bind): New.
1605 (insert_init_stmt): Take id. Skip and emit debug stmts.
ed9d5a4a 1606 (setup_one_parameter): Remap variable earlier, register debug mapping.
8fc68cba
AO
1607 (estimate_num_insns): Skip debug stmts.
1608 (expand_call_inline): Preserve debug_map.
1609 (optimize_inline_calls): Check for no debug_stmts left-overs.
1610 (unsave_expr_now): Preserve debug_map.
1611 (copy_gimple_seq_and_replace_locals): Likewise.
1612 (tree_function_versioning): Check for no debug_stmts left-overs.
1613 Init and destroy debug_map as needed. Split edges unconditionally.
1614 (build_duplicate_type): Init and destroy debug_map as needed.
1615 * tree-inline.h: Include gimple.h instead of pointer-set.h.
1616 (struct copy_body_data): Add debug_stmts and debug_map.
1617 * sched-int.h (struct ready_list): Add n_debug.
1618 (struct deps): Add last_debug_insn.
1619 (DEBUG_INSN_SCHED_P): New.
1620 (BOUNDARY_DEBUG_INSN_P): New.
1621 (SCHEDULE_DEBUG_INSN_P): New.
1622 (sd_iterator_cond): Accept empty list.
1623 * combine.c (create_log_links): Skip debug insns.
1624 (combine_instructions): Likewise.
1625 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
1626 return value is always unshared.
1627 (struct rtx_subst_pair): New.
1628 (auto_adjust_pair): New.
1629 (propagate_for_debug_subst): New.
1630 (propagate_for_debug): New.
1631 (try_combine): Skip debug insns. Propagate removed defs into
1632 debug insns.
1633 (next_nonnote_nondebug_insn): New.
1634 (distribute_notes): Use it. Skip debug insns.
1635 (distribute_links): Skip debug insns.
1636 * tree-outof-ssa.c (set_location_for_edge): Likewise.
1637 * resource.c (mark_target_live_regs): Likewise.
1638 * var-tracking.c: Include cselib.h and target.h.
1639 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
1640 MO_VAL_SET.
1641 (micro_operation_type_name): New.
1642 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
1643 (struct micro_operation_def): Update comments.
1644 (decl_or_value): New type. Use instead of decls.
1645 (struct emit_note_data_def): Add vars.
1646 (struct attrs_def): Use decl_or_value.
1647 (struct variable_tracking_info_def): Add permp, flooded.
1648 (struct location_chain_def): Update comment.
1649 (struct variable_part_def): Use decl_or_value.
1650 (struct variable_def): Make var_part a variable length array.
1651 (valvar_pool): New.
1652 (scratch_regs): New.
1653 (cselib_hook_called): New.
1654 (dv_is_decl_p): New.
1655 (dv_is_value_p): New.
1656 (dv_as_decl): New.
1657 (dv_as_value): New.
1658 (dv_as_opaque): New.
1659 (dv_onepart_p): New.
1660 (dv_pool): New.
1661 (IS_DECL_CODE): New.
1662 (check_value_is_not_decl): New.
1663 (dv_from_decl): New.
1664 (dv_from_value): New.
1665 (dv_htab_hash): New.
1666 (variable_htab_hash): Use it.
1667 (variable_htab_eq): Support values.
1668 (variable_htab_free): Free from the right pool.
1669 (attrs_list_member, attrs_list_insert): Use decl_or_value.
1670 (attrs_list_union): Adjust.
1671 (attrs_list_mpdv_union): New.
1672 (tie_break_pointers): New.
1673 (canon_value_cmp): New.
1674 (unshare_variable): Return possibly-modified slot.
1675 (vars_copy_1): Adjust.
1676 (var_reg_decl_set): Adjust. Split out of...
1677 (var_reg_set): ... this.
1678 (get_init_value): Adjust.
1679 (var_reg_delete_and_set): Adjust.
1680 (var_reg_delete): Adjust.
1681 (var_regno_delete): Adjust.
1682 (var_mem_decl_set): Split out of...
1683 (var_mem_set): ... this.
1684 (var_mem_delete_and_set): Adjust.
1685 (var_mem_delete): Adjust.
1686 (val_store): New.
1687 (val_reset): New.
1688 (val_resolve): New.
1689 (variable_union): Adjust. Speed up merge of 1-part vars.
1690 (variable_canonicalize): Use unshared slot.
1691 (VALUED_RECURSED_INTO): New.
1692 (find_loc_in_1pdv): New.
1693 (struct dfset_merge): New.
1694 (insert_into_intersection): New.
1695 (intersect_loc_chains): New.
1696 (loc_cmp): New.
1697 (canonicalize_loc_order_check): New.
1698 (canonicalize_values_mark): New.
1699 (canonicalize_values_star): New.
1700 (variable_merge_over_cur): New.
1701 (variable_merge_over_src): New.
1702 (dataflow_set_merge): New.
1703 (dataflow_set_equiv_regs): New.
1704 (remove_duplicate_values): New.
1705 (struct dfset_post_merge): New.
1706 (variable_post_merge_new_vals): New.
1707 (variable_post_merge_perm_vals): New.
1708 (dataflow_post_merge_adjust): New.
1709 (find_mem_expr_in_1pdv): New.
1710 (dataflow_set_preserve_mem_locs): New.
1711 (dataflow_set_remove_mem_locs): New.
1712 (dataflow_set_clear_at_call): New.
1713 (onepart_variable_different_p): New.
1714 (variable_different_p): Use it.
ed9d5a4a 1715 (dataflow_set_different_1): Adjust. Make detailed dump more verbose.
8fc68cba
AO
1716 (track_expr_p): Add need_rtl parameter. Don't generate rtl
1717 if not needed.
1718 (track_loc_p): Pass it true.
1719 (struct count_use_info): New.
1720 (find_use_val): New.
1721 (replace_expr_with_values): New.
1722 (log_op_type): New.
1723 (use_type): New, partially split out of...
1724 (count_uses): ... this. Count new micro-ops.
1725 (count_uses_1): Adjust.
1726 (count_stores): Adjust.
1727 (count_with_sets): New.
1728 (VAL_NEEDS_RESOLUTION): New.
1729 (VAL_HOLDS_TRACK_EXPR): New.
1730 (VAL_EXPR_IS_COPIED): New.
1731 (VAL_EXPR_IS_CLOBBERED): New.
1732 (add_uses): Adjust. Generate new micro-ops.
1733 (add_uses_1): Adjust.
1734 (add_stores): Generate new micro-ops.
1735 (add_with_sets): New.
1736 (find_src_status): Adjust.
1737 (find_src_set_src): Adjust.
1738 (compute_bb_dataflow): Use dataflow_set_clear_at_call.
1739 Handle new micro-ops. Canonicalize value equivalances.
1740 (vt_find_locations): Compute total size of hash tables for
1741 dumping. Perform merge for var-tracking-assignments. Don't
1742 disregard single-block loops.
1743 (dump_attrs_list): Handle decl_or_value.
1744 (dump_variable): Take variable. Deal with decl_or_value.
1745 (dump_variable_slot): New.
1746 (dump_vars): Use it.
1747 (dump_dataflow_sets): Adjust.
1748 (set_slot_part): New, extended to support one-part variables
1749 after splitting out of...
1750 (set_variable_part): ... this.
1751 (clobber_slot_part): New, split out of...
1752 (clobber_variable_part): ... this.
1753 (delete_slot_part): New, split out of...
1754 (delete_variable_part): .... this.
1755 (check_wrap_constant): New.
1756 (vt_expand_loc_callback): New.
1757 (vt_expand_loc): New.
1758 (emit_note_insn_var_location): Adjust. Handle values. Handle
1759 EMIT_NOTE_AFTER_CALL_INSN.
1760 (emit_notes_for_differences_1): Adjust. Handle values.
1761 (emit_notes_for_differences_2): Likewise.
1762 (emit_notes_for_differences): Adjust.
ed9d5a4a
UB
1763 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes.
1764 Adjust. Handle new micro-ops.
8fc68cba
AO
1765 (vt_add_function_parameters): Adjust. Create and bind values.
1766 (vt_initialize): Adjust. Initialize scratch_regs and
1767 valvar_pool, flooded and perm.. Initialize and use cselib. Log
1768 operations. Move some code to count_with_sets and add_with_sets.
1769 (delete_debug_insns): New.
1770 (vt_debug_insns_local): New.
1771 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
1772 cselib.
1773 (var_tracking_main): If var-tracking-assignments is enabled
1774 but var-tracking isn't, delete debug insns and leave. Likewise
1775 if we exceed limits or fail the stack adjustments tests, and
1776 after all var-tracking processing.
1777 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
1778 (dataflow_set): Add traversed_vars.
1779 (value_chain, const_value_chain): New typedefs.
1780 (value_chain_pool, value_chains): New variables.
1781 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
1782 add_value_chains, add_cselib_value_chains, remove_value_chain,
1783 remove_value_chains, remove_cselib_value_chains): New functions.
1784 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
1785 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
1786 static inlines.
1787 (shared_hash_find_slot_unshare, shared_hash_find_slot,
1788 shared_hash_find_slot_noinsert, shared_hash_find): Update.
1789 (dst_can_be_shared): New variable.
1790 (unshare_variable): Unshare set->vars if shared, use shared_hash_*.
1791 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
1792 different from set->vars, look up slot again instead of using the
1793 passed in slot.
1794 (dataflow_set_init): Initialize traversed_vars.
1795 (variable_union): Use shared_hash_*. Use initially NO_INSERT
1796 lookup if set->vars is shared. Don't keep slot cleared before
1797 calling unshare_variable. Unshare set->vars if needed. Adjust
1798 unshare_variable callers. Clear dst_can_be_shared if needed.
1799 Even ->refcount == 1 vars must be unshared if set->vars is shared
1800 and var needs to be modified.
1801 (dataflow_set_union): Set traversed_vars during canonicalization.
1802 (VALUE_CHANGED, DECL_CHANGED): Define.
14e58be0 1803 (set_dv_changed, dv_changed_p): New static inlines.
8fc68cba
AO
1804 (track_expr_p): Clear DECL_CHANGED.
1805 (dump_dataflow_sets): Set it.
1806 (variable_was_changed): Call set_dv_changed.
1807 (emit_note_insn_var_location): Likewise.
1808 (changed_variables_stack): New variable.
1809 (check_changed_vars_1, check_changed_vars_2): New functions.
1810 (emit_notes_for_changes): Do nothing if changed_variables is
1811 empty. Traverse changed_variables with check_changed_vars_1,
1812 call check_changed_vars_2 on each changed_variables_stack entry.
1813 (emit_notes_in_bb): Add SET argument. Just clear it at the
ed9d5a4a 1814 beginning, use it instead of local &set, don't destroy it at the end.
8fc68cba
AO
1815 (vt_emit_notes): Call dataflow_set_clear early on all
1816 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
1817 computed set, dataflow_set_clear also VTI(bb)->in when we are
1818 done with the basic block. Initialize changed_variables_stack,
1819 free it afterwards. If ENABLE_CHECKING verify that after noting
1820 differences to an empty set value_chains hash table is empty.
1821 (vt_initialize): Initialize value_chains and value_chain_pool.
1822 (vt_finalize): Delete value_chains htab, free value_chain_pool.
1823 (variable_tracking_main): Call dump_dataflow_sets before calling
1824 vt_emit_notes, not after it.
1825 * tree-flow.h (propagate_defs_into_debug_stmts): Declare.
1826 (propagate_var_def_into_debug_stmts): Declare.
1827 * df-problems.c (df_lr_bb_local_compute): Skip debug insns.
1828 (df_set_note): Reject debug insns.
1829 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
1830 add notes to debug insns.
1831 (df_note_bb_compute): Adjust. Likewise.
1832 (df_simulate_uses): Skip debug insns.
1833 (df_simulate_initialize_backwards): Likewise.
1834 * reg-stack.c (subst_stack_regs_in_debug_insn): New.
1835 (subst_stack_regs_pat): Reject debug insns.
1836 (convert_regs_1): Handle debug insns.
1837 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
1838 (print-rtl.o): Depend on cselib.h.
1839 (cselib.o): Depend on TREE_PASS_H.
1840 (var-tracking.o): Depend on cselib.h and TARGET_H.
ed9d5a4a 1841 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
8fc68cba
AO
1842 (init_ready_list): Skip boundary debug insns.
1843 (add_branch_dependences): Skip debug insns.
ed9d5a4a 1844 (free_block_dependencies): Check for blocks with only debug insns.
8fc68cba
AO
1845 (compute_priorities): Likewise.
1846 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
1847 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
1848 all callers.
1849 (gimple_build_debug_bind_stat): New.
1850 (empty_body_p): Skip debug stmts.
1851 (gimple_has_side_effects): Likewise.
1852 (gimple_rhs_has_side_effects): Likewise.
1853 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
1854 (gimple_build_debug_bind_stat): Declare.
1855 (gimple_build_debug_bind): Define.
1856 (is_gimple_debug): New.
1857 (gimple_debug_bind_p): New.
1858 (gimple_debug_bind_get_var): New.
1859 (gimple_debug_bind_get_value): New.
1860 (gimple_debug_bind_get_value_ptr): New.
1861 (gimple_debug_bind_set_var): New.
1862 (gimple_debug_bind_set_value): New.
1863 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
1864 (gimple_debug_bind_reset_value): New.
1865 (gimple_debug_bind_has_value_p): New.
1866 (gsi_next_nondebug): New.
1867 (gsi_prev_nondebug): New.
1868 (gsi_start_nondebug_bb): New.
1869 (gsi_last_nondebug_bb): New.
1870 * sched-vis.c (print_pattern): Handle VAR_LOCATION.
1871 (print_insn): Handle DEBUG_INSN.
1872 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
1873 of first insn prevail.
1874 (first_stmt): Skip debug stmts.
1875 (first_non_label_stmt): Likewise.
1876 (last_stmt): Likewise.
1877 (has_zero_uses_1): New.
1878 (single_imm_use_1): New.
1879 (verify_gimple_debug): New.
1880 (verify_types_in_gimple_stmt): Handle debug stmts.
1881 (verify_stmt): Likewise.
1882 (debug_loop_num): Skip debug stmts.
1883 (remove_edge_and_dominated_blocks): Remove dominators last.
ed9d5a4a 1884 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
8fc68cba
AO
1885 (linearize_expr): Likewise.
1886 * config/i386/i386.c (ix86_delegitimize_address): Call
1887 default implementation.
ed9d5a4a 1888 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
8fc68cba
AO
1889 (group_barrier_needed): Skip debug insns.
1890 (emit_insn_group_barriers): Likewise.
1891 (emit_all_insn_group_barriers): Likewise.
1892 (ia64_variable_issue): Handle debug insns.
1893 (ia64_dfa_new_cycle): Likewise.
1894 (final_emit_insn_group_barriers): Skip debug insns.
1895 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
1896 def cfa without frame.
1897 (process_set): Likewise.
1898 (process_for_unwind_directive): Pass frame on.
1899 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
1900 (rs6000_delegitimize_address): New.
1901 (rs6000_debug_adjust_cost): Handle debug insns.
1902 (is_microcoded_insn): Likewise.
1903 (is_cracked_insn): Likewise.
1904 (is_nonpipeline_insn): Likewise.
1905 (insn_must_be_first_in_group): Likewise.
1906 (insn_must_be_last_in_group): Likewise.
1907 (force_new_group): Likewise.
1908 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
1909 contains only debug insns.
1910 (rtl_merge_blocks): Skip debug insns.
1911 (purge_dead_edges): Likewise.
1912 (rtl_block_ends_with_call_p): Skip debug insns.
1913 * dce.c (deletable_insn_p): Handle VAR_LOCATION.
1914 (mark_reg_dependencies): Skip debug insns.
1915 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
ed9d5a4a 1916 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
8fc68cba
AO
1917 * tree-ssa-threadedge.c
1918 (record_temporary_equivalences_from_stmts): Skip debug stmts.
1919 * regcprop.c (replace_oldest_value_addr): Skip debug insns.
1920 (replace_oldest_value_mem): Use ALL_REGS for debug insns.
1921 (copyprop_hardreg_forward_1): Handle debug insns.
1922 * reload1.c (reload): Skip debug insns. Replace unassigned
1923 pseudos in debug insns with their equivalences.
1924 (eliminate_regs_in_insn): Skip debug insns.
1925 (emit_input_reload_insns): Skip debug insns at first, adjust
1926 them later.
1927 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
1928 (get_indirect_ref_operands): Pass opf_no_vops on.
1929 (get_expr_operands): Likewise. Skip debug stmts.
1930 (parse_ssa_operands): Scan debug insns with opf_no_vops.
1931
cd6ea7a2
RH
19322009-09-01 Richard Henderson <rth@redhat.com>
1933
14e58be0 1934 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
cd6ea7a2
RH
1935 stmt_ends_pp_p statements at least once.
1936 * tree-vrp.c (vrp_initialize): Likewise.
1937 (vrp_visit_stmt): Be prepared for non-interesting stmts.
1938
d3bc57f2
DS
19392009-09-01 Dodji Seketeli <dodji@redhat.com>
1940
1941 PR bootstrap/41205
1942 Fix AIX bootstrap after PR debug/30161
1943 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
1944 that is a GNU extension.
1945 (tmpl_value_parm_die_table): Move the definition of this global
1946 outside #ifdef DWARF2_DEBUGGING_INFO region.
1947
71c00b5c
RG
19482009-09-01 Richard Guenther <rguenther@suse.de>
1949
1950 * tree.c (tree_expr_size): New function.
1951 * tree.h (tree_expr_size): Declare.
1952 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
1953 * builtins.c (fold_builtin_memory_op): Use tree_expr_size.
1954 * langhooks.c (lhd_expr_size): Remove.
1955 * langhooks.h (struct lang_hooks): Remove expr_size.
1956 * explow.c (expr_size): Use tree_expr_size.
1957 (int_expr_size): Likewise.
1958 * langhooks-def.h (lhd_expr_size): Remove.
1959 (LANG_HOOKS_EXPR_SIZE): Likewise.
1960 (LANG_HOOKS_INITIALIZER): Adjust.
1961
58f986ca
RG
19622009-09-01 Richard Guenther <rguenther@suse.de>
1963
1964 * tree-flow.h (mark_addressable): Move declaration ...
1965 * tree.h (mark_addressable): ... here.
1966 * stmt.c (expand_asm_operands): Use mark_addressable, not
1967 lang_hooks.mark_addressable.
1968 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1969 LANG_HOOKS_MARK_ADDRESSABLE.
1970 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
1971 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
1972
5fa162c0
CD
19732009-08-31 Chris Demetriou <cgd@google.com>
1974
1975 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
1976 vectorize if not TARGET_SSE2.
1977
453503d6
DD
19782009-08-31 DJ Delorie <dj@redhat.com>
1979
1980 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
1981 registers if no coprocessor is enabled.
1982
f9329c35
DS
19832009-08-31 Dodji Seketeli <dodji@redhat.com>
1984
1985 PR debug/30161
1986 * cgraph.h (cgraph_get_node): Declare ...
1987 * cgraph.c (cgraph_get_node): ... new function.
1988 * dwarf2out.c (gen_generic_params_dies,
1989 generic_parameter_die, tree_add_const_value_attribute_for_decl,
1990 make_ith_pack_parameter_name,
1991 append_entry_to_tmpl_value_parm_die_table,
1992 gen_remaining_tmpl_value_param_die_attribute): New functions.
1993 (gen_subprogram_die): Generate debug info for template parameters
1994 if debug info level is higher than DINFO_LEVEL_TERSE.
1995 Use tree_add_const_value_attribute_for_decl instead of
1996 tree_add_const_value_attribute.
1997 (gen_const_die): Use tree_add_const_value_attribute_for_decl
1998 instead of tree_add_const_value_attribute.
1999 (gen_struct_or_union_type_die): Generate debug
2000 info for template parameters if debug info level is higher than
2001 DINFO_LEVEL_TERSE.
2002 (tree_add_const_value_attribute): Handle integral and pointer
2003 constants. Update comment.
2004 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
2005 (dwarf_attr_name): Support DW_AT_GNU_template_name.
2006 (reference_to_unused): Fix thinko. Remove redundant predicates from
2007 tests.
2008 (tree_add_const_value_attribute): Make this work for constant
2009 expressions only.
2010 tree_add_const_value_attribute_for_decl is to be used for variable
2011 DECLs now.
2012 (add_location_or_const_value_attribute): Use
2013 tree_add_const_value_attribute_for_decl now.
2014 (dwarf2out_finish): Emit the DW_AT_const_value attribute of
2015 DW_TAG_template_value_param DIEs after function DIEs have been
2016 emitted.
2017 * langhooks.h (lang_hooks_for_types): Add
2018 get_argument_pack_elems.
2019 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
2020 (lang_hooks): Added get_innermost_generic_parms,
2021 get_innermost_generic_args.
2022 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
2023 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
2024 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
2025 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
2026
e756464b
DD
20272009-08-31 DJ Delorie <dj@redhat.com>
2028
2029 * config/mep/mep.c (machine_function): Add frame_locked flag. Set
2030 it once we start generating the prologue or epilogue.
5fa162c0
CD
2031 (mep_call_saves_register): If the frame is locked, re-use
2032 cached values.
e756464b
DD
2033 (mep_assign_save_slots): New, broken out from mep_expand_prologue.
2034 (mep_expand_prologue): Call it.
2035 (mep_expand_epilogue): Likewise.
2036 (mep_start_function): Use the same logic as mep_expand_prologue.
2037 (mep_pass_by_reference): Make logic more readable.
2038 (mep_return_in_memory): Zero-sized objects are passed in memory.
2039 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
2040
e2abde5f
RG
20412009-08-31 Richard Guenther <rguenther@suse.de>
2042
2043 * builtins.c (fold_builtin_memory_op): Use the alias oracle
2044 to query if the memory regions for memmove overlap.
2045 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
2046 asserts on pointers, instead deal with odd trees.
2047 (ptr_derefs_may_alias_p): Likewise.
2048 (refs_may_alias_p_1): Constructor bases also never alias.
2049
c4331d93
GP
20502009-08-31 Gerald Pfeifer <gerald@pfeifer.com>
2051
2052 * doc/install.texi (Final install): Adjust reference on where to
2053 order printed manuals.
2054
40a99889
OH
20552009-08-30 Olivier Hainque <hainque@adacore.com>
2056
2057 * dwarf2out.c (switch_to_frame_table_section): Move
2058 definition prior to first use.
2059
a778c4e7
RG
20602009-08-30 Richard Guenther <rguenther@suse.de>
2061
2062 PR tree-optimization/41186
2063 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
2064 (ao_ref_init_from_ptr_and_size): New function.
2065 (ref_maybe_used_by_call_p_1): Be more precise tracking
2066 used ranges for builtin functions.
2067 (ref_maybe_used_by_call_p): Adjust.
2068 (call_may_clobber_ref_p_1): Be more precise tracking clobbered
2069 ranges for builtin functions.
2070 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
2071
e85122be
AM
20722009-08-30 Alan Modra <amodra@bigpond.net.au>
2073
2074 PR target/41081
2075 * fwprop.c (get_reg_use_in): Delete.
2076 (free_load_extend): New function.
2077 (forward_propagate_subreg): Use it.
2078
2d606e03
KK
20792009-08-29 Kaz Kojima <kkojima@gcc.gnu.org>
2080
2081 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
2082
ce557b74
KT
20832009-08-29 Kai Tietz<kai.tietz@onevision.com>
2084
d1eda136
L
2085 PR/41184
2086 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
2087 padding.
ce557b74 2088
6d83cb32
DR
20892009-08-29 Douglas B Rupp <rupp@gnat.com>
2090
2091 * crtstuff.c (__do_global_dtors_aux): Use atexit if no
2092 fini or fini_array section.
2093
211694b6
SP
20942009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2095
2096 * graphite-dependences.c (graphite_legal_transform_bb): Call
2097 pbb_remove_duplicate_pdrs.
2098 * graphite-poly.c (can_collapse_pdr): Removed.
2099 (pdr_find_duplicate): Removed.
2100 (can_collapse_pdrs): New.
2101 (pbb_remove_duplicate_pdrs): New.
2102 (new_poly_dr): Do not look for duplicates.
2103 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
2104 (PBB_PDR_DUPLICATES_REMOVED): New.
2105 (pbb_remove_duplicate_pdrs): Declared.
2106
7bd2a8a7
SP
21072009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2108
2109 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
2110 the strides by multiplying by PDR_NB_REFS.
2111 * graphite-poly.c (can_collapse_pdr): New.
2112 (pdr_find_duplicate): New.
2113 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
2114 Initialize PDR_NB_REFS.
2115 * graphite-poly.h (struct poly_dr): Add field nb_refs.
2116 (PDR_NB_REFS): New.
2117 (new_poly_dr): Number of subscripts is a graphite_dim_t.
2118
93b2db87
SP
21192009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2120
2121 PR middle-end/40965
2122 * graphite-poly.c (apply_poly_transforms): Remove legality test before
2123 any transform.
2124
d8eeb078
SP
21252009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2126
2127 * graphite-dependences.c (pddr_original_scattering): Return NULL
2128 for read-read dependence relations.
2129 * graphite-poly.h (enum poly_dr_type): Fix comment.
2130 (pdr_read_p): New.
2131 (pdr_write_p): New.
2132 (pdr_may_write_p): New.
2133
e6dec0fb
SP
21342009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2135
2136 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
2137 (struct poly_dr): Same.
2138 (new_poly_dr): Same.
2139 * graphite-poly.c (new_poly_dr): Same.
2140 * graphite-dependences.c (dot_deps): Disable call to system.
2141
3ff4c25d
CC
21422009-08-28 Cary Coutant <ccoutant@google.com>
2143
2144 PR debug/41063
2145 * dwarf2out.c (gen_type_die_with_usage): Use proper context for
2146 struct/union/enum types local to a function.
2147
baf4b881
KT
21482009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2149 Sebastian Pop <sebastian.pop@amd.com>
2150
2151 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
2152 pbb_strip_mine_time_depth. Changed the implementation so that
2153 transformation is expressed as a transformation on
2154 time (scatttering) dimensions. Also, ensures that the 2d+1
2155 scheduling format is preserved.
2156 (pbb_strip_mine_profitable_p): Profitability is based on the
2157 iteration number of a given time (scattering) dimension,
2158 and not on a original loop depth dimension.
2159 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
2160 (pbb_do_strip_mine): Call psct_dynamic_dim.
2161 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
2162 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
2163 (pbb_nb_dynamic_scattering_transform): New.
2164 (psct_dynamic_dim): New.
2165
059a5f9f
KT
21662009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2167
2168 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
2169 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
2170 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
2171 * graphite-interchange.c (build_linearized_memory_access): Same.
2172 (memory_stride_in_loop): Same.
2173
afae0207
SP
21742009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2175
2176 * graphite-dependences.c (pddr_original_scattering): New.
2177 (graphite_legal_transform_dr): Call pddr_original_scattering.
2178 (dot_deps_1): New.
2179 (dot_deps): New.
2180 * graphite-dependences.h (dot_deps): Declared.
2181 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
2182 (print_pdr): Print PDR_ID.
2183 * graphite-poly.h (struct poly_dr): Add field id.
2184 (PDR_ID): New.
2185 (pbb_index): New.
2186 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
2187
f8e0bb8b
SP
21882009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2189
2190 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
2191 not delete the original dependence relation.
2192
e37f165f
SP
21932009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2194
2195 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
2196 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
2197 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
2198 (free_poly_ddr): New.
2199 (pddr_is_empty): New.
2200 (dependence_polyhedron_1): Now returns a poly_ddr_p.
2201 (dependence_polyhedron): Same. Remove useless gcc_assert.
2202 Remove fprintfs.
2203 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
2204 (graphite_carried_dependence_level_k): Call pddr_is_empty.
2205 * graphite-dependences.h (enum poly_dependence_kind): New.
2206 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
2207 (PDRP_SOURCE): Renamed PDDR_SOURCE.
2208 (PDRP_SINK): Renamed PDDR_SINK.
2209 (PDRP_DDP): Renamed PDDR_DDP.
2210 (PDDR_KIND): New.
2211 (free_poly_ddr): Declared.
2212 * graphite-poly.c (new_scop): Use the new hash function names.
2213 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
2214 into original_pddrs.
2215 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
2216
45e76e9f
SP
22172009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2218
2219 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
2220 bounds with LT_EXPR to make niter analysis more precise on code
2221 generated by Graphite.
2222
66b466c3
SP
22232009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2224
2225 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
2226 (graphite_legal_transform_bb): Same.
2227 (poly_drs_may_alias_p): Same.
2228
81fa17da
RG
22292009-08-28 Richard Guenther <rguenther@suse.de>
2230
2231 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
2232
a858e912
JB
22332009-08-28 Jan Beulich <jbeulich@novell.com>
2234
2235 * config/i386/netware.c: Include langhooks.h.
2236 (i386_nlm_encode_section_info): Simplify.
2237 (netware_override_options): Delete.
2238 * config/i386/netware.h (netware_override_options): Delete
2239 declaration.
2240 (OVERRIDE_OPTIONS): Delete definition.
2241 (SUBTARGET_OVERRIDE_OPTIONS): Define.
2242 (ASM_COMMENT_START): Define.
2243 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
2244
39ba7b7d
JB
22452009-08-28 Jan Beulich <jbeulich@novell.com>
2246
2247 * configure.ac: For in-tree ld, do a plain version check to
2248 determine whether comdat groups are supported.
2249 * configure: Regenerate.
2250
7e49a4b3
OH
22512009-08-28 Olivier Hainque <hainque@adacore.com>
2252
2253 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
2254 always defined. Reflect definition or absence of such for
2255 COLLECT_EXPORT_LIST. Readability helper.
2256 (scanfilter): New enum, to help control what symbols
2257 are to be considered or ignored by scan_prog_file.
2258 (enum pass): Rename as "scanpass", moved together with scanfilter
2259 prior to scan_prog_file's prototype.
2260 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
2261 Group prototype with the scanpass/scanfilter definitions, factorize
2262 head comments for the several implementations at the prototype.
2263 (main): Reorganize the first pass link control to let AIX
2264 drag only the needed frame tables in executables. Prevent
2265 frame tables collection during the scan aimed at static ctors.
2266 Pre-link and scan for frame tables later to compensate.
2267 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
2268 A C statement to issue assembly directives that create a reference
2269 to the given DWARF table identifier label from the current function
2270 section.
2271 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
2272 to differentiate first time section entry. Only emit a .data
2273 tables start identifier label the first time around.
2274 (switch_to_frame_table_section): New function. Helper for
2275 output_call_frame_info to switch possibly BACK into the eh_frame
2276 or the debug_frame section depending on FOR_EH.
2277 (output_call_frame_info): Use helper to first enter the proper
2278 frame section.
2279 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
2280 emit a link to the frame table start label from each function
2281 section.
2282 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
2283 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
2284 * config/rs6000/rs6000-protos.h: Declare it.
2285 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
2286
a7d6f306
KK
22872009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
2288
2289 * config/sh/sh.c (split_branches): Check the result of
2290 next_active_insn.
2291
715fda99
SE
22922009-08-27 Steve Ellcey <sje@cup.hp.com>
2293
2294 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
2295 using -pthread -fopenmp
2296
2711df18
GP
22972009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
2298
2299 * doc/service.texi (service directory): Update URL.
2300
2b3b22d3
UB
23012009-08-27 Uros Bizjak <ubizjak@gmail.com>
2302
2303 PR rtl-optimization/40861
2304 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
2305 extract word from a multi-word subreg for negative byte positions.
2306
30ed9d3d
TG
23072009-08-27 Tristan Gingold <gingold@adacore.com>
2308 Douglas B Rupp <rupp@gnat.com>
2309
2b3b22d3 2310 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
30ed9d3d
TG
2311 (SECTION_VMS_OVERLAY): Define.
2312 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
2313 attribute.
2314 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
2315 for common_object.
2316 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
2317 common_object declarations.
2318 (ia64_section_type_flags): Set section flag for common_object.
2319 * config/ia64/ia64-protos.h
2320 (ia64_vms_output_aligned_decl_common): Declare.
2321 (ia64_vms_elf_asm_named_section): Declare.
2322
f994f296
MM
23232009-08-27 Michael Matz <matz@suse.de>
2324
2325 * expr.c (expand_expr_real_2): New function taking exploded
2326 unary or binary expression, split out from ...
2327 (expand_expr_real_1): ... here. Move over all unary/binary
2328 switch parts to above function, in particular these codes:
2329 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
2330 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
2331 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
2332 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
2333 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
2334 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
2335 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
2336 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
2337 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
2338 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
2339 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
2340 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
2341 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
2342 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
2343 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
2344 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
2345 VEC_PACK_FIX_TRUNC_EXPR.
2346 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
2347 full expression.
2348
c6a21142
RG
23492009-08-27 Richard Guenther <rguenther@suse.de>
2350
2351 * gengtype.c (main): Handle uint64_t.
2352 * ipa-utils.c (get_base_var): Indent properly.
2353 * tree-ssa-live.c (debug_scope_block): New function.
2354 * tree-flow.h (debug_scope_block): Declare.
2355 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
2356 * basic-block.h (enum profile_status): Rename to
2357 enum profile_status_d.
2358 (x_profile_status): Adjust type.
2359
7842a9db
DS
23602009-08-27 Dodji Seketeli <dodji@redhat.com>
2361
d1eda136 2362 PR debug/41170
7842a9db
DS
2363 * dwarf2out.c (get_context_die): Declare this static function.
2364 (gen_type_die_with_usage): Make sure a DIE is a generated for
2365 the context of a typedef.
2366
98f6d48a
AS
23672009-08-26 Anatoly Sokolov <aesok@post.ru>
2368
2369 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
2370 switch.
2371
6f5a62e9
RS
23722009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
2373
2374 * config/mips/mips-protos.h (mips_output_sync): Declare.
2375 (mips_sync_loop_insns): Likewise.
2376 (mips_output_sync_loop): Replace first two parameters with an rtx.
2377 * config/mips/mips.c (mips_multi_member): New structure.
2378 (mips_multi_members): New variable.
2379 (mips_multi_start): New function.
2380 (mips_multi_add): Likewise.
2381 (mips_multi_add_insn): Likewise.
2382 (mips_multi_add_label): Likewise.
2383 (mips_multi_last_index): Likewise.
2384 (mips_multi_copy_insn): Likewise.
2385 (mips_multi_set_operand): Likewise.
2386 (mips_multi_write): Likewise.
2387 (mips_print_operand_punctuation): Remove '%|' and '%-'.
2388 (mips_init_print_operand_punct): Update accordingly.
2389 (mips_start_ll_sc_sync_block): New function.
2390 (mips_end_ll_sc_sync_block): Likewise.
2391 (mips_output_sync): Likewise.
2392 (mips_sync_insn1_template): Likewise.
2393 (mips_sync_insn2_template): Likewise.
2394 (mips_get_sync_operand): Likewise.
2395 (mips_process_sync_loop): Likewise.
2396 (mips_output_sync_loop): Use mips_process_sync_loop.
2397 (mips_sync_loop_insns): New function.
2398 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
2399 (MIPS_COMPARE_AND_SWAP_12): Likewise.
2400 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
2401 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
2402 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
2403 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
2404 (MIPS_SYNC_OLD_OP_12): Likewise.
2405 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
2406 (MIPS_SYNC_NEW_OP_12): Likewise.
2407 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
2408 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
2409 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
2410 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
2411 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
2412 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
2413 * config/mips/mips.md (sync_mem): New attribute.
2414 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
2415 (sync_exclusive_mask, sync_required_oldval): Likewise.
2416 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
2417 (sync_release_barrier): Likewise.
2418 (length): Handle sync loops.
2419 (sync): Use mips_output_sync.
2420 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
2421 (sync_compare_and_swap<mode>): Set the new sync_* attributes
2422 and use mips_output_sync_loop.
2423 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
2424 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
2425 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
2426 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
2427 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
2428 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
2429 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
2430 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
2431 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
2432
6b8b9e42
RG
24332009-08-26 Richard Guenther <rguenther@suse.de>
2434
2435 PR middle-end/41163
2436 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
2437 the types to not match.
2438 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
2439 verification.
2440 * tree-ssa.c (useless_type_conversion_p): Conversions to
2441 pointers to unprototyped functions are useless.
2442
bacd3fb6
RG
24432009-08-26 Richard Guenther <rguenther@suse.de>
2444
5fa162c0
CD
2445 * tree-ssa-structalias.c (create_variable_info_for): Remove strange
2446 whole-program condition, prepare to be called for non-globals.
bacd3fb6
RG
2447 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
2448 params build a representative with known type and track its fields.
2449
7b3d1847
UB
24502009-08-26 Uros Bizjak <ubizjak@gmail.com>
2451
2452 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
2453 clearing by a taken branch.
2454 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
2455 effectively after bbro pass.
2456 (sync_nand<mode>): Ditto.
2457 (sync_old_<fetchop_name><mode>): Ditto.
2458 (sync_old_nand<mode>): Ditto.
2459 (sync_new_<fetchop_name><mode>): Dito.
2460 (sync_new_nand<mode>): Ditto.
2461 (sync_compare_and_swap<mode>_1): Ditto.
2462 (*sync_compare_and_swap<mode>): Ditto.
2463 (sync_lock_test_and_set<mode>_1): Ditto.
2464 ("sync_lock_test_and_set<mode>): Ditto.
2465
edb89024
DR
24662009-08-25 Douglas B Rupp <rupp@gnat.com>
2467
2468 * hwint.h (HOST_LONG_FORMAT): New macro
2469 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
2470 Use HOST_PTR_PRINTF.
2471 * system.h (HOST_PTR_PRINTF): Resurrect old macro
2472 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
2473 (HOST_PTR_PRINTF): Document.
2474
5c1a2bb1
JH
24752009-08-25 Jan Hubicka <jh@suse.cz>
2476
2477 * config/i386/bmmintrin.h: Replace by #error.
2478
2479 Revert:
2480 Michael Meissner <michael.meissner@amd.com>
2481 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2482 Tony Linthicum <tony.linthicum@amd.com>
2483
2484 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
2485 (TARGET_ROUND): New macro for the round/ptest instructions which
2486 are shared between SSE4.1 and SSE5.
2487 (OPTION_MASK_ISA_ROUND): Ditto.
2488 (OPTION_ISA_ROUND): Ditto.
2489 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
2490 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
2491
2492 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
2493 (-mfused-madd): New switch to give users control over whether the
2494 compiler optimizes to use the multiply/add SSE5 instructions.
2495
2496 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
2497 (ix86_handle_option): Turn off 3dnow if -msse5.
2498 (override_options): Add SSE5 support.
2499 (print_operand): %Y prints comparison codes for SSE5 com/pcom
2500 instructions.
2501 (ix86_expand_sse_movcc): Add SSE5 support.
2502 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
2503 vector type to the next largest size.
2504 (ix86_expand_sse5_pack): New function to use pperm to pack a
2505 vector type to the next smallest size.
2506 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
2507 (IX86_BUILTIN_FMADDSD): Ditto.
2508 (IX86_BUILTIN_FMADDPS): Ditto.
2509 (IX86_BUILTIN_FMADDPD): Ditto.
2510 (IX86_BUILTIN_FMSUBSS): Ditto.
2511 (IX86_BUILTIN_FMSUBSD): Ditto.
2512 (IX86_BUILTIN_FMSUBPS): Ditto.
2513 (IX86_BUILTIN_FMSUBPD): Ditto.
2514 (IX86_BUILTIN_FNMADDSS): Ditto.
2515 (IX86_BUILTIN_FNMADDSD): Ditto.
2516 (IX86_BUILTIN_FNMADDPS): Ditto.
2517 (IX86_BUILTIN_FNMADDPD): Ditto.
2518 (IX86_BUILTIN_FNMSUBSS): Ditto.
2519 (IX86_BUILTIN_FNMSUBSD): Ditto.
2520 (IX86_BUILTIN_FNMSUBPS): Ditto.
2521 (IX86_BUILTIN_FNMSUBPD): Ditto.
2522 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
2523 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
2524 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
2525 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
2526 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
2527 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
2528 (IX86_BUILTIN_PPERM): Ditto.
2529 (IX86_BUILTIN_PERMPS): Ditto.
2530 (IX86_BUILTIN_PERMPD): Ditto.
2531 (IX86_BUILTIN_PMACSSWW): Ditto.
2532 (IX86_BUILTIN_PMACSWW): Ditto.
2533 (IX86_BUILTIN_PMACSSWD): Ditto.
2534 (IX86_BUILTIN_PMACSWD): Ditto.
2535 (IX86_BUILTIN_PMACSSDD): Ditto.
2536 (IX86_BUILTIN_PMACSDD): Ditto.
2537 (IX86_BUILTIN_PMACSSDQL): Ditto.
2538 (IX86_BUILTIN_PMACSSDQH): Ditto.
2539 (IX86_BUILTIN_PMACSDQL): Ditto.
2540 (IX86_BUILTIN_PMACSDQH): Ditto.
2541 (IX86_BUILTIN_PMADCSSWD): Ditto.
2542 (IX86_BUILTIN_PMADCSWD): Ditto.
2543 (IX86_BUILTIN_PHADDBW): Ditto.
2544 (IX86_BUILTIN_PHADDBD): Ditto.
2545 (IX86_BUILTIN_PHADDBQ): Ditto.
2546 (IX86_BUILTIN_PHADDWD): Ditto.
2547 (IX86_BUILTIN_PHADDWQ): Ditto.
2548 (IX86_BUILTIN_PHADDDQ): Ditto.
2549 (IX86_BUILTIN_PHADDUBW): Ditto.
2550 (IX86_BUILTIN_PHADDUBD): Ditto.
2551 (IX86_BUILTIN_PHADDUBQ): Ditto.
2552 (IX86_BUILTIN_PHADDUWD): Ditto.
2553 (IX86_BUILTIN_PHADDUWQ): Ditto.
2554 (IX86_BUILTIN_PHADDUDQ): Ditto.
2555 (IX86_BUILTIN_PHSUBBW): Ditto.
2556 (IX86_BUILTIN_PHSUBWD): Ditto.
2557 (IX86_BUILTIN_PHSUBDQ): Ditto.
2558 (IX86_BUILTIN_PROTB): Ditto.
2559 (IX86_BUILTIN_PROTW): Ditto.
2560 (IX86_BUILTIN_PROTD): Ditto.
2561 (IX86_BUILTIN_PROTQ): Ditto.
2562 (IX86_BUILTIN_PROTB_IMM): Ditto.
2563 (IX86_BUILTIN_PROTW_IMM): Ditto.
2564 (IX86_BUILTIN_PROTD_IMM): Ditto.
2565 (IX86_BUILTIN_PROTQ_IMM): Ditto.
2566 (IX86_BUILTIN_PSHLB): Ditto.
2567 (IX86_BUILTIN_PSHLW): Ditto.
2568 (IX86_BUILTIN_PSHLD): Ditto.
2569 (IX86_BUILTIN_PSHLQ): Ditto.
2570 (IX86_BUILTIN_PSHAB): Ditto.
2571 (IX86_BUILTIN_PSHAW): Ditto.
2572 (IX86_BUILTIN_PSHAD): Ditto.
2573 (IX86_BUILTIN_PSHAQ): Ditto.
2574 (IX86_BUILTIN_FRCZSS): Ditto.
2575 (IX86_BUILTIN_FRCZSD): Ditto.
2576 (IX86_BUILTIN_FRCZPS): Ditto.
2577 (IX86_BUILTIN_FRCZPD): Ditto.
2578 (IX86_BUILTIN_CVTPH2PS): Ditto.
2579 (IX86_BUILTIN_CVTPS2PH): Ditto.
2580 (IX86_BUILTIN_COMEQSS): Ditto.
2581 (IX86_BUILTIN_COMNESS): Ditto.
2582 (IX86_BUILTIN_COMLTSS): Ditto.
2583 (IX86_BUILTIN_COMLESS): Ditto.
2584 (IX86_BUILTIN_COMGTSS): Ditto.
2585 (IX86_BUILTIN_COMGESS): Ditto.
2586 (IX86_BUILTIN_COMUEQSS): Ditto.
2587 (IX86_BUILTIN_COMUNESS): Ditto.
2588 (IX86_BUILTIN_COMULTSS): Ditto.
2589 (IX86_BUILTIN_COMULESS): Ditto.
2590 (IX86_BUILTIN_COMUGTSS): Ditto.
2591 (IX86_BUILTIN_COMUGESS): Ditto.
2592 (IX86_BUILTIN_COMORDSS): Ditto.
2593 (IX86_BUILTIN_COMUNORDSS): Ditto.
2594 (IX86_BUILTIN_COMFALSESS): Ditto.
2595 (IX86_BUILTIN_COMTRUESS): Ditto.
2596 (IX86_BUILTIN_COMEQSD): Ditto.
2597 (IX86_BUILTIN_COMNESD): Ditto.
2598 (IX86_BUILTIN_COMLTSD): Ditto.
2599 (IX86_BUILTIN_COMLESD): Ditto.
2600 (IX86_BUILTIN_COMGTSD): Ditto.
2601 (IX86_BUILTIN_COMGESD): Ditto.
2602 (IX86_BUILTIN_COMUEQSD): Ditto.
2603 (IX86_BUILTIN_COMUNESD): Ditto.
2604 (IX86_BUILTIN_COMULTSD): Ditto.
2605 (IX86_BUILTIN_COMULESD): Ditto.
2606 (IX86_BUILTIN_COMUGTSD): Ditto.
2607 (IX86_BUILTIN_COMUGESD): Ditto.
2608 (IX86_BUILTIN_COMORDSD): Ditto.
2609 (IX86_BUILTIN_COMUNORDSD): Ditto.
2610 (IX86_BUILTIN_COMFALSESD): Ditto.
2611 (IX86_BUILTIN_COMTRUESD): Ditto.
2612 (IX86_BUILTIN_COMEQPS): Ditto.
2613 (IX86_BUILTIN_COMNEPS): Ditto.
2614 (IX86_BUILTIN_COMLTPS): Ditto.
2615 (IX86_BUILTIN_COMLEPS): Ditto.
2616 (IX86_BUILTIN_COMGTPS): Ditto.
2617 (IX86_BUILTIN_COMGEPS): Ditto.
2618 (IX86_BUILTIN_COMUEQPS): Ditto.
2619 (IX86_BUILTIN_COMUNEPS): Ditto.
2620 (IX86_BUILTIN_COMULTPS): Ditto.
2621 (IX86_BUILTIN_COMULEPS): Ditto.
2622 (IX86_BUILTIN_COMUGTPS): Ditto.
2623 (IX86_BUILTIN_COMUGEPS): Ditto.
2624 (IX86_BUILTIN_COMORDPS): Ditto.
2625 (IX86_BUILTIN_COMUNORDPS): Ditto.
2626 (IX86_BUILTIN_COMFALSEPS): Ditto.
2627 (IX86_BUILTIN_COMTRUEPS): Ditto.
2628 (IX86_BUILTIN_COMEQPD): Ditto.
2629 (IX86_BUILTIN_COMNEPD): Ditto.
2630 (IX86_BUILTIN_COMLTPD): Ditto.
2631 (IX86_BUILTIN_COMLEPD): Ditto.
2632 (IX86_BUILTIN_COMGTPD): Ditto.
2633 (IX86_BUILTIN_COMGEPD): Ditto.
2634 (IX86_BUILTIN_COMUEQPD): Ditto.
2635 (IX86_BUILTIN_COMUNEPD): Ditto.
2636 (IX86_BUILTIN_COMULTPD): Ditto.
2637 (IX86_BUILTIN_COMULEPD): Ditto.
2638 (IX86_BUILTIN_COMUGTPD): Ditto.
2639 (IX86_BUILTIN_COMUGEPD): Ditto.
2640 (IX86_BUILTIN_COMORDPD): Ditto.
2641 (IX86_BUILTIN_COMUNORDPD): Ditto.
2642 (IX86_BUILTIN_COMFALSEPD): Ditto.
2643 (IX86_BUILTIN_COMTRUEPD): Ditto.
2644 (IX86_BUILTIN_PCOMEQUB): Ditto.
2645 (IX86_BUILTIN_PCOMNEUB): Ditto.
2646 (IX86_BUILTIN_PCOMLTUB): Ditto.
2647 (IX86_BUILTIN_PCOMLEUB): Ditto.
2648 (IX86_BUILTIN_PCOMGTUB): Ditto.
2649 (IX86_BUILTIN_PCOMGEUB): Ditto.
2650 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
2651 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
2652 (IX86_BUILTIN_PCOMEQUW): Ditto.
2653 (IX86_BUILTIN_PCOMNEUW): Ditto.
2654 (IX86_BUILTIN_PCOMLTUW): Ditto.
2655 (IX86_BUILTIN_PCOMLEUW): Ditto.
2656 (IX86_BUILTIN_PCOMGTUW): Ditto.
2657 (IX86_BUILTIN_PCOMGEUW): Ditto.
2658 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
2659 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
2660 (IX86_BUILTIN_PCOMEQUD): Ditto.
2661 (IX86_BUILTIN_PCOMNEUD): Ditto.
2662 (IX86_BUILTIN_PCOMLTUD): Ditto.
2663 (IX86_BUILTIN_PCOMLEUD): Ditto.
2664 (IX86_BUILTIN_PCOMGTUD): Ditto.
2665 (IX86_BUILTIN_PCOMGEUD): Ditto.
2666 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
2667 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
2668 (IX86_BUILTIN_PCOMEQUQ): Ditto.
2669 (IX86_BUILTIN_PCOMNEUQ): Ditto.
2670 (IX86_BUILTIN_PCOMLTUQ): Ditto.
2671 (IX86_BUILTIN_PCOMLEUQ): Ditto.
2672 (IX86_BUILTIN_PCOMGTUQ): Ditto.
2673 (IX86_BUILTIN_PCOMGEUQ): Ditto.
2674 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
2675 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
2676 (IX86_BUILTIN_PCOMEQB): Ditto.
2677 (IX86_BUILTIN_PCOMNEB): Ditto.
2678 (IX86_BUILTIN_PCOMLTB): Ditto.
2679 (IX86_BUILTIN_PCOMLEB): Ditto.
2680 (IX86_BUILTIN_PCOMGTB): Ditto.
2681 (IX86_BUILTIN_PCOMGEB): Ditto.
2682 (IX86_BUILTIN_PCOMFALSEB): Ditto.
2683 (IX86_BUILTIN_PCOMTRUEB): Ditto.
2684 (IX86_BUILTIN_PCOMEQW): Ditto.
2685 (IX86_BUILTIN_PCOMNEW): Ditto.
2686 (IX86_BUILTIN_PCOMLTW): Ditto.
2687 (IX86_BUILTIN_PCOMLEW): Ditto.
2688 (IX86_BUILTIN_PCOMGTW): Ditto.
2689 (IX86_BUILTIN_PCOMGEW): Ditto.
2690 (IX86_BUILTIN_PCOMFALSEW): Ditto.
2691 (IX86_BUILTIN_PCOMTRUEW): Ditto.
2692 (IX86_BUILTIN_PCOMEQD): Ditto.
2693 (IX86_BUILTIN_PCOMNED): Ditto.
2694 (IX86_BUILTIN_PCOMLTD): Ditto.
2695 (IX86_BUILTIN_PCOMLED): Ditto.
2696 (IX86_BUILTIN_PCOMGTD): Ditto.
2697 (IX86_BUILTIN_PCOMGED): Ditto.
2698 (IX86_BUILTIN_PCOMFALSED): Ditto.
2699 (IX86_BUILTIN_PCOMTRUED): Ditto.
2700 (IX86_BUILTIN_PCOMEQQ): Ditto.
2701 (IX86_BUILTIN_PCOMNEQ): Ditto.
2702 (IX86_BUILTIN_PCOMLTQ): Ditto.
2703 (IX86_BUILTIN_PCOMLEQ): Ditto.
2704 (IX86_BUILTIN_PCOMGTQ): Ditto.
2705 (IX86_BUILTIN_PCOMGEQ): Ditto.
2706 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
2707 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
2708 (enum multi_arg_type): New enum for describing the various SSE5
2709 intrinsic argument types.
2710 (bdesc_multi_arg): New table for SSE5 intrinsics.
2711 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
2712 (ix86_expand_multi_arg_builtin): New function for creating SSE5
2713 intrinsics.
2714 (ix86_expand_builtin): Add SSE5 intrinsic support.
2715 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
2716 operand instructions.
2717 (ix86_expand_sse5_multiple_memory): New function to split the
2718 second memory reference from SSE5 instructions.
2719 (type_has_variadic_args_p): Delete in favor of stdarg_p.
2720 (ix86_return_pops_args): Use stdarg_p to determine if the function
2721 has variable arguments.
2722 (ix86_setup_incoming_varargs): Ditto.
2723 (x86_this_parameter): Ditto.
2724
2725 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
2726 declaration.
2727 (ix86_expand_sse5_pack): Ditto.
2728 (ix86_sse5_valid_op_p): Ditto.
2729 (ix86_expand_sse5_multiple_memory): Ditto.
2730
2731 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
2732 constant for SSE5 support.
2733 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
2734 (UNSPEC_SSE5_TRUEFALSE): Ditto.
2735 (UNSPEC_SSE5_PERMUTE): Ditto.
2736 (UNSPEC_SSE5_ASHIFT): Ditto.
2737 (UNSPEC_SSE5_LSHIFT): Ditto.
2738 (UNSPEC_FRCZ): Ditto.
2739 (UNSPEC_CVTPH2PS): Ditto.
2740 (UNSPEC_CVTPS2PH): Ditto.
2741 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
2742 (PCOM_TRUE): Ditto.
2743 (COM_FALSE_S): Ditto.
2744 (COM_FALSE_P): Ditto.
2745 (COM_TRUE_S): Ditto.
2746 (COM_TRUE_P): Ditto.
2747 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
2748 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
2749 types.
2750 (memory attribute): Ditto.
2751 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
2752 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
2753 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
2754 (floor<mode>2): Ditto.
2755 (ceil<mode>2): Ditto.
2756 (btrunc<mode>2): Ditto.
2757 (nearbyintdf2): Ditto.
2758 (nearbyintsf2): Ditto.
2759 (sse_setccsf): Disable if SSE5.
2760 (sse_setccdf): Ditto.
2761 (sse5_setcc<mode>): New support for SSE5 conditional move.
2762 (sse5_pcmov_<mode>): Ditto.
2763
2764 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
2765 (SSEMODEF4): Ditto.
2766 (SSEMODEF2P): Ditto.
2767 (ssemodesuffixf4): New mode attribute for SSE5.
2768 (ssemodesuffixf2s): Ditto.
2769 (ssemodesuffixf2c): Ditto.
2770 (sserotatemax): Ditto.
2771 (ssescalarmode): Ditto.
2772 (sse_maskcmpv4sf3): Disable if SSE5.
2773 (sse_maskcmpv2df3): Ditto.
2774 (sse_vmmaskcmpv4sf3): Ditto.
2b3b22d3 2775 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
5c1a2bb1
JH
2776 (sse5_vmfmadd<mode>4): Ditto.
2777 (sse5_fmsub<mode>4): Ditto.
2778 (sse5_vmfmsub<mode>4): Ditto.
2779 (sse5_fnmadd<mode>4): Ditto.
2780 (sse5_vmfnmadd<mode>4): Ditto.
2781 (sse5_fnmsub<mode>4): Ditto.
2782 (sse5_vmfnmsub<mode>4): Ditto.
2783 (sse5i_fmadd<mode>4): Ditto.
2784 (sse5i_fmsub<mode>4): Ditto.
2785 (sse5i_fnmadd<mode>4): Ditto.
2786 (sse5i_fnmsub<mode>4): Ditto.
2787 (sse5i_vmfmadd<mode>4): Ditto.
2788 (sse5i_vmfmsub<mode>4): Ditto.
2789 (sse5i_vmfnmadd<mode>4): Ditto.
2790 (sse5i_vmfnmsub<mode>4): Ditto.
2791 (mulv16qi3): Add SSE5 support.
2792 (mulv4si3): Ditto.
2793 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
2794 (sse2_mulv4si3): Disable if SSE5.
2795 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
2796 (sse4_1_roundps): Ditto.
2797 (sse4_1_roundsd): Ditto.
2798 (sse4_1_roundss): Ditto.
2799 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
2800 be generated.
2801 (sse_maskcmpsf3): Ditto.
2802 (sse_vmmaskcmpv4sf3): Ditto.
2803 (sse2_maskcmpv2df3): Ditto.
2804 (sse2_maskcmpdf3): Ditto.
2805 (sse2_vmmaskcmpv2df3): Ditto.
2806 (sse2_eq<mode>3): Ditto.
2807 (sse2_gt<mode>3): Ditto.
2808 (sse5_pcmov_<mode>): Add SSE5 support.
2809 (vec_unpacku_hi_v16qi): Ditto.
2810 (vec_unpacks_hi_v16qi): Ditto.
2811 (vec_unpacku_lo_v16qi): Ditto.
2812 (vec_unpacks_lo_v16qi): Ditto.
2813 (vec_unpacku_hi_v8hi): Ditto.
2814 (vec_unpacks_hi_v8hi): Ditto.
2815 (vec_unpacku_lo_v8hi): Ditto.
2816 (vec_unpacks_lo_v8hi): Ditto.
2817 (vec_unpacku_hi_v4si): Ditto.
2818 (vec_unpacks_hi_v4si): Ditto.
2819 (vec_unpacku_lo_v4si): Ditto.
2820 (vec_unpacks_lo_v4si): Ditto.
2821 (sse5_pmacsww): New SSE5 intrinsic insn.
2822 (sse5_pmacssww): Ditto.
2823 (sse5_pmacsdd): Ditto.
2824 (sse5_pmacssdd): Ditto.
2825 (sse5_pmacssdql): Ditto.
2826 (sse5_pmacssdqh): Ditto.
2827 (sse5_pmacsdqh): Ditto.
2828 (sse5_pmacsswd): Ditto.
2829 (sse5_pmacswd): Ditto.
2830 (sse5_pmadcsswd): Ditto.
2831 (sse5_pmadcswd): Ditto.
2832 (sse5_pcmov_<move>): Conditional move support on SSE5.
2833 (sse5_phaddbw): New SSE5 intrinsic insn.
2834 (sse5_phaddbd): Ditto.
2835 (sse5_phaddbq): Ditto.
2836 (sse5_phaddwd): Ditto.
2837 (sse5_phaddwq): Ditto.
2838 (sse5_phadddq): Ditto.
2839 (sse5_phaddubw): Ditto.
2840 (sse5_phaddubd): Ditto.
2841 (sse5_phaddubq): Ditto.
2842 (sse5_phadduwd): Ditto.
2843 (sse5_phadduwq): Ditto.
2844 (sse5_phaddudq): Ditto.
2845 (sse5_phsubbw): Ditto.
2846 (sse5_phsubwd): Ditto.
2847 (sse5_phsubdq): Ditto.
2848 (sse5_pperm): Ditto.
2849 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
2850 (sse5_pperm_zero_v16qi_v8hi): Ditto.
2851 (sse5_pperm_sign_v8hi_v4si): Ditto.
2852 (sse5_pperm_zero_v8hi_v4si): Ditto.
2853 (sse5_pperm_sign_v4si_v2di): Ditto.
2854 (sse5_pperm_sign_v4si_v2di): Ditto.
2855 (sse5_pperm_pack_v2di_v4si): Ditto.
2856 (sse5_pperm_pack_v4si_v8hi): Ditto.
2857 (sse5_pperm_pack_v8hi_v16qi): Ditto.
2858 (sse5_perm<mode>): New SSE5 intrinsic insn.
2859 (rotl<mode>3): Ditto.
2860 (sse5_rotl<mode>3): Ditto.
2861 (sse5_ashl<mode>3): Ditto.
2862 (sse5_lshl<mode>3): Ditto.
2863 (sse5_frcz<mode>2): Ditto.
2864 (sse5s_frcz<mode>2): Ditto.
2865 (sse5_cvtph2ps): Ditto.
2866 (sse5_cvtps2ph): Ditto.
2867 (sse5_vmmaskcmp<mode>3): Ditto.
2868 (sse5_com_tf<mode>3): Ditto.
2869 (sse5_maskcmp<mode>3): Ditto.
2870 (sse5_maskcmp_uns<mode>3): Ditto.
2871 (sse5_maskcmp_uns2<mode>3): Ditto.
2872 (sse5_pcom_tf<mode>3): Ditto.
7b3d1847
UB
2873
2874 * config/i386/predicates.md (sse5_comparison_float_operator):
2875 New predicate to match the comparison operators supported by
2876 the SSE5 com instruction.
5c1a2bb1
JH
2877 (ix86_comparison_int_operator): New predicate to match just the
2878 signed int comparisons.
2879 (ix86_comparison_uns_operator): New predicate to match just the
2880 unsigned int comparisons.
2881
2882 * doc/invoke.texi (-msse5): Add documentation.
2883 (-mfused-madd): Ditto.
2884
2885 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
2886
2887 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
2888 mmintrin-common.h.
2889 (x86_64-*-*): Ditto.
2890
2891 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
2892
2893 * config/i386/bmmintrin.h: New file, provide common x86 compiler
2894 intrinisics for SSE5.
2895
2896 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
2897 mmintrin-common.h.
2898
2899 * config/i386/mmintrin-common.h: New file, to contain common
2900 instructions between SSE4.1 and SSE5.
2901
2902 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
2903 FOREACH_FUNCTION_ARGS to iterate over the argument list.
2904 (gen_regparm_prefix): Ditto.
2905
2906 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
2907 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
2908 prototype_p to determine if a function is prototyped.
2909
f4e8a943
VV
29102009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
2911
2912 * c-common.c (c_common_reswords) add the alignof keyword,
2913 with same RID as __alignof and __alignof__
2914
7b5cbb57
AS
29152009-08-25 Anatoly Sokolov <aesok@post.ru>
2916
2917 * hooks.h (hook_bool_const_int_const_int_true): Declare.
2918 * hooks.c (hook_bool_const_int_const_int_true): New function.
2919 * target.h (struct gcc_target): Add can_eliminate field.
2920 * target-def.h (TARGET_CAN_ELIMINATE): Define.
2921 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
2922 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
2923 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
2924 (elim_table): Revise comment.
2925 * system.h (CAN_ELIMINATE): Poison.
2926 * defaults.h (CAN_ELIMINATE): Remove.
2927 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
2928
2929 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
2930 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
2931 Define macro.
2932 (alpha_vms_can_eliminate): Declare as static, change return type to
2933 bool.
2934 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
2935
2936 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
2937 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
2938 (arm_can_eliminate): New function.
2939
2940 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
2941 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
2942 (avr_can_eliminate): Declare as static.
2943 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
2944
2945 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
2946 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
2947 (bfin_can_eliminate): New function.
2948
2949 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
2950 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
2951 (crx_can_eliminate): New function.
7b3d1847 2952
7b5cbb57
AS
2953 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
2954 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
2955 (fr30_can_eliminate): New function.
2956
2957 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
2958 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
2959 (frv_can_eliminate): New function.
2960
2961 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
2962 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
2963 (h8300_can_eliminate): New function.
2964
2965 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
2966 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
2967 (i386_can_eliminate): Declare as static, change return type to bool.
2968 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
2969
2970 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
2971 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
2972 (ia64_can_eliminate): New function.
2973
2974 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
2975 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
2976 (iq2000_can_eliminate): New function.
2977
2978 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
2979 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
2980 (m32r_can_eliminate): New function.
2981
2982 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
2983 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
2984 (m68hc11_can_eliminate): New function.
2985
2986 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
2987 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
2988 (m68k_can_eliminate): New function.
2989
2990 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
2991 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
2992 (mep_can_eliminate): New function.
2993
2994 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
2995 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
2996 (mips_can_eliminate): New function.
2997
2998 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
2999 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
3000 (rs6000_can_eliminate): New function.
3001
3002 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
3003 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
3004 (s390_can_eliminate): Declare as static.
3005 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
3006
3007 * config/score/score.h (CAN_ELIMINATE): Remove macro.
3008 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
3009 (score_can_eliminate): New function.
3010
3011 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
3012 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
3013 (sparc_can_eliminate): Declare as static.
3014 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
3015
3016 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
3017 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
3018 (xstormy16_can_eliminate): New function.
3019
3020 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
3021 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
3022 (v850_can_eliminate): New function.
3023
e7f8fba9
UB
30242009-08-25 Uros Bizjak <ubizjak@gmail.com>
3025
3026 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
3027 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
3028 (*movdfcc_ext[1234]): Disable for IEEE mode.
3029
f76d6e6f
EB
30302009-08-25 Eric Botcazou <ebotcazou@adacore.com>
3031
3032 * gimplify.c (prepare_gimple_addressable): New static function.
3033 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
3034 it addressable.
3035 (gimplify_addr_expr): Invoke it similarly on the operand instead of
3036 manually fiddling with it.
3037
4df62c77
MM
30382009-08-25 Michael Matz <matz@suse.de>
3039
3040 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
3041 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
3042 full expression.
3043 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
3044 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
3045 (do_jump): Split out code for simple binary comparisons into ...
3046 (do_jump_1): ... this, taking the individual operands and code.
3047 Change callers to helper function above accordingly.
3048 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
3049 comparisons.
3050
8e7aa1f9
MM
30512009-08-25 Michael Matz <matz@suse.de>
3052
3053 * expr.h (struct separate_ops, sepops): New type for passing
3054 around an exploded simple expression.
3055 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
3056 Use this structure instead of expression tree.
3057 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
3058 expression, only its type.
3059 (expand_vec_cond_expr): Take type and individual operands instead
3060 of full expression.
3061 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
3062 expand_vec_shift_expr): Change prototype accordingly.
3063 * tree-vect-stmts.c (vectorizable_condition): Change call of
3064 expand_vec_cond_expr_p to pass only type.
3065 * expr.c (do_store_flags): Change prototype and implementation
3066 to take an exploded expression.
3067 (expand_expr_real_1): New local ops initialized with details
3068 of the full expression. Use it instead of full
3069 expression in calls to do_store_flags, expand_vec_cond_expr,
3070 expand_widen_pattern_expr and expand_vec_shift_expr.
3071
b32e7cdb
MM
30722009-08-25 Michael Matz <matz@suse.de>
3073
3074 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
3075 treeop2 initialized with first three operands of the full expression.
3076 Substitute all TREE_OPERAND (exp, [012]) calls with them.
3077
ce4a9de3
KT
30782009-08-25 Kai Tietz <kai.tietz@onevision.com>
3079
3080 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
3081 (__gthread_objc_condition_allocate): Mark arguments as unused.
3082 (__gthread_objc_condition_deallocate): Likewise.
3083 (__gthread_objc_condition_wait): Likewise.
3084 (__gthread_objc_condition_broadcast): Likewise.
3085 (__gthread_objc_condition_signal): Likewise.
3086 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
3087 (__gthread_objc_thread_id): Likewise.
3088
d69b8a03
JW
30892009-08-25 Janus Weil <janus@gcc.gnu.org>
3090
3091 PR middle-end/41149
3092 * tree-pretty-print.c (print_call_name): Print the correct call name
3093 for procedure pointer components.
3094
c3313412
SE
30952009-08-24 Steve Ellcey <sje@cup.hp.com>
3096
3097 * config/ia64/ia64.c (ia64_promote_function_mode): Call
3098 default_promote_function_mode when not VMS.
3099
c767899e
OH
31002009-08-24 Olivier Hainque <hainque@adacore.com>
3101
3102 * convert.c (convert_to_integer): Don't assume an input pointer is
3103 POINTER_SIZE wide. Fetch from the type instead.
3104
df58e648
RW
31052009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3106
3107 * configure.ac (AC_PREREQ): Bump to 2.64.
3108
2ef4a8e1
RAE
31092009-08-24 Rafael Avila de Espindola <espindola@google.com>
3110
3111 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
3112 (process_command): Don't search standard_exec_prefix_1 and
3113 standard_exec_prefix_2.
3114
c7e9ab97
RR
31152009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3116
7b3d1847
UB
3117 * config/arm/arm.c (output_return_instruction): Handle for
3118 unified syntax.
c7e9ab97 3119
3e2d9dcf
RR
31202009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3121
7b3d1847 3122 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
3e2d9dcf 3123
54f52b81
RR
31242009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3125
7b3d1847
UB
3126 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
3127 (*arm_movdf_vfp): Likewise.
54f52b81 3128
d44463a9
RR
31292009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3130
7b3d1847
UB
3131 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
3132 (vashr<mode>3): Rename from ashr<mode>3.
3133 (vlshr<mode>3): Rename from lshr<mode>3.
d44463a9 3134
b241b475
KT
31352009-08-24 Kai Tietz <kai.tietz@onevision.com>
3136
3137 PR/40786
5fa162c0 3138 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
b241b475
KT
3139 (check_format_info_main): Use scalar_identify_flag.
3140 (check_format_types): Check for scalar size identity if
3141 scalar_identify_flag is set.
3142 (printf_length_specs): Extend by new field.
3143 (asm_fprintf_length_specs): Likewise.
3144 (gcc_diag_length_specs): Likewise.
3145 (scanf_length_specs): Likewise.
3146 (strfmon_length_specs): Likewise.
3147 (gcc_gfc_length_specs): Likewise.
3148 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
3149 (ms_printf_flag_specs): Likewise.
3150 * c-format.h (format_length_info): Add new member scalar_identity_flag.
3151
8c40d061
UB
31522009-08-23 Uros Bizjak <ubizjak@gmail.com>
3153
3154 PR target/40718
3155 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
fe62197b 3156 (*call_value_pop_1): Ditto.
8c40d061 3157 (*sibcall_pop_1): New insn pattern.
fe62197b 3158 (*sibcall_value_pop_1): Ditto.
8c40d061 3159
0aa580f4
AM
31602009-08-23 Alan Modra <amodra@bigpond.net.au>
3161
3162 PR target/41081
3163 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
3164 ashrsi3_64): New.
3165
e25b7843
AM
31662009-08-23 Alan Modra <amodra@bigpond.net.au>
3167
3168 PR target/41081
3169 * fwprop.c (try_fwprop_subst): Allow multiple sets.
3170 (get_reg_use_in): New function.
3171 (forward_propagate_subreg): Propagate through subreg of zero_extend
3172 or sign_extend.
3173
79052be3
KK
31742009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
3175
3176 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
3177 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
3178
5213506e
RW
31792009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3180
70fa0efa
RW
3181 * configure.ac: Remove --with-datarootdir, --with-docdir,
3182 --with-htmldir switches. No need to call AC_SUBST for
3183 datarootdir, docdir, htmldir any more.
3184 * configure: Regenerate.
3185 * doc/install.texi (Configuration): Document --datarootdir,
3186 --docdir, --htmldir, --pdfdir; update documentation for
3187 --infodir, --mandir.
e7f8fba9
UB
3188 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
3189 M4 to 1.4.6.
70fa0efa 3190
5213506e
RW
3191 * aclocal.m4: Regenerate.
3192 * config.in: Regenerate.
3193 * configure: Regenerate.
3194
f2972bf8
DR
31952009-08-21 Douglas B Rupp <rupp@gnat.com>
3196 Olivier Hainque <hainque@adacore.com>
3197
3198 * config/ia64/ia64.c: Include libfuncs.h.
3199 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
3200 (ia64_expand_call): Use reg 25 on VMS.
3201 (ia64_initialize_trampoline): Fix for VMS ABI.
3202 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
3203 (ia64_function_arg): Initialize reg 25 on VMS.
3204 Fix OpenVMS ABI issues for varargs.
3205 For OpenVMS, emit the Argument Information register set in the
3206 incoming/sibcall case as well.
3207 (ia64_arg_type): New function.
3208 (ia64_function_arg_advance): Keep track of cum->words.
3209 Fix OpenVMS ABI issues for varargs.
3210 (ia64_function_value): On VMS, promote mode of non-aggregate types.
3211 (ia64_override_options): Set flag_no_common on VMS.
3212 (ia64_init_builtins): Disable FWRITE builtin.
3213 (ia64_asm_output_external): Call DO_CRTL_NAMES.
3214 (ia64_vms_init_libfuncs): Add decc$ routines.
3215 (ia64_vms_valid_pointer_mode): New function.
3216 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
3217 (ia64_promote_function_mode): New function
3218 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
3219 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
3220 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
3221 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
3222 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
3223 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
3224 Suppress trailing '#' if VALUE is numeric.
3225 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
3226 ia64_promote_function_mode.
3227 (TARGET_VALID_POINTER_MODE): Define.
3228
30402573
MM
32292009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3230
3231 PR target/40671
3232 * config/rs6000/rs6000.c (rs6000_override_options): Use
8c40d061 3233 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
30402573
MM
3234
3235 PR target/41145
3236 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
c89f5009 3237 reporting of vector + decimal/boolean/complex error.
30402573 3238
08ffd640
JJ
32392009-08-21 Jakub Jelinek <jakub@redhat.com>
3240
3241 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
3242 __vector double TYPE_DECL.
3243
46107b99
RE
32442009-08-21 Richard Earnshaw <rearnsha@arm.com>
3245
3246 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
3247 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
3248 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
3249 to pointer to enum machine_mode. Update all callers as needed.
3250
7450a081
UB
32512009-08-21 Uros Bizjak <ubizjak@gmail.com>
3252
3253 * config/alpha/alpha.md (exception_receiver): Emit alternative
3254 GP load sequence if flag_reorder_blocks_and_partition is set.
3255 (*exception_receiver_2): Also enable when
3256 flag_reorder_blocks_and_partition is set.
3257
6d383c5e
MR
32582009-08-20 Matt Rice <ratmice@gmail.com>
3259 Diego Novillo <dnovillo@google.com>
3260
3261 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
3262 tree-ssa-sccvn.h.
3263
29cc57cf
RG
32642009-08-20 Richard Guenther <rguenther@suse.de>
3265
8c40d061 3266 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
29cc57cf
RG
3267 * c-tree.h (c_dup_lang_specific_decl): Remove.
3268 (struct lang_decl, struct lang_type): Move definitions ...
3269 * c-lang.h: ... here. New file.
3270 * c-decl.c: Include c-lang.h.
3271 (c_dup_lang_specific_decl): Remove.
3272 * c-typeck.c: Include c-lang.h.
3273 * Makefile.in (c-decl.o): Add c-lang.h dependency.
3274 (c-typeck.o): Likewise.
3275 * c-config-lang.in (gtfiles): Add c-lang.h.
3276 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
3277 like c-tree.h.
3278
7e9f2c0f
UB
32792009-08-20 Uros Bizjak <ubizjak@gmail.com>
3280
3281 * config/alpha/alpha.c (alpha_end_function): Do not clear
3282 crtl->emit structure and free insn locators if cfun->is_thunk is true,
3283 this is now handled in generic code.
3284
b0f86a7e
AK
32852009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
3286
3287 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
3288 (s390_z10_fix_long_loop_prediction): New function.
3289 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
3290 (s390_reorg): Walk over the INSNs and invoke
3291 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
3292
f1149235
AK
32932009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
3294
3295 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
3296 "*brx_64bit", "*brx_31bit"): New patterns.
3297 * config/s390/s390.c ('E'): New output modifier.
3298
a552b644 32992009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7e9f2c0f 3300 Richard Earnshaw <richard.earnshaw@arm.com>
a552b644 3301
7e9f2c0f
UB
3302 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
3303 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
a552b644 3304
2fd74bff
JDA
33052009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3306
3307 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
3308 patterns.
3309 * pa.c (emit_move_sequence): Check if address of operand1 is valid
3310 for mode mode of operand0 when doing secondary reload for SAR.
3311
b8e444f4
JJ
33122009-08-19 Jakub Jelinek <jakub@redhat.com>
3313
3314 PR middle-end/41123
3315 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
3316 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
3317
6c879482
JM
33182009-08-19 Jason Merrill <jason@redhat.com>
3319
3320 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
3321 supported template depth in C++0x.
3322
dc0c6451
JJ
33232009-08-19 Jakub Jelinek <jakub@redhat.com>
3324
3325 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
3326 free_after_compilation.
3327 * config/score/score7.c (score7_output_mi_thunk): Likewise.
3328 * config/score/score3.c (score3_output_mi_thunk): Likewise.
3329 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3330 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3331 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3332 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3333 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3334
9302a061
ILT
33352009-08-19 Ian Lance Taylor <iant@google.com>
3336
3337 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
3338 of (plus (mult (neg B) C) A).
3339
9600efe1
MM
33402009-08-18 Michael Matz <matz@suse.de>
3341
3342 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
3343 instead of comparing TYPE_MAIN_VARIANT for equality.
3344 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
3345 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
3346 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
3347 * gimplify.c (goa_lhs_expr_p): Ditto and use
3348 STRIP_USELESS_TYPE_CONVERSION.
3349
10174ddf
MM
33502009-08-18 Michael Matz <matz@suse.de>
3351
3352 * tree-ssa-structalias.c (create_variable_info_for): Also mark
3353 first field in a struct.
3354 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
3355
e72cee90
UB
33562009-08-18 Uros Bizjak <ubizjak@gmail.com>
3357
3358 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
3359 locators before emit_insn is called. Remove assert that
3360 cfun->is_thunk.
3361 (alpha_end_function): Clear crtl->emit structure and free insn
3362 locators if cfun->is_thunk is true.
3363
e31bcd1b
JM
33642009-08-18 Jason Merrill <jason@redhat.com>
3365
3366 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
3367 type if available.
3368 * configure.ac: Test for it.
3369 * configure, config.in: Regenerate.
3370 * doc/install.texi: Document --enable-gnu-unique-object.
3371
776e7174
RG
33722009-08-18 Richard Guenther <rguenther@suse.de>
3373
3374 PR middle-end/41094
3375 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
3376 pow(x,y*z) only if x is nonnegative.
3377
68a31530
JJ
33782009-08-18 Jakub Jelinek <jakub@redhat.com>
3379
3380 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
3381 on jumps.
3382
f3252b3c
JJ
3383 PR target/40971
3384 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
3385 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
3386
65655f79
DD
33872009-08-17 DJ Delorie <dj@redhat.com>
3388
3389 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
3390 * config/m32c/prologue.md (epilogue_freit): New.
3391 (fset_b): New.
3392 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
3393 (bank_switch_p): Likewise.
3394 (fast_interrupt_p): Likewise.
3395 (interrupt_p): Likewise.
3396 (m32c_conditional_register_usage): Round memregs size up.
3397 (need_to_save): We only need to save $a0 when we use ENTER.
3398 (interrupt_p): Check for fast_interrupt too.
3399 (bank_switch_p): New.
3400 (fast_interrupt_p): New.
3401 (m32c_attribute_table): Add bank_switch and fast_interrupt.
3402 (m32c_emit_prolog): Support bank switching and fast interrupts.
3403 * doc/extend.texi (Function Attributes): Add bank_switch and
3404 fast_interrupt.
3405
dfe6ba6d
DR
34062009-08-17 Douglas B Rupp <rupp@gnat.com>
3407
3408 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
3409 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
3410
dcad28fd
DR
34112009-08-16 Douglas B Rupp <rupp@gnat.com>
3412
8c40d061 3413 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
dcad28fd
DR
3414 (menu): Add IA-64/VMS Options.
3415 (IA-64/VMS Options): Likewise.
3416
30fff3d8
RS
34172009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
3418
3419 PR target/38599
3420 * config/mips/mips.md (*lwxs): Use :P for pointer values.
3421
cf5fb4b0
RS
34222009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
3423
3424 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
3425 (mips_pop_asm_switch): Likewise.
3426 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
3427 with...
3428 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
3429 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
3430 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
3431 (mips_print_operand_punctuation): Use them. Check mips_noreorder
3432 instead of set_noreorder.
3433 (mips_output_function_prologue): Use the new functions.
3434 (mips_output_function_epilogue): Likewise.
3435 (mips_need_noat_wrapper_p): New function, split out from...
3436 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
3437 Use mips_push_asm_switch and mips_pop_asm_switch.
3438 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
3439 and mips_pop_asm_switch.
3440 (ASM_OUTPUT_REG_POP): Likewise.
3441 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
3442 Use mips_pop_asm_switch.
3443 (mips_asm_switch): New structure.
3444 (set_noreorder, set_nomacro): Replace with...
3445 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
3446 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
3447 instead of set_nomacro.
3448 (fix_truncsfsi2_macro): Likewise.
3449 (cprestore): Likewise.
3450 (hazard): Use mips_noreorder instead of set_noreorder.
3451 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
3452
3eb96d01
UB
34532009-08-16 Uros Bizjak <ubizjak@gmail.com>
3454
8a067ce4 3455 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
3eb96d01
UB
3456 from prev_active_insn.
3457
164709cf
AS
34582009-08-16 Anatoly Sokolov <aesok@post.ru>
3459
3460 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
3461 * config/avr/avr.c (avr_override_options): Initialize
3462 avr_current_arch variable.
3463 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
3464 __AVR_HAVE_16BIT_SP__ according to the device type.
3465 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
3466 TARGET_TINY_STACK.
3467 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
3468 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
3469
5782bb7a
DS
34702009-08-16 Dodji Seketeli <dodji@redhat.com>
3471
52ac997d 3472 PR debug/37801
5782bb7a
DS
3473 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
3474 generating inlined subroutine die only. We shouldn't be
3475 called for anything else.
3476 (gen_block_die): Don't generate inline subroutine debug info for
3477 abstract blocks.
3478
07636543
SP
34792009-08-15 Sebastian Pop <sebastian.pop@amd.com>
3480
3481 * graphite-poly.c (print_pbb): Print PBB index.
3482
f263917c
SP
34832009-08-15 Sebastian Pop <sebastian.pop@amd.com>
3484
3485 PR middle-end/40981
3486 * graphite-interchange.c (ppl_max_for_le): Moved...
3487 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
3488 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
3489 ppl_Pointset_Powerset_C_Polyhedron_maximize.
3490 * graphite-ppl.h (ppl_max_for_le): Declared.
3491
c54d7dc9
OR
34922009-08-14 Olatunji Ruwase <tjruwase@google.com>
3493
3494 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
3495 supported on all platforms.
8c40d061
UB
3496 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
3497 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
c54d7dc9
OR
3498 * c-pragma.c: Likewise.
3499 * target-def.h (TARGET_INITIALIZER): Remove
3500 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
8c40d061 3501 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
c54d7dc9 3502
b874a90d
DR
35032009-08-14 Douglas B Rupp <rupp@gnat.com>
3504
3505 * config/ia64/fde-vms.c: New file.
3506 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
3507 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
3508 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
3509 (uw_frame_state_for): Only register a personality routine if it is
3510 known to be compatible with our expectations.
3511 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
3512 Declare unw_table_entry stack variable and
3513 mod all calls to _Unwind_FindTableEntry to add arg.
3514 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
3515 (_Unwind_FindTableEntry): Add arg to prototype.
3516
ac77b88e
EB
35172009-08-14 Eric Botcazou <ebotcazou@adacore.com>
3518
3519 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
3520 field 'signal_pfs_loc'.
3521 (uw_frame_state_for): Remove duplicate code dealing with leaf
3522 procedures without unwind info.
3523 If in the frame after unwinding through a signal handler, restore
3524 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
3525 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
3526 'pfs_loc' to the AR.PFS location in the signal context; instead
3527 set 'signal_pfs_loc'.
3528 Manually generate the unwind info for the AR.PFS register.
3529 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
3530 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
3531 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
3532 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
3533 instead set 'signal_pfs_loc'.
3534 Remove code preventing the AR.PFS register from being restored
3535 from the signal context.
3536
c24db304
DR
35372009-08-14 Douglas B Rupp <rupp@gnat.com>
3538 Tristan Gingold <gingold@adacore.com>
3539
3540 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
3541 * config/ia64/t-vms: New file.
3542 * config/ia64/vms64.h: New file.
3543 * config/ia64/vms.h: New file.
3544 * config/ia64/vms-crtinit.asm: New file.
3545 * config/ia64/vms_symvec_libgcc_s.opt: New file.
3546 * config/ia64/vms-unwind.h: New file.
3547
387c39e1
UB
35482009-08-14 Uros Bizjak <ubizjak@gmail.com>
3549
3550 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
3551 TFmode compares.
3552
2f440f6a
KG
35532009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3554
3555 PR middle-end/30789
8c40d061
UB
3556 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
3557 Move declaration...
2f440f6a
KG
3558 * real.h (do_mpc_arg2): ... here.
3559 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
3560 and RDIV_EXPR.
3561
fe83055d
RAE
35622009-08-14 Rafael Avila de Espindola <espindola@google.com>
3563
c54d7dc9
OR
3564 * final.c (add_debug_prefix_map): Don't use GC memory for
3565 old_prefix and new_prefix.
fe83055d 3566
1a15bfdc
RG
35672009-08-14 Richard Guenther <rguenther@suse.de>
3568
3569 * ipa-prop.c (compute_complex_pass_through): If we cannot
3570 compute a non-varying offset for IPA_JF_ANCESTOR punt.
3571
065312cf
UW
35722009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3573
3574 * c-lex.c (c_lex_with_flags): Increase size of local variable
3575 to avoid memory clobber.
3576
371015a8
PB
35772009-08-14 Paolo Bonzini <bonzini@gnu.org>
3578
3579 PR target/40934
3580 * config/i386/i386.c (ix86_fp_comparison_strategy):
387c39e1 3581 Only enable/disable sahf at function granularity.
371015a8 3582
94aca67a
HPN
35832009-08-14 Hans-Peter Nilsson <hp@axis.com>
3584
3585 PR rtl-optimization/41064
3586 * reload1.c (reload_as_needed): Don't call extract_insn
3587 for known invalid replacements after calling
3588 validate_replace_rtx_group and verify_changes.
3589
1262fd02
UB
35902009-08-14 Uros Bizjak <ubizjak@gmail.com>
3591
3592 PR target/41019
3593 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
3594 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
3595 ix86_expand_fp_vcond.
3596 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
3597 Assert that operation is supported by ix86_expand_int_vcond.
3598 (vcondu<SSEMODE124C8:mode>): Ditto.
3599
3e3877f8
DD
36002009-08-13 DJ Delorie <dj@redhat.com>
3601
3602 * config/i386/djgpp-stdint.h: New.
3603 * config.gcc (djgpp): Use it.
3604
91d1d521
KK
36052009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3606
3607 * config/sh/sh.c (sh_override_options): When flag_exceptions or
1262fd02 3608 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
91d1d521 3609
2c6dd136
GS
36102009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
3611
387c39e1
UB
3612 * tree-ssa-loop-prefetch.c
3613 (prune_ref_by_group_reuse): Enhance probabilistic analysis
2c6dd136
GS
3614 for long-stride pruning.
3615 (compute_miss_rate): New function to compute the probability
387c39e1 3616 that two memory references access different cache lines.
2c6dd136 3617
241547bb
DK
36182009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
3619
3620 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
3621
e5fdcd8c
RG
36222009-08-13 Richard Guenther <rguenther@suse.de>
3623
3624 PR middle-end/41047
3625 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
3626 use the constant pointer type.
3627 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
3628 of CV qualifiers on the target pointer type.
3629 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
3630 conversion check before restrict check.
3631
d5652a5a
KK
36322009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
3633
3634 PR target/41029
3635 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
3636
d8158ff1
KK
36372009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
3638
3639 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
3640
88ccda10
RG
36412009-08-12 Richard Guenther <rguenther@suse.de>
3642
3643 PR tree-optimization/41011
3644 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
3645 and reference constructing.
3646
6eb29714
XDL
36472009-08-12 Xinliang David Li <davidxl@google.com>
3648
3649 PR tree-optimization/41012
3650 * tree-flow.h : New external interface.
3651 * gimple-low.c (check_call_arg): Change to public function.
3652 Remove argument mismatch check in lowering.
3653 * tree-inline.h (tree_can_inline_p): Interface change.
3654 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
3655 into this function.
f100a4a8 3656 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
6eb29714
XDL
3657 Call change to tree_can_inline_p function.
3658 (cgraph_decide_inlining_incrementally): Ditto.
3659
b2a58473
RS
36602009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
3661
3662 PR tree-optimization/41031
3663 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
3664 on the partition variable rather than promote_mode on the source
3665 type. Assert that the partition variable's type has the same
3666 mode as the source value's.
3667
666e3ceb
PB
36682009-08-12 Paolo Bonzini <bonzini@gnu.org>
3669
3670 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
3671 for for_return == 2.
3672 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
3673 comments.
3674 * calls.c (expand_call): Fix typo.
3675 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
3676 and PARM_DECL.
3677 * stmt.c (expand_value_return): Use promote_function_mode to copy out
3678 of pseudo.
3679 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
3680 * config/cris/cris.c (cris_promote_function_mode): Likewise.
3681 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
3682 * config/pa/pa.c (pa_promote_function_mode): Likewise.
3683
46107b99 36842009-08-12 Andrew Haley <aph@redhat.com>
353a58f7
AH
3685
3686 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
3687
4654745d
SP
36882009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3689
3690 PR bootstrap/40103
3691 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
3692
daad0278
RG
36932009-08-12 Richard Guenther <rguenther@suse.de>
3694
3695 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
3696 * gimplify.c (gimplify_modify_expr): Do not use
3697 lang_hooks.types_compatible_p.
3698 * tree-ssa.c (useless_type_conversion_p): For aggregates
3699 just return false if the canonical types differ.
3700
30de1632
SP
37012009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3702
3703 PR middle-end/40980
3704 * sese.c (convert_for_phi_arg): New.
3705 (add_guard_exit_phis): Use convert_for_phi_arg.
3706
8c31ebfa
SP
37072009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3708
3709 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
3710 unknown subscript upper bounds.
3711
fb9fb290
SP
37122009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3713 Pranav Garg <pranav.garg2107@gmail.com>
3714
3715 * graphite-interchange.c (gather_access_strides): Removed.
3716 (ppl_max_for_le): New.
3717 (build_linearized_memory_access): New.
3718 (memory_stride_in_loop): New.
3719 (pbb_interchange_profitable_p): Reimplemented.
3720 * graphite-ppl.h (ppl_new_id_map): New.
3721 (ppl_interchange): New.
3722
312aea7f
SP
37232009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3724
3725 * graphite-interchange.c (compute_subscript): Removed.
3726 (compute_array_size_cstr): Removed.
3727 (compute_array_size_poly): Removed.
3728 (compute_array_size): Removed.
3729 (gather_access_strides_poly): Removed.
3730 (gather_access_strides): Empty.
3731
25d7cc15
SP
37322009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3733
3734 * graphite-dependences.c (dependence_polyhedron_1): Replace
3735 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
3736 (graphite_legal_transform_dr): Same.
3737 (graphite_carried_dependence_level_k): Same.
3738 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
3739 Initialize PDR_NB_SUBSCRIPTS.
3740 (print_pdr_access_layout): Replace pdr_nb_subscripts with
3741 PDR_NB_SUBSCRIPTS.
3742 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
3743 (PDR_NB_SUBSCRIPTS): New.
3744 (pdr_nb_subscripts): Removed.
3745 (pdr_dim): Simplified.
3746 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
3747 with PDR_NB_SUBSCRIPTS.
3748
66096911
SP
37492009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3750
3751 * graphite-interchange.c (compute_array_size): Remove use of
3752 PDR_DATA_CONTAINER.
3753 * graphite-poly.c (new_poly_dr): Remove argument data_container.
3754 Do not initialize PDR_DATA_CONTAINER.
3755 (print_pdr): Do not print PDR_DATA_CONTAINER.
3756 * graphite-poly.h (struct poly_dr): Remove data_container field.
3757 (PDR_DATA_CONTAINER): Removed.
3758 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
3759 PDR_DATA_CONTAINER.
3760 (build_poly_dr): Same.
3761
7491e5f0
KT
37622009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
3763 Sebastian Pop <sebastian.pop@amd.com>
3764
3765 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
3766 copy of the dependence polyhedron. Free the temporary objects.
3767 (graphite_carried_dependence_level_k): Free unused objects before
3768 returning.
3769
3770 * testsuite/gcc.dg/graphite/interchange-1.c: XFAILed.
3771 * testsuite/gcc.dg/graphite/interchange-2.c: XFAILed.
3772 * testsuite/gcc.dg/graphite/interchange-3.c: XFAILed.
3773 * testsuite/gcc.dg/graphite/interchange-4.c: XFAILed.
3774 * testsuite/gcc.dg/graphite/interchange-7.c: XFAILed.
3775
f4648ed1
SP
37762009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3777
3778 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
3779 Early return without analyzing the data dependences if no
3780 transform has been done. Call restore_scattering if the transform
3781 is not legal.
3782 (graphite-interchange.c): Same.
1262fd02
UB
3783 * graphite-poly.c (print_scattering_function): Test for
3784 PBB_TRANSFORMED.
f4648ed1
SP
3785 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
3786 (apply_poly_transforms): Do not gcc_assert that
3787 the transform is legal.
1262fd02 3788 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
f4648ed1
SP
3789 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
3790 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
3791 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
3792 * graphite-poly.h (struct poly_scattering): New.
3793 (struct poly_bb): Add original, transformed, and saved fields.
1262fd02
UB
3794 Remove transformed_scattering, original_scattering,
3795 nb_local_variables and nb_scattering_transform fields.
f4648ed1
SP
3796 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
3797 (poly_scattering_new): New.
3798 (poly_scattering_free): New.
3799 (poly_scattering_copy): New.
3800 (store_scattering_pbb): New.
3801 (store_scattering): New.
3802 (restore_scattering_pbb): New.
3803 (restore_scattering): New.
3804 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
3805 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
3806
e31a5bd4
SP
38072009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3808
3809 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
3810 (print_scop): Same.
3811
8e88f9fd
SP
38122009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3813
3814 * Makefile.in (graphite.o): Depends on PREDICT_H.
3815 * graphite.c: Include predict.h.
3816 (graphite_finalize): Call tree_estimate_probability.
3817 * predict.c (predict_loops): Do not call scev_initialize and
3818 scev_finalize.
3819 (tree_estimate_probability_bb): New.
3820 (tree_estimate_probability): Do not initialize loops: move that
3821 code to the driver. Call tree_estimate_probability_bb.
3822 (tree_estimate_probability_driver): New.
3823 (pass_profile): Use tree_estimate_probability_driver.
3824 * predict.h (tree_estimate_probability): Declared.
3825
87d4d0ee
SP
38262009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3827
3828 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
3829 * graphite-dependences.c (graphite_legal_transform): Add time to
3830 TV_GRAPHITE_DATA_DEPS.
3831 (dependency_between_pbbs_p): Same.
3832 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
3833
4c7af939
AB
38342009-08-12 Andrey Belevantsev <abel@ispras.ru>
3835
3836 PR rtl-optimization/41033
f100a4a8 3837 * alias.c (nonoverlapping_component_refs_p): Punt when strict
4c7af939
AB
3838 aliasing is disabled.
3839
b2c9d70f
AN
38402009-08-11 Adam Nemet <anemet@caviumnetworks.com>
3841
3842 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
3843 si_mask_operand, and_load_operand, low_bitmask_operand,
3844 and_reg_operand, and_operand): New predicates.
3845 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
3846 * config/mips/mips.c (and_operands_ok): New function.
3847 * config/mips/mips-protos.h (and_operands_ok): Declare it.
3848 * config/mips/mips.md (move_type): Add ext_ins and logical.
3849 (type): Handle them.
1262fd02 3850 (and<mode>3): Use and_reg_operand as the second operand's predicate.
b2c9d70f
AN
3851 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
3852 shift_shift. Remove commutative constraint modifier.
3853 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
3854 shift_shift.
3855 (*clear_upper32_dext): Remove define_insn_and_split.
3856 (*clear_upper32): Turn this define_insn_and_split ...
3857 (splitter for ANDing register with 0xffff_ffff): .. into this.
3858
842e098c
AN
38592009-08-11 Adam Nemet <anemet@caviumnetworks.com>
3860
3861 * combine.c (try_widen_shift_mode): Factor out code to check if an
f100a4a8 3862 integer constant is a low-order bitmask from here ...
842e098c
AN
3863 * rtlanal.c (low_bitmask_len): ... to here.
3864 * rtl.h (low_bitmask_len): Declare.
3865
c53c2591
UB
38662009-08-11 Uros Bizjak <ubizjak@gmail.com>
3867
3868 PR target/8603
3869 * config/alpha/alpha.md (addsi3): Remove expander.
3870 (addsi3): Rename from *addsi3_internal insn pattern.
3871 (subsi3): Remove expander.
3872 (subsi3): Rename from *subsi3_internal insn pattern.
3873
b0d0a8a7
DR
38742009-08-11 Douglas B Rupp <rupp@gnat.com>
3875
3876 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
3877 FWRITE_UNLOCKED.
3878
050d3f9d 38792009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
c53c2591
UB
3880 Eric Botcazou <botcazou@adacore.com>
3881 Douglas B Rupp <rupp@gnat.com>
050d3f9d
VF
3882
3883 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
3884 that records that fit in 64 bits are returned by immediate value,
3885 as required by OpenVMS Calling Standard.
3886 (function_value): Adjust for above modification.
3887 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
3888 virtual_incoming_args_rtx as base object, not next_arg.
3889 * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
3890
2fa8205d
UW
38912009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3892
3893 * reload.c (find_reloads_subreg_address): Check the original
3894 req_equiv_mem address to detect the case where an address is
3895 not valid in the outer mode.
3896
ac8f7e42 38972009-08-11 Richard Guenther <rguenther@suse.de>
f100a4a8 3898
c53c2591
UB
3899 PR bootstrap/40788
3900 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
ac8f7e42 3901
fddeba6d
DR
39022009-08-10 Douglas B Rupp <rupp@gnat.com>
3903
3904 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
3905 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
3906
1d3499d8 39072009-08-10 Olivier Hainque <hainqueu@adacore.com>
c53c2591 3908 Douglas B Rupp <rupp@gnat.com>
1d3499d8
OH
3909
3910 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
3911 PT_STACK when frame_pointer_needed on OpenVMS.
3912 (alpha_pv_save_size, alpha_using_fp): Remove.
3913 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
3914 with proper processing for PT_NULL.
3915 (alpha_vms_initial_elimination_offset): New function. Support for
3916 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
3917 (alpha_sa_size): Force procedure type to PT_STACK when
3918 frame_pointer_needed on OpenVMS.
3919 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
3920 (alpha_using_fp): Likewise.
3921 (alpha_vms_can_eliminate): Add prototype.
3922 (alpha_vms_initial_elimination_offset): Likewise.
3923 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
3924 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
3925
18fd5621 39262009-08-10 Eric Botcazou <botcazou@adacore.com>
c53c2591 3927 Douglas B Rupp <rupp@gnat.com>
18fd5621
EB
3928
3929 * config/alpha/alpha.c (common_object_handler): New function.
3930 (vms_attribute_table): Declare a single attribute "common_object".
3931 (vms_output_aligned_decl_common): New global function.
3932 (SECTION_VMS_OVERLAY): Delete.
3933 (SECTION_VMS_GLOBAL): Likewise.
3934 (SECTION_VMS_INITIALIZE): Likewise.
3935 (vms_asm_named_section): Remove support for above flags.
3936 (vms_section_type_flags): Delete.
3937 (TARGET_SECTION_TYPE_FLAGS): Likewise.
3938 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
3939 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
3940 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
3941
092f3f97
ST
39422009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3943
3944 PR target/41015
3945 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
3946 (sub_ddmmss): Likewise.
3947
35076532
AT
39482009-08-10 Andreas Tobler <a.tobler@schweiz.org>
3949
3950 PR bootstrap/41018
3951 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
3952 year.
3953
0159ec79
UW
39542009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3955
3956 PR target/37053
3957 * reload1.c (reload_as_needed): Use cancel_changes to completely
3958 undo a failed replacement attempt.
3959
4f4e722e
RG
39602009-08-10 Richard Guenther <rguenther@suse.de>
3961
3962 PR middle-end/41006
3963 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
3964 (useless_type_conversion_p): ... here. Require pointer targets
3965 to be compatible.
3966
b1d82db0
DS
39672009-08-10 Dodji Seketeli <dodji@redhat.com>
3968
3969 PR c++/40866
3970 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
3971 loose the original type of the statement list.
3972
5e3fef6c
DR
39732009-08-09 Douglas B Rupp <rupp@gnat.com>
3974
3975 * config/alpha/alpha.c: Include libfuncs.h
3976 (avms_asm_output_extern): New function.
3977 (alpha_init_libfuncs): Init some decc libfuncs.
3978 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
3979 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
3980 (DO_CRTL_NAMES): Define.
3981 (LIB_SPEC): Remove.
3982 * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
3983 (LONG_TYPE_SIZE): Define.
3984 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
3985 (SUBTARGET_SWITCHES): Define malloc64 switch.
3986 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
3987 (MASK_RETURN_ADDR): Define.
3988 doc/invoke.texi (mmalloc64): Document switch.
3989
221cf9ab 39902009-08-09 Olivier Hainque <hainque@adacore.com>
c53c2591 3991 Douglas B Rupp <rupp@gnat.com>
221cf9ab
OH
3992
3993 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
3994 uses_condition_handler.
3995 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
3996 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
3997 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
3998 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
3999 (code_for_builtin): New insn codes for the new alpha_builtins.
4000 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
4001 (alpha_sa_size): Account for uses_condition_handler.
4002 (alpha_expand_prologue): Likewise.
4003 (alpha_start_function): Likewise.
4004 (alpha_expand_epilogue): Likewise.
4005 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
4006 establish/revert expanders.
4007 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
4008 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
4009 New expander, resorting to the alpha.c associated function.
4010 (builtin_revert_vms_condition_handler): Likewise.
4011 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
4012 __gcc_shell_handler, the static VMS condition handler used as
4013 an indirection wrapper to the current dynamically established
4014 handler.
4015 * config/alpha/vms-unwind.h: Complete rewrite.
4016 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
4017 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
f100a4a8 4018
b714133e 40192009-08-09 Eric Botcazou <botcazou@adacore.com>
c53c2591 4020 Douglas B Rupp <rupp@gnat.com>
b714133e
EB
4021
4022 * config/alpha/alpha.c (alpha_links): Add 'target' field.
4023 (alpha_need_linkage): Handle aliases. Return function symbol.
4024 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
4025 Use ultimate alias target for the linkage name.
4026 * config/alpha/alpha.md (movmemdi): Use the symbol returned
4027 by alpha_need_linkage for the function symbol.
4028 (setmemdi): Likewise.
4029
3bd1b109
DR
40302009-08-09 Douglas B Rupp <rupp@gnat.com>
4031
4032 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
4033 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
4034 (ASM_WEAKEN_LABEL): Define.
4035 (CRT_CALL_STATIC_FUNCTION): Define.
4036 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
4037 (ENDFILE_SPEC): Define.
4038 (INIT_SECTION_ASM_OP): Define.
4039 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
4040 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
4041 crtend.o crtendS.o.
4042 (MULTILIB_OSDIRNAMES): Define.
4043 (shlib_version): Define.
4044 (SHLIB_EXT): Define.
4045 (SHLIB_OBJS): Define.
4046 (SHLIB_NAME): Define.
4047 (SHLIB_MULTILIB): Define.
4048 (SHLIB_INSTALL): Define.
4049 (SHLIB_SYMVEC): Define.
4050 (SHLIB_SYMVECX2): Define.
4051 (SHLIB_LINK): Define.
4052
fe2786f5
DR
40532009-08-09 Douglas B Rupp <rupp@gnat.com>
4054
4055 * config/alpha/alpha.c (alpha_initialize_trampoline):
4056 Initialize VMS trampoline IAW ABI for bounded procedure calls.
4057 (alpha_start_function): Emit transfer address on nested functions
4058 for VMS trampoline call.
4059 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
4060 since no longer used.
4061 * config/alpha/vms-tramp.asm: Remove.
4062 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
4063 since now only data initialized at runtime.
4064
c889a16f
DR
40652009-08-09 Douglas B Rupp <rupp@gnat.com>
4066
4067 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
4068 (LINK_GCC_C_SEQUENCE_SPEC): Define.
4069 (MD_EXEC_PREFIX): Remove, no longer used.
4070 (MD_STARTFILE_PREFIX): Likewise.
4071 (INCLUDE_DEFAULTS): Likewise.
4072 * config/alpha/t-vms:
4073 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
4074
a6450905
RG
40752009-08-09 Richard Guenther <rguenther@suse.de>
4076
4077 PR tree-optimization/41016
c53c2591 4078 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
a6450905
RG
4079 (operand_precision): Remove.
4080 (integral_operand_p): Likewise.
4081 (recognize_single_bit_test): Adjust.
4082
f5178456
RS
40832009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
4084
4085 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
4086 operation overflows. Likewise non-cast unary arithmetic.
4087 If one arm of a conditional expression is always taken,
4088 inhibit evaluation warnings for the other arm. Likewise inhibit
4089 evaluation warnings for the second && or || operand if the first
4090 operand is enough to determine the result.
4091 * c-typeck.c (build_conditional_expr): Apply the same inhibition
4092 rules here.
4093 (build_binary_op): Prevent duplicate evaluation warnings.
4094
8f048d2f
RS
40952009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
4096
4097 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
4098 and destination have different modes, Use promote_mode to
4099 determine the signedness of the conversion. Assert that the
4100 promoted source mode matches the destination mode. Don't pass
4101 the destination and destination mode to expand_expr if the source
4102 mode is different. Simplify conversion logic.
4103
6f4454fc
IR
41042009-08-09 Ira Rosen <irar@il.ibm.com>
4105
4106 PR tree-optimization/41008
4107 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
f100a4a8 4108 from condition only in case it's a comparison. Adjust checks.
6f4454fc 4109
2c08497a
BS
41102009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
4111
4112 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
4113 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
4114 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
4115 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
4116 (dump_cand): Handle them.
4117 (struct iv_cand): New members COST_STEP and AINC_USE.
4118 (stmt_after_increment): Likewise.
4119 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
4120 callers changed. Use gimple_uid comparison instead of scanning.
4121 (add_candidate_1): When looking for identical candidates, take
4122 AINC_USE into account. Set it for new candidates.
4123 (force_expr_to_var_cost): Cast target_spill_cost to int.
4124 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
4125 All callers changed. Check for availability of autoinc addressing
c53c2591 4126 modes, both in general for a given mode, and in the specific use case.
2c08497a
BS
4127 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
4128 changed.
4129 (get_computation_cost): Likewise.
4130 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
4131 add_autoinc_candidates): New static functions.
4132 (add_candidate): Call add_autoinc_candidates for candidates based on
4133 a USE_ADDRESS use.
4134 (find_iv_candidates): Call set_autoinc_for_original_candidates.
4135 (determine_use_iv_cost_address): If we have an autoinc candidate at
4136 the matching use, verify autoinc is possible and subtract the cost
4137 of the candidate's step from the cost.
4138 (determine_iv_cost): Record the cost of the increment in the COST_STEP
4139 member of the candidate.
4140 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
4141 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
4142
a9a25daa
DR
41432009-08-09 Douglas B Rupp <rupp@gnat.com>
4144
4145 * config.build (ia64-hp-*vms*): New target.
4146 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
4147 with ia64-hp-*vms*.
4148 * config.gcc (ia64-hp-*vms*): New target.
4149 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
4150 with ia64-hp-*vms*.
4151 * config.host (ia64-hp-*vms*): New target.
4152 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
4153 with ia64-hp-*vms*.
4154
55194b0b
RG
41552009-08-08 Richard Guenther <rguenther@suse.de>
4156
4157 PR tree-optimization/40991
4158 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
4159
d686d892
RS
41602009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
4161
4162 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
4163 mode check. Do truncations in an integer mode.
4164 (force_to_mode): Handle subregs for all mode types. Only do
4165 arithmetic simplifications on integer modes.
4166
0adef8e9
RG
41672009-08-07 Richard Guenther <rguenther@suse.de>
4168
4169 PR tree-optimization/40999
4170 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
4171 (maybe_fold_reference): Lookup constant initializers.
4172 (fold_gimple_assign): Likewise.
4173
60419cc8
RG
41742009-08-07 Richard Guenther <rguenther@suse.de>
4175
4176 * tree-ssa.c (useless_type_conversion_p_1): Only for types
4177 that require structural equality defer to the langhook.
4178
685b0d13
MJ
41792009-08-07 Martin Jambor <mjambor@suse.cz>
4180
4181 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
4182 comments.
4183 (struct ipa_pass_through_data): New type.
4184 (struct ipa_ancestor_jf_data): New type.
4185 (union jump_func_value): Removed field formal_id, added fields
4186 pass_through and ancestor.
4187 (struct ipa_param_call_note): Changed type of formal_id to int from
4188 unsigned.
4189 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
4190 operations jump functions and ancestor jump functions.
4191 (compute_complex_pass_through): New function.
4192 (compute_scalar_jump_functions): Call compute_complex_pass_through,
4193 reflect changes in the jump function strucutre.
4194 (update_jump_functions_after_inlining): Ignore complex pass-through
4195 and ancestor jump functions.
4196 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
4197 polynomial pass-through with operation jump functions.
4198
17f6e37d
JJ
41992009-08-07 Jakub Jelinek <jakub@redhat.com>
4200
4201 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
4202 fde->dw_fde_begin as begin label instead of hot/cold label.
4203 Use LLSDAC label instead of LLSDA for second section lsda.
4204 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
4205 label instead of LLSDA if it is true.
4206 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
4207 callers.
4208 * except.c (add_call_site, dw2_size_of_call_site_table): Add
4209 SECTION argument. Use it as index into crtl->eh.call_site_record
4210 array.
4211 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
4212 use it to determine how to print table entries instead of using
4213 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
4214 label instead of normal begin label as base.
4215 (sjlj_assign_call_site_values): Adjust add_call_site caller.
4216 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
4217 ensure no EH range spans between sections and that landing pads
4218 are always in the corresponding section.
4219 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
4220 for crtl->eh.call_site_record being an array rather than scalar.
4221 (output_one_function_exception_table): New function, copied
4222 from output_function_exception_table. Adjust
4223 dw2_size_of_call_site_table, dw2_output_call_site_table
4224 callers. For SECOND section use *C suffixed labels.
4225 (output_function_exception_table): Call
4226 output_one_function_exception_table and, when doing hot/cold
4227 partitioning, also another time for the second section.
4228 * opts.c: Include except.h.
4229 (decode_options): Allow -freorder-blocks-and-partition with
4230 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
4231 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
4232 * function.h (struct rtl_eh): Change call_site_record from
4233 scalar into array of 2 elements.
4234
3f84bf08
MJ
42352009-08-07 Martin Jambor <mjambor@suse.cz>
4236
4237 * ipa-prop.c (count_formal_params_1): New function.
4238 (ipa_get_vector_of_formal_parms): New function.
4239 (get_vector_of_formal_parm_types): New function.
4240 (ipa_modify_formal_parameters): New function.
4241 (ipa_modify_call_arguments): New function.
4242 (index_in_adjustments_multiple_times_p): New function.
4243 (ipa_combine_adjustments): New function.
4244 (ipa_dump_param_adjustments): New function.
4245 * ipa-prop.h (struct ipa_parm_adjustment): New type.
4246 (ipa_get_vector_of_formal_parms): Declare.
4247 (ipa_modify_formal_parameters): Declare.
4248 (ipa_modify_call_arguments): Declare.
4249 (ipa_combine_adjustments): Declare.
4250 (ipa_dump_param_adjustments): Declare.
4251 (build_ref_for_offset): Declare.
4252 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
4253 * tree-sra.c: Include ipa-prop.c.
f100a4a8 4254 (build_ref_for_offset): Make public.
3f84bf08 4255
ee26a76d
NV
42562009-08-06 Neil Vachharajani <nvachhar@gmail.com>
4257
4258 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
f100a4a8 4259
48c4de16
TS
42602009-08-06 Thomas Schwinge <tschwinge@gnu.org>
4261
4262 * gcc/doc/extend.texi (__builtin_extract_return_address)
4263 (__builtin_frob_return_address): Document.
4264
f36d140e
PB
42652009-08-06 Paul Brook <paul@codesourcery.com>
4266
4267 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
4268 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
4269 implementation on ARMv6-M.
4270
14a782c8
RE
42712009-08-06 Richard Earnshaw <rearnsha@arm.com>
4272
4273 * doc/extend.texi (pcs): Document new attribute for ARM.
4274
0f1a24df
RE
42752009-08-06 Richard Earnshaw <rearnsha@arm.com>
4276
4277 * arm.c (pcs_attribute_args): Comment out unsupported attribute
4278 variants.
4279
a9717079
RE
42802009-08-06 Richard Earnshaw <rearnsha@arm.com>
4281
4282 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
4283 warning ().
4284
d8e6aede
RE
42852009-08-06 Richard Earnshaw <rearnsha@arm.com>
4286
4287 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
4288
390b17c2
RE
42892009-08-06 Richard Earnshaw <rearnsha@arm.com>
4290
4291 Merge ARM/hard_vfp_branch to trunk.
4292
4293 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
4294
4295 * arm.c (libcall_eq): New function.
4296 (libcall_hash): New function.
4297 (add_libcall): New function.
4298 (arm_libcall_uses_aapcs_base): New function.
4299 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
4300 libcalls using the base PCS.
4301 (arm_init_cumulative_args): Likewise.
4302
4303 2009-07-20 Joseph Myers <joseph@codesourcery.com>
4304
4305 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
4306 Use base ABI for conversion libfuncs between HFmode and SFmode.
4307
4308 2009-05-12 Joseph Myers <joseph@codesourcery.com>
4309
4310 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
4311 V4SImode as representatives of all 64-bit and 128-bit vector
4312 types. Allow vector types without vector modes.
4313 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
4314 without vector modes like BLKmode.
4315 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
4316 BLKmode. Avoid unsupported vector modes or TImode moves for
4317 non-TARGET_NEON.
4318 (aapcs_vfp_allocate_return_reg): Likewise.
4319 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
4320 V8QImode if TARGET_NEON || TARGET_IWMMXT.
4321
4322 2009-05-12 Joseph Myers <joseph@codesourcery.com>
4323
4324 * config/arm/arm.c (arm_handle_pcs_attribute): New.
4325 (arm_get_pcs_model): Pass attribute arguments to
4326 arm_pcs_from_attribute.
4327 (arm_init_cumulative_args): Use base AAPCS for conversions from
4328 floating-point types to DImode.
4329 (arm_attribute_table): Add pcs attribute.
4330 (arm_handle_pcs_attribute): New.
4331 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
4332 conversions from floating-point types to DImode, also declare them
4333 to use base AAPCS and declare functions they call to use base
4334 AAPCS and their RTABI names.
4335
4336 2009-05-12 Joseph Myers <joseph@codesourcery.com>
4337
4338 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
4339 -mfloat-abi=hard not being supported for VFP.
4340
4341 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
4342
4343 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
4344 SYMBOL_REF to hard_libcall_value.
4345
4346 2009-03-05 Joseph Myers <joseph@codesourcery.com>
4347 Richard Earnshaw <rearnsha@arm.com>
4348
4349 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
4350 has been put on the stack, all remaining co-processory arguments for
4351 that co-processor also go on the stack.
4352
4353 2009-03-05 Joseph Myers <joseph@codesourcery.com>
4354
4355 * config/arm/arm.c (arm_return_in_memory): Handle returning
4356 vectors of suitable size in registers also for AAPCS case.
4357
4358 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
4359
4360 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
4361
4362 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
4363
4364 ARM Hard-VFP calling convention
4365 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
4366 * target.h (gcc_target): Add libcall_value to table of call hooks.
4367 * targhooks.h (default_libcall_value): Default implementation.
4368 * targhooks.c (default_libcall_value): Likewise.
4369 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
4370 * optabs.c (expand_unop): Use it.
4371 * expr.h (hard_libcall_value): Pass the function RTX through.
f100a4a8 4372 * calls.c (emit_library_call_value_1): Update call to
390b17c2
RE
4373 hard_libcall_value.
4374 * explow.c (hard_libcall_value): Use new target hook.
4375 * testsuite/lib/target-supports.exp
4376 (check_effective_target_arm_hard_vfp_ok): New hook.
4377 (check_effective_target_arm_neon_ok): Improve test for neon
4378 availability.
4379 * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
4380 * config/arm/arm.c: Include cgraph.h
4381 (TARGET_FUNCTION_VALUE): Override default hook.
4382 (arm_pcs_default): New variable.
4383 (arm_override_options): Don't fault hard calling convention with VFP.
4384 Add support for AAPCS variants.
4385 (arm_function_value): Make static. Handle AAPCS variants.
4386 (arm_libcall_value): New function.
4387 (arm_apply_result_size): Handle VFP registers in results.
4388 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
4389 conventions.
4390 (pcs_attribute_args): New variable.
4391 (arm_pcs_from_attribute): New function.
4392 (arm_get_pcs_model): New function.
4393 (aapcs_vfp_cum_init): New function.
4394 (aapcs_vfp_sub_candidate): New function.
4395 (aapcs_vfp_is_return_candidate): New function.
4396 (aapcs_vfp_is_call_candidate): New function.
4397 (aapcs_vfp_allocate): New function.
4398 (aapcs_vfp_allocate_return_reg): New function.
4399 (aapcs_vfp_advance): New function.
4400 (aapcs_cp_arg_layout): New variable.
4401 (aapcs_select_call_coproc): New function.
4402 (aapcs_select_return_coproc): New function.
4403 (aapcs_allocate_return_reg): New function.
4404 (aapcs_libcall_value): New function.
4405 (aapcs_layout_arg): New function.
4406 (arm_init_cumulative_args): Initialize AAPCS args data.
4407 (arm_function_arg): Handle AAPCS variants using new interface.
4408 (arm_arg_parital_bytes): Likewise.
4409 (arm_function_arg_advance): New function.
4410 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
4411 calling conventions.
4412 (arm_setup_incoming_varargs): Handle new AAPCS args data.
4413 * arm.h (NUM_VFP_ARG_REGS): Define.
4414 (LIBCALL_VALUE): Update.
4415 (FUNCTION_VALUE): Delete.
4416 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
4417 (arm_pcs): New enum.
4418 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
4419 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
4420 (FUNCTION_ARG_REGNO_P): Add VFP regs.
4421 * arm-protos.h (arm_function_arg_advance): Add.
4422 (aapcs_libcall_value): Add.
4423 (arm_function_value): Delete.
4424
4dbf26d5
UB
44252009-08-06 Uros Bizjak <ubizjak@gmail.com>
4426 H.J. Lu <hongjiu.lu@intel.com>
4427
4428 PR target/40957
4429 * config/i386/i386.c (standard_sse_mode_p): Remove.
4430 (standard_sse_constant_p): Return 2 for integer mode
4431 vector_all_ones_operand when SSE2 is enabled.
4432 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
4433 (ix86_expand_vector_move): Do not check for negative values from
4434 standard_sse_constant_p.
4435
e52201b6
RG
44362009-08-06 Richard Guenther <rguenther@suse.de>
4437
4438 * tree-ssa.c (useless_type_conversion_p_1): Make function and
4439 array type comparisons frontend independent.
4440 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
4441 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
4442 out array reference lower bound and element size operands.
4443 (ao_ref_init_from_vn_reference): Properly compute the offset
4444 for ARRAY_RANGE_REF.
4445 (vn_reference_fold_indirect): Fill out array reference lower
4446 bound and element size operands.
4447 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
4448 a non gimple valued reference operand which can happen for
4449 array reference lower bound or element size.
4450 (create_component_ref_by_pieces_1): Properly generate the
4451 element size operand for array references.
4452
b92fbdd7
RB
44532009-08-06 Richard Guenther <rguenther@suse.de>
4454
4455 PR tree-optimization/40964
4456 * tree.c (iterative_hash_host_wide_int): Export.
4457 * tree.h (iterative_hash_host_wide_int): Declare.
4458 * tree-ssa-structalias.c (heapvar_map): New struct.
4459 (heapvar_map_eq): New function.
4460 (heapvar_map_hash): Likewise.
4461 (heapvar_lookup): Adjust.
4462 (heapvar_insert): Likewise.
4463 (make_constraint_from_heapvar): Allow multiple heap variables
4464 per decl at different offsets.
4465 (init_alias_heapvars): Adjust.
4466
068ca03a
DD
44672009-08-04 David Daney <ddaney@caviumnetworks.com>
4468
4469 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
4470 * mips_output_sync_loop (mips_output_sync_loop): Only emit
4471 trailing sync if TARGET_SYNC_AFTER_SC.
4472
40a4a37b
DD
44732009-08-05 David Daney <ddaney@caviumnetworks.com>
4474
4475 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
4476 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
4477 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
4478 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
4479 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
4480 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
4481 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
4482 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
4483 test_and_set_12): Rewrite calls to mips_output_sync_loop.
4484 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
4485 the prototype declaration match the definition.
4486 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
4487 instructions explicitly. Add barrier_before and operands
4488 parameters.
4489 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
4490 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
4491 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
4492 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
4493 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
4494 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
4495
dcbd7063
AP
44962009-08-05 Andrew Pinski <pinskia@gmail.com>
4497
4498 * tree-ssa-alias.c: Fix intervals to use [) syntax.
4499
2c4389d8
UB
45002009-08-05 Uros Bizjak <ubizjak@gmail.com>
4501 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
4502
4503 PR target/40906
4504 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
4505 source operand.
4506
403c7520
JJ
45072009-08-05 Jakub Jelinek <jakub@redhat.com>
4508
4509 PR rtl-optimization/40924
4510 * dse.c (canon_address): Before calling cselib_expand_value_rtx
4511 make sure canon_rtx (mem_address) isn't simpler than
4512 canon_rtx (expanded_mem_address).
4513
64393e40
LF
45142009-08-05 Li Feng <nemokingdom@gmail.com>
4515
4516 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
4517 for each poly_bb_p.
4518 (build_scop_drs): Build alias set for each SCoP.
4519
5dce6dbd
SL
45202009-08-04 Sandra Loosemore <sandra@codesourcery.com>
4521
4522 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
4523 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
4524 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
4525 (MIPS_ARCH_FLOAT_SPEC): Likewise.
4526 (BASE_DRIVER_SELF_SPECS): Likewise.
4527
f9fc1a02
AP
45282009-08-04 Andrew Pinski <pinskia@gmail.com>
4529
4530 * tree-ssa-alias.c: Fix some comment typos.
4531
09a7d0af
KK
45322009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
4533
4534 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
4535 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
4536
50cd60be
JJ
45372009-08-03 Janis Johnson <janis187@us.ibm.com>
4538
4539 PR c/39902
4540 * simplify-rtx.c (simplify_binary_operation_1): Disable
4541 simplifications for decimal float operations.
4542
1768a052
JJ
45432009-08-03 Jakub Jelinek <jakub@redhat.com>
4544
4545 PR middle-end/40943
4546 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
4547 operand of INDIRECT_REF.
4548
42a9ba1d
UB
45492009-08-03 Uros Bizjak <ubizjak@gmail.com>
4550
4551 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
4552 constants referencing TLS symbols.
4553
9f774cb0
ST
45542009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
4555
4556 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
4557 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
4558
907dd6ae
RG
45592009-08-03 Richard Guenther <rguenther@suse.de>
4560
4561 * tree.c (make_vector_type): Build a main variant first,
4562 get the canonical one and then build the variant.
4563 * tree-ssa.c (useless_type_conversion_p_1): Handle
4564 fixed-point types.
4565 (useless_type_conversion_p): Conversions to pointers to
4566 incomplete record types are useless.
4567
2329c6f5
RG
45682009-08-03 Richard Guenther <rguenther@suse.de>
4569
4570 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
4571 file will be created.
4572 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
4573 * toplev.c (compile_file): Adjust comment.
4574
d055ce45
KK
45752009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
4576
4577 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
4578 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
4579 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4580 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
4581 (sh_promote_function_mode): Fix typo.
4582
b1680483
AK
45832009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
4584
42a9ba1d 4585 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
b1680483 4586
4ce3042d
JDA
45872009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4588
4589 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
4590 declaration arguments.
4591
0589e07d
UB
45922009-08-02 Uros Bizjak <ubizjak@gmail.com>
4593
4594 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
4595 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
4596 (ix86_split_ashl): Ditto.
4597 (ix86_expand_vector_init_one_nonzero): Ditto.
4598 (ix86_expand_vector_set): Ditto.
4599 (ix86_expand_reduc_v4sf): Ditto.
4600
46012009-08-02 Paolo Bonzini <bonzini@gnu.org>
6e957ac8
PB
4602
4603 * explow.c (promote_function_mode): Remove assert.
4604 * config/sh/sh.c (sh_promote_function_mode): Declare.
4605
be3e4ef6
JDA
46062009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4607
6e957ac8
PB
4608 * config/pa/pa.c (pa_promote_function_mode): Declare.
4609 Change to static. Fix promote_mode call.
02095c50 4610
1f7ec57e
JDA
4611 * gthr-dce.h (CONST_CAST2): Define if not defined.
4612 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
4613
be3e4ef6
JDA
4614 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
4615
6e957ac8 46162009-08-01 Paolo Bonzini <bonzini@gnu.org>
cde0f3fd
PB
4617
4618 * expr.c (store_constructor): Use promote_decl_mode. Remove
4619 now write-only variable unsignedp.
4620 (expand_expr_real_1): Use promote_decl_mode.
4621 * expr.h (promote_function_mode, promote_decl_mode): New.
4622 (promote_mode): Remove last argument.
4623 * function.c (assign_temp): Drop last argument of promote_mode.
4624 (assign_parm_find_data_types): Use promote_function_mode.
4625 (assign_parm_setup_reg): Likewise.
4626 (expand_function_end): Use promote_function_mode.
4627 * calls.c (initialize_argument_information): Use promote_function_mode.
4628 (precompute_arguments): Use promote_mode instead of checking if
4629 only PROMOTE_FUNCTION_MODE is defined.
4630 (expand_call): When making sibcall decisions, use promote_function_mode.
4631 Below, remove an if for targetm.calls.promote_function_return and
4632 and use promote_function_mode.
4633 (emit_library_call_value_1): Use promote_function_mode, fix bug
4634 where promote_mode was passed FOR_CALL == 0 for a return value in an
4635 assertion.
4636 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
4637 * explow.c (promote_function_mode, promote_decl_mode): New.
4638 (promote_mode): Keep only the FOR_CALL == 0 case.
4639 * combine.c (setup_incoming_promotion): Remove test of
4640 promote_function_args. Use promote_function_mode.
4641 * stmt.c (expand_value_return): Use promote_decl_mode.
4642 (expand_decl): Use promote_decl_mode.
4643
4644 * expr.c (store_constructor): Use promote_decl_mode. Remove
4645 now write-only variable unsignedp.
4646 (expand_expr_real_1): Use promote_decl_mode.
4647 * expr.h (promote_function_mode, promote_decl_mode): New.
4648 (promote_mode): Remove last argument.
4649 * function.c (assign_temp): Drop last argument of promote_mode.
4650 (assign_parm_find_data_types): Use promote_function_mode.
4651 (assign_parm_setup_reg): Likewise.
4652 (expand_function_end): Use promote_function_mode.
4653 * calls.c (initialize_argument_information): Use promote_function_mode.
4654 (precompute_arguments): Use promote_mode instead of checking if
4655 only PROMOTE_FUNCTION_MODE is defined.
4656 (expand_call): When making sibcall decisions, use promote_function_mode.
4657 Below, remove an if for targetm.calls.promote_function_return and
4658 and use promote_function_mode.
4659 (emit_library_call_value_1): Use promote_function_mode, fix bug
4660 where promote_mode was passed FOR_CALL == 0 for a return value in an
4661 assertion.
4662 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
4663 * explow.c (promote_function_mode, promote_decl_mode): New.
4664 (promote_mode): Keep only the FOR_CALL == 0 case.
4665 * combine.c (setup_incoming_promotion): Remove test of
4666 promote_function_args. Use promote_function_mode.
4667 * stmt.c (expand_value_return): Use promote_decl_mode.
4668 (expand_decl): Use promote_decl_mode.
4669
4670 * explow.c (promote_function_mode): Just call the target hook.
4671 * targhooks.c (default_promote_function_mode,
4672 default_promote_function_mode_always_promote): New.
4673 * targhooks.h (default_promote_function_mode,
4674 default_promote_function_mode_always_promote): Declare.
4675 * target.h (promote_function_args, promote_function_return): Remove.
4676 (promote_function_mode): New.
4677 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
4678 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
4679 (TARGET_PROMOTE_FUNCTION_MODE): New.
4680 (TARGET_CALLS): Adjust.
4681 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
4682 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
4683
4684 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
4685 * config/s390/s390.c (s390_promote_function_mode): ... here,
4686 with pointer handling.
4687 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4688 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
4689
4690 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
4691 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
4692 with pointer handling.
4693 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4694 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
f100a4a8 4695
cde0f3fd
PB
4696 * config/sh/sh-protos.h (sh_promote_function_mode): New.
4697 * config/sh/sh.c (sh_promote_function_mode): New.
4698 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4699 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
4700
4701 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
4702 * config/cris/cris.c (cris_promote_function_mode): ... here.
4703 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4704 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
4705
4706 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
4707 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
4708 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4709 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
4710
4711 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
0589e07d
UB
4712 * config/arm/arm.c (arm_promote_function_mode): ... here, without
4713 complex type handling.
cde0f3fd
PB
4714 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4715 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
4716
4717 * config/pa/pa.c (pa_promote_function_mode): New.
4718 (TARGET_PROMOTE_FUNCTION_MODE): Define.
4719 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
4720
4721 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
4722 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
4723 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
4724 * config/xtensa/xtensa.c: Likewise.
4725 * config/stormy16/stormy16.c: Likewise.
4726 * config/iq2000/iq2000.c: Likewise.
4727 * config/rs6000/rs6000.c: Likewise.
4728 * config/picochip/picochip.c: Likewise.
4729 * config/arc/arc.c: Likewise.
4730 * config/mcore/mcore.c: Likewise.
4731 * config/score/score.c: Likewise.
4732 * config/mips/mips.c: Likewise.
4733 * config/bfin/bfin.c: Likewise.
4734 * config/ia64/ia64.c: Likewise (disabled though).
4735
4736 * config/frv/frv.h: Remove pointless remark.
4737
4738 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
4739 TARGET_PROMOTE_FUNCTION_ARGS,
4740 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
4741 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
4742
3cf0e270
SP
47432009-08-01 Sebastian Pop <sebastian.pop@amd.com>
4744
4745 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
4746 -floop-parallelize-all.
4747 * toplev.c (process_options): Rename flag_graphite_force_parallel to
4748 flag_loop_parallelize_all.
4749 * tree-ssa-loop.c (gate_graphite_transforms): Same.
4750 * graphite.c (graphite_transform_loops): Same.
4751 * common.opt: Same.
4752 * graphite-poly.c (apply_poly_transforms): Same.
4753
6f7b8b70
RE
47542009-07-31 Richard Earnshaw <rearnsha@arm.com>
4755
4756 PR tree-optimization/40914
4757 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
4758 if set, then check the delta field of the PMF record.
4759 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
4760 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
4761 call is stored in the delta.
4762
17320477
AN
47632009-07-31 Adam Nemet <anemet@caviumnetworks.com>
4764
4765 * config/mips/mips.md (*clear_upper32_dext): New pattern.
4766
e61c6562
UB
47672009-07-31 Uros Bizjak <ubizjak@gmail.com>
4768
4769 * config/i386/bsd.h (ASM_BYTE): New define.
4770 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
4771 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
4772 .byte. Use fputs or putc instead of fprintf where appropriate.
4773 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
4774 fputs or putc instead of fprintf where appropriate.
4775 * config/i386/i386elf.h: Ditto.
4776 * config/i386/sysv4.h: Ditto.
f100a4a8 4777
e61c6562
UB
4778 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
4779 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
4780 (*tls_global_dynamic_64): Ditto.
4781
f100a4a8 47822009-07-31 Christian Bruel <christian.bruel@st.com>
ea2002ba
CB
4783
4784 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
f100a4a8 4785
17eb4921
RR
47862009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4787
f100a4a8 4788 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
17eb4921
RR
4789 Remove dead code for MINUS.
4790
23865616
AG
47912009-07-31 Anthony Green <green@moxielogic.com>
4792
4793 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
4794 $r12 in prologue.
4795 (moxie_expand_epilogue): Ditto for epilogue.
4796 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
4797 incoming arguments.
4798 (moxie_function_arg): Ditto.
4799 (moxie_pass_by_reference): Ditto.
4800 (moxie_arg_partial_bytes): Ditto.
4801 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
4802 (FUNCTION_ARG_ADVANCE) Ditto.
4803 (REG_PARM_STACK_SPACE) Ditto.
4804 (FUNCTION_ARG_REGNO_P) Dito.
4805
4806 * config.gcc: Add moxie linux config support.
4807 * gcc/config/moxie/uclinux.h: New file.
4808
20e19db4
DD
48092009-07-31 DJ Delorie <dj@redhat.com>
4810
4811 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
4812 (UNSPECV_SP_SWITCH_E): New.
4813 (sp_switch_1): Change to an unspec.
4814 (sp_switch_2): Change to an unspec. Don't use post-inc when we
4815 replace $r15.
4816 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
4817 reference the new stack's address
4818
204b560f
SP
48192009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4820
4821 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
4822 graphite-clast-to-gimple.o, graphite-dependences.o,
4823 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
4824 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
4825 (graphite-blocking.o,
4826 graphite-clast-to-gimple.o, graphite-dependences.o,
4827 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
4828 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
4829 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
4830 * cfgloop.h (struct loop): Add can_be_parallel field.
4831 * common.opt (fgraphite-identity): Moved up.
4832 (fgraphite-force-parallel): New flag.
4833 * graphite.c: Rewrite.
4834 * graphite.h: Rewrite.
4835 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
4836 after Graphite.
4837 * toplev.c (graphite_out_file): New file descriptor.
4838 (graphite_in_file): New.
4839 (process_options): flag_graphite_force_parallel cannot be used without
4840 Graphite.
4841 * tree-ssa-loop.c: Include toplev.h.
4842 (gate_graphite_transforms): Enable flag_graphite for
4843 flag_graphite_force_parallel.
4844
2abae5f1
SP
48452009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4846
4847 * ChangeLog.graphite: New.
4848 * graphite-blocking.c: New.
4849 * graphite-clast-to-gimple.c: New.
4850 * graphite-clast-to-gimple.h: New.
4851 * graphite-dependences.c: New.
4852 * graphite-dependences.h: New.
4853 * graphite-interchange.c: New.
4854 * graphite-poly.c: New.
4855 * graphite-poly.h: New.
4856 * graphite-ppl.c: New.
4857 * graphite-ppl.h: New.
4858 * graphite-scop-detection.c: New.
4859 * graphite-scop-detection.h: New.
4860 * graphite-sese-to-poly.c: New.
4861 * graphite-sese-to-poly.h: New.
4862 * sese.c: New.
4863 * sese.h: New.
4864
e7c705bb
SP
48652009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4866
4867 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
4868 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
4869
765deab7
SP
48702009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4871
4872 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
4873 (scev_is_linear_expression): Return false if the evolution is not
4874 affine multivariate.
4875
ed91d661
SP
48762009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4877
4878 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
4879 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
4880
a37d995a
SP
48812009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4882
4883 * tree-data-ref.c (debug_data_references): New.
4884 (debug_data_reference): New.
4885 * tree-data-ref.h (debug_data_references): Declared.
4886 (debug_data_reference): Declared.
4887
ae5b9860
SP
48882009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4889
4890 * tree-data-ref.c (stmt_simple_memref_p: Removed.
4891 * tree-data-ref.h (scop_p): Removed.
4892 (struct data_reference): Remove field scop.
4893 (DR_SCOP): Removed.
4894 (stmt_simple_memref_p): Removed.
4895
8e74b397
SP
48962009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4897
4898 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
4899 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
4900 basic block empty.
4901
109e0d57
SP
49022009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4903
4904 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
4905
66a7961b
SP
49062009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4907
4908 * doc/invoke.texi (-fgraphite-identity): Documented.
4909
52bdd655
SP
49102009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4911
4912 * tree-scalar-evolution.c: Fix comment.
4913 (instantiate_scev_1): Return unknow from scev instantiation if the
4914 result is not above instantiate_below.
4915
42e6eec5
SP
49162009-07-30 Sebastian Pop <sebastian.pop@amd.com>
4917
4918 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
4919 static anymore. Instantiate the symbols that may have been introduced
4920 by chrec_apply.
4921 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
4922 Declared.
4923
77806925
DD
49242009-07-30 DJ Delorie <dj@redhat.com>
4925
4926 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
4927 .vliw directive to VLIW sections.
4928
6efbd53f
RW
49292009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4930
4931 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
4932 New variables.
4933 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
4934 (AUTOHEADER): New variable.
4935 ($(srcdir)/cstamp-h.in): Use it.
4936
29e6733c
MM
49372009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
4938 Pat Haugen <pthaugen@us.ibm.com>
4939 Revital Eres <ERES@il.ibm.com>
4940
4941 * config/rs6000/vector.md (VEC_F): Add VSX support.
4942 (VEC_A): Ditto.
4943 (VEC_N): Ditto.
4944 (mov<mode>): Ditto.
4945 (vector_load_<mode>): Ditto.
4946 (vector_store_<mode>): Ditto.
4947 (vector GPR move split): Ditto.
4948 (vec_reload_and_plus_<mptrsize>): Ditto.
4949 (vec_reload_and_reg_<mptrsize>): Ditto.
4950 (add<mode>3): Ditto.
4951 (sub<mode>3): Ditto.
4952 (mul<mode>3): Ditto.
4953 (neg<mode>2): Ditto.
4954 (abs<mode>2): Ditto.
4955 (smin<mode>3): Ditto.
4956 (smax<mode>3): Ditto.
4957 (vector_eq<mode>): Ditto.
4958 (vector_gt<mode>): Ditto.
4959 (vector_ge<mode>): Ditto.
4960 (vector_gtu<mode>): Ditto.
4961 (vector_select_<mode>_uns): Ditto.
4962 (vector_eq_<mode>_p): Ditto.
4963 (vector_gt_<mode>_p): Ditto.
4964 (vector_ge_<mode>_p): Ditto.
4965 (vector_gtu_<mode>_p): Ditto.
4966 (cr6_test_for_zero): Ditto.
4967 (cr6_test_for_zero_reverse): Ditto.
4968 (cr6_test_for_lt): Ditto.
4969 (cr6_test_for_lt_reverse): Ditto.
4970 (xor<mode>3): Ditto.
4971 (ior<mode>3): Ditto.
4972 (and<mode>3): Ditto.
4973 (one_cmpl<mode>2): Ditto.
4974 (nor<mode>2): Ditto.
4975 (andc<mode>2): Ditto.
4976 (float<VEC_int<mode>2): Ditto.
4977 (unsigned_float<VEC_int><mode>2): Ditto.
4978 (fix_trunc<mode><VEC_int>2): Ditto.
4979 (fixuns_trunc<mode><VEC_int>2): Ditto.
4980 (vec_init<mode>):
4981 (vec_set<mode>): Ditto.
4982 (vec_extract<mode>): Ditto.
4983 (vec_interleave_highv4sf): Ditto.
4984 (vec_interleave_lowv4sf): Ditto.
4985 (vec_realign_load_<mode>): Ditto.
4986 (vec_shl_<mode>): Ditto.
4987 (vec_shr_<mode>): Ditto.
4988 (div<mode>3): New patterns for VSX.
4989 (vec_interleave_highv2df): Ditto.
4990 (vec_interleave_lowv2df): Ditto.
4991 (vec_pack_trunc_v2df): Ditto.
4992 (vec_pack_sfix_trunc_v2df): Ditto.
4993 (vec_pack_ufix_trunc_v2df): Ditto.
4994 (vec_unpacks_hi_v4sf): Ditto.
4995 (vec_unpacks_lo_v4sf): Ditto.
4996 (vec_unpacks_float_hi_v4si): Ditto.
29e6733c 4997 (vec_unpacks_float_lo_v4si): Ditto.
1262fd02
UB
4998 (vec_unpacku_float_hi_v4si): Ditto.
4999 (vec_unpacku_float_lo_v4si): Ditto.
29e6733c
MM
5000 (movmisalign<mode>): Ditto.
5001 (vector_ceil<mode>2): New patterns for vectorizing math library.
5002 (vector_floor<mode>2): Ditto.
5003 (vector_btrunc<mode>2): Ditto.
5004 (vector_copysign<mode>3): Ditto.
5005
5006 * config/rs6000/predicates.md (easy_vector_constant_msb): New
e61c6562 5007 predicate for setting the high bit in each word, used for copysign.
29e6733c
MM
5008
5009 * config/rs6000/ppc-asm.h (f19): Whitespace.
5010 (f32-f63): Define if VSX.
5011 (v0-v31): Define if Altivec.
5012 (vs0-vs63): Define if VSX.
5013
5014 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
5015
5016 * config/rs6000/power7.md: New file, provide tuning parameters for
5017 -mcpu=power7.
5018
e61c6562 5019 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
29e6733c
MM
5020 (rs6000_cpu_cpp_builtins): Ditto.
5021 (altivec_overloaded_builtins): Ditto.
5022 (altivec_resolve_overloaded_builtin): Ditto.
5023
5024 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
5025 debug switch to disable vectorizing simple math builtin
5026 functions.
5027
5028 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
5029 Vectorize simple math builtin functions.
5030 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
5031 hook to vectorize math builtins.
5032 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
5033 (rs6000_builtin_conversion): Add VSX/power7 support.
5034 (rs6000_builtin_vec_perm): Ditto.
5035 (vsplits_constant): Add support for loading up a vector constant
5036 with just the high bit set in each part.
5037 (rs6000_expand_vector_init): Add VSX/power7 support.
5038 (rs6000_expand_vector_set): Ditto.
5039 (rs6000_expand_vector_extract): Ditto.
5040 (rs6000_emit_move): Ditto.
5041 (bdesc_3arg): Ditto.
5042 (bdesc_2arg): Ditto.
5043 (bdesc_1arg): Ditto.
5044 (rs6000_expand_ternop_builtin): Ditto.
5045 (altivec_expand_builtin): Ditto.
5046 (rs6000_expand_unop_builtin): Ditto.
5047 (rs6000_init_builtins): Ditto.
5048 (altivec_init_builtins): Ditto.
5049 (builtin_function_type): Ditto.
5050 (rs6000_common_init_builtins): Ditto.
5051 (rs6000_handle_altivec_attribute); Ditto.
5052 (rs6000_mangle_type): Ditto.
5053 (rs6000_vector_mode_supported_p): Ditto.
5054 (rs6000_mode_dependent_address): Altivec addresses with AND -16
5055 are mode dependent.
5056
5057 * config/rs6000/vsx.md: New file for VSX support.
5058
5059 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
5060 identifing values with just the most significant bit set.
5061 (enum rs6000_builtins): Add builtins for VSX. Add simple math
5062 vectorized builtins.
5063
5064 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
5065 (UNSPEC_VRFIM): Delete.
5066 (splitter for loading up vector with most significant bit): New
5067 splitter for vectorizing copysign.
5068 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
5069 vectorizing simple math functions.
e61c6562 5070 (altivec_vrfip): Add support for vectorizing simple math functions.
29e6733c
MM
5071 (altivec_vrfim): Ditto.
5072 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
5073
5074 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
5075 (power7.md, vsx.md): Include for power7 support.
5076 (copysigndf3): Use VSX instructions if -mvsx.
5077 (negdf2_fpr): Ditto.
5078 (absdf2_fpr): Ditto.
5079 (nabsdf2_fpr): Ditto.
5080 (adddf3_fpr): Ditto.
5081 (subdf3_fpr): Ditto.
5082 (muldf3_fpr): Ditto.
5083 (divdf3_fpr): Ditto.
5084 (fix_truncdfdi2_fpr): Ditto.
5085 (cmpdf_internal1): Ditto.
5086 (fred, fred_fpr): Convert into expander/insn to add VSX support.
5087 (btruncdf2, btruncdf2_fpr): Ditto.
5088 (ceildf2, ceildf2_fpr): Ditto.
5089 (floordf2, floordf2_fpr): Ditto.
5090 (floatdidf2, floatdidf2_fpr): Ditto.
5091 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
5092 (fmsubdf4_fpr): Ditto.
5093 (fnmadddf4_fpr_1): Ditto.
5094 (fnmadddf4_fpr_2): Ditto.
5095 (fnmsubdf4_fpr_1): Ditto.
5096 (fnmsubdf4_fpr_2): Ditto.
5097 (fixuns_truncdfdi2): Add expander for VSX support.
5098 (fix_truncdfdi2): Ditto.
5099 (fix_truncdfsi2): Ditto.
5100 (ftruncdf2): Ditto.
5101 (btruncsf2): Whitespace.
5102 (movdf_hardfloat32): Add support for VSX registers.
5103 (movdf_softfloat32): Ditto.
5104 (movdf_hardfloat64): Ditto.
5105 (movdf_hardfloat64_mfpgpr): Ditto.
5106 (movdf_softfloat64): Ditto.
5107 (movti splitters): Add check for vector registers supporting
5108 TImode in the future.
5109 (bpermd): Add power7 bpermd instruction.
5110
5111 * config/rs6000/altivec.h (vec_div): Define if VSX.
5112 (vec_mul): Ditto.
5113 (vec_msub): Ditto.
5114 (vec_nmadd): Ditto.
5115 (vec_nearbyint): Ditto.
5116 (vec_rint): Ditto.
5117 (vec_sqrt): Ditto.
e61c6562
UB
5118 (all predicates): Use the generic builtin function, and not the V4SF
5119 specific function so that the predicates will work with VSX's V2DF.
29e6733c
MM
5120 (vec_all_*): Ditto.
5121 (vec_any_*): Ditto.
5122
5123 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
5124 Document new VSX functions and types.
5125
5126 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
5127 switches.
5128
5129 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
5130 "wa", and "j" constraints. Modify "v" to talk about Altivec
5131 instead of just vector.
5132
f5045c96
AM
51332009-07-30 Andrew MacLeod <amacleod@redhat.com>
5134
5135 PR debug/26475
5136 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
5137 location for phi arguments.
5138 (rewrite_update_phi_arguments): Find locations for reaching defs.
5139 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
5140 Add location to add_phi_arg calls.
5141 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
5142 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
5143 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
5144 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
5145 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
5146 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
5147 * tree-phinodes.c (make_phi_node): Initialize location.
5148 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
5149 (add_phi_arg): Add location parameter.
5150 (remove_phi_arg_num): Move location when moving phi argument.
f100a4a8 5151 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
f5045c96
AM
5152 location.
5153 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
5154 slpeel_update_phi_nodes_for_guard1,
5155 slpeel_update_phi_nodes_for_guard2,
5156 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
5157 vect_loop_versioning): Set locations.
5158 * tree-parloops.c (create_phi_for_local_result,
5159 transform_to_exit_first_loop, create_parallel_loop): Add locations.
5160 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
5161 * tree-vect-loop.c (get_initial_def_for_induction,
5162 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
5163 locations.
5164 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
5165 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
5166 (gimple_phi_arg_set_location): New. Set locus.
5167 (gimple_phi_arg_has_location): New. Check for locus.
5168 (redirect_edge_var_map_location): New. Return locus from var_map.
5169 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
5170 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
5171 combining PHI arguments.
5172 (cond_store_replacement): Set location.
5173 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
5174 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
5175 scop_add_exit_phis_edge): Add locations.
5176 * tree-cfgcleanup.c (remove_forwarder_block,
5177 remove_forwarder_block_with_phi): Add locations.
5178 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
5179 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
5180 locations.
5181 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
5182 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
5183 flush_pending_stmts): Add source location.
5184 * lambda-code.c (perfect_nestify): Maintain location stack with argument
5185 stack to preserve locations.
5186 * tree-vect-stmts.c (vectorizable_load): Add location.
5187 * tree-inline.c (copy_phis_for_bb): Copy locus.
5188 (setup_one_parameter): Add call locus to inlined parameter stmts.
5189 (initialize_inlined_parameters): Pass in call location as parameter
5190 assignment locus.
5191 (tree_function_versioning): Pass location to setup_one_parameter.
5192 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
5193 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
5194 copy and edge lists.
5195 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
f100a4a8 5196 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
f5045c96
AM
5197 locus parameter and override the stmt default if provided.
5198 (new_elim_graph, clear_elim_graph, delete_elim_graph,
5199 elim_graph_add_edge, elim_graph_remove_succ_edge,
5200 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
5201 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
5202 eliminate_phi): Add locus info in elimination graph for each edge and
5203 value copy.
5204 (insert_backedge_copies): Copy locus if present.
5205 * tree-flow.h (struct _edge_var_map): Add locus field.
5206 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
5207 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
f100a4a8 5208 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
f5045c96
AM
5209 locations.
5210 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
f100a4a8 5211
2d4b90b1
MJ
52122009-07-30 Martin Jambor <mjambor@suse.cz>
5213
5214 PR tree-optimization/40570
5215 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
5216 use inlining loops.
5217
08dab97a
RL
52182009-07-30 Razya Ladelsky <razya@il.ibm.com>
5219
5220 * ssa-loop-manip.c: Include langhooks.h.
5221 (rewrite_phi_with_iv): New.
5222 (rewrite_all_phi_nodes_with_iv): New.
5223 (canonicalize_loop_ivs): Move here from tree-parloops.c.
5224 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
5225 * tree-parloops.c (loop_parallel_p): Move out all conditions
5226 except dependency check.
5227 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
5228 (gen_parallel_loop): Call canonicalize_loop_ivs without
5229 reduction_list argument.
5230 (build_new_reduction): New.
5231 (gather_scalar_reductions): New.
5232 (try_get_loop_niter): New.
5233 (try_create_reduction_list): New.
5234 (parallleize_loops): Change the parallel conditions check.
5235 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
5236 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
5237
88c2fd3d
DK
52382009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
5239
5240 * opt-functions.awk (opt_args): Allow argument to be enclosed in
5241 curly braces.
5242 * doc/options.texi (Option properties): Mention new quoting syntax.
5243
5ea8f977
DR
52442009-07-29 Douglas B Rupp <rupp@gnat.com>
5245
5246 * config/alpha/alpha.c (alpha_start_function):
5247 Handle VMS_DEBUG_MAIN_POINTER
5248 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
5249 * doc/invoke.texi: Document -mdebug-main switch.
5250
9b2a5ef7
RH
52512009-07-29 Richard Henderson <rth@redhat.com>
5252
5253 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
5254 (cgraph_create_edge_including_clones): Likewise.
5255 * tree-inline.c (copy_bb): Operate on the correct edges
5256 when updating the callgraph.
5257
71cd2220
DR
52582009-07-29 Douglas B Rupp <rupp@gnat.com>
5259
5260 * config/alpha/vms-cc.c: Deleted.
5261 * config/alpha/vms-ld.c: Deleted.
5262 * config/alpha/t-vms64: Moved to config/vms
5263 * config/alpha/vms-crt0-64.c: Moved to config/vms
5264 * config/alpha/vms-crt0.c: Moved to config/vms
5265 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
5266 * config/alpha/vms-psxcrt0.c: Moved to config/vms
5267 * config/alpha/xm-vms.h: Moved to config/vms
5268 * config/alpha/x-vms: Moved to config/vms
5269 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
5270 config/vms/t-vms.
5271 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
5272 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
5273 (version): Set.
5274 * config/vms/t-vms64: Moved here from config/alpha
5275 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
5276 (argc,argv,envp): Enforce 32bit malloc'ing.
5277 * config/vms/vms-psxcrt0-64.c: Likewise.
5278 * config/vms/vms-crt0.c: Moved here from config/alpha.
5279 * config/vms/vms-psxcrt0.c: Likewise.
5280 * config/vms/vms-crtl-64.h: New file.
5281 * config/vms/vms-crtl.h: New file.
5282 * config/vms/vms.opt: New file.
5283 * config/vms/xm-vms64.h: New file.
5284 * config/vms/xm-vms.h: Moved here from config/alpha.
5285 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
5286 Set.
5287 * config/vms/x-vms: Moved here from config/alpha.
5288 (version, VMS_EXTRA_PARTS): Moved to t-vms.
5289 (vms-ld.o, vms-cc.o): Removed.
5290 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
5291
82b75b46
DR
52922009-07-29 Douglas B Rupp <rupp@gnat.com>
5293
5294 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
5295 correct stack (obvious VMS fix).
5296
c2cffdc8
DR
52972009-07-29 Douglas B Rupp <rupp@gnat.com>
5298
5299 * dwarf2out.c (output_file_names): Output VMS style file name, size,
5300 date, version info if VMS_DEBUGGING_INFO defined.
5301 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
5302 size, date calculating code moved here.
5303
0244b03f
PB
53042009-07-29 Paul Brook <paul@codesourcery.com>
5305
5306 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
5307 do_push/do_pop.
5308
bc4eac6d
UB
53092009-07-29 Uros Bizjak <ubizjak@gmail.com>
5310
5311 PR target/40577
5312 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
5313 to DImode when generating insq_le insn.
5314
6f1595d3
DR
53152009-07-28 Douglas B Rupp <rupp@gnat.com>
5316
5317 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
5318 New macro set for VMS_DEBUGGGING_INFO.
5319 (AT_string_form): Use it.
5320
820ca276
DD
53212009-07-28 DJ Delorie <dj@redhat.com>
5322
5323 * config/mep/mep.c (vtext_section): New.
5324 (vftext_section): New.
5325 (ftext_section): New.
5326 (mep_select_section): Add support for functions.
5327 (mep_unique_section): Likewise.
5328 (mep_asm_init_sections): Likewise.
3fb0a660 5329 (mep_encode_section_info): Remove it from here.
820ca276
DD
5330
5331 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
5332
e2121f17
PB
53332009-07-28 Paolo Bonzini <bonzinI@gnu.org>
5334
5335 * tree.h (TREE_DEPRECATED): Document it is used for types too.
5336 (TYPE_VECTOR_OPAQUE): Use default_def_flag
5337
dde08f9b
DR
53382009-07-28 Douglas B Rupp <rupp@gnat.com>
5339
5340 * dwarf2out.c (output_file_names): Test new macro
5341 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
5342 (add_comp_dir_attribute): Likewise.
5343
032502c2
KT
53442009-07-28 Kai Tietz <kai.tietz@onevision.com>
5345
5346 * config/i386/mingw-w64.h (LINK_SPEC): Add
5347 separating space between commands.
5348
b29c2ffd
JH
53492009-07-28 Jan Hubicka <jh@suse.cz>
5350
5351 PR tree-optimization/40759
5352 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
5353 for renaming.
5354
683a1be6
DD
53552009-07-27 DJ Delorie <dj@redhat.com>
5356
5357 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
5358 types are dword-aligned.
5359 (mep_expand_va_start): Likewise.
5360
cf157324 53612009-07-27 Olivier Hainque <hainque@adacore.com>
bc4eac6d 5362 Douglas B Rupp <rupp@gnat.com>
cf157324
OH
5363
5364 * convert.c (convert_to_pointer): Don't assume the target
5365 pointer type is POINTER_SIZE long. Fetch its precision instead.
5366
d4d798a3
DR
53672009-07-27 Douglas B Rupp <rupp@gnat.com>
5368
5369 * system.h (fopen): Undefine if macro.
5370
5823ade1
JJ
53712009-07-27 Jakub Jelinek <jakub@redhat.com>
5372
5373 * dwarf2out.c (output_cfi_p): Removed.
5374 (output_cfis): New function.
5375 (output_fde): New function, split from output_call_frame_info.
5376 (output_call_frame_info): Use it.
5377 (dwarf2out_switch_text_section): Use output_cfis.
5378
648abd76
KT
53792009-07-24 Kai Tietz <kai.tietz@onevision.com>
5380
5381 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
5382 TARGET_BI_ARCH is specified without enabling SJLJ.
5383 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
5384 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
5385
4b89636e
MP
53862009-07-26 Mikael Pettersson <mikpe@it.uu.se>
5387
5388 * arm.md (negdi2): Use DImode if forcing a value into a register.
5389
63827fb8
IR
53902009-07-26 Ira Rosen <irar@il.ibm.com>
5391
5392 PR tree-optimization/40801
5393 * tree-vect-stmts.c (vectorizable_call): Get previous copy
5394 of vector operand from the previous copy of vector statement.
5395 Pass the correct definition type value to
5396 vect_get_vec_def_for_stmt_copy().
5397
db9369bb
JDA
53982009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5399
5400 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
5401 const char ** conversion.
5402
2df77822
DD
54032009-07-25 David Daney <ddaney@caviumnetworks.com>
5404
5405 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
5406 fancy_abort() if !ENABLE_ASSERT_CHECKING.
5407 (gcc_unreachable): Invoke __builtin_unreachable() if
5408 !ENABLE_ASSERT_CHECKING.
5409
1e211590
DD
54102009-07-25 David Daney <ddaney@caviumnetworks.com>
5411
5412 PR rtl-optimization/40445
5413 * emit-rtl.c (next_nonnote_insn_bb): New function.
5414 * rtl.h (next_nonnote_insn_bb): Declare new function.
5415 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
5416 with no successors that is the successor of the ENTRY_BLOCK.
5417 Continue from the top after removing an empty fallthrough block.
5418 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
5419 of next_nonnote_insn.
5420
ba21aba3
DD
54212009-07-25 David Daney <ddaney@caviumnetworks.com>
5422
bc4eac6d 5423 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
f100a4a8 5424
86631ea3
MJ
54252009-07-25 Martin Jambor <mjambor@suse.cz>
5426
5427 * c-common.c (c_common_attribute_table): New element for noclone.
5428 (handle_noclone_attribute): New function. Forward-declare.
5429 * tree-inline.c (tree_versionable_function_p): Check for noclone
5430 attribute.
5431 * doc/extend.texi (Labels as Values): Document need for noclone.
5432 (Function Attributes): Document noclone attribute.
5433
0cf856b7
JJ
54342009-07-25 Jakub Jelinek <jakub@redhat.com>
5435
5436 PR rtl-optimization/34999
5437 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
5438 and dw_fde_switched_cold_to_hot fields.
5439 (output_cfi_p): New function.
5440 (output_call_frame_info): If fde->dw_fde_switched_sections,
5441 output 2 FDEs instead of one with corrupted header.
5442 (dwarf2out_do_cfi_startproc): New function.
5443 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
5444 and fde->dw_fde_switched_cold_to_hot.
5445 (dwarf2out_switch_text_section): Compute
5446 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
5447 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
5448 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
5449 Otherwise, compute fde->dw_fde_switch_cfi.
5450
2a2869d6
CC
54512009-07-24 Cary Coutant <ccoutant@google.com>
5452
5453 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
5454
cbea518e
CC
54552009-07-24 Cary Coutant <ccoutant@google.com>
5456
5457 * cfghooks.c (split_block): Copy discriminator to new block.
5458 * tree-cfg.c (assign_discriminator): Check location of last
5459 instruction in block as well as first.
5460
87da3843
UB
54612009-07-24 Uros Bizjak <ubizjak@gmail.com>
5462
5463 * config/i386/linux.c: Use fputs or putc instead of fprintf
5464 where appropriate.
5465 * config/i386/gas.h: Ditto.
5466 * config/i386/x86-64.h: Ditto.
5467 * config/i386/att.h: Ditto.
5468
a22fb74c
AK
54692009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5470
5471 * expmed.c (emit_store_flag): Use a recursive call to optimize the
5472 xor case.
5473
5b9633c8
MJ
54742009-07-24 Martin Jambor <mjambor@suse.cz>
5475
5476 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
5477 (ipa_push_func_to_list_1): Declare.
5478 (ipa_push_func_to_list): New function.
5479
5480 * ipa-prop.c (ipa_push_func_to_list_1): New function.
5481 (ipa_init_func_list): Call ipa_push_func_to_list_1.
5482 (ipa_push_func_to_list): Removed.
5483 (ipa_pop_func_from_list): Clear node_enqueued flag.
5484
ff5b964d 54852009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
f100a4a8 5486
ff5b964d
AK
5487 * config/s390/s390.c (override_options): Default
5488 max-unrolled-insns to 100 for z10 tuning.
5489
223cf84d
TG
54902009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
5491
5492 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
5493 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
5494 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
5495 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
5496 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
5497 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
5498 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
5499
3a802a9e
KT
55002009-07-24 Kai Tietz <kai.tietz@onevision.com>
5501
5502 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
5503 use default set in mingw32.h header.
5504 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
5505 64-bit /mingw/include path.
5506 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
5507 path.
5508
c580edc8
NV
55092009-07-23 Neil Vachharajani <nvachhar@google.com>
5510
5511 PR rtl-optimization/40209
5512 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
5513
0d42d490
UB
55142009-07-23 Uros Bizjak <ubizjak@gmail.com>
5515
5516 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
5517 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
5518 with the rest of string where appropriate. Use fputs or putc
5519 instead of fprintf where appropriate.
5520
a72c65c7
MM
55212009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
5522 Pat Haugen <pthaugen@us.ibm.com>
5523 Revital Eres <ERES@il.ibm.com>
5524
5525 * config/rs6000/vector.md: New file. Move most of the vector
5526 expander support here from altivec.md to allow for the VSX vector
5527 unit in the future. Add support for secondary_reload patterns.
5528 Rewrite the patterns for vector comparison, and vector comparison
5529 predicate instructions so that the RTL expresses the desired
5530 behavior, instead of using unspec.
5531
5532 * config/rs6000/constraints.md ("f" constraint): Use
5533 rs6000_constraints to hold the precalculated register class.
5534 ("d" constraint): Ditto.
5535 ("wd" constraint): New constraint for VSX.
5536 ("wf" constraint): Ditto.
5537 ("ws" constraint): Ditto.
5538 ("wa" constraint): Ditto.
5539 ("wZ" constraint): Ditto.
5540 ("j" constraint): Ditto.
5541
5542 * config/rs6000/predicates.md (vsx_register_operand): New
5543 predicate for VSX.
5544 (vfloat_operand): New predicate for vector.md.
5545 (vint_operand): Ditto.
5546 (vlogical_operand): Ditto.
5547 (easy_fp_constant): If VSX, 0.0 is an easy constant.
5548 (easy_vector_constant): Add VSX support.
5549 (altivec_indexed_or_indirect_operand): New predicate for
5550 recognizing Altivec style memory references with AND -16.
5551
5552 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
5553 for vector secondary reload support.
87da3843
UB
5554 (rs6000_vector_reg_class): Delete, replacing it with
5555 rs6000_constraints.
a72c65c7
MM
5556 (rs6000_vsx_reg_class): Ditto.
5557 (rs6000_constraints): New array to hold the register classes of
5558 each of the register constraints that can vary at runtime.
5559 (builtin_mode_to_type): New static array for builtin function type
5560 creation.
5561 (builtin_hash_table): New static hash table for builtin function
5562 type creation.
5563 (TARGET_SECONDARY_RELOAD): Define target hook.
5564 (TARGET_IRA_COVER_CLASSES): Ditto.
5565 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
0d42d490 5566 registers are 128 bits if VSX memory reference instructions are used.
a72c65c7
MM
5567 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
5568 unit is being used.
5569 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
5570 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
5571 Print several of the scheduling related parameters.
5572 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
5573 rs6000_constraints instead of rs6000_vector_reg_class. Move
5574 -mdebug=reg code to rs6000_debug_reg_global. Add support for
5575 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
5576 Altivec. Add VSX support. Setup for secondary reload support on
5577 Altivec/VSX registers.
5578 (rs6000_override_options): Make power7 set the scheduling groups
5579 like the power5. Add support for new debug switches to override
5580 the scheduling defaults. Temporarily disable -mcpu=power7 from
5581 setting -mvsx. Add support for debug switches -malways-hint,
5582 -msched-groups, and -malign-branch-targets.
5583 (rs6000_buitlin_conversion): Add support for returning unsigned
5584 vector conversion functions to fix regressions due to stricter
5585 type checking.
5586 (rs6000_builtin_mul_widen_even): Ditto.
5587 (rs6000_builtin_mul_widen_odd): Ditto.
5588 (rs6000_builtin_vec_perm): Ditto.
5589 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
5590 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
5591 to zero a register.
5592 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
5593 generated upstream.
5594 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
5595 VSX types for bit operations. Changes to accomidate vector.md.
5596 (bdesc_2arg): Ditto.
5597 (bdesc_1arg): Ditto.
5598 (struct builtin_description_predicates): Rewrite predicate
5599 handling so that RTL describes the operation, instead of passing
5600 the instruction to be used as a string argument.
5601 (bdesc_altivec_preds): Ditto.
5602 (altivec_expand_predicate_builtin): Ditto.
5603 (altivec_expand_builtin): Ditto.
5604 (rs6000_expand_ternop_builtin): Use a switch instead of an if
5605 statement for vsldoi support.
0d42d490 5606 (altivec_expand_ld_builtin): Change to use new names from vector.md.
a72c65c7
MM
5607 (altivec_expand_st_builtin): Ditto.
5608 (paired_expand_builtin): Whitespace changes.
5609 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
5610 builtin_mode_to_type table for secondary reload. Call
5611 builtin_function_type to build random builtin functions.
5612 (altivec_init_builtins): Change to use builtin_function_type to
5613 create builtin function types dynamically as we need them.
5614 (builtin_hash_function): New support for hashing the tree types
5615 for builtin function as we need it, rather than trying to build
0d42d490 5616 all of the trees that we need. Add initial preliminary VSX support.
a72c65c7
MM
5617 (builtin_function_type): Ditto.
5618 (builtin_function_eq): Ditto.
5619 (builtin_hash_struct): Ditto.
5620 (rs6000_init_builtins): Ditto.
5621 (rs6000_common_init_builtins): Ditto.
5622 (altivec_init_builtins): Ditto.
5623 (rs6000_common_init_builtins): Ditto.
5624 (enum reload_reg_type): New enum for simplifing reg classes.
5625 (rs6000_reload_register_type): Simplify register classes into GPR,
0d42d490 5626 Vector, and other registers. Altivec and VSX addresses in reload.
a72c65c7
MM
5627 (rs6000_secondary_reload_inner): Ditto.
5628 (rs6000_ira_cover_classes): New target hook, that returns the
5629 appropriate cover classes, based on -mvsx being used or not.
5630 (rs6000_secondary_reload_class): Add VSX support.
5631 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
5632 (get_vsel_insn): Ditto.
5633 (rs6000_emit_vector_compare): Rewrite vector conditional support
5634 so that where we can, we use RTL operators, instead of blindly use
5635 UNSPEC.
5636 (rs6000_emit_vector_select): Ditto.
5637 (rs6000_emit_vector_cond_expr): Ditto.
0d42d490 5638 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
a72c65c7 5639 (create_TOC_reference): Add -mdebug=addr support.
0d42d490 5640 (emit_frame_save): VSX loads/stores need register indexed addressing.
a72c65c7
MM
5641
5642 * config/rs6000/rs6000.md: Include vector.md.
5643
5644 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
5645
5646 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5647 support for V2DI, V2DF in logical, permute, select operations.
5648
5649 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
5650 switch for vsx/power7.
5651 (-mvsx-scalar-memory): Ditto.
5652 (-mvsx-align-128): Ditto.
5653 (-mallow-movmisalign): Ditto.
5654 (-mallow-df-permute): Ditto.
5655 (-msched-groups): Ditto.
5656 (-malways-hint): Ditto.
5657 (-malign-branch-targets): Ditto.
f100a4a8 5658
a72c65c7
MM
5659 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
5660 hook instead.
5661 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
5662 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
5663 (rs6000_vector_reg_class): Delete.
5664 (rs6000_vsx_reg_class): Ditto.
5665 (enum rs6000_reg_class_enum): New enum for the constraints that
5666 vary based on target switches.
5667 (rs6000_constraints): New array to hold the register class for all
5668 of the register constraints that vary based on the switches used.
5669 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
5670 (enum rs6000_builtins): Add unsigned varients for the builtin
5671 declarations returned by target hooks for expanding multiplies,
5672 select, and permute operations. Add VSX builtins.
5673 (enum rs6000_builtin_type_index): Add entries for VSX.
5674 (V2DI_type_node): Ditto.
5675 (V2DF_type_node): Ditto.
5676 (unsigned_V2DI_type_node): Ditto.
5677 (bool_long_type_node): Ditto.
5678 (intDI_type_internal_node): Ditto.
5679 (uintDI_type_internal_node): Ditto.
5680 (double_type_internal_node): Ditto.
5681
5682 * config/rs6000/altivec.md (whole file): Move all expanders to
5683 vector.md from altivec.md. Rename insn matching functions to be
5684 altivec_foo.
5685 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
5686 (altivec_vcmp*): Ditto.
5687 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
5688 (VM): New iterator for moves that includes the VSX types.
5689 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
5690 (altivec_vperm_<mode>_uns): New, for unsigned types.
0d42d490 5691 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
a72c65c7
MM
5692 (altivec_eq<mode>): Ditto.
5693 (altivec_gt<mode>): Ditto.
5694 (altivec_gtu<mode>): Ditto.
5695 (altivec_eqv4sf): Ditto.
5696 (altivec_gev4sf): Ditto.
5697 (altivec_gtv4sf): Ditto.
5698 (altivec_vcmpbfp_p): Ditto.
5699
6d53a79f
RE
57002009-07-23 Richard Earnshaw <rearnsha@arm.com>
5701
f100a4a8 5702 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
6d53a79f
RE
5703 unsigned HWI.
5704
33ecc126
UB
57052009-07-23 Uros Bizjak <ubizjak@gmail.com>
5706
5707 PR target/40832
011a3198 5708 * config/i386/i386.c (output_387_ffreep): Rewrite to use
33ecc126
UB
5709 ASM_SHORT instead of .word.
5710 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
5711 instead of .word in asm template.
5712
db1a8d98
VM
57132009-07-22 Vladimir Makarov <vmakarov@redhat.com>
5714
5715 PR target/37488
5716 * ira-lives.c (bb_has_abnormal_call_pred): New function.
5717 (process_bb_node_lives): Use it.
5718
5719 * ira.c (setup_cover_and_important_classes): Don't setup
5720 ira_important_class_nums. Add cover classes to the end of
5721 important classes.
011a3198
UB
5722 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
5723 New.
db1a8d98
VM
5724 (find_reg_class_closure): Use reorder_important_classes.
5725
5726 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
5727
5728 * config/i386/i386.c (i386_ira_cover_classes): New function.
5729 (TARGET_IRA_COVER_CLASSES): Redefine.
5730
5731 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
5732 importance of order of cover classes in the array.
f100a4a8 5733
cae63f88
DN
57342009-07-22 Diego Novillo <dnovillo@google.com>
5735
5736 * tree-pass.h (TDF_EH): Define.
5737 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
5738 contains TDF_EH, print the EH region number holding GS.
5739 * tree-dump.c (dump_options): Add "eh".
5740 * doc/invoke.texi: Document it.
5741
61ed6392
DK
57422009-07-22 Doug Kwan <dougkwan@google.com>
5743
5744 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
5745
a8338640
MM
57462009-07-22 Michael Matz <matz@suse.de>
5747
5748 PR tree-optimization/35229
5749 PR tree-optimization/39300
5750
5751 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
5752 (inhibit_phi_insertion): New function.
5753 (insert_into_preds_of_block): Call it for REFERENCEs.
5754 (init_pre): Initialize and finalize scalar evolutions.
5755 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
5756
1a66936f
UB
57572009-07-22 Uros Bizjak <ubizjak@gmail.com>
5758
5759 * config/i386/predicates.md (zero_extended_scalar_load_operand):
5760 Use CONST_VECTOR_NUNITS to determine number of elements.
5761
4fe6dea8
AK
57622009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
5763
5764 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
5765 (U, W): Constraints are now deprecated and will be removed if we
f100a4a8 5766 run out of letters.
4fe6dea8
AK
5767 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
5768 the file.
5769 ("prefetch"): Add the stcmh instruction for prefetching.
5770 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
5771 changes.
5772 (s390_short_displacement): Return always true if compiling for
5773 machines not providing the long displacement facility.
5774 (s390_mem_constraint): Support the new constraint letter Z.
5775 (s390_check_qrst_address): New function.
5776
072ebd49
DD
57772009-07-21 DJ Delorie <dj@redhat.com>
5778
5779 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
5780 alone too.
5781
4afe7ad7
JM
57822009-07-21 Jason Merrill <jason@redhat.com>
5783
5784 * c-common.c (max_tinst_depth): Increase default to 1024.
5785
848e6317
UB
57862009-07-21 Uros Bizjak <ubizjak@gmail.com>
5787
5788 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
5789 (vec_unpacku_float_lo_v4si): Ditto.
5790
54e86f6b
UB
57912009-07-21 Uros Bizjak <ubizjak@gmail.com>
5792
5793 PR target/40811
5794 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
5795 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
5796 (builtin_description): Add __builtin_ia32_cvtudq2ps.
5797 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
5798
4a2b7f24
JJ
57992009-07-21 Jakub Jelinek <jakub@redhat.com>
5800
5801 PR tree-optimization/40813
5802 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
5803 it.
5804
a1516d08
KK
58052009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
5806
5807 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
5808 with a NOP_EXPR if needed.
5809
cba146eb
PB
58102009-07-21 Paul Brook <paul@codesourcery.com>
5811
5812 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
5813 Terminate debug dump with newline.
5814
ef8d9a0e
JDA
58152009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5816
5817 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
5818 Cast "1" to unsigned HOST_WIDE_INT.
5819 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
5820 deposit length to the maximum length - lsb. Extend length if
5821 HOST_BITS_PER_WIDE_INT is 32.
5822
d48e9cea
OR
58232009-07-20 Olatunji Ruwase <tjruwase@google.com>
5824
5825 * cgraph.h (constant_pool_htab): New function.
5826 (constant_descriptor_tree): Move from varasm.c.
5827 * varasm.c (constant_pool_htab): New function.
5828 (constant_descriptor_tree): Move to cgraph.h.
5829
9c8e65c3
OR
58302009-07-20 Olatunji Ruwase <tjruwase@google.com>
5831
848e6317 5832 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
9c8e65c3 5833
3e014341
SZ
58342009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
5835
5836 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
5837 $(VARRAY_H).
5838
d0763469
XDL
58392009-07-20 Xinliang David Li <davidxl@google.com>
5840
5841 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
5842
752fd2a8
AN
58432009-07-20 Adam Nemet <anemet@caviumnetworks.com>
5844
5845 * config/mips/mips.md (move_type): Add arith.
5846 (type): Handle arith.
5847 (zero_extendsidi2): Rename this into ...
5848 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
5849 (zero_extendsidi2): New expander.
5850 (*zero_extendsidi2_dext): New pattern.
5851
621114bc
NC
58522009-07-20 Nick Clifton <nickc@redhat.com>
5853
5854 * config.gcc (mips64-*-*): Add definition of tm_defines in order
5855 to set MIPS_ABI_DEFAULT.
5856 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
5857
e338758d
JJ
58582009-07-20 Jakub Jelinek <jakub@redhat.com>
5859
38027156
JJ
5860 * tree-object-size.c (addr_object_size): Handle unions with
5861 array in it as last field of structs in __bos (, 1) as __bos (, 0).
5862
e338758d
JJ
5863 PR tree-optimization/40792
5864 * tree.c (build_function_type_skip_args): Remove bogus assert.
5865
08ad1d6d 58662009-07-20 Jan Hubicka <jh@suse.cz>
848e6317 5867 Martin Jambor <mjambor@suse.cz>
08ad1d6d
JH
5868
5869 * cgraph.h (combined_args_to_skip): New field.
5870 * cgraph.c (cgraph_create_virtual_clone): Properly handle
5871 combined_args_to_skip and args_to_skip.
5872 * tree-inline.c (update_clone_info): New function.
5873 (tree_function_versioning): Call update_clone_info.
1a66936f
UB
5874 * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
5875 functions.
08ad1d6d
JH
5876 (cgraph_materialize_all_clones): More extensive dumping, working
5877 with combined_args_to_skip rather than args_to_skip.
5878
4bbe8262
IR
58792009-07-20 Ira Rosen <irar@il.ibm.com>
5880
5881 * tree-vectorizer.h (vectorizable_condition): Add parameters.
5882 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
5883 (get_initial_def_for_reduction): Likewise.
5884 (vectorizable_reduction): Skip the check of first operand in case
5885 of COND_EXPR. Add check that it is outer loop vectorization if
f100a4a8 5886 nested cycle was detected. Call vectorizable_condition() for
4bbe8262
IR
5887 COND_EXPR. If reduction epilogue cannot be created do not fail for
5888 nested cycles (if it is not double reduction). Assert that there
5889 is only one type in the loop in case of COND_EXPR. Call
5890 vectorizable_condition() to vectorize COND_EXPR.
5891 * tree-vect-stmts.c (vectorizable_condition): Update comment.
f100a4a8 5892 Add parameters. Allow nested cycles if called from
4bbe8262
IR
5893 vectorizable_reduction(). Use reduction vector variable if provided.
5894 (vect_analyze_stmt): Call vectorizable_reduction() before
5895 vectorizable_condition().
5896 (vect_transform_stmt): Update call to vectorizable_condition().
5897
6a799f6e 58982009-07-20 Christian Bruel <christian.bruel@st.com>
f100a4a8 5899
6a799f6e
CB
5900 * config/sh/sh.opt (-mfmovd): Resurrect and document.
5901 * doc/invoke.texi (-mfmovd): Likewise.
5902 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
f100a4a8 5903
eab09a51
JH
59042009-07-20 Jan Hubicka <jh@suse.cz>
5905
5906 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
5907 when handling SSA name.
5908
a915ab00
JH
59092009-07-19 Jan Hubicka <jh@suse.cz>
5910
5911 PR tree-optimization/40676
5912 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
5913 virtual PHIs in empty BBs.
5914
827f4079
AN
59152009-07-18 Adam Nemet <anemet@caviumnetworks.com>
5916
5917 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
5918 re-expanded the compound use gen_lowpart instead to convert to the
5919 desired mode.
5920
f3ce1088
AN
59212009-07-18 Adam Nemet <anemet@caviumnetworks.com>
5922
5923 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
5924 OUTER_CONST arguments.
5925 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
5926 the new wider mode will be masked off.
5927 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
5928
3e63dd3a
AN
59292009-07-18 Adam Nemet <anemet@caviumnetworks.com>
5930
5931 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
5932 high-order bits are zero.
5933
b641d7fc
AN
59342009-07-18 Adam Nemet <anemet@caviumnetworks.com>
5935
5936 * combine.c (simplify_shift_const_1): Split code to determine
5937 shift_mode into ...
5938 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
5939 new bits shifted in are identical to the old sign bit.
5940
33922890
RG
59412009-07-18 Richard Guenther <rguenther@suse.de>
5942
5943 PR c/40787
5944 * gimplify.c (gimplify_call_expr): Reject code using results from
5945 functions returning void.
5946
1d447995
RS
59472009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
5948
5949 * doc/md.texi: Document the new PowerPC "es" constraint.
5950 Document that "m" can include automodified addresses on this target,
5951 and explain how %U must be used. Extend the "Q" and "Z" documentation
5952 to suggest "es" as well as "m".
5953 * config/rs6000/constraints.md (es): New memory constraint.
5954 (Q, Z): Update strings to match new documentation.
5955
406d1650
RS
59562009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
5957
5958 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
5959 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
5960 * config/rs6000/predicates.md (volatile_mem_operand): Use
5961 offsettable_nonstrict_memref_p.
5962 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
5963 (*floatunssidf2_internal): Likewise.
5964 (*fix_truncdfsi2_internal): Likewise.
5965 (*fix_trunctfsi2_internal): Likewise.
5966
a0ce0e6e
AS
59672009-07-17 Anatoly Sokolov <aesok@post.ru>
5968
5969 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
5970 atmega32u2 devices.
5971 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
5972
a406865a
RG
59732009-07-17 Richard Guenther <rguenther@suse.de>
5974
5975 PR c/40401
5976 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
5977 (pass_warn_unused_result): Likewise.
5978 (TODO_set_props): Remove.
5979 * omp-low.c (diagnose_omp_structured_block_errors): Change to
5980 run as a pass.
5981 (pass_diagnose_omp_blocks): Define.
5982 * c-decl.c (pop_file_scope): Do not finalize the CU here.
5983 (c_gimple_diagnostics_recursively): Remove.
5984 (finish_function): Do not call it.
5985 (c_write_global_declarations): Continue after errors.
5986 Finalize the CU here.
5987 * c-gimplify.c (c_genericize): Do not gimplify here.
5988 * c-common.c (c_warn_unused_result): Move ...
5989 * tree-cfg.c (do_warn_unused_result): ... here.
5990 (run_warn_unused_result): New function.
5991 (gate_warn_unused_result): New function.
5992 (pass_warn_unused_result): New pass.
5993 * c-common.h (c_warn_unused_result): Remove.
5994 * flags.h (flag_warn_unused_result): Declare.
5995 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
5996 * opts.c (flag_warn_unused_result): Initialize to false.
5997 * toplev.c (compile_file): Add comment.
5998 * omp-low.c (create_omp_child_function): Do not register
5999 the function with the frontend.
6000 (diagnose_omp_structured_block_errors): Prepare to be
6001 called as optimization pass.
6002 (gate_diagnose_omp_blocks): New function.
6003 (pass_diagnose_omp_blocks): New pass.
6004 * cgraph.h (cgraph_optimize): Remove.
6005 (cgraph_analyze_function): Likewise.
6006 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
6007 * cgraphunit.c (cgraph_lower_function): Lower nested functions
6008 before their parents here.
6009 (cgraph_finalize_function): Not here.
6010 (cgraph_analyze_function): Gimplify functions here.
6011 (cgraph_finalize_compilation_unit): Continue after errors.
6012 Optimize the callgraph from here.
6013 (cgraph_optimize): Make static.
6014 * langhooks.c (write_global_declarations): Finalize the CU.
6015 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
6016 (gimplify_function_tree): Assert we gimplify only once.
6017 Set PROP_gimple_any property.
6018 * tree-nested.c (gimplify_all_functions): New function.
6019 (lower_nested_functions): Gimplify all nested functions.
6020 * gimple.h (diagnose_omp_structured_block_errors): Remove.
6021 * passes.c (init_optimization_passes): Add pass_warn_unused_result
6022 and pass_diagnose_omp_blocks after gimplification. Do not
6023 set TODO_set_props on all_lowering_passes.
6024 (execute_one_pass): Do not handle TODO_set_props.
6025 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
6026 (gimplify.o): Add tree-pass.h dependency.
6027 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
6028 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
6029 (unsave_r): Likewise.
6030 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
6031 temporary variable.
6032
2e687c2c
SL
60332009-07-17 Sandra Loosemore <sandra@codesourcery.com>
6034
6035 * doc/service.texi (Service): Restore previously removed link,
6036 which isn't broken after all.
6037
7763473e
RG
60382009-07-17 Richard Guenther <rguenther@suse.de>
6039
6040 PR tree-optimization/40321
6041 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
6042 PHI nodes to the maximal set.
6043 (make_values_for_phi): Add PHI arguments to the maximal set.
6044 (execute_pre): Dump PHI_GEN and the maximal set.
6045
4f934809
JJ
60462009-07-17 Jakub Jelinek <jakub@redhat.com>
6047
6048 PR c++/40780
6049 * gimplify.c (gimplify_conversion): Don't change non-conversions into
6050 VIEW_CONVERT_EXPR.
6051
63a26b78
SL
60522009-07-16 Sandra Loosemore <sandra@codesourcery.com>
6053
6054 * doc/extend.texi (Nested Functions): Replace broken link with
6055 textual reference.
6056 * doc/service.texi (Service): Remove broken link.
6057
3ac337c3
L
60582009-07-16 H.J. Lu <hongjiu.lu@intel.com>
6059
6060 PR bootstrap/40781
6061 * builtins.c (expand_builtin_memcmp): Use loc instead of
6062 EXPR_LOCATION (exp).
6063 (expand_builtin_strncmp): Likewise.
6064
db3927fb
AH
60652009-07-17 Aldy Hernandez <aldyh@redhat.com>
6066 Manuel López-Ibáñez <manu@gcc.gnu.org>
6067
f100a4a8 6068 PR 40435
db3927fb
AH
6069 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
6070 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
6071 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
6072 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
6073 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
6074 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
6075 tree-inline.c, c-common.c, c-common.h, gimple.c,
6076 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
6077 convert.c: Add location argument to fold_{unary,binary,ternary},
6078 fold_build[123], build_call_expr, build_size_arg,
6079 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
6080 fold_build1_initializer, fold_build2_initializer,
6081 fold_build3_initializer, fold_build_call_array,
6082 fold_build_call_array_initializer, fold_single_bit_test,
6083 omit_one_operand, omit_two_operands, invert_truthvalue,
6084 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
6085 combine_comparisons, fold_builtin_*, fold_call_expr,
6086 build_range_check, maybe_fold_offset_to_address, round_up,
6087 round_down.
6088
c32097d8
JM
60892009-07-16 Jason Merrill <jason@redhat.com>
6090
6091 PR libstdc++/37907
6092 * c-common.c (c_common_reswords): Add __is_standard_layout
6093 and __is_trivial.
6094 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
6095 * doc/implement-cxx.texi: New.
6096 * doc/gcc.texi: Include it.
6097
b3c5a409
DD
60982009-07-16 DJ Delorie <dj@redhat.com>
6099
6100 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
6101 compares that may be indirectly affected by previous instructions.
6102
a41d064d
KG
61032009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6104
6105 * builtins.c (do_mpc_arg2): New.
6106 (fold_builtin_2): Fold builtin cpow.
6107 * real.h (HAVE_mpc_pow): New.
6108
db87b56d
BM
61092009-07-16 Bingfeng Mei <bmei@broadcom.com>
6110
9e7c935a
UB
6111 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
6112 comparison to skip unprofitable schedule
6113
ba0c638e
SB
61142009-07-16 Simon Baldwin <simonb@google.com>
6115
6116 * gcc.c (option_map): New flag -no-canonical-prefixes.
6117 * (display_help): Print help text for new flag.
6118 * (process_command): Move options translation and language specifics
6119 and handle new flag early. Use it to set a function pointer to a
6120 prefix builder. Replace make_relative_prefix calls with calls to
6121 the function pointed to. Ignore new flag in regular options handling.
6122 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
6123
11af2d7b
DD
61242009-07-15 DJ Delorie <dj@redhat.com>
6125
6126 * config/mep/mep.md (sibcall_internal): Change register to avoid
6127 argument registers.
6128 (sibcall_value_internal): Likewise.
6129
9d2bb902
EB
61302009-07-15 Eric Botcazou <ebotcazou@adacore.com>
6131
6132 PR rtl-optimization/40710
6133 * resource.c (mark_target_live_regs): Reset DF problem to LR.
6134
da45599c
AN
61352009-07-15 Adam Nemet <anemet@caviumnetworks.com>
6136
6137 * config/mips/mips.md (*extenddi_truncate<mode>,
6138 *extendsi_truncate<mode>): Change type attribute to move_type
6139 with shift_shift. Split out code handling exts from here ...
6140 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
6141 pattern.
6142 (*extendhi_truncateqi): Change type attribute to move_type with
6143 shift_shift. Split out code handling exts from here ...
6144 (*extendhi_truncateqi_exts): ... to this new pattern.
6145
31f44cd0 61462009-07-15 Uros Bizjak <ubizjak@gmail.com>
1fba7394 6147
31f44cd0
UB
6148 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
6149 instead of "and" with inverted sign bit mask value. Use
6150 "nonimmediate_operand" for operand 1 and operand 2 predicate.
6151 Allocate registers only for operand 4 and operand 5.
1fba7394 6152
b4e4232d
JJ
61532009-07-15 Jakub Jelinek <jakub@redhat.com>
6154
6155 PR middle-end/40747
6156 * fold-const.c (fold_cond_expr_with_comparison): When folding
6157 < and <= to MIN, make sure the MIN uses the same type as the
6158 comparison's operands.
6159
fa01135d
RE
61602009-07-15 Richard Earnshaw <rearnsha@arm.com>
6161
6162 * arm.md (ior_xor): New code iterator.
6163 (split for ior/xor with shift and zero-extend): New split pattern.
6164 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
6165
b41e33fe
RG
61662009-07-15 Richard Guenther <rguenther@suse.de>
6167
6168 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
6169 offset member.
6170
c9b2f286
RG
61712009-07-15 Richard Guenther <rguenther@suse.de>
6172
6173 PR middle-end/40753
1fba7394 6174 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
c9b2f286 6175
31d29c40
MK
61762009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6177
6178 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
6179 handle 2.6.30 kernel.
6180
18e67adf
DD
61812009-07-15 DJ Delorie <dj@redhat.com>
6182
6183 * config/mep/mep.md (sibcall_internal): Change register to allow
6184 for 24-bit addresses.
6185 (sibcall_value_internal): Likewise.
6186
96809b41 61872009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
f100a4a8 6188
1fba7394
UB
6189 * doc/invoke.texi: Added descriptions of the scheduling heuristics
6190 that are enabled/disabled by the flags introduced by a previous patch.
f100a4a8 6191
54a1e1d0
DD
61922009-07-14 DJ Delorie <dj@redhat.com>
6193
6194 * config/mep/mep.md (sibcall_internal): Include non-toggling
6195 non-jmp case.
6196 (sibcall_value_internal): Likewise.
6197
2a4c0366
TG
61982009-07-14 Taras Glek <tglek@mozilla.com>
6199 Rafael Espindola <espindola@google.com>
6200
6201 * doc/sourcebuild.texi: Document install-plugin target.
6202 * configure.ac: Added install-plugin target to language makefiles.
6203 * configure: Regenerate.
6204 * Makefile.in: (install-plugin): Install more headers,
6205 depend on lang.install-plugin.
6206
2349c14b
MLI
62072009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
6208
6209 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
6210 translation.
f100a4a8 6211
a9d1723f
DD
62122009-07-14 DJ Delorie <dj@redhat.com>
6213
6214 * config/mep/mep.c (mep_vliw_jmp_match): New function.
6215 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
6216 * config/mep/mep.md (sibcall_internal): Change test from
6217 mep_vliw_mode_match to mep_vliw_jmp_match.
6218 (sibcall_value_internal): Likewise.
6219
af766f2d
UB
62202009-07-14 Uros Bizjak <ubizjak@gmail.com>
6221
6222 * config/i386/sse.md (copysign<mode>3): New expander.
6223 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
6224 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
6225 Use ix86_build_const_vector.
6226 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
6227 IX86_BUILTIN_CPYSGNPD.
6228 (builtin_description): Add __builtin_ia32_copysignps and
6229 __builtin_ia32_copysignpd.
6230 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
6231 and BUILT_IN_COPYSIGNF.
6232
b35c8160
JM
62332009-07-13 Jason Merrill <jason@redhat.com>
6234
6235 * builtins.c (can_trust_pointer_alignment): New fn.
6236 (get_pointer_alignment): Factor it out from here.
6237 * tree.h: Declare it.
6238
e02e8e58
DE
62392009-07-14 David Edelsohn <edelsohn@gnu.org>
6240
6241 * config/rs6000/predicates.md (offsettable_mem_operand): Test
6242 RTX_AUTOINC class.
6243
4fdaccea
DS
62442009-07-14 Dodji Seketeli <dodji@redhat.com>
6245
6246 PR debug/40705
6247 PR c++/403057
6248 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
6249
0b200b80 62502009-07-14 Richard Guenther <rguenther@suse.de>
af766f2d 6251 Andrey Belevantsev <abel@ispras.ru>
0b200b80
RG
6252
6253 PR middle-end/40745
6254 * cfgexpand.c (partition_stack_vars): Do not bother to update
6255 alias information when not optimizing.
6256
55b34b5f 62572009-07-14 Richard Guenther <rguenther@suse.de>
848e6317 6258 Andrey Belevantsev <abel@ispras.ru>
55b34b5f
RG
6259
6260 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
6261 (pt_solution_set): Likewise.
6262 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
6263 * tree-ssa-structalias.c (pt_solution_set): New function.
6264 * final.c (rest_of_clean_state): Free SSA data structures.
6265 * print-rtl.c (print_decl_name): Remove.
6266 (print_mem_expr): Implement in terms of print_generic_expr.
6267 * alias.c (ao_ref_from_mem): New function.
6268 (rtx_refs_may_alias_p): Likewise.
6269 (true_dependence): Query alias-export info.
6270 (canon_true_dependence): Likewise.
6271 (write_dependence_p): Likewise.
6272 * tree-dfa.c (get_ref_base_and_extent): For void types leave
6273 size unknown.
6274 * emit-rtl.c (component_ref_for_mem_expr): Remove.
6275 (mem_expr_equal_p): Use operand_equal_p.
6276 (set_mem_attributes_minus_bitpos): Do not use
6277 component_ref_for_mem_expr.
6278 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
6279 (update_alias_info_with_stack_vars): Likewise.
6280 (partition_stack_vars): Call update_alias_info_with_stack_vars.
6281 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
6282 explicitly nor clear stmt operands.
6283 Free the decl-to-pointer map.
6284 * tree-optimize.c (execute_free_datastructures): Do not free
6285 SSA data structures here.
6286 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
6287 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
6288 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
6289 dependencies.
6290 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
6291
a46f0964
DD
62922009-07-13 DJ Delorie <dj@redhat.com>
6293
1700c2e7
DD
6294 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
6295 unrolling at the right iteration count.
6296
a46f0964
DD
6297 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
6298 calculations.
6299
ee4764a8 63002009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
f100a4a8 6301
af766f2d
UB
6302 * haifa-sched.c (rank_for_schedule): Introduced flags to
6303 enable/disable individual scheduling heuristics.
6304 * common.opt: Introduced flags to enable/disable individual
f100a4a8 6305 heuristics in the scheduler.
af766f2d
UB
6306 * doc/invoke.texi: Introduced flags to enable/disable individual
6307 heuristics in the scheduler.
f100a4a8 6308
9122666c
KT
63092009-07-13 Kai Tietz <kai.tietz@onevision.com>
6310
6311 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
6312 config/i386/mingw-tls.c.
6313 * config/i386/mingw-tls.c: Removed.
6314
2f3e235b
IR
63152009-07-13 Ira Rosen <irar@il.ibm.com>
6316
f100a4a8 6317 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
2f3e235b
IR
6318 checks access only relevant statements.
6319 (vectorizable_reduction): Likewise.
6320
f345f84a
KT
63212009-07-12 Kai Tietz <kai.tietz@onevision.com>
6322
6323 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
6324 just for 32-bit case.
6325
f645e9a2
JH
63262009-07-12 Jan Hubicka <jh@suse.cz>
6327
6328 PR tree-optimization/40585
6329 * except.c (expand_resx_expr): When there already is resume
6330 instruction, produce linked list.
6331 (build_post_landing_pads): Assert that resume is empty.
6332 (connect_post_landing_pads): Handle resume lists.
6333 (dump_eh_tree): Dump resume list.
6334
06066f92
IR
63352009-07-12 Ira Rosen <irar@il.ibm.com>
6336
6337 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
6338 with additional argument.
7c8b1a77 6339 * tree-vectorizer.h (enum vect_def_type): Add
06066f92
IR
6340 vect_double_reduction_def.
6341 (vect_is_simple_reduction): Add argument.
7c8b1a77 6342 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
06066f92
IR
6343 indentation.
6344 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
6345 vect_is_simple_reduction with additional argument.
6346 (vect_analyze_loop_operations): Handle exit phi nodes in case of
6347 double reduction.
6348 (reduction_code_for_scalar_code): Handle additional codes by
6349 returning ERROR_MARK for them. Fix comment and indentation.
6350 (vect_is_simple_reduction): Fix comment, add argument to specify
6351 double reduction. Detect double reduction.
6352 (get_initial_def_for_induction): Fix indentation.
6353 (get_initial_def_for_reduction): Fix comment and indentation.
6354 Handle double reduction. Create initial definitions that do not
6355 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
6356 (vect_create_epilog_for_reduction): Fix comment, add argument to
6357 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
6358 epilogue result extraction. Create double reduction phi node and
6359 replace relevant uses.
6360 (vectorizable_reduction): Call vect_is_simple_reduction with
6361 additional argument. Fix indentation. Update epilogue code treatment
7c8b1a77 6362 according to the changes in reduction_code_for_scalar_code. Check
06066f92
IR
6363 for double reduction. Call vect_create_epilog_for_reduction with
6364 additional argument.
6365 * tree-vect-stmts.c (process_use): Handle double reduction, update
6366 documentation.
6367 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
6368 (vect_get_vec_def_for_operand): Likewise.
6369
b20231fe
DS
63702009-07-12 Danny Smith <dansmister@gmail.com>
6371
6372 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
6373 dllexport if !TREE_PUBLIC.
6374 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
6375
97c281da
AS
63762009-07-11 Anatoly Sokolov <aesok@post.ru>
6377
6378 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
6379 (avr_extra_arch_macro) Remove declatation.
6380 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
6381 (avr_extra_arch_macro) Declare as static.
6382 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
6383
6b45de00
JH
63842009-07-11 Jan Hubicka <jh@suse.cz>
6385
6386 PR middle-end/48388
6387 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
6388
dd67163f
JJ
63892009-07-11 Jakub Jelinek <jakub@redhat.com>
6390
3e3a9a6a
JJ
6391 PR debug/40713
6392 * dwarf2out.c (dw_fde_struct): Add in_std_section and
6393 cold_in_std_section bits.
6394 (dwarf2out_begin_prologue): Initialize them.
6395 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
6396 if already covered by text_section or cold_text_section range.
6397
ae58e548
JJ
6398 PR rtl-optimization/40667
6399 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
6400 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
6401 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
6402 * config/i386/i386.c (ix86_minimum_alignment): New function.
6403 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
6404 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
6405 * emit-rtl.c (gen_reg_rtx): Likewise.
6406 * function.c (assign_parms): Likewise. If nominal_type needs
6407 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
6408 rather than passed_type's alignment.
6409
dd67163f
JJ
6410 PR target/40668
6411 * function.c (assign_parm_setup_stack): Adjust
6412 MEM_OFFSET (data->stack_parm) if promoted_mode is different
6413 from nominal_mode on big endian.
6414
e9edda23
PB
64152009-07-11 Paolo Bonzini <bonzini@gnu.org>
6416
6417 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
6418
82e45095
DD
64192009-07-10 DJ Delorie <dj@redhat.com>
6420
6421 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
6422
98ac6510
MM
64232009-07-10 Mark Mitchell <mark@codesourcery.com>
6424
6425 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
6426 attribute.
6427 (thumb2_cbnz): Likewise.
6428
b96c5923
DD
64292009-07-10 David Daney <ddaney@caviumnetworks.com>
6430
6431 PR target/39079
6432 * config.gcc (supported_defaults): Add synci.
6433 (with_synci): Add validation.
6434 (all_defaults): Add synci.
6435 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
6436 ISA_HAS_SYNCI.
6437 (synci): Same.
6438 * config/mips/mips.opt (msynci): New option.
6439 * config/mips/mips.c (mips_override_options): Warn on use of
6440 -msynci for targets that do now support it.
6441 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
6442 msynci.
6443 * gcc/doc/invoke.texi (-msynci): Document the new option.
6444 * doc/install.texi (--with-synci): Document the new option.
6445
182e00b1
RG
64462009-07-10 Richard Guenther <rguenther@suse.de>
6447
6448 PR tree-optimization/40496
6449 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
6450 the PHI result with a compatible type.
6451
156f545a
MLI
64522009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
6453
6454 PR 25509
6455 PR 40614
6456 * c.opt (Wunused-result): New.
6457 * doc/invoke.texi: Document it.
6458 * c-common.c (c_warn_unused_result): Use it.
6459
06c43499
DD
64602009-07-09 DJ Delorie <dj@redhat.com>
6461
5cec9f59
DD
6462 * targhooks.c (default_target_can_inline_p): Rename from
6463 default_target_option_can_inline_p.
6464 * targhooks.h (default_target_can_inline_p): Likewise.
6465 * target-def.h (TARGET_CAN_INLINE_P): Rename from
6466 TARGET_OPTION_CAN_INLINE_P.
6467 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
6468 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
6469 (mep_target_can_inline_p): Rename from
6470 mep_target_option_can_inline_p.
6471
6472 PR target/40626
b9263ae5
DD
6473 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
6474 registers used to pass vectors.
6475
06c43499
DD
6476 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
6477
a80b0574
TT
64782009-07-09 Tom Tromey <tromey@redhat.com>
6479
6480 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
6481 * config/mmix/mmix.c: Include dwarf2.h.
6482 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
6483 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
6484 * config/sh/sh.c: Include dwarf2.h.
6485 * config/i386/i386.c: Include dwarf2.h.
6486 * Makefile.in (DWARF2_H): Remove 'elf'.
6487 * except.c: Include dwarf2.h.
6488 * unwind-dw2.c: Include dwarf2.h.
6489 * dwarf2out.c: Include dwarf2.h.
6490 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
6491 * unwind-dw2-fde.c: Include dwarf2.h.
6492 * dwarf2asm.c: Include dwarf2.h.
6493
356c23b3 64942009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
7c8b1a77 6495
356c23b3 6496 * haifa-sched.c (insn_finishes_cycle_p): New static function.
7c8b1a77
UB
6497 (max_issue): Use it.
6498 * sched-int.h (struct sched_info: insn_finishes_block_p): New
6499 scheduler hook.
6500 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
6501 (region_sched_info): Update.
6502 * sched-ebb.c (ebb_sched_info): Update.
6503 * modulo-sched.c (sms_sched_info): Update.
356c23b3
MK
6504 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
6505
5223c588
MK
65062009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
6507
6508 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
8d4cf6d7
BS
6509
65102009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
6511
f100a4a8 6512 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
8d4cf6d7 6513
b9da76de
JJ
65142009-07-09 Jakub Jelinek <jakub@redhat.com>
6515
6516 PR middle-end/40692
6517 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
6518 arg1 with arg01 if arg1 is already INTEGER_CST.
6519
fcaf7e12
AN
65202009-07-08 Adam Nemet <anemet@caviumnetworks.com>
6521
7c8b1a77
UB
6522 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
6523 Transform (and (truncate)) into (truncate (and)).
fcaf7e12 6524
3f36bac2
AN
65252009-07-08 Adam Nemet <anemet@caviumnetworks.com>
6526
6527 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
6528 creating LHS paradoxical subregs. Fix surrounding returns to
6529 use NULL_RTX rather than 0.
6530
ae30c1fa
DD
65312009-07-08 DJ Delorie <dj@redhat.com>
6532
6533 * config/mep/mep.c: (mep_option_can_inline_p): New.
6534 (TARGET_OPTION_CAN_INLINE_P): Define.
6535
3d78d293
MW
65362009-07-08 Mark Wielaard <mjw@redhat.com>
6537
6538 PR debug/40659
6539 * dwarf2out.c (add_data_member_location_attribute): When we have
6540 only a constant offset don't emit a new location description using
6541 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
6542 dwarf_version > 2.
6543
ac2e563f
RH
65442009-07-08 Richard Henderson <rth@redhat.com>
6545
6546 PR target/38900
6547 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
6548 (enum reg_class): Add CLOBBERED_REGS.
6549 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
6550 * config/i386/i386.c (ix86_conditional_register_usage): Moved
6551 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
6552 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
6553 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
6554 force 64-bit sibcalls into R11.
6555 * config/i386/constraints.md (U): New constraint.
6556 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
6557 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
6558 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
6559
8ed77e22
SZ
65602009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
6561
6562 * basic-block.h (dump_regset, debug_regset): Remove duplicate
6563 prototypes.
6564 * c-objc-common.h (c_initialize_diagnostics): Ditto.
6565 * ebitmap.h (dump_ebitmap): Ditto.
6566 * optabs.h (optab_libfunc): Ditto.
6567 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
6568 * tree-flow.h (vect_can_force_dr_alignment_p,
3f36bac2 6569 get_vectype_for_scalar_type): Ditto.
8ed77e22 6570 (vectorize_loops): Move prototype to ...
3f36bac2 6571 * tree-vectorizer.h: ... here. Also, adjust comment.
8ed77e22
SZ
6572 (vect_set_verbosity_level): Remove duplicate prototype.
6573 * tree-ssa-loop.c: Include tree-vectorizer.h.
6574 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
6575
c6075b13
NC
65762009-07-08 Nick Clifton <nickc@redhat.com>
6577
6578 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
6579 forward slash.
6580
d1b5afd5
DD
65812009-07-08 DJ Delorie <dj@redhat.com>
6582
6583 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
6584 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
6585 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
6586 written to.
6587 * config/mep/intrinsics.md: Regenerated.
6588 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
6589 registers when asm() or calls are detected.
3f36bac2 6590
d665b6e5
MLI
65912009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
6592
6593 PR c++/31246
6594 * gimplify.c (gimplify_expr): Propagate no_warning flag when
6595 gimplifying.
6596 * gimple (gimple_build_call_from_tree): Likewise.
6597 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
6598 no_warning flag before warning.
3f36bac2 6599
5e278028
MLI
66002009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
6601
6602 * tree.c (set_expr_locus): Remove.
6603 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
6604 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
6605 EXPR_LOCATION.
6606 * gimplify.c (internal_get_tmp_var): Likewise.
6607 (gimplify_call_expr): Likewise.
6608 (gimplify_one_sizepos): Likewise.
6609
ed3346c2
EB
66102009-07-07 Eric Botcazou <ebotcazou@adacore.com>
6611
6612 PR debug/40666
6613 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
6614 to variables for debugging purposes.
6615
4db19cc7
ML
66162009-06-23 Mark Loeser <mark@halcy0n.com>
6617
6618 PR build/40010
6619 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
6620
72f90fde
MLI
66212009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
6622
6623 * pretty-print.c (pp_base_format): Remove %J.
6624 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
6625 gcc_cxxdiag_char_table): Likewise.
6626 (init_dynamic_diag_info): Likewise.
4db19cc7 6627
dcb91ebe
MLI
66282009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
6629
6630 * pretty-print.c (pp_base_format): Remove %H.
6631 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
6632 gcc_cxxdiag_char_table): Likewise.
6633 (init_dynamic_diag_info): Likewise.
6634 * config/mep/mep.c (mep_select_section): Likewise.
6635
cf400ddb
DS
66362009-07-07 Duncan Sands <baldrick@free.fr>
6637
7c8b1a77
UB
6638 * final.c (pass_clean_state): Give the pass a name.
6639 * passes.c (pass_rest_of_compilation): Likewise.
6640 * tree-optimize.c (pass_all_optimizations): Likewise.
cf400ddb 6641
d575725b
L
66422009-07-07 H.J. Lu <hongjiu.lu@intel.com>
6643
6644 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
6645 an extra 'decl' for error_at.
6646
535536b4
JJ
66472009-07-07 Jakub Jelinek <jakub@redhat.com>
6648
6649 PR middle-end/40669
6650 * tree-tailcall.c (adjust_return_value_with_ops,
6651 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
6652 if it has complex or vector type.
6653
f062f8f2
OH
66542009-07-07 Olivier Hainque <hainque@adacore.com>
6655
d575725b
L
6656 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
6657 pthread symbols.
f062f8f2 6658
cac1b0ee
BS
66592009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
6660
6661 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
6662
c5d75364
MLI
66632009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
6664
7c8b1a77 6665 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
c5d75364
MLI
6666 * c-decl.c: Likewise.
6667 * function.c: Likewise.
6668 * varasm.c: Likewise.
6669 * tree-ssa.c: Likewise.
6670 * c-common.c: Likewise.
6671 * tree-cfg.c: Likewise.
6672 * config/spu/spu.c: Likewise.
6673 * config/ia64/ia64.c: Likewise.
6674 * config/v850/v850.c: Likewise.
6675
b932c20b
DD
66762009-07-06 DJ Delorie <dj@redhat.com>
6677
6678 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
6679 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
6680 unspecified accesses to control registers.
6681 * config/mep/intrinsics.md: Regenerate.
6682 * config/mep/intrinsics.h: Regenerate.
6683 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 6684
fab922b1
MLI
66852009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
6686
6687 * c-lex.c: Replace %H by an explicit location. Update all calls.
6688 * c-common.c: Likewise.
6689 * c-decl.c: Likewise.
6690 * c-typeck.c: Likewise.
6691 * fold-const.c: Likewise.
6692 * gimplify.c: Likewise.
6693 * stmt.c: Likewise.
6694 * tree-cfg.c: Likewise.
6695 * tree-ssa-loop-niter.c: Likewise.
6696 * tree-vrp.c: Likewise.
6697 * value-prof.c: Likewise.
6698
66350781
DN
66992009-07-06 Diego Novillo <dnovillo@google.com>
6700
6701 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
6702 if it has one. Handle cases where VAR does not have an
6703 annotation or cfun is NULL.
6704
d251bfca
DN
67052009-07-06 Diego Novillo <dnovillo@google.com>
6706
6707 * tree.c: Include debug.h.
6708 (initialize_tree_contains_struct): New.
6709 (init_ttree): Call it.
6710 (tree_node_structure_for_code): Factor out of ...
6711 (tree_node_structure): ... here.
6712 * treestruct.def (TS_PHI_NODE): Remove.
6713 (TS_GIMPLE_STATEMENT): Remove.
6714
e923c8ea
DN
67152009-07-06 Diego Novillo <dnovillo@google.com>
6716
7c8b1a77 6717 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
e923c8ea
DN
6718 (debug_tree_chain): Handle cycles.
6719
7a61cf6f
NC
67202009-07-06 Nick Clifton <nickc@redhat.com>
6721 DJ Delorie <dj@redhat.com>
6722
6723 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
6724 __FMOVD_ENABLED__ is defined.
6725 * config/sh/sh.h
6726 (TARGET_FMOVD): Provide a default definition.
6727 (MASK_FMOVD): Likewise.
6728 (TARGET_CPU_CPP_BUILTINS): Define
6729 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
6730 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7c8b1a77 6731 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
7a61cf6f
NC
6732 (split for DF load from memory into register): Also handle
6733 MEMs which consist of REG+DISP addressing.
6734 (split for DF store from register to memory): Likewise.
6735 (movsf_ie): Always use single fp_mode.
6736 * config/sh/sh.c (sh_override_options): Do not automatically
6737 enable TARGET_MOVD for the SH2A when supporting doubles - leave
6738 that to the -mfmovd command line switch.
6739 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
6740 (fldi_ok): Always allow.
6741 * config/sh/sh.opt (mfmovd): Remove this switch.
6742 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
6743
83f63251
R
67442009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
6745 Kaz Kojima <kkojima@gcc.gnu.org>
6746
6747 PR rtl-optimization/30807
6748 * postreload.c (reload_combine): For every new use of REG_SUM,
6749 record the use of BASE.
6750
172d54e0
JH
67512009-07-06 Jan Hubicka <jh@suse.cz>
6752
6753 * params.def: Revert my accidental commit at 2009-06-30.
6754
34097e36
ILT
67552009-07-04 Ian Lance Taylor <iant@google.com>
6756
6757 PR target/40636
6758 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
6759 EXPORTED_CONST.
6760 (mingw_format_attribute_overrides): Likewise.
6761
bd5b2c2d
JJ
67622009-07-04 Jakub Jelinek <jakub@redhat.com>
6763
6764 PR debug/40596
6765 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
6766 don't check cfa.reg. Instead of cfa.indirect use
6767 fde && fde->drap_reg != INVALID_REGNUM test.
6768
39ba6ab7
EB
67692009-07-04 Eric Botcazou <ebotcazou@adacore.com>
6770
6771 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
6772
54a0ac2d
VM
67732009-07-03 Vladimir Makarov <vmakarov@redhat.com>
6774
6775 PR target/40587
7c8b1a77 6776 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
3f36bac2 6777
fae1034e
RG
67782009-07-03 Richard Guenther <rguenther@suse.de>
6779
6780 PR tree-optimization/40640
6781 * tree-switch-conversion.c (build_arrays): Perform arithmetic
6782 in original type.
6783
ba8978d0
JH
67842009-07-03 Jan Hubicka <jh@suse.cz>
6785
6786 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
6787 for size, reduce amount of inlining.
6788
d73fb533
RG
67892009-07-03 Richard Guenther <rguenther@suse.de>
6790
6791 PR middle-end/34163
7c8b1a77
UB
6792 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
6793 if t +- x is known to not overflow and the conversion widens the
6794 operation.
d73fb533
RG
6795 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
6796
7351bcaa
JH
67972009-07-03 Jan Hubicka <jh@suse.cz>
6798
6799 * ipa-pure-const.c (analyze): Update loop optimizer init.
6800 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
6801 try_remove_empty_loop, remove_empty_loops): Remove.
6802 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
6803 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
6804 to mark regular loops as neccesary.
6805 (degenerate_phi_p): New function.
6806 (propagate_necessity, remove_dead_phis): Use it.
6807 (forward_edge_to_pdom): Likewise.
6808 (eliminate_unnecessary_stmts): Take care to remove uses of results of
6809 virtual PHI nodes that became unreachable.
6810 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
6811 * tree-flow.h (remove_empty_loops): Remove.
6812 * passes.c (init_optimization_passes): Remove.
6813
5071eab7
UB
68142009-07-03 Uros Bizjak <ubizjak@gmail.com>
6815
6816 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
6817 can_create_pseudo_p.
6818 (*fix_trunc<mode>_i387_1): Ditto.
6819 (*floathi<mode>2_1): Ditto.
6820 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
6821 (*fistdi2_1): Ditto.
6822 (*fist<mode>2_1): Ditto.
6823 (frndintxf2_floor): Ditto.
6824 (*fist<mode>2_floor_1): Ditto.
6825 (frndintxf2_ceil): Ditto.
6826 (*fist<mode>2_ceil_1): Ditto.
6827 (frndintxf2_trunc): Ditto.
6828 (frndintxf2_mask_pm): Ditto.
6829 (fxam<mode>2_i387_with_temp): Ditto.
6830 * config/i386/sse.md (mulv16qi3): Ditto.
6831 (*sse2_mulv4si3): Ditto.
6832 (mulv2di3): Ditto.
6833 (sse4_2_pcmpestr): Ditto.
6834 (sse4_2_pcmpistr): Ditto.
6835
1fc41282
JH
68362009-07-03 Jan Hubicka <jh@suse.cz>
6837
6838 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
6839 (mark_stmt_necessary): Set it.
6840 (mark_operand_necessary): Set it.
6841 (mark_control_dependent_edges_necessary): Set it.
6842 (mark_virtual_phi_result_for_renaming): New function.
6843 (get_live_post_dom): New function.
6844 (forward_edge_to_pdom): New function.
6845 (remove_dead_stmt): Fix handling of control dependences.
6846 (tree_dce_init): Init new bitmap.
6847 (tree_dce_done): Free it.
6848
02583d3c
RG
68492009-07-02 Richard Guenther <rguenther@suse.de>
6850
6851 PR bootstrap/40617
6852 * tree-ssa-structalias.c (new_var_info): Initialize
6853 is_restrict_var.
6854
3c1832c3
JH
68552009-07-02 Jan Hubicka <jh@suse.cz>
6856
6857 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
6858 local.
6859
92355a9c
PB
68602009-07-02 Paolo Bonzini <bonzini@gnu.org>
6861
6862 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
6863 instead of recomputing it. Adjust calls.
6864 (emit_store_flag): Adjust recursive calls.
6865
91deb937
RG
68662009-07-02 Richard Guenther <rguenther@suse.de>
6867
6868 * tree-ssa-live.c (remove_unused_locals): Do not remove
6869 heap variables.
6870 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
6871 of DECL_EXTERNAL for HEAP variables.
6872 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
6873 HEAP variables. Do not adjust RESTRICT vars.
6874 (find_what_var_points_to): Nobody cares if something
6875 points to READONLY.
6876
2011dbb0
BE
68772009-07-02 Ben Elliston <bje@au.ibm.com>
6878
6879 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
6880 pc_low and pc_high declarations to the top of the function.
6881
f2082f90
DD
68822009-07-01 DJ Delorie <dj@redhat.com>
6883
6884 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
6885 registers as fixed.
5071eab7 6886 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
f2082f90
DD
6887 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
6888 unspecified accesses to control registers.
6889 * config/mep/intrinsics.md: Regenerate.
6890 * config/mep/intrinsics.h: Regenerate.
6891 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 6892
9df748c0
AG
68932009-07-01 Anthony Green <green@moxielogic.com>
6894
6895 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
6896 instruction when possible.
6897 (moxie_expand_prologue): Ditto. Also, save an instruction and
3f36bac2 6898 some complexity by popping off of $r12 instead of $sp.
9df748c0
AG
6899 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
6900 operands.
3f36bac2 6901
997704f1
RH
69022009-07-01 Richard Henderson <rth@redhat.com>
6903
6904 PR bootstrap/40347
6905 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
6906 contained no insns, reposition note before last insn.
6907
9f2af3ce
RH
69082009-07-01 Richard Henderson <rth@redhat.com>
6909
6910 PR debug/40431
6911 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
6912 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
6913
d66a97e2
MM
69142009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
6915
6916 PR bootstrap/40558
6917 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
6918 darwin9 for printing reg addresses with %y.
6919
479b1013
AN
69202009-07-01 Adam Nemet <anemet@caviumnetworks.com>
6921
6922 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
6923 truncation from operands in binary operations.
6924
c600a155
AN
69252009-07-01 Adam Nemet <anemet@caviumnetworks.com>
6926
6927 Revert:
6928 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
6929 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
6930 subreg of op0 to the original op0.
6931
6932 * expmed.c (store_bit_field_1): Use a temporary as the destination
6933 instead of a paradoxical subreg when we need to truncate the result.
6934
a12e9a5f
DD
69352009-07-01 DJ Delorie <dj@redhat.com>
6936
5071eab7
UB
6937 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
6938 names to VLIW variants.
a12e9a5f
DD
6939 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
6940 * config/mep/intrinsics.md: Regenerate.
6941 * config/mep/intrinsics.h: Regenerate.
6942 * config/mep/mep-intrin.h: Regenerate.
6943
2a5bd62a
JJ
69442009-07-01 Jakub Jelinek <jakub@redhat.com>
6945
6946 PR debug/40462
6947 * jump.c (returnjump_p): Revert last patch.
6948 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
6949
3232e9d8
JDA
69502009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6951
4aa7f896
JDA
6952 PR target/40575
6953 * pa.md (casesi32p): Use jump table label to determine the offset
6954 of the jump table.
6955 (casesi64p): Likewise.
6956
5071eab7
UB
6957 * pa.c (forward_branch_p): Return bool type. Use instruction
6958 addresses when available. Assert that INSN has a jump label.
3232e9d8
JDA
6959 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
6960 have a jump label.
6961
14c41b9b
RG
69622009-07-01 Richard Guenther <rguenther@suse.de>
6963
6964 PR tree-optimization/19831
6965 * tree-ssa-dce.c (propagate_necessity): Calls to functions
5071eab7 6966 that only act as barriers do not make any previous stores necessary.
14c41b9b
RG
6967 * tree-ssa-structalias.c (handle_lhs_call): Delay making
6968 HEAP variables global, do not add a constraint from nonlocal.
6969 (find_func_aliases): Handle escapes through return statements.
6970 (compute_points_to_sets): Make escaped HEAP variables global.
6971
1ed20a40
PB
69722009-07-01 Paolo Bonzini <bonzini@gnu.org>
6973
6974 PR bootstrap/40597
6975 * expmed.c (emit_store_flag): Perform a conversion if necessary,
6976 after reducing a DImode cstore to SImode.
6977
ce3aea35
PB
69782009-07-01 Paolo Bonzini <bonzini@gnu.org>
6979
6980 * expr.c (expand_expr_real_1): Reinstate fallthrough to
6981 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
6982
1df34d4d
MR
69832009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
6984
6985 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
6986 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
6987 to 0.
6988 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
6989 and umod_optab if TARGET_BSD_DIVMOD.
6990 * config/vax/lib1funcs.asm: New file.
6991 * config/vax/t-linux: New file.
6992 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
6993
085e05ac
JJ
69942009-06-30 Jakub Jelinek <jakub@redhat.com>
6995
5ccde5a0
JJ
6996 PR c++/40566
6997 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
6998 to type arguments that have void type.
6999
085e05ac
JJ
7000 PR debug/40573
7001 * dwarf2out.c (gen_formal_parameter_die): Call
7002 equate_decl_number_to_die if node is different from origin.
7003
9fb374d6
AG
70042009-06-30 Anthony Green <green@moxielogic.com>
7005
7006 Clean up moxie port for --enable-build-with-cxx.
7007 * config/moxie/moxie.c (moxie_function_value): First two
7008 parameters are const_tree, not tree.
7009 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
7010 (REG_CLASS_NAMES): Ditto.
7011 (REGNO_REG_CLASS): Ditto.
7012 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
7013 (moxie_function_value): Fix constyness of arguments.
7014
f82a627c
EB
70152009-06-30 Eric Botcazou <ebotcazou@adacore.com>
7016
7017 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
7018 finalize_size_functions before further processing.
7019 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
7020 (variable_size): Call self_referential_size on size expressions
7021 that contain a PLACEHOLDER_EXPR.
7022 (size_functions): New static variable.
7023 (copy_self_referential_tree_r): New static function.
7024 (self_referential_size): Likewise.
7025 (finalize_size_functions): New global function.
7026 * tree.c: Include tree-inline.h.
7027 (push_without_duplicates): New static function.
7028 (find_placeholder_in_expr): New global function.
7029 (substitute_in_expr) <tcc_declaration>: Return the replacement object
7030 on equality.
7031 <tcc_expression>: Likewise.
7032 <tcc_vl_exp>: If the replacement object is a constant, try to inline
7033 the call in the expression.
7034 * tree.h (finalize_size_functions): Declare.
7035 (find_placeholder_in_expr): Likewise.
7036 (FIND_PLACEHOLDER_IN_EXPR): New macro.
7037 (substitute_placeholder_in_expr): Update comment.
7038 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
7039 is true.
7040 (copy_tree_body_r): Likewise.
7041 (copy_tree_body): New static function.
7042 (maybe_inline_call_in_expr): New global function.
7043 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
7044 (maybe_inline_call_in_expr): Declare.
7045 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
7046 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
7047 GIMPLE_H.
7048
67635176
RG
70492009-06-30 Richard Guenther <rguenther@suse.de>
7050
7051 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
7052 continue walking.
7053 (propagate_necessity): Do not mark reaching defs of stores
7054 as necessary.
7055
2de58650
JH
70562009-06-30 Jan Hubicka <jh@suse.cz>
7057
7058 * cfgloopanal.c (check_irred): Move into ...
7059 (mark_irreducible_loops): ... here; return true if ireducible
7060 loops was found.
7061 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
7062 (analyze_function): Try to prove loop finiteness.
7063 * cfgloop.h (mark_irreducible_loops): Update prototype.
7064 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
7065
46db44cc
BS
70662009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
7067
7068 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
7069
1825a1f3
IR
70702009-06-30 Ira Rosen <irar@il.ibm.com>
7071
7072 PR tree-optimization/40542
f100a4a8 7073 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
1825a1f3
IR
7074 types.
7075
71d4d3eb
MJ
70762009-06-30 Martin Jambor <mjambor@suse.cz>
7077
7078 PR tree-optimization/40582
7079 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
7080 than useless_type_conversion_p.
7081 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
7082 proper place.
7083
f57017cd
MJ
70842009-06-30 Martin Jambor <mjambor@suse.cz>
7085
7086 PR middle-end/40554
7087 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
7088
42bc61e0
RG
70892009-06-30 Richard Guenther <rguenther@suse.de>
7090
7091 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
7092 use ao_ref references.
7093 (walk_aliased_vdefs): Likewise.
7094 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
7095 * tree-ssa-dce.c (struct ref_data): Remove.
7096 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
7097 (mark_aliased_reaching_defs_necessary): Adjust.
7098 (mark_all_reaching_defs_necessary_1): Likewise.
7099
ef12ae45
PB
71002009-06-30 Paolo Bonzini <bonzini@gnu.org>
7101
7102 PR boostrap/40597
7103 * expmed.c (emit_cstore): New name of emit_store_flag_1.
7104 (emit_store_flag_1): Extract from emit_store_flag, adjust
7105 calls to (what now is) emit_cstore.
7106 (emit_store_flag): Call emit_store_flag_1 and also use it
7107 for what used to be recursive calls.
7108
791b59e3
WG
71092009-06-30 Wei Guozhi <carrot@google.com>
7110
7111 PR/40416
7112 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
7113 if the target bb post dominates from bb.
7114 * config/i386/i386.c (memory_address_length): Check existence of base
7115 register before using it.
7116
7a61cf6f
NC
71172009-06-30 Nick Clifton <nickc@redhat.com>
7118 DJ Delorie <dj@redhat.com>
7119
7120 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
7121 __FMOVD_ENABLED__ is defined.
7122 * config/sh/sh.h
7123 (TARGET_FMOVD): Provide a default definition.
7124 (MASK_FMOVD): Likewise.
7125 (TARGET_CPU_CPP_BUILTINS): Define
7126 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
7127 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7128 two fmov instructions depending upon whether TARGET_FMOVD is
7129 enabled.
7130 (split for DF load from memory into register): Also handle
7131 MEMs which consist of REG+DISP addressing.
7132 (split for DF store from register to memory): Likewise.
7133 * config/sh/sh.opt (mfmovd): Remove this switch.
7134 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
7135 * config/sh/sh.c (sh_override_options): Do not automatically
7136 enable TARGET_MOVD for the SH2A when supporting doubles - leave
7137 that to the -mfmovd command line switch.
7138
7139 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
7140 the SH4 and SH4A.
7141 (fldi_ok): Always allow.
7142 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
7143
5a99fe3e
DD
71442009-06-29 DJ Delorie <dj@redhat.com>
7145
7146 * doc/install.texi (mep-x-elf): Correct chip's full name.
7147
ddaa3488
L
71482009-06-29 H.J. Lu <hongjiu.lu@intel.com>
7149
7150 * doc/extend.texi: Fix typo.
7151
bbf531f0
TT
71522009-06-29 Tom Tromey <tromey@redhat.com>
7153
7154 * dwarf2.h: Remove.
7155 * Makefile.in (DWARF2_H): New variable.
7156 (except.o): Use it.
7157 (dwarf2out.o): Likewise.
7158 (dwarf2asm.o): Likewise.
7159 * config/i386/t-i386: Use DWARF2_H.
7160 * except.c: Include elf/dwarf2.h.
7161 * unwind-dw2.c: Include elf/dwarf2.h.
7162 * dwarf2out.c: Include elf/dwarf2.h.
7163 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
7164 <dtprel>: New field.
7165 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
7166 (size_of_loc_descr): Likewise.
7167 (output_loc_operands_raw): Likewise.
7168 (output_loc_operands): Handle new dtprel field.
7169 (loc_checksum): Update.
7170 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
7171 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
7172 * unwind-dw2-fde.c: Include elf/dwarf2.h.
7173 * dwarf2asm.c: Include elf/dwarf2.h.
7174 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
7175 * config/mmix/mmix.c: Include elf/dwarf2.h.
7176 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
7177 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
7178 * config/sh/sh.c: Include elf/dwarf2.h.
7179 * config/i386/i386.c: Include elf/dwarf2.h.
7180
e2491744
DD
71812009-06-29 DJ Delorie <dj@redhat.com>
7182
bae38135
DD
7183 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
7184
e2491744
DD
7185 * doc/extend.texi: Add MeP attributes and pragmas.
7186 * doc/invoke.text: Add MeP Options.
7187 * doc/contrib.texi: Add MeP contribution.
7188 * doc/md.texi: Add MeP constraints.
7189 * doc/install.texi: Add MeP target.
7190
b52b1749
AS
71912009-06-30 Anatoly Sokolov <aesok@post.ru>
7192
7193 * target.h (struct gcc_target): Add frame_pointer_required field.
7194 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
7195 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
7196 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
7197 hook.
7198 * reload1.c (update_eliminables): (Ditto.).
7199 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
7200 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
7201 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
7202
7203 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
7204
7205 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
7206 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
7207 (arm_frame_pointer_required): New function.
7208
7209 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
7210 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7211 (avr_frame_pointer_required_p): Declare as static.
7212 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
7213
7214 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
7215 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
7216 (bfin_frame_pointer_required): Make as static, change return type
7217 to bool.
7218 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
7219
7220 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
7221 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7222 (cris_frame_pointer_required): New function.
f100a4a8 7223
b52b1749
AS
7224 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
7225
7226 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
7227 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7228 (fr30_frame_pointer_required): New function.
f100a4a8 7229
b52b1749
AS
7230 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
7231 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
7232 (frv_frame_pointer_required): Make as static, change return type
7233 to bool.
7234 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
7235
7236 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
7237 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7238 (ix86_frame_pointer_required): Make as static, change return type to
7239 bool.
7240 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
7241
7242 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
7243 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7244
7245 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
7246
7247 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
f100a4a8 7248
b52b1749
AS
7249 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
7250
7251 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
7252 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7253 (mips_frame_pointer_required): Make as static.
7254 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
f100a4a8 7255
b52b1749
AS
7256 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
7257 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7258 (mmix_frame_pointer_required): Mew function.
7259
7260 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
7261 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7262
7263 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
7264
7265 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
7266
7267 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
7268
7269 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
7270 (CAN_ELIMINATE): Redefine.
7271 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
7272 (sparc_frame_pointer_required): New function.
7273 (sparc_can_eliminate): New function.
7274 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
7275
7276 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
7277 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
7278
7279 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
7280 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
7281 (xtensa_frame_pointer_required): Make as static, change return type
7282 to bool.
7283 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
7284 Remove.
7285
5071eab7 72862009-06-29 Olatunji Ruwase <tjruwase@google.com>
78bf7bd0
OR
7287
7288 * doc/plugins.texi: Document PLUGIN_START_UNIT.
7289 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
7290 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
7291 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
7292 (register_callback): Handle PLUGIN_START_UNIT.
7293 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
7294
96da8066
EB
72952009-06-29 Eric Botcazou <ebotcazou@adacore.com>
7296
7297 * tree.c (process_call_operands): Propagate TREE_READONLY from the
7298 operands.
7299 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
7300 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
7301
356ecb15
DJ
73022009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
7303
7304 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
7305 move cost.
7306
897eef7b
UB
73072009-06-29 Uros Bizjak <ubizjak@gmail.com>
7308
7309 * doc/extend.texi (Additional Floating Types): __float128 is also
7310 supported on i386 targets.
7311
74d27244
RG
73122009-06-29 Richard Guenther <rguenther@suse.de>
7313
7314 PR middle-end/14187
7315 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
7316 flag.
7317 (pt_solutions_same_restrict_base): Declare.
7318 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
7319 flag.
7320 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
7321 (make_constraint_from, make_copy_constraint): Move earlier.
7322 (make_constraint_from_heapvar): New function.
7323 (make_constraint_from_restrict): Likewise.
7324 (handle_lhs_call): Use it.
7325 (find_func_aliases): Use it to track conversions to restrict
7326 qualified pointers.
7327 (struct fieldoff): Add only_restrict_pointers flag.
7328 (push_fields_onto_fieldstack): Initialize it.
7329 (create_variable_info_for): Track global restrict qualified pointers.
7330 (intra_create_variable_infos): Use make_constraint_from_heapvar.
7331 Track restrict qualified pointer arguments.
7332 (set_uids_in_ptset): Use varinfo is_global_var flag.
7333 (find_what_var_points_to): Set the vars_contains_restrict flag.
7334 Always create the points-to solution for sets including restrict tags.
7335 (pt_solutions_same_restrict_base): New function.
7336 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
7337 qualified pointers use pt_solutions_same_restrict_base as
7338 additional source for disambiguation.
7339
5b21f0f3
RG
73402009-06-29 Richard Guenther <rguenther@suse.de>
7341
7342 PR middle-end/38212
7343 * alias.c (find_base_decl): Remove.
7344 (get_deref_alias_set_1): Remove restrict handling.
7345 * c-common.c (c_apply_type_quals_to_decl): Do not set
7346 DECL_POINTER_ALIAS_SET.
7347 * gimplify.c (find_single_pointer_decl_1): Remove.
7348 (find_single_pointer_decl): Likewise.
7349 (internal_get_tmp_var): Remove restrict handling.
7350 (gimple_regimplify_operands): Likewise.
7351 * omp-low.c (expand_omp_atomic_pipeline): Do not set
7352 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
7353 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
7354 * tree.c (restrict_base_for_decl): Remove.
7355 (init_ttree): Do not allocate it.
7356 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
7357 LABEL_DECL_UID for label decls.
7358 (copy_node_stat): Do not copy restrict information.
7359 (decl_restrict_base_lookup): Remove.
7360 (decl_restrict_base_insert): Likewise.
7361 (print_restrict_base_statistics): Likewise.
7362 (dump_tree_statistics): Do not call print_restrict_base_statistics.
7363 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
7364 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
7365 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
7366 (LABEL_DECL_UID): Adjust.
7367 (DECL_BASED_ON_RESTRICT_P): Remove.
7368 (DECL_GET_RESTRICT_BASE): Likewise.
7369 (SET_DECL_RESTRICT_BASE): Likewise.
7370 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
7371
7372 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
7373 instead of DECL_POINTER_ALIAS_SET.
7374 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
7375 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
7376 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
7377
09a782eb
RG
73782009-06-29 Richard Guenther <rguenther@suse.de>
7379
7380 PR tree-optimization/40579
7381 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
7382 the IL to simplify has constants that overflowed.
7383
1e9ae5ab
UB
73842009-06-28 Uros Bizjak <ubizjak@gmail.com>
7385
7386 PR tree-optimization/40550
7387 * tree-vect-generic.c (expand_vector_operations_1): Compute in
7388 vector_compute_type only when the size of vector_compute_type is
7389 less than the size of type.
7390
c703e618
EB
73912009-06-28 Eric Botcazou <ebotcazou@adacore.com>
7392
7393 * fold-const.c (contains_label_1): Fix comments.
7394 (contains_label_p): Do not walk trees multiple time.
7395
0948ccb2
PB
73962009-06-28 Paolo Bonzini <bonzini@gnu.org>
7397
897eef7b
UB
7398 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
7399 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
7400 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
7401 ix86_fp_comparison_operator.
7402 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
7403 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
7404 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
7405 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
7406 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
7407 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
7408 (related splits): Change predicate to ix86_fp_comparison_operator.
7409 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
7410 instead of ix86_fp_comparison_codes.
7411 (ix86_trivial_fp_comparison_operator,
7412 ix86_fp_comparison_operator): New.
7413 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
7414 (ix86_expand_compare): Eliminate last two parameters.
7415 (ix86_fp_jump_nontrivial_p): Kill.
7416 * config/i386/i386.c (put_condition_code): Eliminate call to
7417 ix86_fp_comparison_codes and subsequent assertion.
7418 (ix86_fp_comparison_codes): Eliminate.
7419 (ix86_fp_swap_condition): New.
7420 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
7421 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
7422 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
7423 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
7424 and ix86_fp_swap_condition.
7425 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
7426 Use ix86_fp_comparison_strategy.
7427 (ix86_expand_compare): Likewise. Eliminate last two arguments.
7428 (ix86_fp_jump_nontrivial_p): Eliminate.
7429 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
7430 call to ix86_expand_compare.
7431 (ix86_split_fp_branch, ix86_expand_setcc,
7432 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
7433 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
0948ccb2 7434
accbd151
PB
74352009-06-28 Paolo Bonzini <bonzini@gnu.org>
7436
897eef7b
UB
7437 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
7438 related to jump_clobbers.
7439 * config/arm/arm.md (conds): Remove jump_clob case.
7440 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
7441 splits): Change comparison_operator to arm_comparison_operator.
7442 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
7443 Eliminate.
accbd151 7444
45475a3f
PB
74452009-06-28 Paolo Bonzini <bonzini@gnu.org>
7446
897eef7b
UB
7447 * dojump.c (do_compare_rtx_and_jump): Try swapping the
7448 condition for floating point modes.
7449 * expmed.c (emit_store_flag_1): Move here a bigger part
7450 of emit_store_flag.
7451 (emit_store_flag): Try swapping the condition for floating point
7452 modes.
7453 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
45475a3f 7454
495499da
PB
74552009-06-28 Paolo Bonzini <bonzini@gnu.org>
7456
897eef7b
UB
7457 * expr.c (expand_expr_real_1): Just use do_store_flag.
7458 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
7459 emit_store_flag_force.
7460 * expmed.c (emit_store_flag_force): Copy here trick
7461 previously in expand_expr_real_1. Try reversing the comparison.
7462 (emit_store_flag_1): Work if target is NULL.
7463 (emit_store_flag): Work if target is NULL, using the result mode
7464 from the comparison. Use split_comparison, restructure final part
7465 to simplify conditionals.
495499da 7466
337e5d98
PB
74672009-06-28 Paolo Bonzini <bonzini@gnu.org>
7468
897eef7b
UB
7469 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
7470 * dojump.c (do_jump): Change handling of floating-point
7471 ops to use just do_compare_and_jump.
7472 (split_comparison): New.
7473 (do_compare_rtx_and_jump): Add here logic coming previously
7474 in do_jump, using split_comparison.
337e5d98 7475
2ca57608
L
74762009-06-27 H.J. Lu <hongjiu.lu@intel.com>
7477
7478 PR target/40489
7479 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
7480
8122ccf1
PB
74812009-06-27 Paolo Bonzini <bonzini@gnu.org>
7482
7483 * tree-ssa-alias.c: Fix unintentional commit.
7484
b9cafe60
PB
74852009-06-27 Paolo Bonzini <bonzini@gnu.org>
7486
7487 * passes.c (execute_one_pass): Fix unintentional commit.
7488
4c78c26b
PB
74892009-06-27 Paolo Bonzini <bonzini@gnu.org>
7490
2ca57608
L
7491 * df-problems.c (df_set_seen, df_unset_seen): Delete.
7492 (df_rd_local_compute, df_md_local_compute): Inline them.
4c78c26b 7493
2ca57608
L
7494 (df_md_scratch): New.
7495 (df_md_alloc, df_md_free): Allocate/free it.
7496 (df_md_local_compute): Only include live registers in init.
7497 (df_md_transfer_function): Prune the in-set computed by
7498 the confluence function, and the gen-set too.
4c78c26b
PB
7499
75002009-06-27 Paolo Bonzini <bonzini@gnu.org>
c6741572
PB
7501
7502 PR rtl-optimization/26854
2ca57608
L
7503 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
7504 * df-problems.c (df_rd_add_problem): Fix comment.
7505 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
7506 df_md_simulate_artificial_defs_at_top,
7507 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
7508 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
7509 df_md_transfer_function, df_md_init, df_md_confluence_0,
7510 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
7511 problem_MD, df_md_add_problem): New.
7512 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
7513 df_md_get_bb_info): New.
1e9ae5ab 7514 (DF_LAST_PROBLEM_PLUS1): Adjust.
2ca57608
L
7515
7516 * Makefile.in (fwprop.o): Include domwalk.h.
7517 * fwprop.c: Include domwalk.h.
7518 (reg_defs, reg_defs_stack): New.
7519 (bitmap_only_bit_between): Remove.
7520 (process_defs): New.
7521 (process_uses): Use reg_defs and local_md instead of
7522 bitmap_only_bit_between and local_rd.
7523 (single_def_use_enter_block): New, from build_single_def_use_links.
7524 (single_def_use_leave_block): New.
7525 (build_single_def_use_links): Remove code moved to
7526 single_def_use_enter_block, invoke domwalk.
7527 (use_killed_between): Adjust comment.
c6741572 7528
7ff23740
PB
75292009-06-27 Paolo Bonzini <bonzini@gnu.org>
7530
7531 * bitmap.h (bitmap_ior_and_into): New.
7532 * bitmap.c (bitmap_ior_and_into): New.
7533
ccf5c864
PB
75342009-06-27 Paolo Bonzini <bonzini@gnu.org>
7535
2ca57608
L
7536 * domwalk.h (struct dom_walk_data): Remove all callbacks except
7537 before_dom_children_before_stmts and after_dom_children_after_stmts.
f100a4a8 7538 Rename the two remaining callbacks to just before_dom_children and
2ca57608
L
7539 after_dom_children. Remove other GIMPLE statement walking bits.
7540 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
7541 * graphite.c: Do not include domwalk.h.
7542 * tree-into-ssa.c (interesting_blocks): New global.
7543 (struct mark_def_sites_global_data): Remove it and names_to_rename.
7544 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
7545 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
7546 now that they're not domwalk callbacks.
7547 (rewrite_initialize_block): Rename to...
7548 (rewrite_enter_block): ... this, place after called functions. Test
7549 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
7550 (rewrite_finalize_block): Rename to...
7551 (rewrite_leave_block): ... this, place after called functions.
7552 (rewrite_update_init_block): Rename to...
7553 (rewrite_update_enter_block): ... this, place after called functions.
f100a4a8 7554 Test interesting_blocks, call rewrite_update_stmt and
2ca57608
L
7555 rewrite_update_phi_arguments.
7556 (rewrite_update_fini_block): Rename to...
7557 (rewrite_leave_block): ... this, place after called functions.
7558 (rewrite_blocks): Remove last argument, simplify initialization of
7559 walk_data.
7560 (mark_def_sites_initialize_block): Rename to...
7561 (mark_def_sites_block): ... this, call mark_def_sites.
7562 (mark_def_sites_blocks): Remove argument, simplify initialization of
7563 walk_data.
7564 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
7565 (update_ssa): Likewise.
7566 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
7567 callback.
7568 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
7569 (dom_opt_initialize_block): Rename to...
7570 (dom_opt_enter_block): ... this, place after called functions. Walk
7571 statements here, inline propagate_to_outgoing_edges.
7572 (dom_opt_finalize_block): Rename to...
7573 (dom_opt_leave_block): ... this, place after called functions.
7574 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
7575 domwalk callback.
7576 (dse_enter_block, dse_record_phi): New.
7577 (dse_record_phis): Delete.
7578 (dse_finalize_block): Rename to...
7579 (dse_leave_block): ... this.
7580 (tree_ssa_dse): Simplify initialization of walk_data.
7581 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
7582 Adjust initialization of walk_data.
7583 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
7584 * tree-ssa-loop-phiopt.c (get_non_trapping):
7585 Adjust initialization of walk_data.
7586 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
7587 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
7588 it's not a domwalk callback.
7589 (uncprop_initialize_block): Rename to...
7590 (dse_enter_block): ... this, call uncprop_into_successor_phis.
7591 (dse_finalize_block): Rename to...
7592 (dse_leave_block): ... this.
7593 (tree_ssa_uncprop): Simplify initialization of walk_data.
7594 * Makefile.in: Adjust dependencies.
ccf5c864 7595
75d28030
RE
75962009-06-27 Richard Earnshaw <rearnsha@arm.com>
7597
7598 * arm.md (casesi): Fix test for Thumb1.
7599 (thumb1_casesi_internal_pic): Likewise.
7600 (thumb1_casesi_dispatch): Likewise.
7601
9833720d
DG
76022009-06-26 Daniel Gutson <dgutson@codesourcery.com>
7603
7604 * config/arm/arm-cores.def: Added core cortex-m0.
7605 * config/arm/arm-tune.md: Regenerated.
7606 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
7607
bb7681bf
DD
76082009-06-26 DJ Delorie <dj@redhat.com>
7609
7610 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
7611
7612 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
7613 the scheduler doesn't tag jump insns.
7614
a35120a3
L
76152009-06-26 H.J. Lu <hongjiu.lu@intel.com>
7616
7617 * c-decl.c (merge_decls): Re-indent.
7618
4b6e55df
JJ
76192009-06-26 Janis Johnson <janis187@us.ibm.com>
7620
7621 PR c/39902
7622 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
7623 Special-case decimal float constants.
7624
27dbd3ac
RH
76252009-06-26 Richard Henderson <rth@redhat.com>
7626
7627 * function.h (struct function): Add cannot_be_copied_reason,
7628 and cannot_be_copied_set.
7629 * tree-inline.c (has_label_address_in_static_1): Rename from
7630 inline_forbidden_p_2; don't set inline_forbidden_reason here.
7631 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
7632 don't set inline_forbidden_reason.
7633 (copy_forbidden): New function, split out of inline_forbidden_p.
7634 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
7635 (inline_forbidden_p): Use copy_forbidden.
7636 (tree_versionable_function_p): Likewise.
7637 (inlinable_function_p): Merge into tree_inlinable_function_p.
7638 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
7639 * ipa-cp.c (ipcp_versionable_function_p): New function.
7640 (ipcp_cloning_candidate_p): Use it.
7641 (ipcp_node_modifiable_p): Likewise.
7642
efb303b1
OR
76432009-06-26 Olatunji Ruwase <tjruwase@google.com>
7644
7645 * builtins.c (expand_builtin_alloca): Handle builtin alloca
7646 that is marked not to be inlined. Remove flag_mudflap use.
7647 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
7648 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
7649
947e21c1
SE
76502009-06-26 Steve Ellcey <sje@cup.hp.com>
7651
7652 PR bootstrap/40338
7653 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
7654 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
7655
bae4cf87
KT
76562009-06-26 Kai Tietz <kai.tietz@onevision.com>
7657
7658 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
7659 shared libgcc.
7660 (__mingwthr_remove_key_dtor): Likewise.
7661
46aaa417
RG
76622009-06-26 Richard Guenther <rguenther@suse.de>
7663
1e9ae5ab 7664 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
46aaa417 7665
b3c54c8f
SB
76662009-06-26 Steven Bosscher <steven@gcc.gnu.org>
7667
7668 PR middle-end/40525
7669 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
7670 try the non-cond_exec path also.
7671
f5e66865
JDA
76722009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7673
7674 PR target/40468
7675 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
7676 (output_cbranch): Use new functions.
7677 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
7678 Likewise.
7679
8beb65e3
MM
76802009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
7681 Pat Haugen <pthaugen@us.ibm.com>
7682 Revital Eres <ERES@il.ibm.com>
7683
d66a97e2
MM
7684 * config/rs6000/rs6000.c (print_operand): Correct lossage message
7685 for %c error. Add %x support to print VSX registers as a unified
7686 register set, instead of separate float and altivec registers.
7687 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
7688 %y case, and add support for VSX pre-modify addresses.
7689 (output_toc): Add assert for CONST containing an integer constant
7690 in the PLUS case.
7691 (rs6000_adjust_cost): Add POWER7 support.
7692 (insn_must_be_first_in_group): Ditto.
7693 (insn_must_be_last_in_group): Ditto.
7694 (rs6000_emit_popcount): Ditto.
7695 (rs6000_vector_mode_supported_p): Ditto.
7696
8beb65e3
MM
7697 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
7698 Change some of the functions called by macros to being called
7699 through a pointer, so debug functions can be inserted if
f100a4a8 7700 -mdebug=addr or -mdebug=cost.
8beb65e3
MM
7701 (rs6000_preferred_reload_class_ptr): Ditto.
7702 (rs6000_secondary_reload_class_ptr): Ditto.
7703 (rs6000_secondary_memory_needed_ptr): Ditto.
7704 (rs6000_cannot_change_mode_class_ptr): Ditto.
7705 (rs6000_secondary_reload_inner): Ditto.
7706 (rs6000_legitimize_reload_address): Ditto.
7707 (rs6000_legitimize_reload_address_ptr): Ditto.
7708 (rs6000_mode_dependent_address): Ditto.
7709 (rs6000_mode_dependent_address_ptr): Ditto.
7710
7711 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
7712 function to return true if the mode allows reg + integer
7713 addresses.
7714 (virtual_stack_registers_memory_p): New function to return true if
7715 the address refers to a virtual stack register.
7716 (rs6000_legitimate_offset_address_p): Move code to say whether a
7717 mode supports reg+int addressing to reg_offset_addressing_ok_p and
7718 call it.
7719 (rs6000_legitimate_address_p): Add checks for modes that only can
7720 do reg+reg addressing. Start adding VSX support.
7721 (rs6000_legitimize_reload_address): Ditto.
7722 (rs6000_legitimize_address): Ditto.
7723 (rs6000_debug_legitimate_address_p): New debug functions for
7724 -mdebug=addr and -mdebug=cost.
7725 (rs6000_debug_rtx_costs): Ditto.
7726 (rs6000_debug_address_costs): Ditto.
7727 (rs6000_debug_adjust_cost): Ditto.
7728 (rs6000_debug_legitimize_address): Ditto.
7729 (rs6000_legitimize_reload_address_ptr): Point to call normal
7730 function or debug function. Make functions called via pointer
7731 static.
7732 (rs6000_mode_dependent_address_ptr): Ditto.
7733 (rs6000_secondary_reload_class_ptr): Ditto.
7734 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
7735 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
7736 into a friendlier error.
7737 (rs6000_init_builtins): Add initial VSX support.
7738 (rs6000_adjust_cost): Fix some spacing issues.
7739
7740 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
7741 (REG_CLASS_NAMES): Ditto.
7742 (REG_CLASS_CONTENTS): Ditto.
7743 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
7744 pointer, to add -mdebug=addr support.
7745 (CANNOT_CHANGE_MODE_CLASS): Ditto.
7746 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
7747 -mdebug=addr support.
7748 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
7749 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
7750 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
7751
7752 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
7753 16-bit values.
7754 (bswapsi*): Set attribute types for load/store. Add combiner
7755 patterns to eliminate zero extend on 64-bit.
7756 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
7757 stdbrx if the hardware supports those instructions.
7758
96be7a11
ILT
77592009-06-25 Ian Lance Taylor <iant@google.com>
7760
7761 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
7762 (Link Options): Document -static-libstdc++.
7763
777a3a6a
AP
77642009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
7765
7766 PR target/38731
7767 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
7768 DATA_ALIGNMENT instead.
7769
1cb367ae
RG
77702009-06-25 Richard Guenther <rguenther@suse.de>
7771
7772 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
7773 indirect references against the callused/escaped solutions.
7774 (call_may_clobber_ref_p_1): Likewise.
7775
fac52fdd
MJ
77762009-06-25 Martin Jambor <mjambor@suse.cz>
7777
7778 PR tree-optimization/40493
7779 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
7780 (enum unscalarized_data_handling): New type.
7781 (handle_unscalarized_data_in_subtree): Return what has been done.
7782 (load_assign_lhs_subreplacements): Handle left flushes differently.
7783 (sra_modify_assign): Use unscalarized_data_handling, simplified
7784 condition determining whether to remove the statement.
7785
3cb71167 77862009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
c8aca64f
EB
7787
7788 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
7789 excerpt - @ should be doubled for texinfo.
3cb71167 7790
5a82ecd9
ILT
77912009-06-24 Ian Lance Taylor <iant@google.com>
7792
7793 * config/arc/arc.c: Include "df.h".
7794 (arc_attribute_table): Make static. Move higher in file.
7795 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
7796 (output_shift): Initialize n later to avoid warning.
7797 * config/arm/arm.c (arm_attribute_table): Make static. Move
7798 higher in file.
7799 * config/avr/avr.c (avr_attribute_table): Make static. Move
7800 higher in file.
7801 (reg_class_tab): Change array type from int to enum reg_class.
7802 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
7803 LABEL_REF.
7804 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
7805 (lshrhi3_out): Likewise.
7806 (class_likely_spilled_p): Change return type to bool.
7807 (avr_rtx_costs): Use local code variable with enum type.
7808 * config/avr/avr.md (movmemhi): Use add_reg_note.
7809 (andhi3, andsi3): Don't use AS2 with "and".
7810 (iorhi3, iorsi3): Don't use AS2 with "or".
1e9ae5ab 7811 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
5a82ecd9
ILT
7812 * config/crx/crx.c: Include "df.h".
7813 (crx_attribute_table): Make static.
7814 * config/m32r/m32r.c: Include "df.h".
7815 (m32r_attribute_table): Make static. Move higher in file.
7816 (pop): Use add_reg_note.
7817 (block_move_call): Change 0 to LCT_NORMAL in function call.
7818 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
7819 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
7820 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
7821 declare, not just when TREE_CODE is defined.
7822 * config/m68hc11/m68hc11.c: Include "expr.h".
7823 (m68hc11_attribute_table): Make static. Move higher in file.
7824 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
7825 function call.
7826 (m68hc11_register_indirect_p): Likewise.
7827 (m68hc11_function_arg_padding): Change return type to enum
7828 direction.
7829 (emit_move_after_reload): Use add_reg_note.
7830 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
7831 (m68hc11_split_logical): Likewise.
7832 (m68hc11_rtx_costs): Add local code_and outer_code variables with
7833 enum type.
7834 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
7835 to VOIDmode in function call.
7836 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
7837 tree is defined.
7838 (m68hc11_split_logical): Update declaration.
7839 (m68hc11_function_arg_padding): Update declaration.
7840 * config/mcore/mcore.c (regno_reg_class): Change form array of int
7841 to array of enum reg_class.
7842 (mcore_attribute_table): Make static. Move higher in file.
7843 (mcore_rtx_costs): Add cast to enum type.
7844 * config/mcore/mcore.h (regno_reg_class): Update declaration.
7845 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
7846 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
7847 in file.
7848 * config/sh/predicates.md (trapping_target_operand): Rename and to
7849 and_expr.
7850 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
7851 higher in file.
7852 * config/spu/spu.c (spu_attribute_table): Make static. Move
7853 higher in file.
7854 * config/v850/v850.c (v850_attribute_table): Make static. Move
7855 higher in file.
7856 (v850_rtx_costs): Use local code with enum type.
7857 (expand_epilogue): Add cast.
7858 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
7859
b4589acc
TY
78602009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
7861
7862 PR target/40515
7863 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
7864 -m2a-single-only and -m2a-nofpu.
f100a4a8 7865 * config/sh/sh.opt: Document m2a generates FPU code.
b4589acc 7866
3be639f7
AS
78672009-06-24 Anatoly Sokolov <aesok@post.ru>
7868
7869 * defaults.h (CAN_ELIMINATE): Provide default.
7870 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
7871 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
7872 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
7873 * config/spu/spu.h (CAN_ELIMINATE): Delete.
7874 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
7875 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
7876 * config/cris/cris.h (CAN_ELIMINATE): Delete.
7877 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
7878 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
7879 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
7880
b6402fc3
DD
78812009-06-24 DJ Delorie <dj@redhat.com>
7882
7883 * mep-ext-cop.cpu: Fix copyright notice.
7884 * mep-default: Fix copyright notice.
7885 * mep-core: Fix copyright notice.
7886 * mep: Fix copyright notice.
7887 * mep-ivc2: Fix copyright notice.
7888 * mep-c5: Fix copyright notice.
7889
ead1eb1d
DC
78902009-06-24 Denis Chertykov <chertykov@gmail.com>
7891
f100a4a8 7892 * doc/contrib.texi (Contributors):
ead1eb1d 7893
fb6234e0 78942009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
f100a4a8 7895
fb6234e0
AK
7896 PR middle-end/40501
7897 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
7898 src and dst operands if necessary.
7899
7acf4da6
DD
79002009-06-23 DJ Delorie <dj@redhat.com>
7901
7902 Add MeP port.
7903 * config.gcc: Add mep support.
7904 * recog.c: Resurrect validate_replace_rtx_subexp().
7905 * recog.h: Likewise.
7906 * config/mep/: Add new port:
7907 * config/mep/constraints.md: New file.
7908 * config/mep/default.h: New file.
7909 * config/mep/intrinsics.h: New file.
7910 * config/mep/intrinsics.md: New file.
7911 * config/mep/ivc2-template.h: New file.
7912 * config/mep/mep-c5.cpu: New file.
7913 * config/mep/mep-core.cpu: New file.
7914 * config/mep/mep-default.cpu: New file.
7915 * config/mep/mep-ext-cop.cpu: New file.
7916 * config/mep/mep-intrin.h: New file.
7917 * config/mep/mep-ivc2.cpu: New file.
7918 * config/mep/mep-lib1.asm: New file.
7919 * config/mep/mep-lib2.c: New file.
7920 * config/mep/mep-pragma.c: New file.
7921 * config/mep/mep-protos.h: New file.
7922 * config/mep/mep-tramp.c: New file.
7923 * config/mep/mep.c: New file.
7924 * config/mep/mep.cpu: New file.
7925 * config/mep/mep.h: New file.
7926 * config/mep/mep.md: New file.
7927 * config/mep/mep.opt: New file.
7928 * config/mep/predicates.md: New file.
7929 * config/mep/t-mep: New file.
7930
00020c16
ILT
79312009-06-23 Ian Lance Taylor <iant@google.com>
7932
7933 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
7934 from loose_warn into c_loose_warn and from strict_warn into
7935 c_strict_warn. Set and substitute warn_cxxflags. Check for
7936 --enable-build-with-cxx. Set and substitute
7937 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
7938 * Makefile.in (CXXFLAGS): New variable.
7939 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
7940 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
7941 the default is the same as $(STRICT_WARN).
7942 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
7943 (CXX): New variable.
7944 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
7945 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
7946 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
7947 (HOST_LIBS): New variable.
7948 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
7949 (ALL_CXXFLAGS): New variable.
7950 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
7951 * doc/install.texi (Configuration): Document
7952 --enable-build-with-cxx, --with-stage1-ldflags,
7953 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
7954 * configure: Rebuild.
7955
2d8b752f 79562009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9df5bfe4 7957
2d8b752f
EB
7958 * config/arm/arm.c (arm_override_options): Fix braces and formatting
7959 from previous commit.
9df5bfe4 7960
73267076
ILT
79612009-06-23 Ian Lance Taylor <iant@google.com>
7962
7963 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
7964
9a476c9c
ILT
79652009-06-23 Ian Lance Taylor <iant@google.com>
7966
7967 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
7968 with ATTRIBUTE_UNUSED.
7969
cacf1ca8
MM
79702009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7971 Pat Haugen <pthaugen@us.ibm.com>
2d8b752f 7972 Revital Eres <eres@il.ibm.com>
cacf1ca8
MM
7973
7974 * config.in (HAVE_AS_POPCNTD): Add default definition.
7975 (HAVE_AS_LWSYNC): Ditto.
7976
7977 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
7978 release number.
7979 (gcc_cv_as_powerpc_cmpb): Ditto.
7980 (gcc_cv_as_powerpc_dfp): Ditto.
7981 (gcc_cv_as_powerpc_vsx): Ditto.
7982 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
7983 supporting the popcntd/lwsync instructions.
7984 (gcc_cv_as_powerpc_lwsync): Ditto.
7985 * configure: Regenerate.
7986
7987 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
7988 -mcpu=native and -mcpu=power7.
7989 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
7990
7991 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
7992 a variable instead of a mask to reduce the number of mask bits.
7993 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
7994 (-mbit-word): Ditto.
7995 (-mregnames): Ditto.
7996 * config/rs6000/rs6000.opt (-mupdate): Ditto.
7997 (-mfused-madd): Ditto.
7998
7999 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
8000 2.06 instructions.
8001 (-mvsx): New switch for VSX instructions.
8002 (-misel): Move from a variable to a mask to allow it to be set by
8003 -mcpu=.
8004
8005 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
8006 function declaration to an array declaration.
8007 (rs6000_hard_regno_nregs): New external array declaration.
8008
8009 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
8010 files included by rs6000.md.
8011
8012 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8013 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
8014
8015 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
8016 a target mask.
8017 (rs6000_debug_reg): New -mdebug= variables.
8018 (rs6000_debug_addr): Ditto.
8019 (rs6000_debug_cost): Ditto.
8020 (rs6000_pmode): New variable to hold Pmode.
8021 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
8022 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
8023 calculated at compiler start.
8024 (rs6000_hard_regno_nregs): Change function to an array which holds
8025 HARD_REGNO_NREGS calculated at compiler start.
8026 (rs6000_explicit_options): Delete isel field.
8027 (rs6000_vector_unit): New array to hold which vector unit
8028 supports arithmetic options for a given type.
8029 (rs6000_vector_mem): New array to hold which vector unit supports
8030 memory reference operations for a given type.
8031 (rs6000_vector_align): New array to given the alignment of each
8032 vector type.
8033 (power7_cost): New basic costs for power7.
8034 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
8035 (rs6000_hard_regno_nregs_internal): New function, moved from
8036 HARD_REGNO_NREGS, to calculate the number of registers each hard
8037 register takes for each type.
8038 (rs6000_debug_reg_print): New function for -mdebug=reg support.
1e9ae5ab 8039 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
cacf1ca8
MM
8040 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
8041 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
8042 unit information here so it is calculated once at compiler startup
8043 time.
8044 (rs6000_override_options): Make -misel a target mask. Add more
8045 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
8046 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
8047 -mdebug=cost.
8048 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
8049 (rs6000_handle_option): Move -misel from variable to target mask.
8050 (rs6000_builtin_mask_for_load): Add VSX support.
8051 (rs6000_conditional_register_usage): Ditto.
8052 (USE_ALTIVEC_FOR_ARG_P): Ditto.
8053 (function_arg_boundary): Ditto.
8054 (rs6000_expand_builtin): Ditto.
8055 (def_builtin): Make abort message a little friendlier.
8056 (rs6000_emit_int_cmove): Add support for 64-bit isel.
8057
8058 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
8059 assembler support the popcntd instruction instead of a vsx
8060 instruction to enable power7 support.
8061 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
8062 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
8063 option to the assembler if -mcpu=native.
8064 (ASM_CPU_NATIVE_SPEC): Ditto.
8065 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
8066 ISA 2.06 features.
8067 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
8068 the lwsync instruction.
8069 (enum processor_type): Add PROCESSOR_POWER7.
8070 (rs6000_debug_reg): New -mdebug= options.
8071 (rs6000_debug_addr): Ditto.
8072 (rs6000_debug_cost): Ditto.
8073 (rs6000_isel): Delete.
8074 (enum rs6000_vector): New enum to say what vector unit we have.
8075 (VECTOR_UNIT_*): New macros to say which vector unit has
8076 arithmetic operations for a given type.
8077 (VECTOR_MEM_*): New macros to say which vector unit has memory
8078 operations for a given type.
8079 (TARGET_LDBRX): Whether the machine supports the ldbrx
8080 instruction.
8081 (TARGET_ISEL): Delete, -misel moved to be a mask.
8082 (TARGET_ISEL64): New macro for 64-bit isel support.
8083 (UNITS_PER_VSX_WORD): New macro.
8084 (POINTER_SIZE): Move to be an external variable, rather than
8085 calculating whether we are generating 32 ot 64-bit code.
8086 (Pmode): Ditto.
8087 (STACK_BOUNDARY): Add VSX support.
8088 (LOCAL_ALIGNMENT): Ditto.
8089 (SLOW_UNALIGNED_ACCESS): Ditto.
8090 (VSX_REGNO_P): New macro for VSX support.
8091 (VFLOAT_REGNO_P): Ditto.
8092 (VINT_REGNO_P): Ditto.
8093 (VLOGICAL_REGNO_P): Ditto.
8094 (VSX_VECTOR_MODE): Ditto.
8095 (VSX_SCALAR_MODE): Ditto.
8096 (VSX_MODE): Ditto.
8097 (VSX_MOVE_MODE): Ditto.
8098 (VSX_REG_CLASS_P): Ditto.
8099 (HARD_REGNO_NREGS): Instead of calling a function, use an array
8100 lookup.
8101 (UNITS_PER_SIMD_WORD): Add VSX support.
8102 (MODES_TIEABLE_P): Ditto.
8103 (STARTING_FRAME_OFFSET): Ditto.
8104 (STACK_DYNAMIC_OFFSET): Ditto.
8105 (EPILOGUE_USES): Ditto.
8106 (REGNO_REG_CLASS): Move to array lookup.
8107 (CLASS_MAX_NREGS): Ditto.
8108 (rs6000_vector_reg_class): Add declaration.
8109 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
8110 overlap with the floating point and Altivec registers.
8111
8112 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
8113
8114 * config/rs6000/driver-rs6000.c (asm_names): New static array to
8115 give the appropriate asm switches if -mcpu=native.
8116 (host_detect_local_cpu): Add support for "asm".
8117 (host_detect_local_cpu): Follow GNU code guidelines for name.
8118
8119 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
8120 -mbit-word to a variable instead of being a target mask.
8121
8122 * config/rs6000/sync.md (lwsync): If the assembler supports it,
8123 emit the lwsync instruction instead of emitting the instruction as
8124 an integer constant.
8125
8126 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
8127 fixuns_trundfsi2, move expander into rs6000.md.
8128
8129 * config/rs6000/rs6000.md (cpu): Add power7.
8130 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
8131 (logical predicate patterns): Change the single instruction
8132 primitives that set CR0 to be fast_compare instead of compare.
8133 (norsi*): Ditto.
8134 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
8135 (popcntddi2): Ditto.
8136 (popcount<mode>): Ditto.
8137 (floating multiply/add insns): Name the floating point
8138 multiply/add insns.
8139 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
8140 (isel_unsigned_<mode>): Ditto.
8141 (fixuns_trundfsi2): Move expander here from spe.md.
8142 (smindi3): Define if we have -misel on 64-bit systems.
8143 (smaxdi3): Ditto.
8144 (umindi3): Ditto.
8145 (umaxdi3): Ditto.
8146
59ab92d2
AS
81472009-06-23 Anatoly Sokolov <aesok@post.ru>
8148
8149 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
8150 extra_objs.
8151 * config/avr/avr.c (avr_current_device): New variable.
8152 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
8153 (avr_arch, mcu_type_s): Move to avr.h.
8154 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
8155 default_data_section_start fields.
8156 (avr_arch): Moved from avr.c.
8157 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
8158 library_name fields.
8159 (avr_current_device, avr_mcu_types, avr_arch_types,
8160 avr_device_to_arch, avr_device_to_data_start,
8161 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
8162 (EXTRA_SPEC_FUNCTIONS): Define.
8163 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
8164 options mapping. Use device_to_arch and device_to_data_start insted.
8165 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
8166 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
8167 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
8168 * config/avr/driver-avr.c: New file.
8169 * config/avr/avr-devices.c: New file.
8170
8593e0b6
JJ
81712009-06-23 Jakub Jelinek <jakub@redhat.com>
8172
7eb3f1f7
JJ
8173 * var-tracking.c (unshare_variable): Force initialized to
8174 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
8175 (set_variable_part): Likewise.
8176 (struct variable_union_info): Remove pos_src field.
8177 (vui_vec, vui_allocated): New variables.
8178 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
8179 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
8180 == 1 use a simpler sorting algorithm. Compute pos field right
8181 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
8182 Avoid quadratic comparison if !flag_var_tracking_uninit.
8183 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
f100a4a8 8184 unshare_variable unconditionally.
7eb3f1f7
JJ
8185 (dataflow_set_different_2): Removed.
8186 (dataflow_set_different): Don't traverse second hash table.
8187 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
8188 unconditionally to var_reg_set or var_mem_set.
8189 (emit_notes_in_bb): Likewise.
8190 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
8191 unshare_variable.
8192 (emit_note_insn_var_location): Don't set initialized to
8193 VAR_INIT_STATUS_INITIALIZED early.
8194 (vt_finalize): Free vui_vec if needed, clear vui_vec and
8195 vui_allocated.
8196 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
8197
8593e0b6
JJ
8198 * tree-object-size.c (addr_object_size): Instead of checking
8199 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
8200 are no FIELD_DECLs following it.
8201
fef015a8
AK
82022009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
8203
8204 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
8205 order to match bswaps with signed source operands.
8206
b6d83244
RO
82072009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8208
8209 * sdbout.c (sdbout_one_type): Fix braces in switch.
8210
0bbf2ffa
RG
82112009-06-23 Richard Guenther <rguenther@suse.de>
8212
8213 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
8214 member.
8215 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
8216 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
8217 var_callused, callused_tree, var_storedanything, storedanything_tree,
8218 var_integer, integer_tree): Remove global variables.
8219 (new_var_info): Do not pass new id, append the new var to the
8220 global variable vector.
8221 (do_ds_constraint): Use is_global_var member of the variable-info.
8222 (new_scalar_tmp_constraint_exp): Adjust.
8223 (create_function_info_for): Likewise.
8224 (create_variable_info_for): Likewise.
8225 (find_what_var_points_to): Remove dead code.
8226 (init_base_vars): Simplify.
8227 (compute_points_to_sets): Adjust.
8228
28a5fb2e
AN
82292009-06-22 Adam Nemet <anemet@caviumnetworks.com>
8230
8231 * combine.c (try_combine): Dump information about the insns we're
8232 combining.
8233
cfb8805e
AN
82342009-06-22 Adam Nemet <anemet@caviumnetworks.com>
8235
8236 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
8237 check when calling force_to_mode on TRUNCATE's operand.
8238
df4ba119
ILT
82392009-06-22 Ian Lance Taylor <iant@google.com>
8240
897eef7b 8241 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
df4ba119 8242
c986683b
SB
82432009-06-22 Steven Bosscher <steven@gcc.gnu.org>
8244
8245 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
8246
5c6927bd
RW
82472009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8248
8249 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
8250 override library linkage flags such as -static-libgcc or
8251 -shared-libgcc.
8252
19973be2
MK
82532009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
8254
8255 * config/m68k/m68k-devices.def: Add line for MCF5221x.
8256
7a5d2eb8
ILT
82572009-06-22 Ian Lance Taylor <iant@google.com>
8258
8259 * config/linux.opt: Put mglibc ahead of muclibc.
8260
8261 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
8262 for duplicate decls.
8263
86e3c83a
MK
82642009-06-22 Matthias Klose <doko@ubuntu.com>
8265
8266 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
8267
0a7d7dea
MK
82682009-06-22 Steven Bosscher <steven@gcc.gnu.org>
8269
8270 PR objc/28050
8271 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
8272 instead of NULL if a parser error occurs.
8273
a77264d5
RO
82742009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8275
8276 * dwarf2out.c (dwarf2_debug_hooks): Initialize
8277 non-DWARF2_DEBUGGING_INFO version.
8278
54f549af
KT
82792009-06-22 Kai Tietz <kai.tietz@onevision.com>
8280
34481f28
UB
8281 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
8282 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
8283
8284 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
54f549af
KT
8285 (LIBGCC2_TF_CEXT): Define.
8286 (TF_SIZE): Define.
8287
7cea01df
RR
82882009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8289
8290 PR target/40463
8291 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
8292
3ce14752
RR
82932009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8294
34481f28
UB
8295 * config/arm/arm.c (arm_override_options): Disable
8296 -mcaller-super-interworking and -mcallee-super-interworking.
8297 * doc/invoke.texi (ARM Options): Document this.
3ce14752 8298
d58bc084
NS
82992009-06-22 Nathan Sidwell <nathan@codesourcery.com>
8300
8301 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
8302 * config/arm/constraints.md (j): New constraint for movw operands.
8303 (N): Remove thumb2 meaning.
8304 * config/arm/arm.md (*arm_movw): Delete.
8305 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
8306 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
8307 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
8308
ac6cb60c
MJ
83092009-06-22 Martin Jambor <mjambor@suse.cz>
8310
8311 PR tree-optimization/40492
8312 * tree-sra.c (sra_modify_assign): Pass zero offsets to
8313 build_ref_for_offset.
8314
481683e1
SZ
83152009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
8316
8317 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
8318 JUMP_TABLE_DATA_P predicates where applicable.
8319 * auto-inc-dec.c: Ditto.
8320 * builtins.c: Ditto.
8321 * caller-save.c: Ditto.
8322 * calls.c: Ditto.
8323 * cfgcleanup.c: Ditto.
8324 * cfglayout.c: Ditto.
8325 * cfgrtl.c: Ditto.
8326 * combine.c: Ditto.
8327 * combine-stack-adj.c: Ditto.
8328 * cse.c: Ditto.
8329 * cselib.c: Ditto.
8330 * dbxout.c: Ditto.
8331 * df-scan.c: Ditto.
8332 * dse.c: Ditto.
8333 * dwarf2asm.c: Ditto.
8334 * dwarf2out.c: Ditto.
8335 * emit-rtl.c: Ditto.
8336 * except.c: Ditto.
8337 * explow.c: Ditto.
8338 * expmed.c: Ditto.
8339 * expr.c: Ditto.
8340 * final.c: Ditto.
8341 * function.c: Ditto.
8342 * fwprop.c: Ditto.
8343 * gcse.c: Ditto.
8344 * genpreds.c: Ditto.
8345 * genrecog.c: Ditto.
8346 * ifcvt.c: Ditto.
8347 * ira-costs.c: Ditto.
8348 * ira-lives.c: Ditto.
8349 * jump.c: Ditto.
8350 * loop-iv.c: Ditto.
8351 * lower-subreg.c: Ditto.
8352 * modulo-sched.c: Ditto.
8353 * optabs.c: Ditto.
8354 * postreload.c: Ditto.
8355 * print-rtl.c: Ditto.
8356 * recog.c: Ditto.
8357 * reginfo.c: Ditto.
8358 * regmove.c: Ditto.
8359 * reload1.c: Ditto.
8360 * reload.c: Ditto.
8361 * reorg.c: Ditto.
8362 * rtlanal.c: Ditto.
8363 * rtl.c: Ditto.
8364 * sched-vis.c: Ditto.
8365 * sdbout.c: Ditto.
8366 * sel-sched-ir.c: Ditto.
8367 * simplify-rtx.c: Ditto.
8368 * targhooks.c: Ditto.
8369 * var-tracking.c: Ditto.
8370 * vmsdbgout.c: Ditto.
8371
1407d6cf
MK
83722009-06-22 Matthias Klose <doko@ubuntu.com>
8373
8374 * Makefile.in (install-plugin): Always use DESTDIR.
8375
28326880 83762009-06-22 Olivier Hainque <hainque@adacore.com>
f100a4a8 8377
28326880
OH
8378 * config/pa/pa.c (output_call): Don't optimize post call jumps
8379 into return address adjustments if the call may throw.
8380
907dd0c7
RE
83812009-06-21 Richard Earnshaw <rearnsha@arm.com>
8382
8383 * arm.c (thumb1_output_casesi): New function.
8384 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
8385 optimizing for size or PIC.
8386 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
8387 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
8388 (casesi): Handle Thumb-1 when optimizing for size or PIC.
8389 (thumb1_casesi_internal_pic): New expand rule.
8390 (thumb1_casesi_dispatch): New pattern.
8391 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
8392 thumb-1 mode.
8393 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
8394 in the text seciton when PIC or optimizing for size.
8395 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
8396 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
8397 preservation properties of code.
8398 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
8399 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
8400 (__gnu_thumb1_case_si): New function.
8401 * t-arm (LIB1ASMSRC): Define here.
8402 (LIB1ASMFUNCS): Add some common functions.
8403 * t-arm-elf (LIB1ASMSRC): Delete.
8404 (LIB1ASMFUNCS): Append to existing set.
8405 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
8406 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
8407 * t-symbian (LIB1ASMFUNCS): Likewise.
8408 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
8409 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
8410
2cee1509
RG
84112009-06-21 Richard Guenther <rguenther@suse.de>
8412
8413 PR tree-optimization/38729
8414 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
8415 to loops with a single exit if -fno-expensive-optimizations.
8416
d24686d7
JJ
84172009-06-21 Jakub Jelinek <jakub@redhat.com>
8418
8419 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
8420 (dataflow_set): Change vars type from htab_t to shared_hash.
8421 (shared_hash_pool, empty_shared_hash): New variables.
8422 (vars_clear): Removed.
8423 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
8424 shared_hash_find_slot_unshare, shared_hash_find_slot,
8425 shared_hash_find_slot_noinsert, shared_hash_find): New
8426 static inlines.
8427 (shared_hash_unshare, shared_hash_destroy): New functions.
8428 (unshare_variable): Unshare set->vars if shared, use
8429 shared_hash_htab.
8430 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
8431 (get_init_value, find_src_set_src, dump_dataflow_set,
8432 clobber_variable_part, emit_notes_for_differences): Use
8433 shared_hash_htab.
8434 (dataflow_set_init): Remove second argument, set vars to
8435 empty_shared_hash instead of creating a new htab.
8436 (dataflow_set_clear): Call shared_hash_destroy and set vars
8437 to empty_shared_hash instead of calling vars_clear.
8438 (dataflow_set_copy): Don't call vars_copy, instead just share
8439 the src htab with dst.
8440 (variable_union): Use shared_hash_*, use initially NO_INSERT
8441 lookup if set->vars is shared. Don't keep slot cleared before
8442 calling unshare_variable. Unshare set->vars if needed.
8443 Even ->refcount == 1 vars must be unshared if set->vars is shared
8444 and var needs to be modified.
8445 (variable_canonicalize): New function.
8446 (dataflow_set_union): If dst->vars is empty, just share src->vars
8447 with dst->vars and traverse with variable_canonicalize to canonicalize
8448 and unshare what is needed.
8449 (dataflow_set_different): If old_set and new_set use the same shared
8450 htab, they aren't different. If number of htab elements is different,
8451 htabs are different. Use shared_hash_*.
8452 (dataflow_set_destroy): Call shared_hash_destroy instead of
8453 htab_delete.
8454 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
8455 second argument to dataflow_set_init.
8456 (vt_initialize): Likewise. Initialize shared_hash_pool and
8457 empty_shared_hash, move bb in/out initialization afterwards.
8458 Use variable_htab_free instead of NULL as changed_variables del hook.
8459 (variable_was_changed): Change type of second argument to pointer to
8460 dataflow_set. When inserting var into changed_variables, bump
8461 refcount. Unshare set->vars if set is shared htab and slot needs to
8462 be cleared.
8463 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
8464 lookup if set->vars is shared. Unshare set->vars if needed.
8465 Even ->refcount == 1 vars must be unshared if set->vars is shared
8466 and var needs to be modified. Adjust variable_was_changed caller.
8467 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
8468 vars must be unshared if set->vars is shared and var needs to be
8469 modified. Adjust variable_was_changed caller.
8470 (emit_note_insn_var_location): Don't pool_free var.
8471 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
8472 instead of 1.
8473 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
8474 free_alloc_pool on shared_hash_pool.
8475
525b459f
AG
84762009-06-20 Anthony Green <green@moxielogic.com>
8477
8478 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
8479 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
8480
825be69e
RG
84812009-06-20 Richard Guenther <rguenther@suse.de>
8482
8483 * tree-ssa-structalias.c (find_func_aliases): For memset use
8484 a constraint from NULL if we memset to zero.
8485 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
8486 we explicitly handle that do not read from memory.
8487 (call_may_clobber_ref_p_1): Properly handle builtins that may
8488 set errno.
8489
b14e9388
RG
84902009-06-20 Richard Guenther <rguenther@suse.de>
8491
8492 PR tree-optimization/40495
8493 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
8494 (new_scalar_tmp_constraint_exp): New function.
8495 (process_constraint): Do not create temporary decls.
8496 (process_all_all_constraints): Likewise.
8497 (handle_const_call): Likewise.
8498 (create_function_info_for): Do not set decl.
8499
c885ca89
ILT
85002009-06-19 Ian Lance Taylor <iant@google.com>
8501
8502 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
8503 (rs6000_attribute_table): Make static; move before use.
8504
6569d386
EB
85052009-06-19 Eric Botcazou <ebotcazou@adacore.com>
8506
8507 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
8508 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
8509 Propagate the TREE_READONLY flag without overwriting it.
8510 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
8511 Propagate the TREE_READONLY flag onto the result.
8512 (process_call_operands): Move around. Use correct constant value.
8513
ce41c38b
RR
85142009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8515
8516 PR target/40482
897eef7b 8517 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
ce41c38b
RR
8518 * config/arm/arm.md: Likewise.
8519
96be7a11 85202009-06-19 Ian Lance Taylor <iant@google.com>
d130ae11
ILT
8521
8522 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
8523 to GIMPLE_ERROR_MARK.
8524
8525 * c-typeck.c (build_conditional_expr): Add op1_original_type and
897eef7b 8526 op2_original_type parameters. Warn about using different enum types.
d130ae11
ILT
8527 * c-parser.c (c_parser_conditional_expression): Pass original
8528 types to build_conditional_expr.
8529 * c-tree.h (build_conditional_expr): Update declaration.
8530
d4aa4f4b
ILT
85312009-06-19 Ian Lance Taylor <iant@google.com>
8532
8533 * config/i386/i386.c (ix86_function_specific_save): Test that
8534 fields match values, rather than testing the values are in a
8535 certain range.
8536
779704e7
RG
85372009-06-19 Richard Guenther <rguenther@suse.de>
8538
8539 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8540 ADDR_EXPR pointers.
8541 (ptr_derefs_may_alias_p): Likewise.
8542 (ptr_deref_may_alias_ref_p_1): New function.
8543 (ptr_deref_may_alias_ref_p): Likewise.
8544 (ref_maybe_used_by_call_p_1): Handle builtins that are not
8545 covered by looking at the ESCAPED solution.
8546 (call_may_clobber_ref_p_1): Likewise.
8547 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
8548 Handle NULL_TREE offset. Do not produce redundant constraints.
8549 (process_all_all_constraints): New helper function.
8550 (do_structure_copy): Use it.
8551 (handle_lhs_call): Likewise.
8552 (find_func_aliases): Handle some builtins with pointer arguments
8553 and/or return values explicitly.
8554
217655da
ILT
85552009-06-19 Ian Lance Taylor <iant@google.com>
8556
8557 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
8558
50ae5fea
ILT
85592009-06-19 Ian Lance Taylor <iant@google.com>
8560
8561 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
8562
642324bb
ILT
85632009-06-19 Ian Lance Taylor <iant@google.com>
8564
8565 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
8566 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
8567 version.
8568
8569 * c-decl.c (finish_decl): If -Wc++-compat, warn about
8570 uninitialized const.
8571
dc491a25
ILT
85722009-06-19 Ian Lance Taylor <iant@google.com>
8573
8574 * dse.c (struct store_info): Rename bitmap field to bmap. Change
8575 all uses.
8576
8577 * c-decl.c (in_struct, struct_types): Remove.
8578 (struct c_binding): Add in_struct field.
8579 (c_binding_ptr): Define type, along with VEC.
8580 (struct c_struct_parse_info): Define.
8581 (struct_parse_info): New static variable.
8582 (bind): Initialize in_struct field.
8583 (start_struct): Remove enclosing_in_struct and
8584 enclosing_struct_types parameters. Add
8585 enclosing_struct_parse_info parameter. Change all callers. Set
8586 struct_parse_info rather than in_struct and struct_types.
8587 (grokfield): If -Wc++-compat and there is a symbol binding for the
8588 field name, set the in_struct flag and push it on the
8589 struct_parse_info->fields vector.
8590 (warn_cxx_compat_finish_struct): New static function.
8591 (finish_struct): Remove enclosing_in_struct and
8592 enclosing_struct_types parameters. Add
8593 enclosing_struct_parse_info parameter. Change all callers. Don't
8594 set C_TYPE_DEFINED_IN_STRUCT here. Call
8595 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
8596 parameter. Only push on struct_types if warn_cxx_compat.
8597 (finish_enum): Only push on struct_types if warn_cxx_compat.
8598 (declspecs_add_type): Add loc parameter. Change all callers.
8599 Change all error calls to error_at. Pass loc, not input_location,
8600 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
8601 defined in a struct. If -Wc++-compat and parsing a struct, record
8602 that a typedef name was used.
8603 * c-parser.c (c_parser_declspecs): Get location to pass to
8604 declspecs_add_type.
8605 (c_parser_struct_or_union_specifier): Update calls to start_struct
8606 and finish_struct.
8607 * c-tree.h (struct c_struct_parse_info): Declare.
8608 (finish_struct, start_struct): Update declarations.
8609 (declspecs_add_type): Update declaration.
8610
88eeff6f
ILT
86112009-06-19 Ian Lance Taylor <iant@google.com>
8612
8613 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
8614 variable with an anonymous type.
8615
28a876a4
UB
86162009-06-19 Uros Bizjak <ubizjak@gmail.com>
8617
8618 * see.c: Remove for real.
8619
dc6707b8
UB
86202009-06-19 Uros Bizjak <ubizjak@gmail.com>
8621
8622 * optabs.h (enum optab_index): Add new OTI_significand.
8623 (significand_optab): Define corresponding macro.
8624 * optabs.c (init_optabs): Initialize significand_optab.
8625 * genopinit.c (optabs): Implement significand_optab using
8626 significand?f2 patterns.
8627 * builtins.c (expand_builtin_mathfn): Handle
8628 BUILT_IN_SIGNIFICAND{,F,L}.
8629 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
8630 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8631
8632 * config/i386/i386.md (significandxf2, significand<mode>2): New
8633 expanders to implement significandf, significand and significandl
8634 built-ins as inline x87 intrinsics.
8635
dd26af70
AS
86362009-06-18 Anatoly Sokolov <aesok@post.ru>
8637
8638 * config/avr/avr.c (avr_override_options): Remove setting value of
8639 PARAM_INLINE_CALL_COST.
8640
394bd84d
RH
86412009-06-18 Richard Henderson <rth@redhat.com>
8642
8643 PR 40488
8644 * tree-pass.h (TDF_ASMNAME): New.
8645 * tree-dump.c (dump_options): Add asmname.
8646 * doc/invoke.texi: Document it.
8647
8648 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
8649 (dump_decl_name): ...here.
8650 (dump_function_name): New flags arg; mind TDF_ASMNAME.
8651 (dump_generic_node): Update dump_function_name calls.
8652 (print_call_name): New flags arg; update all dump calls.
8653 * diagnostic.h (print_call_name): Update.
8654 * gimple-pretty-print.c (dump_gimple_call): Update.
8655
2a457a9b
L
86562009-06-18 H.J. Lu <hongjiu.lu@intel.com>
8657
8658 PR target/40470
8659 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
8660
fca5bb5c
DN
86612009-06-18 Diego Novillo <dnovillo@google.com>
8662
8663 * doc/plugins.texi: Document plugin_is_GPL_compatible.
8664 * plugin.c (str_license): Declare.
8665 (try_init_one_plugin): Assert that the symbol
8666 'plugin_is_GPL_compatible' exists.
8667
b6680d72
SD
86682009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
8669
8670 * see.c: Remove.
8671 * Makefile.in (OBJS-common): Remove see.o.
8672 (see.o): Remove.
8673 * common.opt (fsee): Mark as preserved for backward compatibility.
f100a4a8 8674 * opts.c (common_handle_option): Add OPT_fsee to the backward
b6680d72
SD
8675 compatibility section.
8676 * passes.c (init_optimization_passes, pass_see): Remove pass.
8677 * timevar.def (TV_SEE): Remove.
8678 * tree-pass.h (pass_see): Remove declaration.
8679 * doc/invoke.texi (-fsee): Remove documentation.
f100a4a8 8680
2a45675f
MJ
86812009-06-18 Martin Jambor <mjambor@suse.cz>
8682
8683 * tree-sra.c: Include statistics.h
8684 (sra_stats): New variable.
8685 (sra_initialize): Clear sra_stats.
8686 (create_access_replacement): Increment sra_stats.replacements.
8687 (get_access_replacement): Do not return twice.
8688 (analyze_all_variable_accesses): Increment statistics counter by the
8689 number of scalarized aggregates.
8690 (generate_subtree_copies): Increment sra_stats.subtree_copies.
8691 (sra_modify_expr): Increment sra_stats.exprs.
8692 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
8693 (sra_modify_assign): Increment sra_stats.exprs,
8694 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
8695 (perform_intra_sra): Update statistics counters.
8696 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
8697
bdc4827b
SL
86982009-06-18 Sandra Loosemore <sandra@codesourcery.com>
8699
8700 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
8701 (arm_scalar_mode_supported_p): New function.
8702
d9dd51dc
PB
87032009-06-18 Paul Brook <paul@codesourcery.com>
8704 Sandra Loosemore <sandra@codesourcery.com>
8705
8706 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
8707 (__extendhfsf2, __truncsfhf2): Define.
8708 * config/arm/fp16.c: New file.
8709 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
8710 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
8711
0fd8c3ad
SL
87122009-06-18 Sandra Loosemore <sandra@codesourcery.com>
8713
8714 * doc/extend.texi (Half-Precision): New section.
8715 * doc/invoke.texi (Option Summary): List -mfp16-format.
8716 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
8717 * config/arm/arm.opt (mfp16-format=): New.
8718 * config/arm/arm.c: Include intl.h.
8719 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
8720 (TARGET_INVALID_RETURN_TYPE): Redefine.
8721 (TARGET_PROMOTED_TYPE): Redefine.
8722 (TARGET_CONVERT_TO_TYPE): Redefine.
8723 (arm_fp16_format): Define.
8724 (all_fpus): Add entry for neon-fp16.
8725 (fp_model_for_fpu): Likewise.
8726 (struct fp16_format): Declare.
8727 (all_fp16_formats): Define.
8728 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
8729 functions.
8730 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
8731 and no ldrh.
8732 (arm_legitimate_index_p): Treat HFmode like HImode.
8733 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
8734 (coproc_secondary_reload_class): Special-case HFmode.
8735 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
8736 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
8737 (arm_init_fp16_builtins): New.
8738 (arm_init_builtins): Call it.
8739 (arm_invalid_parameter_type): New.
8740 (arm_invalid_return_type): New.
8741 (arm_promoted_type): New.
8742 (arm_convert_to_type).
8743 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
8744 format.
8745 (arm_emit_fp16_const): New function.
8746 (arm_mangle_type): Mangle __fp16 as "Dh".
8747 * config/arm/arm.h (TARGET_VFPD32): Make it know about
8748 FPUTYPE_NEON_FP16.
8749 (TARGET_NEON_FP16): New.
8750 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
8751 (enum fputype): Add FPUTYPE_NEON_FP16.
8752 (enum arm_fp16_format_type): Declare.
8753 (arm_fp16_format): Declare.
8754 (LARGEST_EXPONENT_IS_NORMAL): Define.
8755 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
8756 * config/arm/arm-modes.def (HFmode): Define.
8757 * config/arm/vfp.md: (*movhf_vfp): New.
8758 (extendhfsf2): New.
8759 (truncsfhf2): New.
8760 * config/arm/arm.md: (fpu): Add neon_fp16.
8761 (floatsihf2, floatdihf2): New.
8762 (fix_trunchfsi2, fix_trunchfdi2): New.
8763 (truncdfhf2): New.
8764 (extendhfdf2): New.
8765 (movhf): New.
8766 (*arm32_movhf): New.
8767 (*thumb1_movhf): New.
8768 (consttable_2): Add check for HFmode constants.
8769 (consttable_4): Handle HFmode constants.
8770
2c2f70e1
UB
87712009-06-18 Uros Bizjak <ubizjak@gmail.com>
8772
8773 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
8774
db4fa1c1
OH
87752009-06-17 Olivier Hainque <hainque@adacore.com>
8776
8777 * collect2.c (main): Use CONST_CAST2 to perform char ** to
8778 const char ** conversion in AIX specific section.
f100a4a8 8779
6bec4135
L
87802009-06-17 H.J. Lu <hongjiu.lu@intel.com>
8781
8782 * config/i386/i386.c (ix86_special_builtin_type): Remove
8783 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
8784 (bdesc_special_args): Updated.
8785 (ix86_init_mmx_sse_builtins): Likewise.
8786 (ix86_expand_special_args_builtin): Likewise.
8787
958d6d58
RH
87882009-06-17 Richard Henderson <rth@redhat.com>
8789
8790 * tree-pretty-print.c (maybe_dump_asm_name): New.
8791 (dump_decl_name): Use it.
8792 (PRINT_FUNCTION_NAME): Merge into...
8793 (dump_function_name): ... here. Use maybe_dump_asm_name.
8794
ed5ef2e4
CC
87952009-06-17 Cary Coutant <ccoutant@google.com>
8796
8797 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
8798 Change caller.
8799 * debug.c (struct gcc_debug_hooks): Change placeholder for
8800 source_line hook.
8801 (debug_nothing_int_charstar_int): Replaced by...
8802 (debug_nothing_int_charstar_int_bool): ...this.
8803 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
8804 source_line prototype.
8805 (debug_nothing_int_charstar_int): Replaced by...
8806 (debug_nothing_int_charstar_int_bool): ...this.
8807 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
8808 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
8809 Output is_stmt operand when necessary.
01a0acb7 8810 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
8811 (notice_source_line): Add is_stmt parameter.
8812 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
8813 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
8814 Change callers.
8815 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
8816 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
8817
b0f43ca0
ILT
88182009-06-17 Ian Lance Taylor <iant@google.com>
8819
8820 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
8821 Change all uses.
8822 (struct store_by_pieces_d): Rename from store_by_pieces. Change
8823 call uses.
8824
23314e77
AN
88252009-06-17 Adam Nemet <anemet@caviumnetworks.com>
8826
8827 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
8828 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
8829 tree_strip_sign_nop_conversions and
8830 tree_ssa_strip_useless_type_conversions rather than stripping
8831 the operations here.
8832 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
8833 Declare them.
8834 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
8835 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
8836 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
8837 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
8838 functions.
8839
799dbb0f
ME
88402009-06-17 Michael Eager <eager@eagercon.com>
8841
c637b0fa
UB
8842 * config/rs6000/constraints.md (register_constraint "d"): New.
8843 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
8844 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
8845 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
8846 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
8847 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
8848 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
8849 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
8850 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
8851 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
8852 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
8853 __fctiwz): Same.
8854 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
8855 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
8856 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
8857 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
8858 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
8859 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
8860 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
8861 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
8862 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
8863 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
8864 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
8865 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
8866 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
8867 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
8868
1469de3c
ILT
88692009-06-16 Ian Lance Taylor <iant@google.com>
8870
8871 * profile.c (total_num_never_executed): Don't define.
8872 (compute_branch_probabilities): Don't count or print
8873 num_never_executed.
8874 (init_branch_prob): Don't set total_num_never_executed.
8875 (end_branch_prob): Don't print total_num_never_executed.
8876
2cb0a60d
DD
88772009-06-17 David Daney <ddaney@caviumnetworks.com>
8878
c637b0fa 8879 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 8880
82882240
DE
88812009-06-17 David Edelsohn <edelsohn@gnu.org>
8882
8883 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
8884 (nabstd2_fpr): Same.
8885
a1a65f89
SE
88862009-06-17 Steve Ellcey <sje@cup.hp.com>
8887
8888 * expr.c (expand_assignment): Change complex type check.
8889
07ae5620
BS
88902009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
8891
f100a4a8 8892 * doc/plugins.texi (Building GCC plugins): Added new section.
07ae5620 8893
5eb4df45
ILT
88942009-06-17 Ian Lance Taylor <iant@google.com>
8895
8896 * c-pch.c (get_ident): Don't set size of templ array.
8897 (pch_init): Don't set size of partial_pch array.
8898
8899 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
8900 string constant to intialize an array whose size is the length of
8901 the string.
8902
4d61856d
RG
89032009-06-17 Richard Guenther <rguenther@suse.de>
8904
8905 PR tree-optimization/40389
8906 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
8907 to addressable types.
8908 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
8909
3cb8677c
RG
89102009-06-17 Richard Guenther <rguenther@suse.de>
8911
8912 PR middle-end/40460
8913 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
8914 if there is no evolution of left in the loop bail out.
8915 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
8916 chrec_fold_multiply.
8917
a4d99c86
R
89182009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
8919 Janis Johnson <janis187@us.ibm.com>
8920
8921 PR target/39254
8922 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
8923 for the symbol ref of a constant that is the source of a move
8924 - nor for any other not-obvious-label-ref constants.
8925
8dd1bca0
OR
89262009-06-16 Olatunji Ruwase <tjruwase@google.com>
8927
1469de3c 8928 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
8929 traversal to avoid repeated insertion.
8930
8019538f
ILT
89312009-06-16 Ian Lance Taylor <iant@google.com>
8932
8933 * vec.h (VEC_stack_alloc): Define different version if
8934 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
8935 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
8936 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
8937 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
8938
7c45393e
L
89392009-06-16 H.J. Lu <hongjiu.lu@intel.com>
8940
8941 * config.gcc (extra_headers): Add ia32intrin.h for x86.
8942
8943 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
8944 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
8945 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
8946 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
8947 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
8948 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 8949 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
8950 (bdesc_special_args): Add __builtin_ia32_rdtsc and
8951 __builtin_ia32_rdtscp.
8952 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
8953 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 8954 and __builtin_ia32_rorhi.
7c45393e
L
8955 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
8956 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 8957 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
8958 (ix86_expand_args_builtin): Likewise.
8959 (ix86_expand_special_args_builtin): Likewise.
8960
8961 * config/i386/i386.md (UNSPECV_RDTSCP): New.
8962 (UNSPECV_RDTSC): Likewise.
8963 (UNSPECV_RDPMC): Likewise.
c637b0fa 8964 (*bsr): Renamed to ...
7c45393e 8965 (bsr): This
c637b0fa 8966 (*bsr_rex64): Renamed to ...
7c45393e
L
8967 (bsr_rex64): This.
8968 (rdpmc): New.
8969 (*rdpmc): Likewise.
8970 (*rdpmc_rex64): Likewise.
8971 (rdtsc): Likewise.
8972 (*rdtsc): Likewise.
8973 (*rdtsc_rex64): Likewise.
8974 (rdtscp): Likewise.
8975 (*rdtscp): Likewise.
8976 (*rdtscp_rex64): Likewise.
8977
8978 * config/i386/ia32intrin.h: New.
8979
8980 * config/i386/x86intrin.h: Include <ia32intrin.h>.
8981
504b33d8
ILT
89822009-06-16 Ian Lance Taylor <iant@google.com>
8983
8984 * ira-build.c (copy_info_to_removed_store_destinations):
8985 Initialize parent_a.
8986
f9551830
ILT
89872009-06-16 Ian Lance Taylor <iant@google.com>
8988
8989 * c-decl.c (grokdeclarator): Change size_varies to bool.
8990
c32e2175
ILT
89912009-06-16 Ian Lance Taylor <iant@google.com>
8992
8993 * sel-sched.c: Make forward declarations of move_op_hooks and
8994 fur_hooks explicitly extern.
8995
415a06c2
ILT
89962009-06-16 Ian Lance Taylor <iant@google.com>
8997
c637b0fa 8998 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
8999 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
9000
675f99c9
ILT
90012009-06-16 Ian Lance Taylor <iant@google.com>
9002
9003 * resource.c (mark_referenced_resources): Change
9004 include_delayed_effects parameter to bool. Change all callers.
9005 (mark_end_of_function_resources): Likewise.
9006 * reorg.c (insn_references_resource_p): Likewise.
9007 (insn_sets_resource_p): Likewise.
9008 * resource.h (mark_referenced_resources): Update declaration.
9009 (mark_end_of_function_resources): Update declaration.
9010
a322799d
DE
90112009-06-16 David Edelsohn <edelsohn@gnu.org>
9012
9013 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
9014
c58c92f5
DE
90152009-06-16 David Edelsohn <edelsohn@gnu.org>
9016
9017 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
9018 GCC can bootstrap on AIX with GNU Binutils 2.20.
9019
95228603
ILT
90202009-06-16 Ian Lance Taylor <iant@google.com>
9021
9022 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
9023
9c727c9a
ILT
90242009-06-16 Ian Lance Taylor <iant@google.com>
9025
9026 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
9027 inline, not extern inline.
9028 (exact_log2): Likewise.
9029 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
9030 test CLZ_HWI.
9031 (exact_log2): Likewise, but don't test CTZ_HWI.
9032
5fd8300b
ILT
90332009-06-16 Ian Lance Taylor <iant@google.com>
9034
9035 * bitmap.c (bitmap_clear): Don't declare as inline.
9036 * gimple.c (gimplify_assign): Likewise.
9037 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
9038 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
9039 (sched_scan_info): Remove duplicate definition.
9040
7d882b83
ILT
90412009-06-16 Ian Lance Taylor <iant@google.com>
9042
9043 * c-common.c (skip_evaluation): Don't define.
9044 (c_inhibit_evaluation_warnings): Define global variable.
9045 (overflow_warning): Check c_inhibit_evaluation_warnings rather
9046 than skip_evaluation.
9047 (convert_and_check, warn_for_div_by_zero): Likewise.
9048 * c-common.h (skip_evaluation): Don't declare.
9049 (c_inhibit_evaluation_warnings): Declare.
9050 * c-parser.c (c_parser_typeof_specifier): Set
9051 c_inhibit_evaluation_warnings rather than skip_evaluation.
9052 (c_parser_conditional_expression): Likewise.
9053 (c_parser_binary_expression): Likewise.
9054 (c_parser_sizeof_expression): Likewise.
9055 (c_parser_alignof_expression): Likewise.
9056 * c-typeck.c (build_indirect_ref): Check
9057 c_inhibit_evaluation_warnings rather than skip_evaluation.
9058 (build_conditional_expr, build_binary_op): Likewise.
9059
2e407842
RG
90602009-06-16 Richard Guenther <rguenther@suse.de>
9061
9062 * tree-ssa-alias.c (is_escape_site): Remove.
9063 * tree-ssa-alias.h (enum escape_type): Remove.
9064 (is_escape_site): Likewise.
9065 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
9066 via casts and asms without deferring to is_escape_site.
9067
f2ff8872
JJ
90682009-06-16 Jakub Jelinek <jakub@redhat.com>
9069
9070 PR middle-end/40446
9071 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
9072 use gen_lowpart if op0 has complex mode.
9073
de70bb20
RG
90742009-06-16 Richard Guenther <rguenther@suse.de>
9075
9076 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
9077 variables add them to ESCAPED.
c637b0fa 9078 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 9079
daa0eeb8
RAE
90802009-06-16 Rafael Avila de Espindola <espindola@google.com>
9081
9082 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
9083 make_decl_one_only.
9084
0ec19b8c
MJ
90852009-06-16 Martin Jambor <mjambor@suse.cz>
9086
9087 PR tree-optimization/40432
9088 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
9089 check whether we need to force gimple register operand.
9090
2b26b801
MJ
90912009-06-16 Martin Jambor <mjambor@suse.cz>
9092
9093 PR tree-optimization/40413
9094 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
9095 build_ref_for_offset.
9096 (propagate_subacesses_accross_link): Fix a typo in a comment.
9097
7c5222ff
IR
90982009-06-16 Ira Rosen <irar@il.ibm.com>
9099
9100 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
9101 with additional parameter.
c637b0fa 9102 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
9103 vect_nested_cycle.
9104 (enum vect_relevant): Add comments.
9105 (vect_is_simple_reduction): Add new argument.
9106 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
9107 Detect nested cycles.
9108 (vect_is_simple_reduction): Update documentation, add an argument to
9109 distinguish inner-loop reduction from nested cycle, detect nested
9110 cycles, fix printings and indentation, don't swap operands in case
9111 of nested cycle.
9112 (get_initial_def_for_reduction): Handle subtraction.
9113 (vect_create_epilog_for_reduction): Add new argument to specify
9114 reduction variable.
9115 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa 9116 (vectorizable_reduction): Handle nested cycles. In case of nested
f100a4a8 9117 cycle keep track of the reduction variable position. Call
7c8b1a77 9118 vect_is_simple_reduction with additional parameter. Use original
7c5222ff
IR
9119 statement code in reduction epilogue for nested cycle. Call
9120 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
9121 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
9122 inner-loop vectorization.
7c5222ff
IR
9123 (vect_recog_widen_sum_pattern): Likewise.
9124 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
9125 and reductions.
9126 (vect_mark_stmts_to_be_vectorized): Likewise.
9127 (vect_get_vec_def_for_operand): Handle nested cycles.
9128
d376d545
RW
91292009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9130
9131 * doc/invoke.texi (Debugging Options): Fix option index entries
9132 for -fdump-statistics, -frandom-seed add entries for
9133 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
9134 (FRV Options): Fix entries for -mTLS, -mtls.
9135 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
9136 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
9137 (M68hc1x Options): Fix @itemx for -mnominmax.
9138 (MCore Options): Fix entry for -mno-lsim.
9139 (MMIX Options): Fix entry for -mabi=mmixware.
9140 (PDP-11 Options): Fix entry for -mbcopy-builtin.
9141
bd117bb6
BS
91422009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
9143
9144 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
9145 Mention the plugin mode of gengtype.
c637b0fa 9146 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
9147 * gengtype.c: Updated copyright.
9148 (plugin_files, nb_plugin_files) Added new static variables.
9149 (measure_input_list) Care about plugin_files.
9150 (write_rtx_next): Added early return in plugin mode.
9151 (create_file): Updated copyright year in generated file. Added
9152 asserts.
9153 (oprintf): Added early return if NULL outf.
9154 (get_output_file_with_visibility): Care of plugin_files.
9155 (get_output_file_name): May return null.
9156 (write_local): Added early return.
9157 (put_mangled_filename): Ditto.
9158 (finish_root_table): Added check for base_files.
9159 (write_roots): Care about null when plugins.
9160 (main): Added plugin mode.
9161
e1b7793c
ILT
91622009-06-15 Ian Lance Taylor <iant@google.com>
9163
c637b0fa 9164 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
9165 * gcov.c (read_count_file): Add braces around variables declared
9166 before label.
9167
9168 * c.opt (Wjump-misses-init): New warning.
9169 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
9170 -Wall and -Wc++-compat if not already set.
9171 (c_common_post_options): Clear warn_jump_misses_init if it was not
9172 set.
9173 * c-decl.c (struct c_binding): Change type field to a union with
9174 new label field. Make it the first field in the struct. Update
9175 references to type to use u.type instead.
9176 (struct c_spot_bindings): Define.
9177 (struct c_goto_bindings): Define.
9178 (c_goto_bindings_p): Define, along with VECs.
9179 (struct c_label_vars): Define.
9180 (struct c_scope): Add has_label_bindings field.
9181 (bind_label, set_spot_bindings): New static functions.
9182 (decl_jump_unsafe, update_spot_bindings): New static functions.
9183 (update_label_decls): New static function.
9184 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
9185 Update binding u.label field to shadowed field.
9186 (c_binding_start_stmt_expr): New function.
9187 (c_binding_end_stmt_expr): New function.
9188 (pushdecl): Don't call c_begin_vm_scope.
9189 (make_label): Add defining and p_label_vars parameters. Change
9190 all callers.
9191 (lookup_label): Correct test for whether a label has not yet been
9192 defined. Call bind_label rather than bind.
9193 (warn_about_goto): New static function.
9194 (lookup_label_for_goto): New function.
9195 (declare_label): Call bind_label rather than bind.
9196 (check_earlier_gotos): New static function.
9197 (define_label): Don't give errors about jumping into statement
9198 expressions or scopes of variably modified types. Call
9199 set_spot_bindings and check_earlier_gotos. Call bind_label
9200 instead of bind. Don't set label_context_stack_se or
9201 label_context_stack_vm.
9202 (c_get_switch_bindings): New function.
9203 (c_release_switch_bindings): New function.
9204 (c_check_switch_jump_warnings): New function.
9205 (start_function): Don't set label_context_stack_se or
9206 label_context_stack_vm.
9207 (finish_function): Likewise.
9208 * c-typeck.c (label_context_stack_se): Don't define.
9209 (label_context_stack_vm): Don't define.
9210 (c_finish_goto_label): Call lookup_label_for_goto rather than
9211 lookup_label. Don't give errors about jumping into a statement
9212 expression or the scope of a variably modified type. Don't set
9213 label_context_stack_se or label_context_stack_vm.
9214 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
9215 fields. Add bindings field.
9216 (c_start_case): Don't set deleted fields. Set bindings field.
9217 (do_case): Rework order of tests. Don't check blocked_stmt_expr
9218 or blocked_vm. Call c_check_switch_jump_warnings.
9219 (c_finish_case): Don't test blocked_stmt_expr field. Call
9220 c_release_switch_bindings.
9221 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
9222 c_switch_stack. Don't walk label_context_stack_se labels. Don't
9223 set label_context_stack_se. Call c_bindings_start_stmt_expr.
9224 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
9225 c_switch_stack. Don't walk label_context_stack_se labels. Don't
9226 set label_context_stack_se. Call c_bindings_end_stmt_expr.
9227 (c_begin_vm_scope, c_end_vm_scope): Don't define.
9228 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
9229 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
9230 (C_DECL_UNJUMPABLE_VM): Don't define.
9231 (C_DECL_UNDEFINABLE_VM): Don't define.
9232 (struct c_label_list): Don't define.
9233 (struct c_label_context_se): Don't define.
9234 (struct c_label_context_vm): Don't define.
9235 (struct c_spot_bindings): Declare.
9236 (c_bindings_start_stmt_expr): Declare.
9237 (c_bindings_end_stmt_expr): Declare.
9238 (lookup_label_for_goto): Declare.
9239 (c_get_switch_bindings, c_release_switch_bindings): Declare.
9240 (c_check_switch_jump_warnings): Declare.
9241 (label_context_stack_se, label_context_stack_vm): Don't declare.
9242 (c_finish_goto_label): Update declaration.
9243 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
9244 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
9245 (Warning Options): Document -Wjump-misses-init.
9246
98a129b9
JJ
92472009-06-15 Jakub Jelinek <jakub@redhat.com>
9248
9249 * tree-object-size.c (addr_object_size): Fix a pasto in the last
9250 change.
9251
19751f1f
RAE
92522009-06-15 Rafael Avila de Espindola <espindola@google.com>
9253
9254 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
9255
d40eb158
AH
92562009-06-15 Aldy Hernandez <aldyh@redhat.com>
9257
9258 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
9259
92602009-06-15 Aldy Hernandez <aldyh@redhat.com>
9261
9262 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
9263
fc26fae3
RAE
92642009-06-15 Rafael Avila de Espindola <espindola@google.com>
9265
9266 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
9267 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
9268 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
9269 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
9270 * dwarf2asm.c (dw2_force_const_mem): Update call to
9271 make_decl_one_only.
fc26fae3
RAE
9272 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
9273 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
9274 * langhooks.c (lhd_comdat_group): Remove.
9275 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
9276 * tree.h (DECL_COMDAT_GROUP): New.
9277 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
9278 (tree_decl_with_vis): Add comdat_group. Remove one_only.
9279 (make_decl_one_only): Change signature.
9280 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
9281 make_decl_one_only.
9282 (make_decl_one_only): Change signature.
9283 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
9284
0eb92735
RG
92852009-06-15 Richard Guenther <rguenther@suse.de>
9286
9287 PR middle-end/40439
9288 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
9289
0ab352d5
AK
92902009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9291
9292 * tree-ssa-math-opts.c: Remove extra divide.
9293
677fbff4
AK
92942009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9295
9296 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
9297
03bd2f1a
AK
92982009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9299
9300 * passes.c: Add bswap pass.
9301 * tree-pass.h: Add pass_optimize_bswap declaration.
9302 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
9303 Include rtl.h, expr.h and optabs.h for optab_handler check.
9304 (struct symbolic_number, pass_optimize_bswap): New definition.
9305 (do_shift_rotate, verify_symbolic_number_p): New functions.
9306 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
9307 (gate_optimize_bswap): New function.
9308 * tree.c (widest_int_cst_value): New function.
9309 * tree.h (widest_int_cst_value): Prototype added.
9310
fb4c4640
SB
93112009-06-14 Steven Bosscher <steven@gcc.gnu.org>
9312
9313 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
9314 REG_EQUAL/REG_EQUIV notes.
9315
1d24fdd9
RG
93162009-06-14 Richard Guenther <rguenther@suse.de>
9317
9318 PR middle-end/40389
9319 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
9320 has its address taken if NRV was applied and it is addressable.
9321 * tree-ssa-structalias.c (get_constraint_for_address_of): New
9322 function split out from ...
9323 (get_constraint_for_1): ... here.
9324 (handle_rhs_call): Use it to mark the return slot escaped if
9325 it is addressable and NRV was applied.
9326
4b29c5e5
AH
93272009-06-13 Aldy Hernandez <aldyh@redhat.com>
9328
9329 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
9330 Change first argument type to location_t.
9331 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
9332 Do not set input_location.
9333 Use loc instead of input_location throughout.
9334
e1e6dc73
RG
93352009-06-13 Richard Guenther <rguenther@suse.de>
9336
1d24fdd9 9337 PR tree-optimization/40421
e1e6dc73
RG
9338 * tree-predcom.c (should_unroll_loop_p): Remove.
9339 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
9340
8012b923
MM
93412009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
9342
9343 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9344 Add location argument.
9345
4c4bde29
AH
93462009-06-13 Aldy Hernandez <aldyh@redhat.com>
9347
9348 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
9349 build_decl.
9350 * config/s390/s390.c (s390_build_builtin_va_list): Same.
9351 (s390_gimplify_va_arg): Pass location to create_artificial_label.
9352 * config/spu/spu-protos.h: Add location to
9353 spu_resolve_overloaded_builtin.
9354 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
9355 spu_build_builtin_va_list.
9356 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
9357 argument. Pass location to build_function_call_vec.
9358 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
9359 build_decl.
9360 (emit_fpu_switch): Same.
9361 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
9362 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
9363 to build_decl and create_artificial_label.
9364 (xtensa_gimplify_va_arg_expr): Same.
9365 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
9366 (xstormy16_gimplify_va_arg_expr): Same.
9367 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
9368 * config/arm/arm.c (arm_build_builtin_va_list): Same.
9369 * config/mips/mips.c (mips_build_builtin_va_list): Same.
9370 (mips16_build_function_stub): Same.
9371 (mips16_build_call_stub): Same.
9372
81beb031
RE
93732009-06-13 Richard Earnshaw <rearnsha@arm.com>
9374
9375 PR target/40327
9376 * arm/constraints.md (Pa, Pb): New constraints.
f100a4a8 9377 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
81beb031
RE
9378 split pattern to deal with them.
9379
98f6c600
JS
93802009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
9381
9382 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
9383 fix index entry for -Xpreprocessor.
9384
71856685
AH
93852009-06-12 Aldy Hernandez <aldyh@redhat.com>
9386
9387 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9388 Add location argument to build_decl call.
9389 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
9390 (rs6000_init_builtins): Same.
9391 (spe_init_builtins): Same.
9392 (rs6000_gimplify_va_arg): Add location argument to
9393 create_artificial_label call.
9394
756b65f5
SB
93952009-06-12 Steven Bosscher <steven@gcc.gnu.org>
9396
9397 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
9398 * combine-stack-adj.c (pass_stack_adjustments): Use it.
9399 * Makefile.in: Fix GGC dependency for gcse.o.
9400
c2255bc4
AH
94012009-06-12 Aldy Hernandez <aldyh@redhat.com>
9402
9403 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
9404 * gimple-pretty-print.c (dump_gimple_stmt): Same.
9405 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
9406 created.
9407 * c-parser.c (c_parser_binary_expression): Use current column while
9408 building binary operations.
9409 * common.opt (fshow-column): Enable by default.
9410 * tree-vrp.c (check_array_ref): Use warning_at.
9411 (check_array_bounds): Use location from call back if expr has no
9412 location.
9413 * tree.h: Add location argument to maybe_fold_*.
9414 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
9415 (maybe_fold_offset_to_array_ref): Add location argument and use it.
9416 (maybe_fold_offset_to_component_ref): Same.
9417 (maybe_fold_offset_to_reference): Same.
9418 (maybe_fold_offset_to_address): Same.
9419 (maybe_fold_stmt_indirect): Same.
9420 (maybe_fold_stmt_addition): Same.
9421 (fold_stmt_r): Pass location to maybe_fold_*.
9422 (fold_gimple_assign): Same.
9423 * c-tree.h: Add location argument to finish_decl,
9424 default_function_array_conversion, store_init_value.
9425 * c-decl.c (define_label): Use error_at.
9426 (c_make_fname_decl): Pass location to finish_decl.
9427 (finish_decl): New location argument.
9428 (build_compound_literal): Pass location to store_init_value.
9429 (grokdeclarator): Pass location to finish_decl.
9430 (grokfield): Same.
9431 * c-typeck.c (array_to_pointer_conversion): New location argument.
9432 (function_to_pointer_conversion): Same.
9433 (default_function_array_conversion): Same.
9434 (parser_build_unary_op): Pass location to overflow_warning.
9435 (parser_build_binary_op): Same. Use warning_at.
9436 (build_unary_op): Pass location to array_to_pointer_conversion.
9437 (build_c_cast): Pass location to digest_init.
9438 (build_modify_expr): New location argument.
9439 (convert_for_assignment): Same.
9440 (store_init_value): Same.
9441 (digest_init): Same.
9442 (output_init_element): Pass location to digest_init and
9443 array_to_pointer_conversion.
9444 (c_finish_return): Pass location to convert_for_assignment.
9445 * gimplify.c (gimplify_conversion): Pass location to
9446 maybe_fold_offset_to_address.
9447 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
9448 to maybe_fold_stmt_addition.
9449 * c-omp.c (c_finish_omp_atomic): Pass new location to
9450 build_modify_expr.
9451 (c_finish_omp_for): Same.
9452 * c-common.c (overflow_warning): New argument.
9453 * c-common.h: New argument to build_modify_expr, overflow_warning.
9454 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
9455 finish_decl.
9456 (c_parser_initializer): Pass location to
9457 default_function_array_conversion.
9458 (c_parser_initelt): Same.
9459 (c_parser_initval): Same.
9460 (c_parser_asm_operands): Same.
9461 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
9462 (c_parser_conditional_expression): Same.
9463 (c_parser_binary_expression): Add location info to stack. Use it.
9464 (c_parser_unary_expression): Pass location to
9465 default_function_array_conversion, parser_build_unary_op,
9466 build_indirect_ref, c_parser_postfix_expression_after_primary.
9467 (c_parser_postfix_expression_after_primary): New location argument.
9468 Use it.
9469 (c_parser_expression_conv): Pass location to
9470 default_function_array_conversion.
9471 (c_parser_expr_list): Same.
9472 (c_parser_omp_atomic): Same.
9473 (c_parser_omp_for_loop): Same.
9474 * c-tree.h: (struct c_declarator): Add comment to id_loc.
9475 (build_array_declarator): New argument.
9476 * c-decl.c (build_array_declarator): Add location argument.
9477 (grokdeclarator): Set id_loc for cdk_array.
9478 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
9479 build_array_declarator.
9480 * tree.c (build_omp_clause): Add location argument.
9481 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
9482 (OMP_CLAUSE_LOCATION): New macro.
9483 (struct tree_omp_clause): Add location field.
9484 (build_omp_clause): Add argument.
9485 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
9486 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
9487 build_omp_clause.
9488 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
9489 (cp_parser_omp_clause_collapse): Same.
9490 (cp_parser_omp_clause_default): Same.
9491 (cp_parser_omp_clause_if): Same.
9492 (cp_parser_omp_clause_nowait): Same.
9493 (cp_parser_omp_clause_num_threads): Same.
9494 (cp_parser_omp_clause_ordered): Same.
9495 (cp_parser_omp_clause_schedule): Same.
9496 (cp_parser_omp_clause_untied): Same.
9497 (cp_parser_omp_for_loop): Same.
9498 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
9499 * c-tree.h (c_start_case): Add location argument.
9500 (c_process_expr_stmt): Same.
9501 (c_finish_goto_*): Same.
9502 * tree-parloops.c (initialize_reductions): Pass location to
9503 build_omp_clause.
9504 (create_parallel_loop): Same.
9505 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
9506 (gfc_trans_omp_reduction_list): Same.
9507 (gfc_trans_omp_clauses): Same.
9508 (gfc_trans_omp_do): Same.
9509 * c-typeck.c (c_finish_goto_label): Same.
9510 (c_finish_goto_ptr): New location argument.
9511 (c_start_case): Same.
9512 (emit_side_effect_warnings): Same.
9513 (c_process_expr_stmt): Same.
9514 (c_finish_stmt_expr): Same.
9515 (c_finish_omp_clauses): Use error_at instead of error.
9516 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
9517 build_omp_clause.
9518 * c-omp.c (c_split_parallel_clauses): New location argument.
9519 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
9520 to build_omp_clause.
9521 (convert_local_reference_stmt): Same.
9522 (convert_gimple_call): Same.
9523 * c-common.h (c_split_parallel_clauses): New argument.
9524 * c-parser.c (c_parser_statement_after_labels): Pass location to
9525 c_finish_goto_label.
9526 (c_parser_switch_statement): Pass location to c_start_case.
9527 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
9528 and c_process_expr_stmt.
9529 (c_parser_omp_variable_list): Add location argument.
c637b0fa 9530 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
9531 (c_parser_omp_clause_default): Same.
9532 (c_parser_omp_clause_if): Same.
9533 (c_parser_omp_clause_num_threads): Same.
9534 (-c_parser_omp_clause_ordered): Same.
9535 (c_parser_omp_clause_reduction): Pass location to
9536 c_parser_omp_variable_list.
9537 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
9538 (c_parser_omp_clause_untied): Same.
9539 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 9540 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
9541
9542 * c-tree.h (check_for_loop_decls, undeclared_variable,
9543 build_component_ref, build_array_ref, build_external_ref,
9544 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
9545 build_conditional_expr, build_compound_expr, c_cast_expr,
9546 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
9547 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
9548 argument.
9549 * c-semantics.c (build_stmt): Same.
9550 (build_case_label): Same.
9551 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
9552 (undeclared_variable): New argument.
9553 (make_label): Same.
9554 (lookup_label): Pass location on down.
9555 (define_label): Same.
9556 (finish_decl): Same.
9557 (build_compound_literal): Same.
9558 (finish_struct): Same.
9559 (finish_function): Do not set location here.
9560 (check_for_loop_decls): New argument.
9561 * tree.c (save_expr): Set location.
9562 (build_empty_stmt): New argument.
9563 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
9564 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
9565 * builtins.c (gimplify_va_arg_expr): Use locations.
9566 (expand_builtin_sync_operation): Same.
9567 * c-typeck.c (build_component_ref): New argument.
9568 (build_array_ref): Same.
9569 (build_external_ref): Same.
9570 (c_expr_sizeof_expr): Same.
9571 (c_expr_sizeof_type): Same.
9572 (parser_build_unary_op): Same.
9573 (build_conditional_expr): Same.
9574 (build_compound_expr): Pass location on down.
9575 (build_compound_expr): New argument.
9576 (build_c_cast): Same.
9577 (c_cast_expr): Same.
9578 (build_asm_expr): Same.
9579 (c_finish_return): Same.
9580 (c_process_expr_stmt): Pass location on down.
9581 (c_finish_stmt_expr): New argument.
9582 (push_clenaup): Same.
9583 (c_finish_omp_parallel): Same.
9584 (c_finish_omp_task): Same.
9585 * gimplify.c (gimplify_call_expr): Pass location on down.
9586 * c-omp.c (c_finish_omp_master): New argument.
9587 (c_finish_omp_critical): Same.
9588 (c_finish_omp_ordered): Same.
9589 (c_finish_omp_barrier): Same.
9590 (-c_finish_omp_taskwait): Same.
9591 (c_finish_omp_atomic): Same.
9592 (c_finish_omp_flush): Same.
9593 * tree-inline.c (copy_tree_body_r): Pass location on down.
9594 (inline_forbidden_p): Remove use of input_location.
9595 * c-gimplify.c (c_build_bind_expr): New argument.
9596 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
9597 (c_sizeof_or_alignof_type): New argument.
9598 (c_alignof_expr): Same.
9599 (build_va_arg): Same.
9600 (c_add_case_label): Same.
9601 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
9602 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
9603 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
9604 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
9605 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
9606 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
9607 New argument.
9608 * stub-objc.c (objc_build_selector_expr): Same.
9609 (objc_build_throw_stmt): Same.
9610 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
9611 (c_parser_initelt): Same.
9612 (c_parser_compound_statement): Same.
9613 (c_parser_compound_statement_nostart): Same.
9614 (c_parser_label): Same.
9615 (c_parser_statement_after_labels): Same.
9616 (c_parser_if_body): Same.
9617 (c_parser_else_body): Same.
9618 (c_parser_if_statement): Same.
9619 (c_parser_switch_statement): Same.
9620 (c_parser_while_statement): Same.
9621 (c_parser_do_statement): Same.
9622 (c_parser_for_statement): Same.
9623 (c_parser_asm_statement): Same.
9624 (c_parser_conditional_expression): Same.
9625 (c_parser_binary_expression): Same.
9626 (c_parser_cast_expression): Same.
9627 (c_parser_unary_expression): Same.
9628 (c_parser_sizeof_expression): Same.
9629 (c_parser_alignof_expression): Same.
9630 (c_parser_postfix_expression): Same.
9631 (c_parser_expression): Same.
9632 (c_parser_objc_receiver): Same.
9633 (c_parser_omp_variable_list): Same.
9634 (c_parser_omp_structured_block): Same.
9635 (c_parser_omp_atomic): New argument.
9636 (c_parser_omp_barrier): Same.
9637 (c_parser_omp_critical): Same.
9638 (c_parser_omp_flush): Pass location on down.
9639 (c_parser_omp_for_loop): New argument.
9640 (c_parser_omp_for): Same.
9641 (c_parser_omp_master): Same.
9642 (c_parser_omp_ordered): Same.
9643 (c_parser_omp_sections_scope): Same.
9644 (c_parser_omp_sections): Same.
9645 (c_parser_omp_parallel): Same.
9646 (c_parser_omp_single): Same.
9647 (c_parser_omp_task): Same.
9648 (c_parser_omp_taskwait): Pass location on down.
9649 (c_parser_omp_construct): Same.
9650 (c_parser_omp_threadprivate): Same.
9651 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
9652 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
9653 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
9654 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
9655 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
9656 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
9657 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
9658 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
9659 config/i386/i386.c, stmt.c:
9660 Add location argument to the following function definitions and/or
9661 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
9662 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
9663 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
9664 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
9665 do_case, c_finish_bc_stmt, build_compound_literal,
9666 build_function_call.
9667 * c-decl.c (build_compound_literal): Add location argument.
9668 Make all diagnostic calls use location.
9669 (start_struct): Same.
9670 (finish_struct): Same.
9671 (start_enum): Same.
9672 (build_enumerator): Same.
9673 (start_function): Same.
9674 (grokdeclarator): Make all diagnostic calls use location.
9675 (store_parm_decls_oldstyle): Same.
9676 * c-typeck.c (build_function_call): Add location argument.
9677 Make all diagnostic calls use location.
9678 (do_case): Same.
9679 (c_finish_bc_stmt): Same.
9680 * tree-nested.c (get_trampoline_type): Add argument.
9681 Pass location to build_decl.
9682 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
9683 * rtl.h (RTL_LOCATION): New.
9684 * c-common.c (c_add_case_label): Add location argument.
9685 Make all diagnostic calls use location.
9686 * c-common.h: Add location argument to make_fname_decl, do_case,
9687 c_add_case_label, build_function_call, resolve_overloaded_builtin.
9688 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
9689 Set it appropriately for every case. Pass enum_loc to start_enum
9690 call. Pass value_loc first to build_enumerator. Pass enum_loc to
9691 parser_xref_tag.
9692 (c_parser_struct_or_union_specifier): Save location. Use it for
9693 start_struct, finish_struct, and parser_xref_tag.
9694
3d8b2a98
ILT
96952009-06-12 Ian Lance Taylor <iant@google.com>
9696
c637b0fa 9697 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
9698
9699 * c-opts.c (c_common_handle_option): For -Wc++-compat set
9700 cpp_opts->warn_cxx_operator_names.
9701
737142ce
AP
97022009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
9703
9704 PR tree-opt/38865
9705 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
9706 is returns NULL and OP is a VCE, look through the VCE.
9707
d3a0d55d
ILT
97082009-06-12 Ian Lance Taylor <iant@google.com>
9709
9710 PR bootstrap/40430
9711 * collect2.c (main): Use CONST_CAST2 in code inside #if
9712 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
9713
f85882d8
JY
97142009-06-12 Joey Ye <joey.ye@intel.com>
9715
9716 PR middle-end/39146
9717 * cfgexpand.c (get_decl_align_unit): Update
9718 max_used_stack_slot_alignment with align instead of
9719 stack_alignment_needed.
9720
9721 * function.c (assign_stack_local_1): Update
9722 max_used_stack_slot_alignment with alignment_in_bits instead
9723 of stack_alignment_needed.
9724 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
9725 here.
9726
fc9f468b
JJ
97272009-06-12 Jakub Jelinek <jakub@redhat.com>
9728
9729 * dwarf2out.c (last_var_location_insn): New variable.
9730 (dwarf2out_end_epilogue): Clear last_var_location_insn.
9731 (dwarf2out_var_location): Don't record anything after last real
9732 insn. Only change labels if there were any real instructions
9733 in between last note and this one, or if changed sections.
9734
7c1db202
RH
97352009-06-11 Richard Henderson <rth@redhat.com>
9736
f85882d8 9737 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
9738 note when storing the frame pointer in a register.
9739 (FRP): Don't redefine to nothing for epilogue.
9740 (alpha_expand_epilogue): Mark register and sp restores.
9741 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
9742
7c1db202
RH
9743 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
9744 when gen_lowpart is needed.
9745
f2ae7631
RH
97462009-06-11 Richard Henderson <rth@redhat.com>
9747
42755c21
RH
9748 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
9749
f2ae7631
RH
9750 * dwarf2out.c (need_data_align_sf_opcode): New.
9751 (div_data_align): Move earlier.
9752 (def_cfa_1, reg_save): Use it.
9753
8ed0ce99
L
97542009-06-11 H.J. Lu <hongjiu.lu@intel.com>
9755
9756 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
9757 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
9758 (ix86_handle_option): Handle OPT_mcrc32.
9759 (ix86_target_string): Add -mcrc32.
9760 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
9761
9762 * config/i386/i386.h (TARGET_CRC32): New.
9763
c637b0fa 9764 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
9765 (sse4_2_crc32di): Likewise.
9766
c637b0fa 9767 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
9768
9769 * doc/invoke.texi: Document -mcrc32.
9770
9fd68a1f
RH
97712009-06-11 Richard Henderson <rth@redhat.com>
9772
8ed0ce99 9773 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
9774 * doc/invoke.texi (gdwarf-): Update docs.
9775 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
9776 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
9777 version level, and record it.
9778
9779 * dwarf2.h (DW_CIE_VERSION): Remove.
9780 * dwarf2out.c (DWARF_VERSION): Remove.
9781 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
9782 (output_call_frame_info): Use CIE version 3 for dwarf3,
9783 or if the return register column is out of range for version 1.
9784 (dwarf_stack_op_name): Add all dwarf3 values.
9785 (DEBUG_PUBTYPES_SECTION): New.
9786 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
9787 encoding change for dwarf3.
9788 (output_die) [dw_val_class_die_ref]: Likewise.
9789 (output_compilation_unit_header): Emit correct version for dwarf3.
9790 (output_line_info): Likewise.
9791 (output_pubnames): Update for DWARF_VERSION removal.
9792 (output_aranges): Likewise.
9793 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
9794 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
9795 (dwarf2out_finish): Likewise.
9796
4de8ce3b
DD
97972009-06-11 David Daney <ddaney@caviumnetworks.com>
9798
9799 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
9800 in r148403.
9801
468059bc
DD
98022009-06-11 David Daney <ddaney@caviumnetworks.com>
9803
9804 PR c/39252
9805 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
9806 * builtins.c (expand_builtin_unreachable): New function.
9807 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
9808 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
9809 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
9810 successors.
9811 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
9812 searching for missing barriers.
9813
b5a6e96f
FXC
98142009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9815
9816 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
9817 when -fprofile-generate* was passed.
9818 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
9819
6be6462e
AG
98202009-06-11 Anthony Green <green@moxielogic.com>
9821
c637b0fa 9822 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
9823 (rCC): Define.
9824 (*b<cond:code>): Support limited branch ranges for new PC-relative
9825 branch instructions.
9826 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
9827
caaabe0a
JJ
98282009-06-11 Jakub Jelinek <jakub@redhat.com>
9829
e5219642
JJ
9830 * config/i386/i386.c (min_insn_size): Use get_attr_length
9831 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
9832 For __asm return 0.
9833
caaabe0a
JJ
9834 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
9835 instead of emit_insn_before.
9836
a567fa6a
ILT
98372009-06-10 Ian Lance Taylor <iant@google.com>
9838
9839 PR bootstrap/40408
9840 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
9841 GIMPLE_SWITCH.
9842
6a753d5f
RE
98432009-06-10 Revital Eres <eres@il.ibm.com>
9844
9845 * passes.c (init_optimization_passes): Reschedule
9846 predictive-commoning pass before complete unroll pass.
9847
a550d677
MJ
98482009-06-10 Martin Jambor <mjambor@suse.cz>
9849
9850 * cgraph.c (cgraph_node_can_be_local_p): New function.
9851 (cgraph_make_node_local): New function.
9852 * cgraph.h (cgraph_node_can_be_local_p): Declare.
9853 (cgraph_make_node_local): Declare.
9854
d8259b07
NF
98552009-06-10 Nathan Froyd <froydnj@codesourcery.com>
9856
9857 * tree.h (tree_base): Add packed_flag and user_align fields.
9858 Decrease size of spare field.
9859 (TYPE_USER_ALIGN): Use user_align from tree_base.
9860 (DECL_USER_ALIGN): Likewise.
9861 (TYPE_PACKED): Use packed_flag from tree_base.
9862 (DECL_PACKED): Likewise.
9863 (tree_type): Delete packed_flag and user_align fields. Widen
9864 precision field. Widen mode field and shuffle fields to align
9865 mode on an 8-bit boundary.
9866 (tree_decl_common): Delete decl_flag_1 and user_align fields.
9867 Renumber decl_flag_* fields. Fix comments. Widen
9868 decl_common_unused field.
c637b0fa 9869 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
9870 (DECL_EXTERNAL): Likewise.
9871 (DECL_BIT_FIELD): Likewise.
9872 (DECL_NONADDRESSABLE_P): Likewise.
9873 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
9874 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
9875
c2569604
ILT
98762009-06-10 Ian Lance Taylor <iant@google.com>
9877
9878 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
9879 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
9880 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
9881 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
9882 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
9883 DEF_VEC_ALLOC_FUNC_P.
9884 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
9885 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
9886 DEF_VEC_ALLOC_FUNC_O.
9887 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
9888 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
9889 DEF_VEC_ALLOC_FUNC_I.
9890 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
9891 (vec_stack_p_reserve_exact_1): Declare.
9892 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
9893 (vec_stack_free): Declare.
9894 (VEC_stack_alloc): Define.
9895 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
9896 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
9897 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
9898 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
9899 for void_p.
9900 (stack_vecs): New static variable.
9901 (vec_stack_p_reserve_exact_1): New function.
9902 (vec_stack_o_reserve_1): New static function.
9903 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
9904 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
9905 (vec_stack_free): New function.
9906 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
9907 (VEC_df_ref_stack_alloc): Define.
9908 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
9909 DEF_VEC_ALLOC_P_STACK.
9910 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
9911 (struct df_collection_rec): Change _vec fields to VEC. Remove
9912 _use fields.
9913 (df_free_collection_rec): Adjust for new fields.
9914 (df_insn_rescan): Use new df_collection_rec fields.
9915 (df_notes_rescan, df_canonize_collection_rec): Likewise.
9916 (df_ref_create_structure, df_ref_record): Likewise.
9917 (df_get_conditional_uses, df_get_call_refs): Likewise.
9918 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
9919 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
9920 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 9921 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
9922 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
9923 Remove count parameter. Change return type to void. Change all
9924 callers.
9925 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
9926 Remove count parameter. Change return type to void. Change all
9927 callers.
9928 (df_install_refs): Change old_vec parameter to VEC. Remove count
9929 parameter. Change all callers.
9930 (df_install_mws): Change old_vec parameter to VEC. Remove count
9931 parameter. Change all callers.
9932 (df_refs_verify): Change new_rec parameter to VEC. Change call
9933 callers.
9934 (df_mws_verify): Likewise.
9935
e7aae3e8
AO
99362009-06-10 Alexandre Oliva <aoliva@redhat.com>
9937
9938 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
9939
412ac8d5
L
99402009-06-10 H.J. Lu <hongjiu.lu@intel.com>
9941
9942 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
9943
cceb575c
AG
99442009-06-10 Anthony Green <green@moxielogic.com>
9945
9946 * config/moxie/crti.asm: New file.
9947 * config/moxie/crtn.asm: New file.
9948 * config/moxie/moxie.c: New file.
9949 * config/moxie/moxie.h: New file.
9950 * config/moxie/sfp-machine.h: New file.
9951 * config/moxie/moxie-protos.h: New file.
9952 * config/moxie/t-moxie: Created.
9953 * config/moxie/t-moxie-softfp: Created.
9954 * config/moxie/moxie.md: Created.
9955 * config/moxie/constraints.md: Created.
9956 * config.gcc: Add moxie support.
9957 * doc/md.texi (Machine Constraints): Add moxie constraints.
9958 * doc/contrib.texi (Contributors): Mention moxie port.
9959 * doc/install.texi (Specific): Mention the moxie port.
9960
bf406687
ILT
99612009-06-09 Ian Lance Taylor <iant@google.com>
9962
9963 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
9964 compiling with C++.
9965 * optabs.c (optab_table): Only use designated initializers if
9966 HAVE_DESIGNATED_INITIALIZERS is defined.
9967 (convert_optab_table): Likewise.
9968 (init_optabs): Always call init_insn_codes if
9969 HAVE_DESIGNATED_INITIALIZERS is not defined.
9970
744aa42f
ILT
99712009-06-09 Ian Lance Taylor <iant@google.com>
9972
9973 * targhooks.c (default_builtin_vectorized_function): Change fn
9974 parameter to unsigned int.
9975 (default_builtin_vectorized_conversion): Change code parameter to
9976 unsigned int.
9977 (default_builtin_reciprocal): Change fn parameter to unsigned int.
9978 * targhooks.h: Update declarations.
9979 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
9980 parameter to unsigned int.
9981
9982 * c-typeck.c (comptypes_check_enum_int): New static function.
9983 (comptypes_internal): Add enum_and_int_p parameter. Change all
9984 callers.
9985 (comp_target_types): Add location parameter. Change all callers.
9986 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
9987 Change all callers.
9988 (function_types_compatible_p, type_lists_compatible_p): Likewise.
9989 (build_conditional_expr): Add colon_loc parameter. Change all
9990 callers.
c637b0fa 9991 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
9992 * c-parser.c (c_parser_conditional_expression): Pass location of
9993 colon to build_conditional_expr.
9994 * c-tree.h (build_conditional_expr): Update declaration.
9995
bcbe3b25
SP
99962009-06-09 Sebastian Pop <sebastian.pop@amd.com>
9997
9998 * graphite.c: Revert previous patch.
9999
dc2a6925
SP
100002009-06-09 Sebastian Pop <sebastian.pop@amd.com>
10001
10002 PR bootstrap/40103
10003 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
10004
d81f5387
GS
100052009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
10006
8ed0ce99
L
10007 * tree-ssa-loop-prefetch.c
10008 (loop_prefetch_arrays): Fixed a portability problem in printf format
10009 string.
d81f5387 10010
8056eb4f
MJ
100112009-06-09 Martin Jambor <mjambor@suse.cz>
10012
10013 PR tree-optimization/40351
c637b0fa
UB
10014 * tree-sra.c (propagate_subacesses_accross_link): Check that a
10015 refrence to a potential artifical subaccess can be constructed.
8056eb4f 10016
bd9a3465
KK
100172009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
10018
10019 * config/sh/sh-protos.h (sh_optimization_options): Declare.
10020 (sh_override_options): Likewise.
10021 * config/sh/sh.c: Include params.h.
10022 (sh_optimization_options): New.
10023 (sh_override_options): Likewise.
10024 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
10025 (OVERRIDE_OPTIONS): Use sh_override_options.
10026
8845deab
JJ
100272009-06-08 Jakub Jelinek <jakub@redhat.com>
10028
10029 * dwarf2out.c (emit_cfa_remember): New variable.
10030 (add_fde_cfi): If emit_cfa_remember, recurse to add
10031 DW_CFA_remember_state first.
10032 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
10033 instead just set emit_cfa_remember.
10034
9ea81b0c
JH
100352009-06-08 Jan Hubicka <jh@suse.cz>
10036
10037 PR debug/40126
10038 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
10039
21ecdec5
JH
100402009-06-08 Jan Hubicka <jh@suse.cz>
10041
10042 PR middle-end/39834
c637b0fa
UB
10043 * cgraphunit.c (save_inline_function_body): Do not copy transform
10044 hooks for saved inline bodies.
21ecdec5
JH
10045 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
10046 for given function.
10047
72e48218
AN
100482009-06-08 Adam Nemet <anemet@caviumnetworks.com>
10049
10050 * jump.c (returnjump_p): Handle delayed branches. Add missing
10051 function comment.
10052
6ce2002b
JH
100532009-06-08 Jan Hubicka <jh@suse.cz>
10054
10055 PR middle-end/40102
10056 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
10057 original node might've been modified.
10058 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
10059
eb9ed98a
JJ
100602009-06-08 Jakub Jelinek <jakub@redhat.com>
10061
10062 * tree-object-size.c (addr_object_size): Add OSI argument.
10063 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
10064 (compute_builtin_object_size, expr_object_size): Adjust callers.
10065 (plus_stmt_object_size): Call addr_object_size instead of
10066 compute_builtin_object_size.
10067
db34470d 100682009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 10069 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
f100a4a8
UB
10070
10071 * tree-ssa-loop-prefetch.c
10072 (gather_memory_references): Introduced a counter for the number of
db34470d 10073 memory references.
f100a4a8 10074 (anything_to_prefetch_p): Introduced a counter for the number of
db34470d 10075 prefetches.
f100a4a8 10076 (is_loop_prefetching_profitable): New function with a cost model
db34470d 10077 for prefetching.
f100a4a8 10078 (loop_prefetch_arrays): Use the new cost model to determine if
db34470d 10079 prefetching is profitable.
f100a4a8 10080 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
db34470d 10081 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 10082 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
db34470d 10083 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 10084 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
db34470d 10085 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 10086
eb7adebc
MM
100872009-06-08 Michael Matz <matz@suse.de>
10088
10089 PR debug/40012
eb7adebc
MM
10090 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
10091 partitions use the same.
10092 (expand_one_var): Deal with DECL_RTL sometimes begin set also
10093 for basevars of SSA_NAMEs.
10094 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
10095 to not expand them twice.
10096 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
10097 multiple places.
10098
2153915d
AO
100992009-06-08 Alexandre Oliva <aoliva@redhat.com>
10100
10101 * common.opt (fcompare-debug=, fcompare-debug-second): New.
10102 (fdump-final-insns=, gtoggle): New.
10103 * doc/invoke.texi: Document them.
10104 * final.c (rest_of_clean_state): Dump final insn stream.
10105 * gcc.c (invoke_as): Hook in -fcompare-debug.
10106 (static_spec_functions): Add compare-debug-dump-opt,
10107 compare-debug-self-opt and compare-debug-auxbase-opt.
10108 (compare_debug, compare_debug_second, compare_debug_opt): New.
10109 (switches_debug_check, n_switches_debug_check): New.
10110 (debug_auxbase_opt, debug_check_temp_file): New.
10111 (process_command): Handle -fno-compare-debug, -fcompare-debug and
10112 -fcompare-debug=*.
10113 (do_self_spec): Handle arguments after switches.
10114 (do_spec_1): Add .gk extension to temp file basenames for compare.
10115 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
10116 (cc1_options): Use it instead of normal auxbase computation for
10117 the second compare-debug compilation.
10118 (compare_files): New.
10119 (main): Set up and implement compare debug mode.
10120 (compare_debug_dump_opt_spec_function): New.
10121 (compare_debug_self_opt_spec_function): New.
10122 (compare_debug_auxbase_opt_spec_function): New.
10123 * toplev.c (process_options): Handle flag_gtoggle,
10124 flag_dump_final_insns.
10125 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
10126 during -fcompare-debug-second compilation.
10127
cdb88468
ILT
101282009-06-07 Ian Lance Taylor <iant@google.com>
10129
c637b0fa 10130 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
10131 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
10132
10133 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
10134 with no default node. Change warning with %H to warning_at.
10135 Don't clear warn_switch around case checking.
10136 * doc/invoke.texi (Warning Options): Clarify distinction between
10137 -Wswitch and -Wswitch-enum.
10138
4fe8e1a2
BRF
101392009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10140
10141 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
10142
69952c1d
BRF
101432009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10144
10145 * gbl-ctors.h: Add header guard.
10146
b2ad0284
BRF
101472009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10148
10149 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
10150 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
10151 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
10152 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
10153 prototypes for removed functions.
10154 (expressions_equal_p): Move to ...
10155 * tree-ssa-sccvn.h: ... here and ...
10156 * matrix-reorg.c: ... adjust includes.
10157
c3df55f9
BRF
101582009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10159
10160 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
10161
b5a7159f
BRF
101622009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10163
10164 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
10165 (finish_function): Remove erroneous whitespace.
10166
95bca6b0
BRF
101672009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10168
2cd713a0
BRF
10169 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
10170 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
10171
101722009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10173
10174 * errors.c (internal_error): Commentary typo fix.
10175 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
10176 * tree-ssa-pre.c: Ditto.
95bca6b0 10177
2cd713a0
BRF
101782009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10179
10180 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
10181 them is supposed to hold actual statements.
10182
5bca4e80
ILT
101832009-06-06 Ian Lance Taylor <iant@google.com>
10184
10185 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
10186 empty statements can now have attributes.
10187
47ac44d6
SZ
101882009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
10189
10190 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
10191 * config/mips/mips.md: Ditto.
10192
19b905ce
NF
101932009-06-05 Nathan Froyd <froydnj@codesourcery.com>
10194
10195 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
10196 _RELOCATABLE.
10197 (__eabi_uconvert): Likewise.
10198
16702e19
NF
101992009-06-05 Nathan Froyd <froydnj@codesourcery.com>
10200
10201 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
10202 CFI_* definitions with IN_GCC.
10203
a735afd1
DE
102042009-06-05 David Edelsohn <edelsohn@gnu.org>
10205
10206 * xcoffout.h (xcoffout_source_line): Update prototype.
10207
26a347c5
KG
102082009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10209
10210 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
10211 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
10212
9f706f23
JJ
102132009-06-05 Jakub Jelinek <jakub@redhat.com>
10214
10215 PR middle-end/40340
10216 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
10217 inlined_function_outer_scope_p blocks for artificial inlines
10218 even at -g0/-g1.
10219 * tree.c (tree_nonartificial_location): Rewrite using
10220 block_nonartificial_location.
10221
8f439681
RE
102222009-06-05 Revital Eres <eres@il.ibm.com>
10223 Leehod Baruch <leehod@il.ibm.com>
10224
10225 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
10226 (expand_expr_real_1): Remove comment.
10227 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
10228 Vectorize misaligned access when the target supports it.
c637b0fa 10229 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
10230 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
10231 and remove asset.
10232
b89f8e3c
JB
102332009-06-05 Julian Brown <julian@codesourcery.com>
10234
10235 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
10236 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
10237
47d1f191
RG
102382009-06-05 Richard Guenther <rguenther@suse.de>
10239
10240 PR bootstrap/40350
10241 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
10242 as possibly unused.
10243
9f706f23 102442009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
10245
10246 * config/s390/s390.c (global_not_special_regno_p): New static inline.
10247 (save_gprs): Don't tell unwinder when a global register is saved.
10248 (s390_emit_epilogue): Emit needed epilogue unwind info.
10249
90f06248
AO
102502009-06-05 Alexandre Oliva <aoliva@redhat.com>
10251
10252 * dwarf2out.c (deferred_asm_name): New.
10253 (add_name_and_src_coords_attributes): Defer creation of
10254 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
10255 computed yet.
10256 (move_linkage_attr): New.
10257 (dwarf2out_finish): Revisit deferrals and emit attributes at the
10258 right place.
10259
c10348e5
AO
102602009-06-05 Alexandre Oliva <aoliva@redhat.com>
10261
10262 * tree-nested.c (finalize_nesting_tree_1): Declare the
10263 frame_decl in the binding tree.
10264
6c52e687
CC
102652009-06-04 Cary Coutant <ccoutant@google.com>
10266
10267 * basic-block.h (struct basic_block_def): Add discriminator field.
10268 * dbxout.c (dbxout_source_line): Add new parameter. Change all
10269 callers.
10270 * debug.c (do_nothing_debug_hooks): Add additional entry.
10271 (debug_nothing_int_charstar_int): New function.
c637b0fa 10272 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
10273 (debug_nothing_int_charstar_int): New declaration.
10274 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
10275 discriminator value in .loc directive.
10276 * final.c (last_discriminator): New variable.
10277 (discriminator): New variable.
10278 (final_start_function): Initialize above variables, pass current
10279 discriminator to debug hook.
10280 (notice_source_line): Check for discriminator change.
10281 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
10282 * sdbout.c (sdbout_source_line): New parameter.
10283 * tree-cfg.c (struct locus_discrim_map): New structure type.
10284 (discriminator_per_locus): New hash table.
10285 (build_gimple_cfg): Allocate and free discriminator hash table.
10286 (make_edges): Call assign_discriminator.
10287 (locus_map_hash): New function.
10288 (locus_map_eq): New function.
10289 (next_discriminator_for_locus): New function.
10290 (same_line_p): New function.
10291 (assign_discriminator): New function.
10292 (make_cond_expr_edges): Call assign_discriminator.
10293 (make_gimple_switch_edges): Likewise.
10294 (first_non_label_stmt): New function.
10295 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
10296 all callers.
10297 * xcoffout.c (xcoffout_source_line): Add new parameter.
10298
10299 * configure.ac (gcc_cv_as_discriminator): New configury check for
10300 gas support for discriminator.
10301 * configure: Regenerate.
10302 * config.in: Regenerate.
10303
e07e020b
RR
103042009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10305
10306 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
10307 val after checking for integers.
10308
72fa3605
UB
103092009-06-04 Uros Bizjak <ubizjak@gmail.com>
10310
10311 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
10312 X64_REGPARM_MAX.
10313 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
10314 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
10315 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
10316 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
10317 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
10318 X64_SSE_REGPARM_MAX.
10319 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
10320 X64_SSE_REGPARM_MAX.
10321
bdde878c
AO
103222009-06-04 Alexandre Oliva <aoliva@redhat.com>
10323
10324 * gcc.c (report_times_to_file): New.
10325 (execute): Implement it.
10326 (process_command): Support -time=.
10327 * doc/invoke.texi: Document it.
10328
2ce59df7
AO
103292009-06-04 Alexandre Oliva <aoliva@redhat.com>
10330
10331 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
10332 that have value exprs.
10333
78bd9046
AO
103342009-06-04 Alexandre Oliva <aoliva@redhat.com>
10335
10336 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
10337 declarations for constants until...
10338 (dw2_output_indirect_constant_1): ... this point.
10339
e63d4106
RE
103402009-06-04 Richard Earnshaw <rearnsha@arm.com>
10341
10342 PR target/10242
10343 * arm.md (arm_addsi3): Don't try to split an add with an
10344 eliminable register until after reload has completed.
10345
6bc7bc14
ILT
103462009-06-03 Ian Lance Taylor <iant@google.com>
10347
10348 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
10349 * genattrtab.c (write_length_unit_log): Likewise.
10350 * genchecksum.c (dosum): Likewise.
10351 * gengtype.c (write_rtx_next): Likewise.
10352 (finish_root_table, write_roots): Likewise.
10353 * gimple.c (gimple_ops_offset_): Likewise.
10354 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
10355 * config/arc/arc.c (arc_attribute_table): Likewise.
10356 * config/arm/arm.c (arm_attribute_table): Likewise.
10357 * config/avr/avr.c (avr_attribute_table): Likewise.
10358 * config/crx/crx.c (crx_attribute_table): Likewise.
10359 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
10360 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
10361 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
10362 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
10363 * config/sh/sh.c (sh_attribute_table): Likewise.
10364 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
10365 * config/spu/spu.c (spu_attribute_table): Likewise.
10366 * config/v850/v850.c (v850_attribute_table): Likewise.
10367
10368 * config/alpha/alpha.c (vms_attribute_table): Make static.
10369 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
10370 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
10371 * config/mips/mips.c (mips_attribute_table): Likewise.
10372
10373 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
10374 $(SYSTEM_H).
10375 (cc1-checksum.o): Likewise.
10376
19d892fd
SE
103772009-06-03 Steve Ellcey <sje@cup.hp.com>
10378
10379 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
10380
679f3354
JJ
103812009-06-03 Jakub Jelinek <jakub@redhat.com>
10382
ff35822b
JJ
10383 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
10384 insn if it is changing sp. Use gen_add3_insn instead of
10385 conditionally gen_addsi3 and gen_adddi3.
10386 (offset_below_red_zone_p): New static inline function.
10387 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
10388 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
10389 * config/rs6000/ppc-asm.h: Include auto-host.h.
10390 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
10391 CFI_RESTORE): Define.
10392 * config/rs6000/crtresxgpr.asm: Add unwind info.
10393 * config/rs6000/crtresxfpr.asm: Likewise.
10394 * config/rs6000/crtresgpr.asm: Likewise.
10395 * config/rs6000/crtresfpr.asm: Likewise.
10396 * config/rs6000/crtsavgpr.asm: Likewise.
10397 * config/rs6000/crtsavfpr.asm: Likewise.
10398
dc6707b8
UB
10399 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
10400 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 10401
2e94c12d
JB
104022009-06-03 Julian Brown <julian@codesourcery.com>
10403
10404 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
10405 words or less (including TImode) in core registers.
10406
3111cce0
RG
104072009-06-03 Richard Guenther <rguenther@suse.de>
10408
10409 PR middle-end/40328
10410 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
10411
5e1b50f6
AB
104122009-06-03 Andrey Belevantsev <abel@ispras.ru>
10413
f100a4a8 10414 * statistics.c (statistics_counter_event): Do not record event
5e1b50f6 10415 in pass dump if its number == -1.
f100a4a8 10416 (curr_statistics_hash): Add assert that we never get passes
5e1b50f6
AB
10417 with static number == -1.
10418
6f11d690
RG
104192009-06-03 Richard Guenther <rguenther@suse.de>
10420 Andrey Belevantsev <abel@ispras.ru>
10421
f100a4a8 10422 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
6f11d690
RG
10423 non-BLKmode arrays addressable.
10424
88961471
MK
104252009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
10426
10427 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
10428 * config/m68k/m68k.h: ... here.
10429 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
10430 m68k and fido.
10431
9961eb45
MJ
104322009-06-03 Martin Jambor <mjambor@suse.cz>
10433
10434 PR tree-optimization/40323
10435 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
10436 assignment.
10437
2f2c62a0
RG
104382009-06-03 Richard Guenther <rguenther@suse.de>
10439
10440 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
10441 consistently.
10442
d6ced3b7
SZ
104432009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
10444
10445 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
10446 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
10447 JUMP_TABLE_DATA_P where applicable.
10448 * config/sh/sh.c: Ditto.
10449 * config/sh/sh.h: Ditto.
10450 * config/sh/sh.md: Ditto.
10451 * config/sh/symbian.c: Ditto.
10452
f3afc8a7
UB
104532009-06-03 Uros Bizjak <ubizjak@gmail.com>
10454
10455 * config/i386/driver-i386.c (describe_cache): Optimize
10456 concatenation of strings. Use snprintf instead of sprintf.
10457 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
10458 target when not compiling with GCC.
10459
1964788a
KK
104602009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
10461
10462 * config/sh/sh.c: Revert last change.
10463 (sh_expand_epilogue): Emit a blockage insn before the frame
10464 pointer adjustment unconditionally.
10465
8633c315
RS
104662009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
10467
10468 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
10469 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
10470 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
10471 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
10472 to COLLECT_GCC_OPTIONS.
10473
781a1758
RS
104742009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
10475
10476 * collect2.c (target_system_root): New variable.
10477 (main): Handle --sysroot=.
10478 (ignore_library): Strip the sysroot from the library path.
10479
dfb636dc
RS
104802009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
10481
10482 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
10483 (collect2.o): Depend on collect2-aix.h.
10484 (collect2-aix.o): New rule.
10485 * collect2-aix.h: New file.
10486 * collect2-aix.c: Likewise.
10487 * collect2.c: Include collect2-aix.h. Don't undefine
10488 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
10489 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
10490 Use TARGET_AIX_VERSION instead of _AIX51.
10491 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
10492 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
10493 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
10494 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
10495 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
10496
51136ae8
RS
104972009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
10498
10499 * collect2.c (ignore_library): Avoid premature post-increment
10500 and null deference.
10501
7f142d33
RS
105022009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
10503
10504 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
10505 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
10506 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
10507 CROSS_DIRECTORY_STRUCTURE too.
10508 (LINK_LIBG_SPEC): Likewise.
10509 (LIB_SPEC): Add %R to sysroot paths.
10510 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
10511 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
10512 * config/rs6000/aix51.h: As for aix43.h.
10513 * config/rs6000/aix52.h: Likewise.
10514 * config/rs6000/aix53.h: Likewise.
10515 * config/rs6000/aix61.h: Likewise.
10516 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
10517 to the beginning of sysroot paths.
10518
9e74b7d2
AO
105192009-06-02 Alexandre Oliva <aoliva@redhat.com>
10520
10521 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
10522 INSN_LISTs that are out of the REG_NOTE range.
10523
a9f6ecee
AO
105242009-06-02 Alexandre Oliva <aoliva@redhat.com>
10525
10526 * loop-unroll.c (struct iv_to_split): Add pointer to next.
10527 (struct var_to_expand): Likewise.
10528 (struct opt_info): Add head and tail for linked lists of the above.
10529 (analyze_insn_to_expand_var): Initialize next.
10530 (analyze_iv_to_split_insn): Likewise.
10531 (analyze_insns_in_loop): Create linked lists.
10532 (allocate_basic_variable): Simplify for use without hash table.
10533 (insert_var_expansion_initialization): Likewise, make it type-safer.
10534 (combine_var_copies_in_loop_exit): Likewise.
10535 (apply_opt_in_copies): Walk lists rather than hash tables.
10536 (release_var_copies): Simplified and inlined by hand into...
10537 (free_opt_info): ... this function.
10538
69596c69
RG
105392009-06-02 Richard Guenther <rguenther@suse.de>
10540
10541 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
10542 for field decls.
10543
fe8a7779
AO
105442009-06-02 Alexandre Oliva <aoliva@redhat.com>
10545
10546 * cfgexpand.c (gimple_expand_cfg): Discard the source location
10547 only for builtins that are not overridden.
10548
1bcca2c5
AO
105492009-06-02 Alexandre Oliva <aoliva@redhat.com>
10550
10551 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
10552 label string.
10553
8588f797
AO
105542009-06-02 Alexandre Oliva <aoliva@redhat.com>
10555
10556 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
10557
45f39d78
AO
105582009-06-02 Alexandre Oliva <aoliva@redhat.com>
10559
10560 * combine.c (move_deaths): Compare LUIDs within the same BB only.
10561
2aa7c49b
AO
105622009-06-02 Alexandre Oliva <aoliva@redhat.com>
10563
10564 * common.opt (fdump-unnumbered-links): New.
10565 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
10566 * print-rtl.c (flag_dump_unnumbered_links): New.
10567 (print_rtx): Test it.
10568
55b2829b
RE
105692009-06-02 Richard Earnshaw <rearnsha@arm.com>
10570
10571 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
10572 push/pop multiple to 8-byte alignment.
e63d4106 10573
6c0d7021
JJ
105742009-06-01 Jakub Jelinek <jakub@redhat.com>
10575
0aa34d44
JJ
10576 * config/i386/i386.c (queued_cfa_restores): New static variable.
10577 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
10578 functions.
10579 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
10580 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
10581 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
10582 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
10583 note unconditionally.
10584 (ix86_emit_restore_regs_using_mov): Likewise.
10585 (ix86_emit_restore_sse_regs_using_mov): Likewise.
10586 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
10587 it through to ix86_emit_restore_reg_using_pop.
10588 (ix86_emit_leave): Add RED_OFFSET argument. Call
10589 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
10590 instead of adding REG_CFA_OFFSET note unconditionally.
10591 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
10592 the above functions. Call ix86_add_queued_cfa_restore_notes when
10593 needed.
10594
10595 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
10596 force output of the label even for dwarf2out_do_cfi_asm.
10597 (add_fde_cfi): If -g2 and above and cfi might change CFA,
10598 force creation of CFI label and chain DW_CFA_set_loc jumping to it
10599 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
10600 caller.
10601 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
10602 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
10603 dwarf2out_cfi_label callers.
10604 * tree.h (dwarf2out_cfi_label): Adjust prototype.
10605 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
10606 Adjust dwarf2out_cfi_label callers.
10607 * config/vax/vax.c (vax_output_function_prologue): Likewise.
10608
604a6be9
JJ
10609 * config/i386/i386.h (struct machine_cfa_state,
10610 struct machine_function): Guard with ifndef USED_FOR_TARGET
10611 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
10612
df0026a7
JJ
10613 PR other/40024
10614 * emutls.c (__emutls_get_address): Change arr->size to mean number
10615 of allocated arr->data entries instead of # of slots + 1.
10616
6c0d7021
JJ
10617 PR middle-end/40316
10618 * recog.c (peep2_reinit_state): New function.
10619 (peephole2_init_state): Use it at the end of a basic block and also
10620 when seeing a RTX_FRAME_RELATED_P insn.
10621
49df2fb8
SE
106222009-06-01 Steve Ellcey <sje@cup.hp.com>
10623
10624 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
10625 fixuns_truncrfdi2): New.
10626 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
10627 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
10628 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
10629 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
10630 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
10631 *recip_approx): Remove.
10632 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
10633 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
10634 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
10635 move to div.md.
10636 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
10637 setf_exp_rf): New.
10638
67165eb3
ILT
106392009-06-01 Ian Lance Taylor <iant@google.com>
10640
10641 * attribs.c (register_attribute): Use CONST_CAST.
10642 * collect2.c (main): Use CONST_CAST2.
10643 (scan_prog_file): Likewise.
10644 * gcc.c (process_command, main): Likewise.
10645 * toplev.c (toplev_main): Likewise.
10646
10647 * c-typeck.c (handle_warn_cast_qual): New static function,
10648 partially broken out of build_c_cast.
10649 (build_c_cast): Call handle_warn_cast_qual.
10650 * doc/invoke.texi (Warning Options): Document new effect of
10651 -Wcast-qual.
10652
e74fe492
AH
106532009-06-01 Aldy Hernandez <aldyh@redhat.com>
10654
10655 * diagnostic.c (diagnostic_build_prefix): Always print columns.
10656 (diagnostic_report_current_module): Print columns.
10657 * common.opt (flag_show_column): Enable by default.
10658
7eba2d1f
LM
106592009-06-01 Luis Machado <luisgpm@br.ibm.com>
10660
10661 * alias.c (find_base_term): Check for NULL term before returning.
10662
ee88d9aa
MK
106632009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
10664
10665 Revert due to PR40320:
ee88d9aa
MK
10666 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
10667 * calls.c (emit_library_call_value_1): Don't force_operand for move
10668 and push insns.
10669
324c9b02 106702009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 10671 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
10672
10673 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
10674 to be processed as a bitfield for constructor output purposes.
10675 * output.h (initializer_constant_valid_for_bitfield_p): Declare
10676 new function.
10677 * varasm.c (oc_local_state): New type, output_constructor
10678 local state to support communication with helpers.
10679 (oc_outer_state): New type, output_constructor outer state of
10680 relevance in recursive calls.
10681 (output_constructor_array_range): New output_constructor helper,
10682 extracted code for an array range element.
10683 (output_constructor_regular_field): New output_constructor helper,
10684 extracted code for an element that is not a bitfield.
10685 (output_constructor_bitfield): New output_constructor helper,
10686 extracted code for a bitfield element. Accept an OUTER state
10687 argument for recursive processing. Recurse on record or array
10688 CONSTRUCTOR values, possibly past noop conversions.
62295314 10689 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
10690 VALUE is a valid constant-valued expression for use in a static
10691 bit-field initializer.
62295314
OH
10692 (output_constructor): Rework to use helpers. Accept and honor an
10693 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
10694 prepared for nested constructors initializing bitfields.
10695 (output_constant): Feed OUTER in calls to output_constructor.
10696
0980d7fe
MK
106972009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
10698
10699 * calls.c (emit_library_call_value_1): Don't force_operand for move
10700 and push insns.
10701
29661412
NC
107022009-06-01 Nick Clifton <nickc@redhat.com>
10703
10704 * doc/invoke.texi (IA-64 Options): Fix typo.
10705
e9dbe7bb
IR
107062009-06-01 Ira Rosen <irar@il.ibm.com>
10707
10708 PR tree-optimization/39129
7c8b1a77 10709 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
e9dbe7bb 10710 printed message.
7c8b1a77 10711 (vect_do_peeling_for_loop_bound): Use
e9dbe7bb
IR
10712 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
10713 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
10714 (vect_loop_versioning): Likewise.
10715 (vect_create_cond_for_alias_checks): Fix indentation.
7c8b1a77 10716 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
e9dbe7bb
IR
10717 macros.
10718 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
10719 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7c8b1a77 10720 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
e9dbe7bb 10721 "control flow in loop".
7c8b1a77 10722 (vect_estimate_min_profitable_iters): Use
e9dbe7bb
IR
10723 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
10724 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
10725 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
10726 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7c8b1a77
UB
10727 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
10728 statement belongs to a group of strided accesses with the exact code
e9dbe7bb
IR
10729 check.
10730 (vectorizable_load): Likewise.
10731 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
10732 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
10733
5ac69a80
GP
107342009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
10735
10736 * config/freebsd-stdint.h: New file.
10737 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
10738 Add freebsd-stdint.h to tm_file.
10739
54b2b460
RE
107402009-06-01 Richard Earnshaw <rearnsha@arm.com>
10741
10742 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
10743 (thumb2_extendhidi2): Likewise.
10744
a7ca77cf
ILT
107452009-05-31 Ian Lance Taylor <iant@google.com>
10746
f3afc8a7 10747 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
10748
107492009-05-31 Ian Lance Taylor <iant@google.com>
10750
f3afc8a7 10751 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
10752 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
10753 (ipa-reference.o): Depend upon gt-ipa-reference.h.
10754
1aec401e
JM
107552009-05-31 Jason Merrill <jason@redhat.com>
10756
10757 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 10758 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
10759 (dump_generic_node): Adjust.
10760 * diagnostic.h: Declare print_call_name.
10761 * gimple-pretty-print.c (dump_gimple_call): Use it.
10762
ed7910bb
KK
107632009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
10764
10765 * config/sh/sh.md (ashldi3_std): New define_expand.
10766 (ashldi3): Use it.
10767
47ea8d4e
KK
107682009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
10769
10770 PR target/40313
10771 * config/sh/sh.c: Include debug.h.
10772 (sh_expand_epilogue): Emit a blockage insn before the frame
10773 pointer adjustment also when dwarf2out_do_frame returns true.
10774
405e8b49
RE
107752009-05-31 Richard Earnshaw <rearnsha@arm.com>
10776
10777 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
10778 (thumb2_extendqidi2): New pattern.
10779
71ece343
IR
107802009-05-31 Ira Rosen <irar@il.ibm.com>
10781
10782 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10783 mark phis for renaming.
10784 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
10785 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
10786 Call mark_sym_for_renaming.
10787 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
10788 * tree-vect-loop.c (vect_transform_loop): Remove
10789 vect_memsyms_to_rename initialization and a call to
10790 mark_set_for_renaming.
71ece343 10791
b3041944
JJ
107922009-05-31 Jakub Jelinek <jakub@redhat.com>
10793
10794 PR middle-end/40304
10795 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
10796 frame related even if !set_cfa && style < 0.
10797
a1bda0d7
KT
107982009-05-30 Kai Tietz <kai.tietz@onevision.com>
10799
10800 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
10801 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
10802 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
10803 defining _WIN32 but not __CYGWIN__.
a1bda0d7 10804
acd26225
KG
108052009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10806
10807 * configure.ac: Add MPC support.
f100a4a8
UB
10808
10809 * config.in, configure: Regenerate.
acd26225 10810
cd9c1ca8
RH
108112009-05-29 Richard Henderson <rth@redhat.com>
10812
10813 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
10814 NOTE_INSN_BASIC_BLOCK.
10815 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
10816 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
10817 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
10818 to be deleted.
10819 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
10820 add in_use field.
10821 (add_cfi): Disable check redefining cfa away from drap.
10822 (lookup_cfa_1): Add remember argument; handle remember/restore.
10823 (lookup_cfa): Pass remember argument.
10824 (cfa_remember): New.
10825 (compute_barrier_args_size_1): Remove sibcall check.
10826 (dwarf2out_frame_debug_def_cfa): New.
10827 (dwarf2out_frame_debug_adjust_cfa): New.
10828 (dwarf2out_frame_debug_cfa_offset): New.
10829 (dwarf2out_frame_debug_cfa_register): New.
10830 (dwarf2out_frame_debug_cfa_restore): New.
10831 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
10832 (dwarf2out_begin_epilogue): New.
10833 (dwarf2out_frame_debug_restore_state): New.
10834 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
10835 DW_CFA_restore_state.
10836 (output_cfi_directive): Likewise.
10837 (convert_cfa_to_fb_loc_list): Likewise.
10838 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
10839 * dwarf2out.h: Update.
10840 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
10841 (copy_insn_1): Early out for null.
10842 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
10843 and dwarf2out_frame_debug_restore_state.
10844 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
10845 (prologue_insn_hash, epilogue_insn_hash): New.
10846 (free_after_compilation): Adjust freeing accordingly.
10847 (record_insns): Create hash table if needed; push insns into
10848 hash instead of array.
10849 (maybe_copy_epilogue_insn): New.
10850 (contains): Search hash table instead of array.
10851 (sibcall_epilogue_contains): Remove.
10852 (thread_prologue_and_epilogue_insns): Split eh_return insns
10853 and mark them as epilogues.
10854 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
10855 scanning in terms of basic blocks.
10856 * insn-notes.def (CFA_RESTORE_STATE): New.
10857 * jump.c (returnjump_p_1): Accept EH_RETURN.
10858 (eh_returnjump_p_1, eh_returnjump_p): New.
10859 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
10860 CFA_REGISTER, CFA_RESTORE): New.
10861 * rtl.def (EH_RETURN): New.
10862 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
10863
10864 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
10865 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
10866
10867 * config/i386/i386.c (gen_push): Update cfa state.
10868 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
10869 add a CFA_ADJUST_CFA note.
10870 (ix86_dwarf_handle_frame_unspec): Remove.
10871 (ix86_expand_prologue): Update cfa state.
10872 (ix86_emit_restore_reg_using_pop): New.
10873 (ix86_emit_restore_regs_using_pop): New.
10874 (ix86_emit_leave): New.
10875 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
10876 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
10877 * config/i386/i386.h (struct machine_cfa_state): New.
10878 (ix86_cfa_state): New.
10879 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
10880 (eh_return_internal): Merge from eh_return_<mode>,
10881 use eh_return rtx, split w/ epilogue.
10882
72b5577d
ILT
108832009-05-29 Ian Lance Taylor <iant@google.com>
10884
10885 * builtins.c (validate_gimple_arglist): Don't use va_arg with
10886 enum type.
10887 * calls.c (emit_library_call_value_1): Likewise.
10888
10889 * c-typeck.c (c_build_va_arg): New function.
10890 * c-tree.h (c_build_va_arg): Declare.
10891 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
10892 instead of build_va_arg.
10893
7a2faca1
EB
108942009-05-29 Eric Botcazou <ebotcazou@adacore.com>
10895
10896 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
10897 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
10898 (ptr_difference_cost): Use affine combinations to compute it.
10899 (difference_cost): Likewise.
10900 (get_computation_cost_at): Compute more accurate cost for addresses
10901 if the ratio is a multiplier allowed in addresses.
10902 For non-addresses, consider that an additional offset or symbol is
10903 added only once.
10904
725fd454
JJ
109052009-05-29 Jakub Jelinek <jakub@redhat.com>
10906
a0987204
JJ
10907 * config/i386/i386.c (ix86_decompose_address): Avoid useless
10908 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
10909
725fd454
JJ
10910 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
10911 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
10912 (prefix_rex): For UNIT_MMX don't imply the prefix by default
10913 if MODE_DI.
10914 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
10915 to 1 for TYPE_SSE{IADD1,CVT1}.
10916 (prefix_vex_imm8): Removed.
10917 (length_vex): Only pass 1 as second argument to
10918 ix86_attr_length_vex_default if prefix_extra is 0.
10919 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
10920 (length): For prefix vex computation use length_immediate
10921 attribute instead of prefix_vex_imm8.
10922 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
10923 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
10924 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
10925 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
10926 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
10927 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
10928 a space in between the operands.
10929 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
10930 if one operand is 0xff and the other one si, di, bp or sp.
10931 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
10932 other one si, di, bp or sp.
10933 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
10934 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
10935 type and mode attributes.
10936 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
10937 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
10938 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
10939 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
10940 prefix_data16 attribute iff MODE_DF.
10941 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
10942 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
10943 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
10944 constm128_operand in length_immediate computation.
10945 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
10946 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
10947 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
10948 length_immediate attribute to 1.
10949 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
10950 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
10951 for certain alternatives.
10952 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
10953 prefix_data16 attribute if MODE_V1DF.
10954 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
10955 length_immediate to 1.
10956 (set_got_rex64, set_rip_rex64): Remove length attribute, set
10957 length_address to 4, set mode attribute to MODE_DI.
10958 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
10959 (fxam<mode>2_i387): Set length attribute to 4.
10960 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
10961 *prefetch_3dnow_rex): Override length_address attribute.
10962 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
10963 attributes.
10964 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
10965 (constm128_operand): Removed.
10966 * config/i386/i386.c (memory_address_length): For
10967 disp && !index && !base in 64-bit mode account for SIB byte if
10968 print_operand_address can't optimize disp32 into disp32(%rip)
10969 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
10970 for fs: or gs: segment.
10971 (ix86_attr_length_immediate_default): When checking if shortform
10972 is possible, truncate immediate to the length of the non-shortened
10973 immediate.
10974 (ix86_attr_length_address_default): Ignore MEM_P operands
10975 with X constraint.
10976 (ix86_attr_length_vex_default): Only check for DImode on
10977 GENERAL_REG_P operands.
10978 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
10979 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
10980 (sse_cvttps2pi): Clear prefix_rep attribute.
10981 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
10982 attribute.
10983 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
10984 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
10985 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
10986 iff operand 2 is const_int_operand.
10987 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
10988 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
10989 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
10990 instead of vex.
10991 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
10992 prefix_data16.
10993 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
10994 prefix_data16 attribute for movlpd and movhpd instructions.
10995 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
10996 length_immediate for shufpd instruction.
10997 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
10998 (avx_cmpp<avxmodesuffixf2c><mode>3,
10999 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
11000 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
11001 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 11002 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
11003 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
11004 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
11005 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
11006 prefix_data16 attribute for the first alternative to 1.
11007 (*avx_loadlps): Override length_immediate for the first alternative.
11008 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
11009 attributes for second alternative.
11010 (*vec_concatv2sf_sse4_1): Override length_immediate and
11011 prefix_data16 attributes for second alternative.
11012 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
11013 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
11014 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
11015 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
11016 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
11017 prefix_data16 and length_immediate to 1.
11018 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
11019 to 1.
11020 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 11021 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
11022 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
11023 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
11024 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
11025 *sse4_1_pextrd): Set length_immediate to 1.
11026 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
11027 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
11028 to 1.
11029 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
11030 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
11031 length_immediate to 1 for second alternative.
11032 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
11033 prefix_extra and length_immediate attributes for the first
11034 alternative.
11035 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
11036 first alternative.
11037 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
11038 to 1 for the first and third alternative.
11039 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
11040 alternative.
11041 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
11042 attribute.
11043 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
11044 attribute to 0.
11045 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
11046 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
11047 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
11048 *avx_psign<mode>3): Set prefix_extra attribute to 1.
11049 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
11050 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
11051 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
11052 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 11053 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
11054 (ssse3_palignrti): Override length_immediate to 1.
11055 (ssse3_palignrdi): Override length_immediate to 1, override
11056 prefix_rex attribute.
f3afc8a7 11057 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
11058 (sse4a_extrqi): Override length_immediate to 2.
11059 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
11060 (sse4a_insertq): Override prefix_data16 to 0.
11061 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
11062 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
11063 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
11064 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
11065 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
11066 and length_immediate to 1.
11067 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
11068 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
11069 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
11070 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
11071 and length_immediate to 1.
11072 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
11073 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
11074 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
11075 avx_ptest256): Override prefix_extra to 1.
11076 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
11077 Override prefix_data16 and length_immediate to 1.
11078 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
11079 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
11080 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
11081 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
11082 prefix_data16 to 0 and prefix_extra to 2.
11083 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
11084 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
11085 attribute.
11086 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
11087 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
11088 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
11089 and prefix_extra to 2.
11090 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
11091 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
11092 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
11093 avx_vpermilvar<mode>3,
11094 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
11095 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
11096 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
11097 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
11098 Override prefix_extra to 1.
11099 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
11100 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
11101 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
11102 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
11103 prefix_extra and length_immediate to 1.
11104 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
11105 modrm to 0.
11106 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
11107 to 1 for the first alternative.
11108 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
11109 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
11110 cases.
11111 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
11112 *movv2sf_internal_avx, *movv2sf_internal): Override
11113 prefix_rep attribute for certain alternatives.
11114 (*mov<mode>_internal): Override prefix_rep or prefix_data16
11115 attributes for certain alternatives.
11116 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
11117 attributes for certain alternatives.
11118 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
11119 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
11120 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
11121 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
11122 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
11123 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
11124 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
11125 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
11126 length_immediate to 1 if operand 2 is const_int_operand.
11127 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 11128 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
11129 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
11130 using old 3DNOW insn rather than SSE/3DNOW_A.
11131 (mmx_emms, mmx_femms): Clear modrm attribute.
11132
0674b9d0
MJ
111332009-05-29 Martin Jambor <mjambor@suse.cz>
11134
11135 * tree-sra.c: New implementation of SRA.
11136
11137 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
11138 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
11139 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
11140 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
11141 (SRA_MAX_STRUCTURE_COUNT): Removed.
11142 (SRA_FIELD_STRUCTURE_RATIO): Removed.
11143 * doc/invoke.texi (sra-max-structure-size): Removed.
11144 (sra-field-structure-ratio): Removed.
11145
616f21df
JJ
111462009-05-29 Jakub Jelinek <jakub@redhat.com>
11147
11148 PR middle-end/40291
11149 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
11150 before expansion.
11151
da7ba240
AB
111522009-05-29 Andrey Belevantsev <abel@ispras.ru>
11153
11154 PR rtl-optimization/40101
11155 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
11156 seqno. Adjust comment.
f100a4a8 11157 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
da7ba240
AB
11158 inserting bookkeeping before a jump, the jump is not scheduled.
11159 When no positive seqno found, provide a value. Add comment.
11160
71dcd609
RG
111612009-05-29 Richard Guenther <rguenther@suse.de>
11162
11163 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
11164 short-cutting on the first component.
11165
a900ae6b
JJ
111662009-05-29 Jakub Jelinek <jakub@redhat.com>
11167
11168 PR middle-end/39958
11169 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
11170 for trees other than decls/types.
11171
821bb7f8
RG
111722009-05-29 Richard Guenther <rguenther@suse.de>
11173
11174 * tree-ssa-operands.c (get_expr_operands): Do not handle
11175 INDIRECT_REFs in the handled-component case. Remove
11176 unused get_ref_base_and_extent case.
11177 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
11178 tree_low_cst and host_integerp where possible.
11179 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
11180 codes for equivalence.
11181 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
11182
e997fb9c
DB
111832009-05-29 David Billinghurst <billingd@gcc.gnu.org>
11184
11185 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
f100a4a8 11186 to tmake_file for i[34567]86-*-cygwin*.
e997fb9c 11187
58195b74
JJ
111882009-05-29 Jakub Jelinek <jakub@redhat.com>
11189
11190 PR target/40017
11191 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
11192 (altivec_categorize_keyword, init_vector_keywords,
11193 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
11194 similar to bool.
11195
055df276
KT
111962009-05-29 Kai Tietz <kai.tietz@onevision.com>
11197
11198 * tree.c (handle_dll_attribute): Check if node is
11199 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
11200
f5939ef3
RE
112012009-05-29 Richard Earnshaw <rearnsha@arm.com>
11202
11203 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
11204 component.
11205 (thumb2_zero_extendqidi2): Likewise.
11206
c185de40
KK
112072009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
11208
11209 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
11210 instead of gen_movrt.
11211 * config/sh/sh.md (movrt): Remove.
11212
bf3c6caf
SE
112132009-05-28 Steve Ellcey <sje@cup.hp.com>
11214
f3afc8a7 11215 * doc/invoke.texi (IA-64 Options):
f100a4a8 11216 Add -msdata, -mfused-madd, -mno-inline-float-divide,
bf3c6caf
SE
11217 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
11218 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
11219 -msched-prefer-non-control-spec-insns,
11220 -msched-stop-bits-after-every-cycle,
11221 -msched-count-spec-in-critical-path,
11222 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 11223 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
11224 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
11225 and -msched-spec-verbose.
11226
8a66e987
JM
112272009-05-28 Joseph Myers <joseph@codesourcery.com>
11228
f3afc8a7 11229 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
11230 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
11231 error if used.
11232 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
11233
b45d2719
RG
112342009-05-28 Richard Guenther <rguenther@suse.de>
11235
11236 * tree-ssa-alias.c (ao_ref_init): New function.
11237 (ao_ref_base): Likewise.
11238 (ao_ref_base_alias_set): Likewise.
11239 (ao_ref_alias_set): Likewise.
11240 (refs_may_alias_p_1): Change signature.
11241 (refs_may_alias_p): Adjust.
11242 (refs_anti_dependent_p): Likewise.
11243 (refs_output_dependent_p): Likewise.
11244 (call_may_clobber_ref_p_1): Change signature.
11245 (call_may_clobber_ref_p): Adjust.
11246 (stmt_may_clobber_ref_p_1): New function split out from ...
11247 (stmt_may_clobber_ref_p): ... here.
11248 (maybe_skip_until): Adjust signature.
11249 (get_continuation_for_phi): Likewise.
11250 (walk_non_aliased_vuses): Likewise.
11251 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
11252 (ao_ref_init): Declare.
11253 (ao_ref_base): Likewise.
11254 (ao_ref_alias_set): Likewise.
11255 (stmt_may_clobber_ref_p_1): Likewise.
11256 (walk_non_aliased_vuses): Adjust.
11257 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
11258 (get_ref_from_reference_ops): remove.
11259 (vn_reference_lookup_2): Adjust signature.
11260 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 11261 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
11262 (vn_reference_lookup): Adjust.
11263 (vn_reference_insert): Likewise.
11264 (vn_reference_insert_pieces): Adjust signature.
11265 (visit_reference_op_call): Adjust.
11266 * tree-ssa-pre.c (get_expr_type): Simplify.
11267 (phi_translate_1): Adjust.
11268 (compute_avail): Likewise.
11269 (translate_vuse_through_block): Do not re-build trees.
11270 (value_dies_in_block_x): Likewise.
11271 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
11272 fields.
11273 (vn_reference_lookup_pieces): Adjust declaration.
11274 (vn_reference_insert_pieces): Likewise.
11275
554223b6
BK
112762009-05-28 Benjamin Kosnik <bkoz@redhat.com>
11277
11278 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
11279 with checking disabled.
11280
233215fe
DK
112812009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
11282
11283 PR target/37216
11284
11285 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
11286 macro definition for support of three-operand format aligned
11287 .comm directive in assembler on cygwin/pe/mingw target OS.
11288 * configure: Regenerate.
11289 * config.h: Regenerate.
11290
11291 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
11292 aligned form of .comm directive if -mpe-aligned-commons is in effect.
11293 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
11294
11295 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
11296 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
11297
24adb18f
IR
112982009-05-28 Ira Rosen <irar@il.ibm.com>
11299
11300 PR tree-optimization/40254
11301 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
11302 in analysis of basic blocks.
11303
2c5bfdf7
AN
113042009-05-28 Adam Nemet <anemet@caviumnetworks.com>
11305
11306 PR middle-end/33699
f3afc8a7 11307 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
11308 * target-def.h (TARGET_CONST_ANCHOR): New macro.
11309 (TARGET_INITIALIZER): Use it.
11310 * cse.c (CHEAPER): Move it up to the other macros.
11311 (insert): Rename this ...
11312 (insert_with_costs): ... to this. Add cost parameters. Update
11313 function comment.
11314 (insert): New function. Call insert_with_costs.
11315 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
11316 find_reg_offset_for_const, try_const_anchors): New functions.
11317 (cse_insn): Call try_const_anchors. Adjust cost of src_related
11318 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 11319 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
11320 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
11321
9e6aced0
AO
113222009-05-28 Alexandre Oliva <aoliva@redhat.com>
11323
11324 * tree-inline.c (remap_decls): Enable nonlocalized variables
11325 when not optimizing.
11326
89fbbe4e
AO
113272009-05-28 Alexandre Oliva <aoliva@redhat.com>
11328
11329 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
11330 Simplify other tests involving optimize.
11331
e455776a
TT
113322009-05-27 Tom Tromey <tromey@redhat.com>
11333
11334 * unwind-dw2.c (_Unwind_DebugHook): New function.
11335 (uw_install_context): Call _Unwind_DebugHook.
11336
cea32bca
TT
113372009-05-27 Tom Tromey <tromey@redhat.com>
11338
11339 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
11340
c607156f
ILT
113412009-05-27 Ian Lance Taylor <iant@google.com>
11342
11343 * Makefile.in (LINKER, LINKER_FLAGS): Define.
11344 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
11345 (ALL_LINKERFLAGS): Define.
11346 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
11347 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
11348 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
11349 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
11350 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
11351 $(LINKER_FOR_BUILD).
11352 (build/gcov-iov$(build_exeext)): Likewise.
11353
ec0a1343
JB
113542009-05-27 Julian Brown <julian@codesourcery.com>
11355
11356 * gcse.c (target.h): Include.
11357 (can_assign_to_reg_without_clobbers_p): Check that the target allows
11358 copy of argument to a pseudo register.
11359
ac80ba07
DN
113602009-05-27 Diego Novillo <dnovillo@google.com>
11361
11362 * tree-ssa-live.c (dump_scope_block): Document arguments.
11363 (dump_scope_blocks): Document.
11364 (debug_scope_blocks): New.
11365 * tree-flow.h (debug_scope_blocks): Declare.
11366
d1803a17
DC
113672009-05-21 Denis Chertykov <denisc@overta.ru>
11368
f3afc8a7 11369 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 11370
51fb7760 113712009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
11372
11373 * expr.c (target_align): New function. Alignment the TARGET of an
11374 assignment may be assume to have.
11375 (highest_pow2_factor_for_target): Use it instead of relying on
11376 immediate tree attributes of TARGET, not necessarily honored when
11377 intermediate bitfields are involved.
f100a4a8 11378
634fa334
L
113792009-05-27 H.J. Lu <hongjiu.lu@intel.com>
11380
11381 PR target/40266
11382 * config/i386/driver-i386.c (host_detect_local_cpu): Support
11383 AVX, SSE4, AES, PCLMUL and POPCNT.
11384
65332587
DN
113852009-05-27 Diego Novillo <dnovillo@google.com>
11386
11387 * tree-pretty-print.c (dump_location): New.
11388 (dump_generic_node): Call it.
11389 Factor code to handle BLOCK nodes ...
11390 (dump_block_node): ... here.
11391
3e17e31d
RAE
113922009-05-27 Rafael Avila de Espindola <espindola@google.com>
11393
f3afc8a7
UB
11394 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
11395 with it.
3e17e31d
RAE
11396 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
11397 included.
11398 * gcc-plugin.h: Include config.h and system.h.
11399 (IN_GCC): Define if not defined.
11400
5e370570
HPN
114012009-05-27 Hans-Peter Nilsson <hp@axis.com>
11402
11403 PR middle-end/40249
11404 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
11405 with -fno-inline.
11406
d000f0d9
SZ
114072009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
11408
11409 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
11410 applicable.
11411 * config/m32r/m32r.h: Ditto.
11412 * config/m32r/m32r.md: Ditto.
11413 * config/m32r/predicates.md: Ditto.
11414
82f331ff
AO
114152009-05-27 Alexandre Oliva <aoliva@redhat.com>
11416
11417 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
11418
ae2392a9
BS
114192009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
11420
11421 * doc/plugins.texi
11422 (Loading plugins): typo.
11423 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
11424 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
11425 (Interacting with the GCC Garbage Collector): Added new section.
11426 (Giving information about a plugin): Added new section for
11427 PLUGIN_INFO.
ae2392a9
BS
11428 * ggc.h (ggc_register_root_tab): Added declaration.
11429 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
11430 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
11431 (register_callback): Improved comment in declaration.
f3afc8a7
UB
11432 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
11433 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
11434 (ggc_register_root_tab) Added new routine.
11435 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
11436 PLUGIN_GGC_MARKING event.
11437 * ggc-zone.c: Include plugin.h.
11438 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
11439 * ggc-page.c: Include plugin.h.
11440 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
11441 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
11442 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
11443 (register_callback): check lack of callbacks for
11444 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
11445 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
11446 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
11447 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
11448 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
11449 dependency on plugin.h.
11450 (plugin.o): Added dependency on ggc.h...
11451
f0cfd3a8
RG
114522009-05-26 Richard Guenther <rguenther@suse.de>
11453
11454 PR middle-end/40248
11455 Revert
11456 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
11457 with mismatched comparison modes.
11458
11459 * expr.c (expand_expr_real_1): Expand the operand of a
11460 VIEW_CONVERT_EXPR in its natural mode.
11461
7980bfb8
ILT
114622009-05-26 Ian Lance Taylor <iant@google.com>
11463
11464 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
11465 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
11466 (ALL_COMPILERFLAGS): Define.
11467 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
11468 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
11469 (collect2$(exeext), collect2.o): Likewise.
11470 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
11471 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
11472 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
11473 (libbackend.o, intl.o, cppdefault.o): Likewise.
11474 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
11475 (build/%.o): Use $(COMPILER_FOR_BUILD).
11476 (build/gen%$(build_exeext)): Likewise.
11477 (build/gcov-iov$(build_exeext)): LIkewise.
11478 * config/t-darwin (darwin.o): Use $(COMPILER).
11479 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
11480 * config/t-sol2 (sol2-c.o): Likewise.
11481 (sol2.o): Likewise.
11482 * config/t-vxworks (vxworks.o): Likewise.
11483 * config/x-darwin (host-darwin.o): Likewise.
11484 * config/x-hpux (host-hpux.o): Likewise.
11485 * config/x-linux (host-linux.o): Likewise.
11486 * config/x-solaris (host-solaris.o): Likewise.
11487 * config/alpha/x-alpha (driver-alpha.o): Likewise.
11488 * config/arm/t-arm (arm-c.o): Likewise.
11489 * config/arm/t-pe (pe.o): Likewise.
11490 * config/arm/t-wince-pe (pe.o): Likewise.
11491 * config/i386/t-cygming (winnt.o): Likewise.
11492 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
11493 * config/i386/t-cygwin (cygwin1.o): Likewise.
11494 (cygwin2.o): Likewise.
11495 * config/i386/t-i386 (i386-c.o): Likewise.
11496 * config/i386/t-interix (winnt.o): Likewise.
11497 * config/i386/t-netware (netware.o): Likewise.
11498 * config/i386/t-nwld (nwld.o): Likewise.
11499 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
11500 * config/i386/x-i386 (driver-i386.o): Likewise.
11501 * config/i386/x-cygwin (host-cygwin.o): Likewise.
11502 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
11503 * config/ia64/t-ia64 (ia64-c.o): Likewise.
11504 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
11505 * config/mips/x-native (driver-native.o): Likewise.
11506 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
11507 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
11508 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
11509 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
11510 * config/score/t-score-elf (score7.o): Likewise.
11511 (score3.o): Likewise.
11512 * config/sh/t-sh (sh-c.o): Likewise.
11513 * config/sh/t-symbian (sh-c.o): Likewise.
11514 (symbian.o): Likewise.
11515 * config/spu/t-spu-elf (spu-c.o): Likewise.
11516 * config/v850/t-v850 (v850-c.o): Likewise.
11517 * config/v850/t-v850e (v850-c.o): Likewise.
11518
23977d3c
RG
115192009-05-26 Richard Guenther <rguenther@suse.de>
11520
11521 PR tree-optimization/40122
11522 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
11523 VECTOR_CSTs if possible.
11524 (fold_gimple_assign): Likewise.
11525
3d62b895
RG
115262009-05-26 Richard Guenther <rguenther@suse.de>
11527
11528 PR middle-end/40252
11529 * fold-const.c (fold_binary): Use the correct types for building
11530 rotates.
11531
12346147
RG
115322009-05-26 Richard Guenther <rguenther@suse.de>
11533
11534 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
11535 redundant calls to merge_alias_info.
11536 (bump_vector_ptr): Likewise.
11537 * tree-ssa-copy.c (merge_alias_info): Remove.
11538 (replace_exp_1): Remove call to merge_alias_info.
11539 (propagate_tree_value): Likewise.
11540 (fini_copy_prop): Propagate points-to info.
11541 * tree-flow.h (merge_alias_info): Remove.
11542
807d5e6f
HS
115432009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
11544
11545 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
11546
85057983
JH
115472009-05-25 Jan Hubicka <jh@suse.cz>
11548
11549 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
11550 * cgraph.h (struct inline_summary): New filed self_wize,
11551 size_inlining_benefit, self_time and time_inlining_benefit.
11552 (struct cgraph_global_info): Replace insns by time ans size fields.
11553 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
11554 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
11555 (ipcp_update_callgraph): Do not touch function bodies.
11556 * ipa-inline.c: Include except.h
11557 (MAX_TIME): New constant.
11558 (overall_insns): Remove.
11559 (leaf_node_p): New.
11560 (overall_size, max_benefit): New static variables.
11561 (cgraph_estimate_time_after_inlining): New function.
11562 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
11563 (cgraph_clone_inlined_nodes): Update size.
11564 (cgraph_mark_inline_edge): Update size.
11565 (cgraph_estimate_growth): Use size info.
11566 (cgraph_check_inline_limits): Check size.
11567 (cgraph_default_inline_p): Likewise.
11568 (cgraph_edge_badness): Compute badness based on benefit and size cost.
11569 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
11570 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
11571 and times.
85057983
JH
11572 (cgraph_decide_inlining): Likewise.
11573 (cgraph_decide_inlining_incrementally): Likewise; honor
11574 PARAM_EARLY_INLINING_INSNS.
11575 (likely_eliminated_by_inlining_p): New predicate.
11576 (estimate_function_body_sizes): New function.
11577 (compute_inline_parameters): Use it.
11578 * except.c (must_not_throw_labels): New function.
11579 * except.h (must_not_throw_labels): Declare.
11580 * tree-inline.c (init_inline_once): Kill inlining_weigths
11581 * tree-ssa-structalias.c: Avoid uninitialized warning.
11582 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
11583 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
11584 (PARAM_INLINE_CALL_COST): Remove.
11585 (PARAM_EARLY_INLINING_INSNS): New.
11586
01df5c8a
RG
115872009-05-25 Richard Guenther <rguenther@suse.de>
11588
11589 PR tree-optimization/36327
11590 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 11591 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
11592 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
11593 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
11594 for union COMPONENT_REFs.
11595 (vn_reference_lookup_3): New callback. Lookup from memset
11596 and CONSTRUCTOR assignment, translate through struct copies.
11597 (vn_reference_lookup_pieces): Make sure to not free the
11598 passed operands array. Adjust walk_non_aliased_vuses call.
11599 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
11600 make sure we do not leak memory.
11601
6b8ed145
RG
116022009-05-25 Richard Guenther <rguenther@suse.de>
11603
11604 * tree-ssa-alias.h (dump_points_to_solution): Declare.
11605 * tree-inline.c (expand_call_inline): Reset the escaped and
11606 callused solutions.
11607 * tree-ssa-structalias.c (pass_build_ealias): New.
11608 * tree-pass.h (pass_build_ealias): Declare.
f100a4a8 11609 * passes.c (init_optimization_passes): Add PTA during
6b8ed145
RG
11610 early optimizations.
11611 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
11612 and CALLUSED solutions.
11613 (dump_points_to_solution): New function, split out from ...
11614 (dump_points_to_info_for): ... here.
11615 * tree-parloops.c (parallelize_loops): Reset the escaped and
11616 callused solutions.
11617
0adcf178
RO
116182009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11619
11620 PR bootstrap/40027
11621 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
11622 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
11623
12aaf609
IR
116242009-05-25 Ira Rosen <irar@il.ibm.com>
11625
11626 PR tree-optimization/40238
11627 * tree-vect-stmts.c (vect_init_vector): Insert initialization
11628 statements after basic block's labels.
f100a4a8 11629 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
12aaf609
IR
11630 to free the allocated memory.
11631
7f9a14e3
KK
116322009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
11633
11634 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
11635 return address with a USE.
11636
b842d478
RG
116372009-05-24 Richard Guenther <rguenther@suse.de>
11638
11639 PR middle-end/40233
11640 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
11641 array type from the main variant of the inner type.
11642
8db7b33f
JBG
116432009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11644
11645 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
11646 definition to bool (from int) to un-break build.
11647 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
11648
cff4e50d
PB
116492009-05-24 Paolo Bonzini <bonzini@gnu.org>
11650
11651 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
11652 discard_stmt_changes): Delete.
11653 * tree-ssa-operands.c (scb_stack): Delete.
11654 (init_ssa_operands): Do not initialize it.
11655 (fini_ssa_operands): Do not free it.
11656 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
11657
f100a4a8 11658 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
cff4e50d
PB
11659 update_stmt, remove the others. Fix comments.
11660 * tree-dfa.c (optimize_stack_restore): Likewise.
11661 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
11662 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
11663 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
11664 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
11665 Likewise.
11666 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
11667 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
11668 (dom_opt_finalize_block): Likewise, adjusting access to
11669 stmts_to_rescan.
cff4e50d
PB
11670 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
11671 (stmts_to_rescan): Change item type to gimple.
11672 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
11673
a70d6342
IR
116742009-05-24 Ira Rosen <irar@il.ibm.com>
11675
11676 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
11677 * tree-pass.h (pass_slp_vectorize): New pass.
11678 * params.h (SLP_MAX_INSNS_IN_BB): Define.
11679 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
11680 * tree-vectorizer.c (timevar.h): Include.
11681 (user_vect_verbosity_level): Declare.
11682 (vect_location): Fix comment.
11683 (vect_set_verbosity_level): Update user_vect_verbosity_level
11684 instead of vect_verbosity_level.
11685 (vect_set_dump_settings): Add an argument. Ignore user defined
11686 verbosity if dump flags require higher level of verbosity. Print to
11687 stderr only for loop vectorization.
11688 (vectorize_loops): Update call to vect_set_dump_settings.
11689 (execute_vect_slp): New function.
11690 (gate_vect_slp): Likewise.
11691 (struct gimple_opt_pass pass_slp_vectorize): New.
11692 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
11693 access its members.
11694 (vec_info_for_bb): New function.
11695 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
11696 (VECTORIZATION_ENABLED): New macro.
11697 (SLP_ENABLED, SLP_DISABLED): Likewise.
11698 (vect_is_simple_use): Add bb_vec_info argument.
11699 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
11700 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
11701 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
11702 vect_schedule_slp, vect_analyze_slp): Likewise.
11703 (vect_analyze_stmt): Add slp_tree argument.
11704 (find_bb_location): Declare.
11705 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
11706 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
11707 (vect_analyze_loop_operations, vect_analyze_loop,
11708 get_initial_def_for_induction, vect_create_epilog_for_reduction,
11709 vect_finalize_reduction, vectorizable_reduction,
11710 vectorizable_live_operation, vect_transform_loop): Likewise.
11711 * tree-data-ref.c (dr_analyze_innermost): Update comment,
11712 skip evolution analysis if analyzing a basic block.
11713 (dr_analyze_indices): Likewise.
11714 (initialize_data_dependence_relation): Skip the test whether the
11715 object is invariant for basic blocks.
11716 (compute_all_dependences): Skip dependence analysis for data
11717 references in basic blocks.
11718 (find_data_references_in_stmt): Don't fail in case of invariant
11719 access in basic block.
11720 (find_data_references_in_bb): New function.
11721 (find_data_references_in_loop): Move code to
782dc37a 11722 find_data_references_in_bb and add a call to it.
a70d6342
IR
11723 (compute_data_dependences_for_bb): New function.
11724 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
11725 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
11726 that STEP is 0.
11727 (vect_analyze_data_ref_dependence): Check for interleaving in case of
11728 unknown dependence in basic block and fail in case of dependence in
11729 basic block.
11730 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
11731 dependence instances from either loop or basic block vectorization
11732 info.
11733 (vect_compute_data_ref_alignment): Check if it is loop vectorization
11734 before calling nested_in_vect_loop_p.
11735 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
11736 dependence instances from either loop or basic block vectorization
11737 info.
11738 (vect_verify_datarefs_alignment): Likewise.
11739 (vect_enhance_data_refs_alignment): Adjust function calls.
11740 (vect_analyze_data_refs_alignment): Likewise.
11741 (vect_analyze_group_access): Fix printing. Skip different checks if
11742 DR_STEP is 0. Keep strided stores either in loop or basic block
11743 vectorization data structure. Fix indentation.
11744 (vect_analyze_data_ref_access): Fix comments, allow zero step in
11745 basic blocks.
11746 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
11747 dependence instances from either loop or basic block vectorization
11748 info.
11749 (vect_analyze_data_refs): Update comment. Call
11750 compute_data_dependences_for_bb to analyze basic blocks.
11751 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
11752 case of loop vectorization. In case of basic block vectorization use
782dc37a 11753 data-ref itself as a base.
a70d6342
IR
11754 (vect_create_data_ref_ptr): In case of basic block vectorization:
11755 don't advance the pointer, add new statements before the current
11756 statement. Adjust function calls.
11757 (vect_supportable_dr_alignment): Support only aligned accesses in
11758 basic block vectorization.
11759 * common.opt (ftree-slp-vectorize): New flag.
11760 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
11761 (vect_pattern_recog_1): Likewise.
11762 * tree-vect-stmts.c (process_use): Likewise.
11763 (vect_init_vector): Add new statements in the beginning of the basic
11764 block in case of basic block SLP.
11765 (vect_get_vec_def_for_operand): Adjust function calls.
11766 (vect_finish_stmt_generation): Likewise.
11767 (vectorizable_call): Add assert that it is loop vectorization, adjust
11768 function calls.
11769 (vectorizable_conversion, vectorizable_assignment): Likewise.
11770 (vectorizable_operation): In case of basic block SLP, take
11771 vectorization factor from statement's type and skip the relevance
11772 check. Adjust function calls.
11773 (vectorizable_type_demotion): Add assert that it is loop
11774 vectorization, adjust function calls.
11775 (vectorizable_type_promotion): Likewise.
11776 (vectorizable_store): Check for outer loop only in case of loop
11777 vectorization. Adjust function calls. For basic blocks, skip the
11778 relevance check and don't advance pointers.
11779 (vectorizable_load): Likewise.
11780 (vectorizable_condition): Add assert that it is loop vectorization,
11781 adjust function calls.
11782 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
11783 that it is not reduction, get vector type, call only supported
782dc37a 11784 functions, skip loop specific parts.
a70d6342
IR
11785 (vect_transform_stmt): Check for outer loop only in case of loop
11786 vectorization.
11787 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
11788 (vect_is_simple_use): Fix comment, add new argument, fix conditions
11789 for external definition.
11790 * passes.c (pass_slp_vectorize): New pass.
11791 * tree-vect-slp.c (find_bb_location): New function.
11792 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
11793 check for patterns only in loops.
11794 (vect_build_slp_tree): Add argument, adjust function calls, fail in
11795 case of multiple types in basic block SLP.
11796 (vect_mark_slp_stmts_relevant): New function.
11797 (vect_supported_load_permutation_p): Fix comment.
11798 (vect_analyze_slp_instance): Add argument. In case of basic block
11799 SLP, take vectorization factor from statement's type, check that
11800 unrolling factor is 1. Adjust function call. Save SLP instance in
11801 either loop or basic block vectorization structure. Return FALSE,
11802 if SLP failed.
11803 (vect_analyze_slp): Add argument. Get strided stores groups from
11804 either loop or basic block vectorization structure. Return FALSE
11805 if basic block SLP failed.
11806 (new_bb_vec_info): New function.
11807 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
11808 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
11809 (vect_schedule_slp): Add argument. Get SLP instances from either
11810 loop or basic block vectorization structure. Set vectorization factor
11811 to be 1 for basic block SLP.
11812 (vect_slp_transform_bb): New function.
11813 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
11814
0676c393
MM
118152009-05-23 Mark Mitchell <mark@codesourcery.com>
11816
11817 * final.c (shorten_branches): Do not align labels for jump tables.
11818 (final_scan_insn): Use JUMP_TABLE_DATA_P.
11819
94324dae
EB
118202009-05-23 Eric Botcazou <ebotcazou@adacore.com>
11821
11822 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
11823 Remove outdated reference to flow.c and fix nits.
11824 * doc/gccint.texi: Tweak RTL description.
11825 * doc/rtl.texi: Likewise.
11826
92bffc14
DC
118272009-05-23 Denis Chertykov <chertykov@gmail.com>
11828
11829 * config/avr/avr.c: Change my email address.
11830 * config/avr/avr.h: Likewise.
11831 * config/avr/avr.md: Likewise.
11832 * config/avr/avr-protos.h: Likewise.
11833 * config/avr/libgcc.S: Likewise.
11834
eec9405e
TS
118352009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
11836
11837 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
11838 (spu_split_load, spu_split_store): Change return type to int.
11839 (spu_split_convert): Declare.
11840 * config/spu/predicates.md (spu_mem_operand): Remove.
11841 (spu_mov_operand): Update.
11842 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
11843 * config/spu/spu.c (regno_aligned_for_load): Remove.
11844 (reg_aligned_for_addr, spu_expand_load): Define.
11845 (spu_expand_extv): Reimplement and handle MEM.
11846 (spu_expand_insv): Handle MEM.
11847 (spu_sched_reorder): Handle insn's with length 0.
11848 (spu_legitimate_address_p): Reimplement.
11849 (store_with_one_insn_p): Return TRUE for any mode with size
11850 larger than 16 bytes.
11851 (address_needs_split): Define.
11852 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
11853 operands.
11854 (spu_convert_move): Define.
782dc37a 11855 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
11856 (spu_split_store): Change all MEM's to TImode.
11857 (spu_init_expanders): Preallocate registers that correspond to
11858 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
11859 mark_reg_pointer.
11860 (spu_split_convert): Define.
11861 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
11862 (_move<mode>, _movdi, _movti): Update predicate and condition.
11863 (load, store): Change to define_split.
11864 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
11865 extend<mode>ti2.
11866 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
11867 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
11868 define_insn_and_split of lshr<mode>3.
11869 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
11870 (<v>ashr<mode>3_imm): Define.
11871 (extv, extzv, insv): Allow MEM operands.
11872 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
11873 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
11874 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
11875 (_spu_convert2): Change to define_insn_and_split and remove the
11876 corresponding define_peephole2.
11877 (stack_protect_set, stack_protect_test, stack_protect_test_si):
11878 Change predicates to memory_operand.
11879
7d31a807
MM
118802009-05-22 Mark Mitchell <mark@codesourcery.com>
11881
11882 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 11883
d021d274
MM
118842009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11885
11886 PR tree-optimization/40219
11887 * tree.c (iterative_hash_expr): Make sure the builtin function is
11888 a normal builtin function and not a front end or back end builtin
11889 before indexing into the built_in_decls array.
11890
4d7a65ea
RG
118912009-05-22 Richard Guenther <rguenther@suse.de>
11892
11893 PR middle-end/38964
11894 * alias.c (write_dependence_p): Do not use TBAA for answering
11895 anti-dependence or output-dependence.
782dc37a 11896 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
11897 (emit_pointer_definition): Remove.
11898 (emit_alias_warning): Likewise.
11899 (find_what_var_points_to): Remove TBAA pruning code.
11900 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
11901 violations.
11902 (compute_points_to_sets): Remove code computing the set of
11903 dereferenced pointers.
11904 * tree-data-ref.c (dr_may_alias_p): Properly use the split
11905 oracle for querying anti and output dependencies.
11906 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
11907 if TBAA may be applied.
11908 (refs_anti_dependent_p): New function.
11909 (refs_output_dependent_p): Likewise.
11910 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
11911 (refs_output_dependent_p): Likewise.
11912 * doc/tree-ssa.texi (Memory model): New section.
11913 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
11914 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
11915 * cfgexpand.c (expand_gimple_basic_block): Do not handle
11916 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
11917 * expr.c (expand_expr_real_1): Likewise.
11918 * gimple-low.c (lower_stmt): Likewise.
11919 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
11920 (dump_gimple_cdt): Remove.
11921 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
11922 (gimple_size): Likewise.
11923 (walk_gimple_op): Likewise.
11924 (is_gimple_stmt): Likewise.
11925 (walk_stmt_load_store_addr_ops): Likewise.
11926 (gimple_build_cdt): Remove.
11927 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
11928 * gimple.h (gimple_cdt_new_type): Remove.
11929 (gimple_cdt_new_type_ptr): Likewise.
11930 (gimple_cdt_set_new_type): Likewise.
11931 (gimple_cdt_location): Likewise.
11932 (gimple_cdt_location_ptr): Likewise.
11933 (gimple_cdt_set_location): Likewise.
11934 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
11935 * tree-cfg.c (remove_useless_stmts_1): Do not handle
11936 GIMPLE_CHANGE_DYNAMIC_TYPE.
11937 (verify_types_in_gimple_stmt): Likewise.
11938 * tree-inline.c (estimate_num_insns): Likewise.
11939 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
11940 (copy_decl_to_var): Likewise.
11941 (copy_result_decl_to_var): Likewise.
11942 * tree-pretty-print.c (dump_generic_node): Do not handle
11943 CHANGE_DYNAMIC_TYPE_EXPR.
11944 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11945 * tree-ssa-operands.c (get_expr_operands): Likewise.
11946 * tree-ssa-structalias.c (struct variable_info): Remove
11947 no_tbaa_pruning member.
11948 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
11949 (unify_nodes): Do not copy it.
11950 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
11951 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
11952 (set_uids_in_ptset): Do not check it.
11953 (find_what_var_points_to): Likewise.
11954 (compute_tbaa_pruning): Remove.
11955 (compute_points_to_sets): Do not call it.
11956 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
11957 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
11958 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
11959 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
11960 (DECL_NO_TBAA_P): Likewise.
11961 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
11962 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
11963 (expand_omp_atomic_pipeline): Do not set it.
11964 * print-tree.c (print_node): Do not dump it.
11965 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11966 redundant check.
11967
83a6ac60
VM
119682009-05-22 Vladimir Makarov <vmakarov@redhat.com>
11969
11970 PR target/39856
11971 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
11972 for clobber.
11973
fe2978fb
MM
119742009-05-22 Mark Mitchell <mark@codesourcery.com>
11975
11976 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
11977 non-external.
11978
134ef638
BE
119792009-05-22 Ben Elliston <bje@au.ibm.com>
11980
11981 * Makefile.in (bversion.h, s-bversion): New targets.
11982 (TOPLEV_H): Add bversion.h.
11983 * toplev.h: Include "bversion.h".
11984 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
11985 the __format__ attribute only if compiling with the same version
11986 of GCC as the sources (the "build version").
11987
52fc669d
BE
119882009-05-22 Ben Elliston <bje@au.ibm.com>
11989
11990 * c-format.c (handle_format_attribute): Fix comment typo.
11991
583ca921
SE
119922009-05-21 Steve Ellcey <sje@cup.hp.com>
11993
11994 PR target/37846
11995 * config/ia64/ia64.opt (mfused-madd): New.
11996 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
11997 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11998 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
11999 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
12000 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
12001 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
12002 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
f100a4a8 12003 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
583ca921
SE
12004 instruction if !TARGET_FUSED_MADD.
12005 (fpma, fpms): Remove colon from name.
12006
150e3929
RG
120072009-05-22 Richard Guenther <rguenther@suse.de>
12008
12009 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
12010 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
12011 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
12012 TARGET_MEM_REF.
12013 (create_expression_by_pieces): Only convert if necessary.
12014 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
12015 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
12016
9a2b090c
AN
120172009-05-21 Adam Nemet <anemet@caviumnetworks.com>
12018
12019 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
12020 regular pattern from a template and rename it ...
12021 (*extzv_truncsi_exts): ... to this.
12022
33b92c9d
RG
120232009-05-21 Richard Guenther <rguenther@suse.de>
12024
12025 * cgraph.h (struct cgraph_node): Remove inline_decl member.
12026 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
12027 (cgraph_default_inline_p): Likewise.
12028 (cgraph_decide_inlining_incrementally): Likewise.
12029
cabf85c3
L
120302009-05-21 H.J. Lu <hongjiu.lu@intel.com>
12031 Uros Bizjak <ubizjak@gmail.com>
12032
12033 * config/i386/cpuid.h (bit_MOVBE): New.
12034
12035 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
12036
12037 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
12038 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
12039 (ix86_handle_option): Handle OPT_mmovbe.
12040 (ix86_target_string): Add -mmovbe.
12041 (pta_flags): Add PTA_MOVBE.
12042 (processor_alias_table): Add PTA_MOVBE to "atom".
12043 (override_options): Handle PTA_MOVBE.
12044
12045 * config/i386/i386.h (TARGET_MOVBE): New.
12046
12047 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
12048 (*bswapsi_movbe): New.
12049 (*bswapdi_movbe): Likewise.
12050 (bswapdi2): Renamed to ...
12051 (*bswapdi_1): This.
12052 (bswapdi2): New expander.
12053
12054 * config/i386/i386.opt (mmovbe): New.
12055
12056 * doc/invoke.texi: Document -mmovbe.
12057
9fefa0aa
TG
120582009-05-21 Taras Glek <tglek@mozilla.com>
12059
12060 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
12061 * gcc-plugin.h (plugin_init): Updated signature.
12062 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
12063 * doc/plugins.texi (plugin_init): Updated documention to reflect
12064 API change.
9fefa0aa
TG
12065 * doc/plugins.texi (plugin_name_args): Added to documention.
12066
1ea9fe56
MM
120672009-05-21 Mark Mitchell <mark@codesourcery.com>
12068
12069 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
12070 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
12071
52f84254
SZ
120722009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
12073
12074 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
12075 JUMP_TABLE_DATA_P predicates where applicable.
12076 * config/i386/predicates.md: Ditto.
12077 * config/i386/sse.md: Ditto.
12078
a952487c
JJ
120792009-05-21 Jakub Jelinek <jakub@redhat.com>
12080
93cac287
JJ
12081 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
12082 operand2 -128 override length_immediate attribute to 1.
12083 * config/i386/predicates.md (constm128_operand): New predicate.
12084
a952487c
JJ
12085 * config/i386/i386.c (memory_address_length): Handle %r12
12086 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
12087 also check REGNO.
12088 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
12089 mode look through optional ZERO_EXTEND and SUBREG.
12090 * config/i386/i386.md (R12_REG): New define_constant.
12091 (prefix_data16): For sse unit set also for MODE_TI insns.
12092 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
12093 insns set if operand 1 is ext_QIreg_operand.
12094 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
12095 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
12096 immediate.
12097 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
12098 mode from MODE_DI to MODE_SI.
12099 (movdi_1_rex64): Override modrm and length_immediate attributes
12100 only for movabs (TYPE_IMOV, alternative 2).
12101 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
12102 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
12103 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
12104 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
12105 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
12106 prefix_rex attribute if DImode.
12107 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
12108 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
12109 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
12110 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
12111 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
12112 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
12113 Likewise. For TYPE_IMOV clear length_immediate attribute.
12114 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
12115 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
12116 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
12117 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
12118 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
12119 or one operand TYPE_ISHIFT.
12120 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
12121 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
12122 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
12123 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
12124 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
12125 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
12126 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
12127 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
12128 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
12129 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
12130 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
12131 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
12132 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
12133 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
12134 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
12135 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
12136 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
12137 set mode attribute, don't override length attribute.
12138 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
12139 to 1.
12140 (return_internal_long): Set length attribute to 2 instead of 1.
12141 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
12142 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
12143 prefix_rex attribute.
782dc37a
UB
12144 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
12145 New predicates.
12146 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 12147
64af62c2
RR
121482009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12149
12150 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
12151
c166b898
ILT
121522009-05-20 Ian Lance Taylor <iant@google.com>
12153
12154 * tree.c (build_tree_list_vec_stat): New function.
12155 (ctor_to_vec): New function.
12156 (build_nt_call_vec): New function.
12157 (build_call_array): Change args to be a const pointer.
12158 (build_call_vec): New function.
12159 * tree.h (build_nt_call_vec): Declare.
12160 (build_tree_list_vec_stat): Declare.
12161 (build_tree_list_vec): Define.
12162 (build_call_array): Update declaration.
12163 (build_call_vec): Declare.
12164 (ctor_to_vec): Declare.
12165 * c-common.c (tree_vector_cache): New static variable.
12166 (make_tree_vector): New function.
12167 (release_tree_vector): New function.
12168 (make_tree_vector_single): New function.
12169 (make_tree_vector_copy): New function.
12170 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
12171 (make_tree_vector_single, make_tree_vector_copy): Declare.
12172 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
12173 (c_parser_expr_list): Don't manage cache here, instead call
12174 make_tree_vector.
12175 (c_parser_release_expr_list): Remove static function.
12176 (c_parser_vec_to_tree_list): Remove static function.
12177 (c_parser_attributes): Call build_tree_list_vec instead of
12178 c_parser_vec_to_tree_list. Call release_tree_vector instead of
12179 c_parser_release_expr_list.
12180 (c_parser_postfix_expression_after_primary): Likewise.
12181 (c_parser_objc_keywordexpr): Likewise.
12182
40449a90
SL
121832009-05-20 Sandra Loosemore <sandra@codesourcery.com>
12184
12185 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
12186 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
12187 TARGET_CONVERT_TO_TYPE.
12188 * hooks.c (hook_tree_const_tree_null): Define.
12189 * hooks.h (hook_tree_const_tree_null): Declare.
12190 * target.h (struct gcc_target): Add invalid_parameter_type,
12191 invalid_return_type, promoted_type, and convert_to_type fields.
12192 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
12193 (TARGET_INVALID_RETURN_TYPE): Define.
12194 (TARGET_PROMOTED_TYPE): Define.
12195 (TARGET_CONVERT_TO_TYPE): Define.
12196 (TARGET_INITIALIZER): Update for new fields.
12197 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
12198 (grokparms): Check targetm.invalid_parameter_type.
12199 * c-typeck.c (default_conversion): Check targetm.promoted_type.
12200 * c-convert.c (convert): Check targetm.convert_to_type.
12201
642d97ff
AN
122022009-05-20 Adam Nemet <anemet@caviumnetworks.com>
12203
12204 * config/mips/mips.md (*extenddi_truncate<mode>,
12205 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
12206 defintions.
12207 (*extendhi_truncateqi): New define_insn_and_sptit.
12208
776248b8
JJ
122092009-05-20 Jakub Jelinek <jakub@redhat.com>
12210
12211 PR middle-end/40204
12212 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 12213 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 12214
d98e8686
EB
122152009-05-20 Eric Botcazou <ebotcazou@adacore.com>
12216
12217 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
12218 the operand of VIEW_CONVERT_EXPR.
12219
37c50435
L
122202009-05-20 H.J. Lu <hongjiu.lu@intel.com>
12221
12222 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 12223 extended family and model for Intel processors. Support Intel Atom.
37c50435 12224
dbb6088f
OH
122252009-05-20 Olivier Hainque <hainque@adacore.com>
12226
12227 * gstab.h (stab_code_type): Define, to be used instead of the
12228 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
12229 notice.
12230 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
12231 occurrences by stab_code_type.
12232 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
12233
7ec49257
MJ
122342009-05-20 Martin Jambor <mjambor@suse.cz>
12235
12236 * tree-flow.h (insert_edge_copies_seq): Undeclare.
12237 (sra_insert_before): Likewise.
12238 (sra_insert_after): Likewise.
12239 (sra_init_cache): Likewise.
12240 (sra_type_can_be_decomposed_p): Likewise.
12241 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
12242 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
12243 (sra_insert_before): Likewise.
12244 (sra_insert_after): Likewise.
12245 (sra_init_cache): Likewise.
12246 (insert_edge_copies_seq): Made static and moved upwards.
12247
12248 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
12249 case.
12250
12251 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
12252
12253 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
12254 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
12255 simple copies.
12256
0328ae4d
RG
122572009-05-20 Richard Guenther <rguenther@suse.de>
12258
12259 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
12260 with mismatched comparison modes.
12261
a7994a57 122622009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 12263
a7994a57 12264 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
12265 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
12266 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
12267 with shifts for Thumb2.
12268 (orsi_notsi): New for orn.
12269 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
12270 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
12271 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
12272 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
12273 Don't invert remainder for IOR.
f100a4a8 12274
e36dc339
ZD
122752009-05-19 Zdenek Dvorak <ook@ucw.cz>
12276
12277 PR tree-optimization/40087
12278 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
12279 number_of_iterations_ne): Rename never_infinite argument.
12280 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
12281 number_of_iterations_le): Handle pointer-type ivs when
12282 exit_must_be_taken is false.
12283 (number_of_iterations_cond): Do not always assume that
12284 exit_must_be_taken if the control variable is a pointer.
12285
5cfd5d9b
AP
122862009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
12287
12288 * c-typeck.c (build_binary_op): Allow % on integal vectors.
12289 * doc/extend.texi (Vector Extension): Document that % is allowed too.
12290
2f1c7156
L
122912009-05-19 H.J. Lu <hongjiu.lu@intel.com>
12292
12293 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
12294 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
12295
7bb27074
MLI
122962009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
12297
12298 PR c/40172
12299 * c.opt (Wlogical-op): Disabled by default.
12300 * c-opt (c_common_post_options): Do not enable Wlogical-op with
12301 Wextra.
12302 * doc/invoke.texi (Wlogical-op): Likewise.
f100a4a8 12303
5aefc6a0
EB
123042009-05-19 Eric Botcazou <ebotcazou@adacore.com>
12305
12306 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
12307 into CASE_CONVERT.
12308 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
12309 Propagate the type of the first operand.
12310 <ASSERT_EXPR>: Simplify.
12311 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
12312 Rewrite using the RHS code as discriminant.
12313 <NOP_EXPR>: Turn into CASE_CONVERT.
12314 <PLUS_EXPR>: Propagate the type of the first operand.
12315
f3a83111
SE
123162009-05-19 Steve Ellcey <sje@cup.hp.com>
12317
12318 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
12319 (ia64_dconst_0_375): New.
12320 * config/ia64/ia64.c (ia64_override_options): Remove
12321 -minline-sqrt-min-latency warning.
12322 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
12323 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
12324 * config/ia64/ia64.md (*sqrt_approx): Remove.
12325 (sqrtsf2): Remove #if 0.
12326 (sqrtsf2_internal_thr): Rewrite and move to div.md.
12327 (sqrtdf): Remove assert.
12328 (sqrtdf2_internal_thr): Rewrite and move to div.md.
12329 (sqrtxf2): Remove #if 0.
12330 (sqrtxf2_internal_thr): Rewrite and move to div.md.
12331 * div.md (sqrt_approx_rf): New.
12332 (sqrtsf2_internal_thr): New implementation.
12333 (sqrtsf2_internal_lat): New.
12334 (sqrtdf2_internal_thr: New implementation.
12335 (sqrtxf2_internal): New implementation.
12336
1ffc7157
FXC
123372009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
12338 Hans-Peter Nilsson <hp@axis.com>
12339
12340 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
12341 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
12342 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
12343 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
12344 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
12345 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
12346 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
12347 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
12348 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
12349 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
12350 * c-common.c: ...from here.
12351
db91d9ef
MLI
123522009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
12353
f3afc8a7 12354 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 12355
bbb9d91f
KG
123562009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12357
12358 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
12359
ce883f54
BE
123602009-05-19 Ben Elliston <bje@au.ibm.com>
12361
12362 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
12363 assignments with memcpy calls.
12364 (add_fdes): Likewise.
12365 (binary_search_unencoded_fdes): Likewise.
12366 (linear_search_fdes): Eliminate type puns.
f100a4a8 12367
377f099a
RG
123682009-05-19 Richard Guenther <rguenther@suse.de>
12369
12370 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
12371 not falsely claim to have propagated into all uses.
12372
848bc769
BE
123732009-05-19 Ben Elliston <bje@au.ibm.com>
12374
12375 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
12376 version to v3.0.
12377
1bb99877
KK
123782009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
12379
12380 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
12381 * config/sh/sh.c (sh_legitimate_address_p): Make static.
12382 (TARGET_LEGITIMATE_ADDRESS_P): New.
12383 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12384 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
f100a4a8 12385
82725547
DS
123862009-05-18 Dodji Seketeli <dodji@redhat.com>
12387
12388 PR debug/40109
12389 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
12390 child of the containing namespace's DIE.
12391
f6a1e430
AN
123922009-05-18 Adam Nemet <anemet@caviumnetworks.com>
12393
12394 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
12395 *zero_extendhi_truncqi): Move after the zero_extend patterns.
12396 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
12397 extend patterns.
12398
6a90d232
L
123992009-05-18 H.J. Lu <hongjiu.lu@intel.com>
12400
12401 PR target/39942
12402 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
12403 gen_align with gen_pad.
12404 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
12405 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
12406
12407 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
12408 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
12409
12410 * config/i386/i386.md (align): Renamed to ...
12411 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
12412 ASM_OUTPUT_MAX_SKIP_PAD.
12413
c4406f74
AS
124142009-05-18 Andreas Schwab <schwab@linux-m68k.org>
12415
06555043
AS
12416 * config.gcc: Fix variable syntax.
12417
c4406f74
AS
12418 PR target/39531
12419 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
12420 before calling exact_log2.
12421 (output_iorsi3): Likewise.
12422 (output_xorsi3): Likewise.
12423
99052692
KK
124242009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
12425
12426 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
12427 for the none zero constant operand except for EQ and NE
12428 comprisons even when the first operand is R0.
12429
f4aa3848
AK
124302009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
12431
12432 * config/s390/2064.md: Remove trailing whitespaces.
12433 * config/s390/2084.md: Likewise.
12434 * config/s390/constraints.md: Likewise.
12435 * config/s390/fixdfdi.h: Likewise.
12436 * config/s390/libgcc-glibc.ver: Likewise.
12437 * config/s390/s390-modes.def: Likewise.
12438 * config/s390/s390-protos.h: Likewise.
12439 * config/s390/s390.c: Likewise.
12440 * config/s390/s390.h: Likewise.
12441 * config/s390/s390.md: Likewise.
12442 * config/s390/tpf-unwind.h: Likewise.
12443
ab7256e4
MK
124442009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
12445
12446 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
12447
75df395f
MK
124482009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
12449
12450 M68K TLS support.
12451 * configure.ac (m68k-*-*): Check if binutils support TLS.
12452 * configure: Regenerate.
12453 * config/m68k/predicates.md (symbolic_operand): Extend comment.
12454 * config/m68k/constraints.md (Cu): New constraint.
12455 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
12456 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
12457 (movsi): Handle TLS symbols.
12458 (addsi3_5200): Handle XTLS symbols, indent.
12459 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
12460 (m68k_tls_reference_p): Declare.
12461 (m68k_legitimize_address): Declare.
12462 (m68k_unwrap_symbol): Declare.
12463 * config/m68k/m68k.opt (mxtls): New option.
12464 * config/m68k/m68k.c (ggc.h): Include.
12465 (m68k_output_dwarf_dtprel): Implement hook.
12466 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
12467 (m68k_expand_prologue): Load GOT pointer when function needs it.
12468 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
12469 (m68k_legitimate_constant_address_p): Same.
12470 (m68k_decompose_address): Handle TLS references.
12471 (m68k_get_gp): New static function.
12472 (enum m68k_reloc): New contants.
12473 (TLS_RELOC_P): New macro.
12474 (m68k_wrap_symbol): New static function.
12475 (m68k_unwrap_symbol): New function.
12476 (m68k_final_prescan_insn_1): New static function.
12477 (m68k_final_prescan_insn): New function.
12478 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
12479 functions.
12480 (legitimize_pic_address): Handle TLS references..
12481 (m68k_tls_get_addr, m68k_get_tls_get_addr)
12482 (m68k_libcall_value_in_a0_p)
12483 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
12484 (m68k_call_m68k_read_tp): Helper variables and functions for ...
12485 (m68k_legitimize_tls_address): Handle TLS references.
12486 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
12487 New functions.
12488 (m68k_legitimize_address): Handle TLS symbols.
12489 (m68k_get_reloc_decoration): New static function.
12490 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
12491 UNSPEC_RELOC32.
12492 (m68k_output_dwarf_dtprel): Implement hook.
12493 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
12494 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
12495 m68k_call_* routines.
12496 (sched_attr_op_type): Handle TLS symbols.
12497 (gt-m68k.h): Include.
12498 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
12499 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
12500
8b75fc9b
MJ
125012009-05-18 Martin Jambor <mjambor@suse.cz>
12502
12503 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
12504 (visit_store_addr_for_mod_analysis): New function.
12505 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
12506 (determine_cst_member_ptr): Use gimple_assign_single_p.
12507 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
12508 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
12509 operands. Don't check number of operands of a NOP_EXPR.
12510
f133d4a2
EF
125112009-05-18 Eric Fisher <joefoxreal@gmail.com>
12512
12513 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
12514
ae8af500
L
125152009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
12516
12517 PR c/40172
12518 * c-common.c (warn_logical_operator): Don't warn if one of
12519 expression isn't always true or false.
12520
25e8fde8
KT
125212009-05-17 Kai Tietz <kai.tietz@onevision.com>
12522
ae8af500
L
12523 * config/i386/biarch32.h: New file.
12524 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 12525
ef67af22
AN
125262009-05-17 Adam Nemet <anemet@caviumnetworks.com>
12527
12528 * config/mips/mips.md (*zero_extend<mode>_trunchi,
12529 *zero_extend<mode>_truncqi): Merge these into ...
12530 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
12531 Name the pattern following this as *zero_extendhi_truncqi.
12532
e2d87023
BL
125332009-05-16 Brad Lucier <lucier@math.purdue.edu>
12534
12535 PR middle-end/39301
12536 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
12537 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
12538 (output_info): Make field HOST_WIDEST_INT.
12539 (print_statistics): Use HOST_WIDEST_INT_PRINT.
12540 (dump_bitmat_statistics): Same.
12541
428ddbf0
FXC
125422009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
12543
12544 * config.gcc (use_gcc_stdint): Set to wrap.
12545 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12546 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12547 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12548 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12549 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12550 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12551 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12552 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12553
1ab8a8c2
JM
125542009-05-16 Joseph Myers <joseph@codesourcery.com>
12555
12556 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
12557 tune_64.
12558 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
12559 Move definitions earlier.
12560 (OPT_ARCH64, OPT_ARCH32): Define.
12561 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
12562 and tune_64.
12563
70544f44
RE
125642009-05-16 Richard Earnshaw <rearnsha@arm.com>
12565
12566 PR target/40153
12567 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
12568 implies.
12569
6241ded1
RE
125702009-05-16 Richard Earnshaw <rearnsha@arm.com>
12571
12572 * arm.md (movdi2): Copy non-reg values to DImode registers.
12573
a99c6711
JJ
125742009-05-16 Jakub Jelinek <jakub@redhat.com>
12575
40a8f07a
JJ
12576 PR target/39942
12577 * final.c (label_to_max_skip): New function.
12578 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
12579 CODE_LABEL_NUMBER <= max_labelno.
12580 * output.h (label_to_max_skip): New prototype.
12581 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
12582 (ix86_avoid_jump_mispredicts): ... this. Don't define if
12583 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
12584 Handle CODE_LABELs with >= 16 byte alignment or with
12585 max_skip == (1 << align) - 1.
12586 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
12587 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
12588
a99c6711
JJ
12589 PR target/39942
12590 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
12591 .p2align 3 if MAX_SKIP is smaller than 7.
12592 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12593
7e5487a2
ILT
125942009-05-15 Ian Lance Taylor <iant@google.com>
12595
12596 * alias.c (struct alias_set_entry_d): Rename from struct
12597 alias_set_entry. Change all uses.
12598 * except.c (struct call_site_record_d): Rename from struct
12599 call_site_record. Change all uses.
12600 * except.h (struct eh_region_d): Rename from struct eh_region.
12601 Change all uses.
12602 * gcse.c (struct hash_table_d): Rename from struct hash_table.
12603 Change all uses.
12604 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
12605 ivtype_map_elt. Change all uses.
12606 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
12607 Change all uses.
12608 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
12609 * graphite.h (struct name_tree_d): Rename from struct name_tree.
12610 Change all uses.
12611 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
12612 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
12613 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
12614 * optabs.h (struct optab_d): Rename from struct optab. Change all
12615 uses.
12616 (struct convert_optab_d): Rename from struct convert_optab.
12617 Change all uses.
12618 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
12619 ipa_opt_pass. Change all uses.
12620 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
12621 all uses.
12622
12623 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
12624 defined as a typedef.
12625 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
12626 defined as a tag.
12627
a243fb4a
MLI
126282009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12629
12630 PR 16302
12631 * fold-const.c (make_range,build_range_check,merge_ranges): Move
12632 declaration to...
f100a4a8 12633 (merge_ranges): Returns bool.
a243fb4a
MLI
12634 * tree.h (make_range): .. to here.
12635 (build_range_check): Likewise.
12636 (merge_ranges): Likewise. Renamed from merge_ranges.
12637 * c-typeck.c (parser_build_binary_op): Update calls to
12638 warn_logical_operator.
12639 * c-common.c (warn_logical_operator): Add new warning.
12640 * c-common.h (warn_logical_operator): Update declaration.
f100a4a8 12641
1b53c5f3
MLI
126422009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12643
782dc37a 12644 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
f100a4a8 12645
c128599a
KG
126462009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12647
f9bab007
KG
12648 * doc/install.texi: Document MPC requirements, flags etc.
12649
c128599a
KG
12650 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
12651 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
12652 Evaluate constant arguments.
12653 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
12654 (fold_builtin_1): Likewise, also evaluate constant arguments.
12655 Remove superfluous break.
12656 (do_mpc_ckconv): New.
12657 * real.h: Include mpc.h.
12658 * toplev.c (print_version): Output MPC version info if available.
12659
d33e4b70
SL
126602009-05-15 Sandra Loosemore <sandra@codesourcery.com>
12661
782dc37a 12662 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 12663
a02ab464
L
126642009-05-15 H.J. Lu <hongjiu.lu@intel.com>
12665
12666 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
12667 only once.
12668
796bda22
JH
126692009-05-15 Jan Hubicka <jh@suse.cz>
12670
12671 * doc/invoke.texi (max-early-inliner-iterations): New flag.
12672 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
12673 (try_inline): Fix return value.
12674 (cgraph_decide_inlining_incrementally): Honor new value.
12675 (cgraph_early_inlining): Handle indirect inlining.
12676 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
12677
d88e5c37
JH
126782009-05-15 Jan Hubicka <jh@suse.cz>
12679
12680 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
12681 * cgraphunit.c (cgraph_finalize_function): Set it.
12682 (cgraph_expand_function): Use it.
12683
ae63687c
SL
126842009-05-15 Sandra Loosemore <sandra@codesourcery.com>
12685
12686 * real.c (encode_ieee_half): Define.
12687 (decode_ieee_half): Define.
12688 (ieee_half_format): Define.
12689 (arm_half_format): Define.
12690 * real.h (ieee_half_format): Declare.
12691 (arm_half_format): Declare.
12692
1bd74ad9
SL
126932009-05-15 Sandra Loosemore <sandra@codesourcery.com>
12694
12695 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
12696 swapped, and reversed optabs exist before trying to use them.
12697
dc34db56
PB
126982009-05-15 Paul Brook <paul@codesourcery.com>
12699 Sandra Loosemore <sandra@codesourcery.com>
12700
dc34db56
PB
12701 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
12702 loads. Allow PRE_DEC.
12703 (output_move_neon): Handle PRE_DEC.
12704 (arm_print_operand): Add 'A' for neon structure loads.
12705 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
12706 * config/arm/neon.md (neon_mov): Update comment.
12707 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
12708 calls.
12709 (Um): New constraint.
12710
1d405d7b
JH
127112009-05-15 Jan Hubicka <jh@suse.cz>
12712
12713 Revert the following patch until testsuite fallout is fixed:
12714 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
12715 * cgraph.h (struct inline_summary): New filed self_wize,
12716 size_inlining_benefit, self_time and time_inlining_benefit.
12717 (struct cgraph_global_info): Replace insns by time ans size fields.
12718 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
12719 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
12720 (ipcp_update_callgraph): Do not touch function bodies.
12721 * ipa-inline.c: Include except.h
782dc37a 12722 (MAX_TIME): New constant.
1d405d7b
JH
12723 (overall_insns): Remove
12724 (overall_size, max_benefit): New static variables.
12725 (cgraph_estimate_time_after_inlining): New function.
12726 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
12727 (cgraph_clone_inlined_nodes): Update size.
12728 (cgraph_mark_inline_edge): Update size.
12729 (cgraph_estimate_growth): Use size info.
12730 (cgraph_check_inline_limits): Check size.
12731 (cgraph_default_inline_p): Likewise.
12732 (cgraph_edge_badness): Compute badness based on benefit and size cost.
12733 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
12734 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
12735 and times.
1d405d7b 12736 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
12737 (cgraph_decide_inlining_incrementally): Likewise; honor
12738 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
12739 (likely_eliminated_by_inlining_p): New predicate.
12740 (estimate_function_body_sizes): New function.
12741 (compute_inline_parameters): Use it.
12742 * except.c (must_not_throw_labels): New function.
12743 * except.h (must_not_throw_labels): Declare.
12744 * tree-inline.c (init_inline_once): Kill inlining_weigths
12745 * tree-ssa-structalias.c: Avoid uninitialized warning.
12746 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
12747 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
12748 (PARAM_INLINE_CALL_COST): Remove.
12749 (PARAM_EARLY_INLINING_INSNS): New.
12750
7ffa47ca
RG
127512009-05-15 Richard Guenther <rguenther@suse.de>
12752
12753 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
12754 not TODO_update_ssa.
12755
828552ed
RG
127562009-05-15 Richard Guenther <rguenther@suse.de>
12757
12758 PR tree-optimization/39999
12759 * gimple.h (gimple_expr_type): Use the expression type looking
12760 through useless conversions.
12761 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
12762 (vn_nary_op_insert_stmt): Likewise.
12763 (simplify_binary_expression): Likewise.
12764
248fc9f3
RG
127652009-05-15 Richard Guenther <rguenther@suse.de>
12766
12767 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
12768 New options, enabled by default.
12769 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
12770 Document.
12771 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
12772 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
12773 * tree-ssa-structalias.c (gate_tree_pta): New function.
12774 (pass_build_alias): Use it.
12775
16b29cc4
JM
127762009-05-15 Joseph Myers <joseph@codesourcery.com>
12777
12778 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
12779 recurse on an invariant address if a conversion from a pointer
12780 type to a wider integer type is involved.
12781
125cae84
JH
127822009-05-15 Jan Hubicka <jh@suse.cz>
12783
12784 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
12785 * cgraph.h (struct inline_summary): New filed self_wize,
12786 size_inlining_benefit, self_time and time_inlining_benefit.
12787 (struct cgraph_global_info): Replace insns by time ans size fields.
12788 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
12789 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
12790 (ipcp_update_callgraph): Do not touch function bodies.
12791 * ipa-inline.c: Include except.h
782dc37a 12792 (MAX_TIME): New constant.
125cae84
JH
12793 (overall_insns): Remove
12794 (overall_size, max_benefit): New static variables.
12795 (cgraph_estimate_time_after_inlining): New function.
12796 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
12797 (cgraph_clone_inlined_nodes): Update size.
12798 (cgraph_mark_inline_edge): Update size.
12799 (cgraph_estimate_growth): Use size info.
12800 (cgraph_check_inline_limits): Check size.
12801 (cgraph_default_inline_p): Likewise.
12802 (cgraph_edge_badness): Compute badness based on benefit and size cost.
12803 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
12804 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
12805 and times.
125cae84 12806 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
12807 (cgraph_decide_inlining_incrementally): Likewise; honor
12808 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
12809 (likely_eliminated_by_inlining_p): New predicate.
12810 (estimate_function_body_sizes): New function.
12811 (compute_inline_parameters): Use it.
12812 * except.c (must_not_throw_labels): New function.
12813 * except.h (must_not_throw_labels): Declare.
12814 * tree-inline.c (init_inline_once): Kill inlining_weigths
12815 * tree-ssa-structalias.c: Avoid uninitialized warning.
12816 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
12817 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
12818 (PARAM_INLINE_CALL_COST): Remove.
12819 (PARAM_EARLY_INLINING_INSNS): New.
12820 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
12821 (inline-call-cost): Remove.
12822 (early-inlining-insns): New.
12823
84fb43a1
EB
128242009-05-15 Eric Botcazou <ebotcazou@adacore.com>
12825
12826 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
12827 for bounds.
12828 (print_int_cst_bounds_in_octal_p): Likewise.
12829 (dbxout_type): Adjust calls to above functions. Be prepared to deal
12830 with subtypes.
12831 * dwarf2out.c (base_type_die): Likewise.
12832 (is_subrange_type): Delete.
12833 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
12834 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
12835 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
12836 if the destination type is boolean.
84fb43a1
EB
12837 (build_range_check): Do not special-case subtypes.
12838 (fold_sign_changed_comparison): Likewise.
12839 (fold_unary): Likewise.
12840 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
12841 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
12842 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
12843 * tree.c (subrange_type_for_debug_p): New predicate based on the
12844 former is_subrange_type.
84fb43a1
EB
12845 * tree.h (subrange_type_for_debug_p): Declare.
12846 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
12847 (convert_affine_scev): Remove call to above function.
12848 (chrec_convert_aggressive): Likewise.
12849 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
12850 false for conversions involving subtypes.
12851 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
12852 (vrp_val_min): Likewise.
12853 (needs_overflow_infinity): Likewise.
12854 (extract_range_from_unary_expr): Likewise.
12855
331d9186
PB
128562009-05-15 Paolo Bonzini <bonzini@gnu.org>
12857
e9351712
L
12858 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
12859 * config/frv/frv.c: Likewise.
12860 * config/s390/s390.c: Likewise.
12861 * config/sparc/sparc.h: Likewise.
12862 * config/i386/i386.h: Likewise.
12863 * config/i386/i386.c: Likewise.
12864 * config/crx/crx.c: Likewise.
12865 * config/m68hc11/m68hc11.h: Likewise.
12866 * config/iq2000/iq2000.c: Likewise.
12867 * config/mn10300/mn10300.h: Likewise.
12868 * config/mn10300/mn10300.c: Likewise.
12869 * config/m68k/m68k.c: Likewise.
12870 * config/rs6000/rs6000.c: Likewise.
12871 * config/rs6000/xcoff.h: Likewise.
12872 * config/rs6000/linux64.h: Likewise.
12873 * config/rs6000/sysv4.h: Likewise.
12874 * config/score/score3.c: Likewise.
12875 * config/score/score7.c: Likewise.
12876 * config/score/score.c: Likewise.
12877 * config/arm/arm.md: Likewise.
12878 * config/mips/mips.c: Likewise.
12879 * config/mips/mips.md: Likewise.
12880 * config/bfin/bfin.h: Likewise.
12881 * config/pa/pa.c: Likewise.
12882 * config/pa/constraints.md: Likewise.
12883
12884 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
12885 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
12886 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 12887
09639a83
ILT
128882009-05-14 Ian Lance Taylor <iant@google.com>
12889
12890 * passes.c (finish_optimization_passes): Change i to int.
12891 * plugin.c (plugins_active_p): Change event to int.
12892 (dump_active_plugins): Likewise.
12893 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
12894 Add cast.
12895 * tree.c (tree_range_check_failed): Change c to unsigned int.
12896 (omp_clause_range_check_failed): Likewise.
12897 (build_common_builtin_nodes): Change mode to int. Add cast.
12898 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
12899 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
12900
12901 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
12902 ++ or -- with a variable of enum type.
12903
c04a56bf
SB
129042009-05-14 Steven Bosscher <steven@gcc.gnu.org>
12905
12906 PR driver/40144
12907 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
12908
237ee620
SB
129092009-05-14 Steven Bosscher <steven@gcc.gnu.org>
12910
12911 * store-motion.c: Do not include params.h
12912 * Makefile.in: Fix dependencies for various files.
12913
1154c4fa
SB
129142009-05-14 Steven Bosscher <steven@gcc.gnu.org>
12915
12916 * auto-inc-dec.c: Fix pass description, remove apparent
12917 accidental duplication.
12918
61c27353
L
129192009-05-14 H.J. Lu <hongjiu.lu@intel.com>
12920
12921 PR middle-end/40147
12922 * ipa-utils.h (memory_identifier_string): Moved to ...
12923 * tree.h (memory_identifier_string): Here. Add GTY(()).
12924
c6c3dba9
PB
129252009-05-14 Paolo Bonzini <bonzini@gnu.org>
12926
12927 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
12928 in the former documentation of...
12929 (GO_IF_LEGITIMATE_ADDRESS): ... this.
12930 * ira-conflicts.c (get_dup_num): Use address_operand.
12931 * targhooks.c (default_legitimate_address_p): New.
12932 * targhooks.h (default_legitimate_address_p): New.
12933 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
12934 Call hook.
12935 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
12936 * target.h (struct target): Add legitimate_address_p.
12937 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
12938 (TARGET_INITIALIZER): Include it.
12939
12940 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12941 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
12942 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
12943 (TARGET_LEGITIMATE_ADDRESS_P): New.
12944
12945 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12946 (REG_OK_STRICT_P): Delete.
12947 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
12948 (frv_legitimate_address_p_1): ... this.
12949 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
12950 (frv_legitimate_address_p_1): ... the renamed old
12951 frv_legitimate_address_p.
12952 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
12953 (TARGET_LEGITIMATE_ADDRESS_P): New.
12954
12955 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12956 * config/s390/s390-protos.h (legitimate_address_p): Remove.
12957 * config/s390/s390.c (legitimate_address_p): Rename to...
12958 (s390_legitimate_address_p): ... this, make static.
12959 (legitimize_address): Adjust call.
12960 (TARGET_LEGITIMATE_ADDRESS_P): New.
12961 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
12962
12963 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12964 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
12965 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
12966 (TARGET_LEGITIMATE_ADDRESS_P): New.
12967
12968 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12969 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
12970 * config/spu/spu.c (spu_legitimate_address): Rename to...
12971 (spu_legitimate_address_p): ... this, make static.
12972 (TARGET_LEGITIMATE_ADDRESS_P): New.
12973
12974 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12975 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
12976 * config/sparc/sparc.c (legitimate_address_p): Rename to...
12977 (sparc_legitimate_address_p): ... this, make static and return bool.
12978 (legitimize_address): Adjust call.
12979 (TARGET_LEGITIMATE_ADDRESS_P): New.
12980
12981 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12982 * config/i386/i386-protos.h (legitimate_address_p): Remove.
12983 * config/i386/i386.c (legitimate_address_p): Rename to...
12984 (ix86_legitimate_address_p): ... this, make static.
12985 (constant_address_p): Move after it, adjust call.
12986 (TARGET_LEGITIMATE_ADDRESS_P): New.
12987
12988 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12989 * config/avr/avr-protos.h (legitimate_address_p): Remove.
12990 * config/avr/avr.c (legitimate_address_p): Rename to...
12991 (avr_legitimate_address_p): ... this, make static.
12992 (legitimize_address): Adjust call.
12993 (TARGET_LEGITIMATE_ADDRESS_P): New.
12994
12995 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
12996 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
12997 * config/crx/crx.c (crx_legitimate_address_p): Make static.
12998 (TARGET_LEGITIMATE_ADDRESS_P): New.
12999
13000 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13001 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
13002 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
13003 (TARGET_LEGITIMATE_ADDRESS_P): New.
13004
13005 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13006 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
13007 Remove.
13008 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
13009 Make static.
13010 (TARGET_LEGITIMATE_ADDRESS_P): New.
13011
13012 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13013 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
13014 Remove.
13015 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
13016 Rename to...
13017 (m68hc11_legitimate_address_p): ... this, make static.
13018 (go_if_legitimate_address_internal): Rename to...
13019 (m68hc11_legitimate_address_p_1): ... this.
13020 (legitimize_address): Adjust call.
13021 (TARGET_LEGITIMATE_ADDRESS_P): New.
13022
13023 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
13024 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
13025 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
13026 (TARGET_LEGITIMATE_ADDRESS_P): New.
13027
13028 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13029 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
13030 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
13031 (mn10300_legitimate_address_p): ... this, make static.
13032 (TARGET_LEGITIMATE_ADDRESS_P): New.
13033
13034 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13035 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
13036 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
13037 (TARGET_LEGITIMATE_ADDRESS_P): New.
13038
13039 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13040 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
13041 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
13042 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13043 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
13044 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
13045 (rs6000_legitimate_address_p): ... this, make static.
13046 (TARGET_LEGITIMATE_ADDRESS_P): New.
13047 (REG_MODE_OK_FOR_BASE_P): Delete.
13048 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
13049
13050 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13051 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
13052 Delete.
13053 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
13054 static, adjust types.
13055 (TARGET_LEGITIMATE_ADDRESS_P): New.
13056
13057 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13058 * config/score/score.c (score_address_p): Rename to...
13059 (score_legitimate_address_p): ... this.
13060 (TARGET_LEGITIMATE_ADDRESS_P): New.
13061 * config/score/score3.c (score3_address_p): Rename to...
13062 (score3_legitimate_address_p): ... this.
13063 * config/score/score7.c (score7_address_p): Rename to...
13064 (score7_legitimate_address_p): ... this.
13065
13066 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
13067 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
13068 GO_IF_LEGITIMATE_ADDRESS): Delete.
13069 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
13070 thumb2_legitimate_address_p): Delete.
13071 (arm_legitimate_address_p): Rename to...
13072 (arm_legitimate_address_outer_p): ... this.
13073 * config/arm/constraints.md ("Uq"): Adjust call.
13074 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
13075 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
13076 to...
c6c3dba9 13077 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
13078 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
13079 static.
c6c3dba9
PB
13080 (TARGET_LEGITIMATE_ADDRESS_P): New.
13081
13082 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13083 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
13084 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
13085 (TARGET_LEGITIMATE_ADDRESS_P): New.
13086
13087 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13088 * config/vax/vax-protos.h (legitimate_address_p): Remove.
13089 * config/vax/vax.c (legitimate_address_p): Rename to...
13090 (vax_legitimate_address_p): ... this, make static.
13091 (TARGET_LEGITIMATE_ADDRESS_P): New.
13092
13093 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13094 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
13095 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
13096 (TARGET_LEGITIMATE_ADDRESS_P): New.
13097
13098 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13099 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
13100 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
13101 (mmix_legitimate_address_p): ... this, make static.
13102 (TARGET_LEGITIMATE_ADDRESS_P): New.
13103
13104 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
13105 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
13106 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
13107 (TARGET_LEGITIMATE_ADDRESS_P): New.
13108
3bd0d9c8
PB
131092009-05-14 Paolo Bonzini <bonzini@gnu.org>
13110
13111 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
13112 of MODE_COMPLEX_INT.
13113
fe049033
RO
131142009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13115
13116 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
13117 LCT_NORMAL in function call.
13118 * mips-tdump.c (print_file_desc): Add cast to enum type.
13119 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
13120 (mark_stabs): Add casts to enum types.
13121 (parse_stabs_common): Add casts to enum types.
16f7ad42 13122
b0907a6c
AN
131232009-05-13 Adam Nemet <anemet@caviumnetworks.com>
13124
13125 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
13126 Check for invalid values of LETTER.
13127
d1c8e08a
TG
131282009-05-13 Taras Glek <tglek@mozilla.com>
13129
f3afc8a7
UB
13130 * attribs.c (register_attribute): moved out attribute registration
13131 into register_attribute.
13132 * doc/plugins.texi: Documented register_attribute and
13133 PLUGIN_ATTRIBUTES.
16f7ad42
TG
13134 * gcc-plugin.h: Added forward decl for register_attribute.
13135 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
13136 * plugin.c (register_callback, invoke_plugin_callbacks): Added
13137 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 13138
4ed7f970
DK
131392009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
13140
13141 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
13142 values even in sentinel and empty entries.
13143 (ms_printf_flag_specs): Likewise.
13144 (ms_scanf_flag_specs): Likewise.
13145 (ms_strftime_flag_specs): Likewise.
13146 (ms_print_char_table): Likewise.
13147 (ms_scan_char_table): Likewise.
13148 (ms_time_char_table): Likewise.
13149
3d8fa148
DK
131502009-05-13 Doug Kwan <dougkwan@google.com>
13151
13152 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
13153
f06257d3
AN
131542009-05-13 Adam Nemet <anemet@caviumnetworks.com>
13155
13156 * config/mips/mips.md (store): Add attributes for QI and HI.
13157 Update comment.
13158 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
13159 (truncdi<mode>2): ... this new pattern.
13160
fb201767
BH
131612009-05-13 Brad Hards <bradh@kde.org>
13162
13163 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
13164
c7bda60e 131652009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
13166 Ben Elliston <bje@au.ibm.com>
13167
13168 PR middle-end/40035
13169 * dse.c (check_mem_read_rtx): Guard against width == -1.
13170
ce985b43
MM
131712009-05-13 Michael Matz <matz@suse.de>
13172
13173 PR middle-end/39976
13174 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
13175 (trivially_conflicts_p): New function.
13176 (insert_backedge_copies): Use it.
13177
7de1d221
JJ
131782009-05-13 Janis Johnson <janis187@us.ibm.com>
13179
13180 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
13181 (handle_stdc_pragma): Use new enum constant names.
13182 (handle_pragma_float_const_decimal64): Ditto.
13183
bfefafc6
ILT
131842009-05-13 Ian Lance Taylor <iant@google.com>
13185
13186 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
13187 tree.def.
13188
286c4fcb
NS
131892009-05-13 Nathan Sidwell <nathan@codesourcery.com>
13190
13191 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
13192 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
13193 multilibs.
13194 * config/m68k/m68k.h (FL_UCLINUX): Define.
13195
ebaa6ea7
JH
131962009-05-13 Jan Hubicka <jh@suse.cz>
13197
13198 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
13199
2b703e1a
KK
132002009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
13201
13202 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
13203 unless -fschedule-insns is specified.
13204
c3537723
KK
132052009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
13206
13207 PR target/39561
13208 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
13209 TARGET_EXPAND_CBRANCHDI4.
13210 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
13211 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
13212 (cmpeqdi): Fix comment.
13213
cdeed45a
KK
132142009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
13215
13216 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
13217 (sh_legitimate_address_p): Likewise.
13218 * config/sh/sh.c (sh_legitimate_index_p): New.
13219 (sh_legitimate_address_p): Likewise.
13220 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
13221 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
13222 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
13223 (MAYBE_BASE_REGISTER_RTX_P): New macro.
13224 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
13225 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
13226 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
13227 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
13228 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
13229
02f0b13a
JH
132302009-05-12 Jan Hubicka <jh@suse.cz>
13231
13232 * tree-inline.c (estimate_operator_cost): Add operands;
13233 when division happens by constant, it is cheap.
13234 (estimate_num_insns): Loads and stores are not having cost of 0;
13235 EH magic stuff is cheap; when computing runtime cost of switch,
13236 use log2 base of amount of its cases; builtin_expect has cost of 0;
13237 compute cost for moving return value of call.
13238 (init_inline_once): Initialize time_based flags.
13239 * tree-inline.h (eni_weights_d): Add time_based flag.
13240
ecb7f6de
PB
132412009-05-12 Paolo Bonzini <bonzini@gnu.org>
13242
13243 * df-core.c: Update head documentation.
13244
c24151ce
MM
132452009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13246
13247 PR bootstrap/40118
13248 * rs6000.c (rs6000_generate_compare): Use op1b instead of
13249 shadowing exisiting variable op1.
13250
fbdf817d
UB
132512009-05-12 Uros Bizjak <ubizjak@gmail.com>
13252
704bf7c8 13253 PR target/37179
fbdf817d
UB
13254 * config/i386/driver-i386.c (processor_signatures): New enum.
13255 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
13256 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
13257 processor signature to detect geode processor.
13258
5e8d1826
PB
132592009-05-12 Paolo Bonzini <bonzini@gnu.org>
13260
13261 Revert:
13262
13263 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
13264
13265 * optabs.c (prepare_cmp_insn): Temporarily disable test that
13266 causes spurious differences between trunk and cond-optab branch.
13267
f90b7a5a
PB
132682009-05-12 Paolo Bonzini <bonzini@gnu.org>
13269
fbdf817d
UB
13270 * dojump.c (compare_from_rtx): Delete.
13271 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
13272 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
13273 if the comparison does not satisfy the predicate; test predicates for
13274 operands 2 and 3 of a cstore pattern. Don't try cstore optab
13275 further if one existing pattern fails.
fbdf817d 13276 * expr.h (compare_from_rtx): Delete.
f90b7a5a 13277 (prepare_operand): Declare it.
fbdf817d 13278 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 13279 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
13280 HAVE_conditional_trap, emit_cmp_insn): Delete.
13281 (can_compare_p): Delete cmp_optab case.
f90b7a5a 13282 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
13283 Accept other parameters by value.
13284 (prepare_operand): Make non-static.
13285 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
13286 other parameters by value. Try to widen operands here based on
13287 an optab_methods argument and looking at cbranch_optab.
13288 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
13289 loop. Use cbranch_optab directly.
13290 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
13291 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
13292 assertion.
13293 (emit_conditional_move, emit_conditional_add): Inline what's needed
13294 of compare_from_rtx, using new prepare_cmp_insn for the rest.
13295 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
13296 with COMPARE. Move cmov_optab and cstore_optab above
13297 with cbranch_optab, move cmp_optab down with ucmp_optab,
13298 remove tst_otpab. Do not initialize trap_rtx.
13299 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
13300 for trap code. Do not check HAVE_conditional_trap. Use
13301 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
13302 * optabs.h (OTI_cmp): Mark as used only for libcalls.
13303 (OTI_ctrap, ctrap_optab): New.
13304 (tst_optab): Delete.
13305 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
13306 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
13307 with lookup of ctrap_optab.
f3afc8a7
UB
13308 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
13309 Delete.
fbdf817d
UB
13310 (ctrap_optab): New.
13311
13312 * combine.c (combine_simplify_rtx, simplify_set): Do not
13313 special case comparing against zero for cc0 machines.
f90b7a5a
PB
13314 * simplify-rtx.c (simplify_binary_operation_1): Never remove
13315 COMPARE on cc0 machines.
13316 (simplify_relational_operation): Return a new expression when
13317 a COMPARE could be removed.
fbdf817d
UB
13318 * final.c (final_scan_insn): Compare cc_status values
13319 against LHS of a (compare FOO (const_int 0)) cc0 source.
13320 Also check if cc_status.value is the full compare.
f90b7a5a 13321
fbdf817d
UB
13322 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
13323 (cstoreMM4): Document.
f90b7a5a 13324 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 13325 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
13326 (Dependent Patterns): Eliminate obsolete information referring to
13327 the old jump optimization phase.
fbdf817d 13328 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
13329 of compares with 0 on cc0 machines.
13330 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
13331 avoiding references to cc0. Remove text about storing operands
13332 in cmpMM.
13333 * doc/tm.texi (Condition Codes): Include blurb on different
13334 condition code representations, separate into subsections for
13335 CC0, MODE_CC and conditional execution.
13336
fbdf817d
UB
13337 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
13338 alpha_emit_setcc): Accept operands and a machine mode.
13339 * config/alpha/alpha.c (alpha_emit_conditional_branch):
13340 Get code/op0/op1 from operands, use machine mode argument
13341 instead of alpha_compare.fp_p. Emit the branch here.
13342 (alpha_emit_setcc): Likewise, and return boolean.
13343 (alpha_emit_conditional_move): Likewise. Assert that
13344 cmp_op_mode == cmp_mode, and simplify accordingly.
13345 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
13346 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
13347 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
13348 Delete.
13349 (stack probe test): Use cbranchdi4.
13350 * config/alpha/predicates.md (alpha_cbranch_operator): New.
13351
f100a4a8 13352 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
fbdf817d
UB
13353 * config/arc/arc.h (movsicc, movsfcc): Use it.
13354 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
13355 (cbranchsi4, cstoresi4): New.
f100a4a8 13356 (cmpsi, bCC and sCC expanders): Remove.
fbdf817d
UB
13357
13358 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
13359 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
13360 * config/arm/predicates.md (arm_comparison_operator): Only include
13361 floating-point operators if there is a hardware floating-point unit.
13362 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
13363 deferring to cbranch_cc and cstore_cc respectively.
13364 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
13365 cbranch_cc, cstore_cc): New.
13366 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 13367 arm_compare_op1.
fbdf817d
UB
13368 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
13369
13370 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
13371 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
13372 as an argument.
13373 (adjust_insn_length): Adjust calls.
13374 (avr_reorg): Handle (compare (foo) (const_int 0)).
13375 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
13376 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
13377 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
13378 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
13379 (bCC): Remove.
13380 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
13381 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
13382
fbdf817d
UB
13383 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
13384 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 13385 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
13386 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
13387 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
13388 (bfin_optimize_loop): Use cbranch expander.
13389 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
13390 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
13391 (bfin_bimode_comparison_operator): ... this.
13392 (bfin_direct_comparison_operator): New.
f100a4a8 13393
fbdf817d
UB
13394 * config/cris/cris.c (cris_normal_notice_update_cc): Look
13395 inside (compare FOO (const_int 0)).
13396 (cris_rtx_costs): Handle ZERO_EXTRACT.
13397 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
13398 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
13399 (*tstdi_v32): Delete.
13400 (*cmpdi_non_v32): Add M alternative for operand 1.
13401 (cmpsi, cmp<mode>): Make private.
13402 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
13403 with COMPARE.
13404 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
13405
13406 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
13407 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
13408 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
13409 (cc_reg_operand): New.
13410 (any_cond): Delete.
fbdf817d
UB
13411 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
13412 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
13413 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
13414 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
13415 crx_expand_scond): Delete.
13416
13417 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
13418 (cbranchsi4): New.
13419 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
13420 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
13421
13422 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
13423 cstoresi4, cstoresf4, cstoredf4): New.
13424 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
13425 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
13426 Receive the entire operands array.
13427 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
13428 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
13429 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
13430 Get test/op0/op1 from the operands array.
13431 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
13432
13433 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
13434 (h8300_expand_store): New.
13435 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
13436 (const_int 0)).
13437 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
13438 (h8300_expand_store): New.
13439 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
13440 or do not try to produce (set (cc0) REG).
13441 (peepholes): Wrap arguments with COMPARE. Add a peephole to
13442 change a compare into a move to a scratch register. Disable some
13443 peepholes when comparing with zero.
13444 (tstsi, tsthi, tstsi, cmpqi): Make private.
13445 (cmphi): Delete.
13446 (bCC, sCC): Delete.
13447 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
13448 cstoresi4): New.
f90b7a5a
PB
13449
13450 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
13451 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
13452 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
13453 (ix86_emit_i387_log1p): Use cbranchxf2.
13454 (ix86_expand_setcc): Return void.
13455 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
13456 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
13457 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
13458 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
13459 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
13460 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
13461 (sCC and bCC expanders): Remove.
13462 (stack_protect_test): Use cbranchcc4.
13463
fbdf817d
UB
13464 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
13465 Delete.
13466 (ia64_expand_compare): Accept three rtx by reference and return void.
13467 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
13468 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
13469 from *expr. Update *expr with the BImode comparison to do.
13470 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
13471 cmptf, bCC, sCC, conditional_trap): Delete.
f100a4a8 13472 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
fbdf817d
UB
13473 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
13474 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
13475 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
13476 * config/ia64/predicates.md (ia64_cbranch_operator): New.
13477
13478 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
13479 type of last argument.
13480 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
13481 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
13482 use machine mode argument instead of branch_type. Remove dead
13483 code for floating-point comparisons.
13484 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
13485 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
13486 Remove.
13487 (cbranchsi4, cstoresi4): New.
13488 * config/iq2000/predicates.md (reg_or_const_operand): New.
13489
13490 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
13491 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
13492 (b<code>_op): Rewrite to...
13493 (bcc_op): ... this, using match_operator.
13494 (s<code>_op): Rewrite to...
13495 (scc_op): ... this, using match_operator.
13496 (s<code>_24_op): Rewrite to...
13497 (scc_op_24): ... this, using match_operator.
13498 (s<code>_<mode>): Rewrite to...
13499 (cstore<mode>4): ... this, using match_operator.
13500 (s<code>_<mode>_24): Rewrite to...
13501 (cstore<mode>4_24): ... this, using match_operator.
13502 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
13503 m32c_unpend_compare, m32c_expand_scc): Delete.
13504 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
13505 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
13506 (m32c_expand_movcc): Change NE to EQ if necessary.
13507 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
13508
13509 * config/m32r/m32r-protos.h (gen_cond_store): New.
13510 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
13511 (gen_cond_store): New, from sCC patterns.
13512 (m32r_expand_block_move): Use cbranchsi4.
13513 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
13514 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
13515 (cbranchsi4, cstoresi4): New.
f100a4a8 13516
fbdf817d
UB
13517 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
13518 Delete.
13519 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 13520 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
13521 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
13522 Delete.
13523 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
13524 cmphi, cmpqi, bCC): Delete.
13525 (cbranchsi4, cbranchhi4, cbranchqi4): New.
13526 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
13527 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
13528 sets with COMPARE.
13529
13530 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
13531 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
13532 * config/m68k/constraints.md (H): New.
13533 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
13534 the define_insn below.
13535 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
13536 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
13537 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
13538 patterns): Wrap RHS with COMPARE.
13539 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
13540 (*cmpdi_internal): Name this pattern.
13541 (cmpdi): Change to define_insn.
13542 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
13543 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
13544 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
13545 predicate.
13546 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
13547 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
13548 (conditional_trap): Change to...
13549 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
13550 (*conditional_trap): Use the ordered_comparison_operator and
13551 const1_operand predicates.
13552 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
13553 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
13554 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
13555 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
13556
13557 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
13558 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
f100a4a8 13559 (mcore_gen_compare): New.
fbdf817d
UB
13560 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
13561 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
13562 (mcore_gen_compare): ... this.
13563 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
13564 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
13565 (stack probe pattern): Use cbranchsi4.
13566
13567 * config/mips/predicates.md (mips_cstore_operator): New.
13568 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
13569 * config/mips/mips.md (any_cond): Delete.
13570 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
13571 always succeed.
13572 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
13573 fixuns_truncsfdi2): Use cbranch patterns.
f100a4a8 13574 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
fbdf817d
UB
13575 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
13576 Adjust call to mips_expand_conditional_branch.
13577 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
13578 cstore<GPR:mode>4.
13579 * config/mips/mips-protos.h (mips_expand_conditional_branch,
13580 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
13581 * config/mips/mips.c (cmp_operands): Delete.
13582 (mips_emit_compare): Get comparison operands from *op0/*op1.
13583 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
13584 that it succeeds. Use op0/op1 instead of cmp_operands.
13585 (mips_expand_conditional_branch, mips_expand_conditional_move,
13586 mips_expand_conditional_trap): Likewise.
f100a4a8 13587 (mips_block_move_loop): Use cbranch patterns.
fbdf817d
UB
13588 * config/mips/mips.h (cmp_operands): Delete.
13589
13590 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
13591 (mmix_gen_compare_reg): Just return a register in the right CC mode.
13592 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
13593 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
13594 (*cmpcc_folded): Rename to...
13595 (*cmpdi_folded): this.
13596 (*cmpcc): Rename to...
13597 (*cmps): ... this.
13598 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
13599 (bCC): Remove.
13600 (cbranchdi4): New.
13601 (cbranchdf4): New. Handle invalid comparisons here.
13602 * config/mmix/predicates.md (float_comparison_operator): New.
13603
13604 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
13605 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
13606 * config/mn10300/mn10300.md (tst): Delete.
13607 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
13608 Name these patterns and wrap RHS in a compare.
13609 (*cmpsi): Make this pattern private. Include tst.
13610 (*cmpsf): Make this pattern private.
13611 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
13612 (compare with zero peepholes): Likewise.
13613 (bCC): Remove.
13614 (cbranchsi4, cbranchsf4): New.
13615 (casesi): Use cbranchsi4.
13616
13617 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
13618 hppa_branch_type): Delete.
13619 (return_addr_rtx): Use cbranchsi4.
13620 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
13621 Emit CCFPmode comparison here.
13622 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
13623 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
13624 hppa_branch_type): Delete.
13625 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
13626 (movsicc, movdicc): Remove references to hppa_compare_op0,
13627 hppa_compare_op1 and compare_from_rtx.
13628 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
13629 (casesi): Use cbranchsi4.
13630
13631 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
13632 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
13633 * config/pdp11/pdp11.md (register_or_const0_operand): New.
13634 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
13635 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
13636 (bCC): Delete.
13637 (cbranchdf4, cbranchhi4, cbranchqi4): New.
13638 (*branch, *branch_inverted): New.
13639
13640 * config/picochip/picochip.md (cbranchhi4): Use
13641 ordered_comparison_operator.
13642 (cmphi, bCC): Remove.
13643
13644 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
13645 (trap_comparison_operator): Delete.
13646 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
13647 rs6000_emit_cbranch): Accept mode and operands.
13648 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
f100a4a8 13649 rs6000_compare_fp_p): Delete.
fbdf817d
UB
13650 (rs6000_generate_compare): Accept mode and comparison. Extract code
13651 and op0/op1 from there. Replace references to rs6000_compare_op0
13652 and rs6000_compare_op1.
13653 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
13654 extract result from passed operands.
13655 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
13656 extract loc from passed operands.
13657 (rs6000_emit_cmove): Likewise.
13658 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
13659 rs6000_compare_fp_p): Delete.
13660 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
13661 (cbranch<GPR>4, cbranch<FP>4): New.
13662 (cstore<mode>4): New. Consolidate here all choices about when to use
13663 portable or specialized sCC sequences.
13664 (stack_protect_test): Use cbranchsi4.
13665 (conditional_trap): Replace with ctrap<GPR>4.
13666 (conditional trap insn): Replace trap_comparison_operator with
f100a4a8 13667 ordered_comparison_operator.
fbdf817d
UB
13668
13669 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
13670 (s390_emit_prologue): Use ctrap.
13671 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
13672 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
13673 New predicates replacing...
13674 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
13675 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
13676 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
13677 (add<mode>cc): Do not use s390_compare_op0/op1.
13678 (s<code>): Change to...
13679 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
13680 (seq): Change to...
13681 (cstorecc4): ... this. Handle EQ or NE equally.
13682 (*sne): Un-privatize for use in cstorecc4.
13683 (b<code>): Change to...
13684 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
13685 (conditional_trap): Replace with...
13686 (ctrap<GPR>4, ctrap<FP>4): ... these.
13687 (stack_protect): Use cbranchcc4.
13688
13689 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
13690 * config/score/score-protos.h (score_gen_cmp): Delete.
13691 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
13692 (score_block_move-loop): Use cbranchsi4.
13693 * config/score/score.md (cbranchsi4): New.
13694 (cmpsi, bCC): Delete.
13695 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
13696 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
13697 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
13698 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
13699 * config/score/score3.h (score3_gen_cmp): Delete.
13700 * config/score/score7.h (score7_gen_cmp): Delete.
13701
13702 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
13703 (sh_emit_scc_to_t): ... this. Return void.
13704 (from_compare): Rename to...
13705 (sh_emit_compare_and_branch): ... this.
13706 (sh_emit_compare_and_set): New.
13707 (sh_expand_t_scc): Accept operands.
13708 * config/sh/predicates.md (sh_float_comparison_operator): New.
13709 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
13710 (prepare_scc_operands): Rename to...
13711 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
13712 arguments.
13713 (sh_emit_cheap_store_flag): New.
f90b7a5a 13714 (sh_emit_set_t_insn): New.
fbdf817d
UB
13715 (from_compare): Rename to...
13716 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
13717 handling of TARGET_SH2E floating point to avoid recursive call.
13718 Generate branch here.
13719 (sh_emit_compare_and_set): New.
13720 (sh_expand_t_scc): Get op0/op1 from arguments.
13721 (sh_emit_cheap_store_flag): New.
13722 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
13723 cases.
f90b7a5a 13724 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
13725 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
13726 (movsicc, movdicc): Do nothing when it recreated operands from
13727 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
13728 prepare_scc_operands (now sh_emit_scc_to_t).
13729 (udivdi3): Use cstoresi4.
13730 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
13731 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
13732 (cbranchint4_media, cbranchfp4_media): New.
13733 (casesi): Use cbranchdi4.
13734 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
13735 Delete.
13736 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
13737 (movnegt): Remove second operand.
13738 (cbranchsf4, cbranchdf4): New.
13739 (stack_protect): Use cbranchdi4/cbranchsi4.
13740
13741 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
13742 (gen_compare_reg): Accept comparison, extract part of it to...
f100a4a8 13743 (gen_compare_reg_1): ... this.
fbdf817d
UB
13744 (gen_compare_operator): Delete.
13745 (gen_v9_scc): Accept separate destination, comparison code and arms.
13746 Do not use sparc_compare_op0/sparc_compare_op1.
13747 (emit_scc_insn, emit_conditional_branch_insn): New.
13748 (emit_v9_brxx): Make static. Remove useless assertion.
13749 (sparc_emit_float_lib_cmp): Return RTL instead of calling
13750 emit_cmp_insn.
13751 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
13752 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
13753 sparc_emit_float_lib_cmp): Adjust prototype.
13754 (emit_scc_insn, emit_conditional_branch_insn): New.
13755 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
13756 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
13757 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
13758 iterators to the top.
13759 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
13760 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 13761 snedi_special_trunc): Delete.
fbdf817d 13762 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 13763 and snedi_special_trunc.
fbdf817d
UB
13764 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
13765 cbranchdi4, cbranch<F:mode>4): New.
13766 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
13767 here. Use gen_compare_reg instead of gen_compare_operator.
13768 (conditional_trap): Replace with...
13769 (ctrapsi4, ctrapdi4): ... this.
13770 (stack_protect_test): Use cbranchcc4.
13771
13772 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
13773 argument to rtx.
f100a4a8 13774 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
fbdf817d
UB
13775 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
13776 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
13777 from operands[0] or operands[3] depending on is_set.
13778 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
13779 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
13780 cmpdf, bCC), sCC: Remove.
f100a4a8 13781 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
fbdf817d
UB
13782 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
13783 cstoredf4): New.
13784 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
13785 spu_emit_branch_or_set.
13786
13787 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
13788 Add two arguments.
13789 * config/stormy16/stormy16.h (xstormy16_compare_op0,
13790 xstormy16_compare_op1): Delete.
13791 * config/stormy16/stormy16.c (xstormy16_compare_op0,
f100a4a8 13792 xstormy16_compare_op1): Delete.
fbdf817d
UB
13793 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
13794 Adjust calls.
13795 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
13796 (cmphi, cmpsi, bCC): Remove.
13797
13798 * config/v850/v850.md (tstsi, cmpsi): Fold into...
13799 (*cmpsi): ... this one.
13800 (cbranchsi4, cstoresi4): New.
13801 (bCC expanders): Delete.
13802 (sCC insns): Fold into...
13803 (*setcc): ... this one.
f100a4a8 13804 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
13805 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
13806 (movsicc): Simplify.
13807 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
13808
fbdf817d
UB
13809 * config/vax/vax-protos.h (cond_name): New.
13810 (vax_output_conditional_branch): Remove.
13811 * config/vax/vax.c (cond_name): New.
13812 (vax_output_conditional_branch): Remove.
13813 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
13814 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
13815 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
13816 (bit<VAXint>): Wrap source with (compare).
13817 (b<code> and following unnamed pattern): Rename to *branch and
13818 *branch_reversed. Change macroization to match_operator.
13819 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
13820
13821 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
13822 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
13823 Change last argument to machine_mode.
13824 (xtensa_expand_scc): Add machine_mode argument.
13825 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
13826 (gen_conditional_move, xtensa_expand_conditional_branch,
13827 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
13828 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
13829 Adjust operand numbers.
13830 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
13831 Delete.
13832 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
13833 (cmpsi, cmpsf, b<code>, s<code>): Delete.
13834 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 13835
16670495
PB
138362009-05-12 Paolo Bonzini <bonzini@gnu.org>
13837
13838 * optabs.c (prepare_cmp_insn): Temporarily disable test that
13839 causes spurious differences between trunk and cond-optab branch.
13840
4a4a4e99
AO
138412009-05-12 Alexandre Oliva <aoliva@redhat.com>
13842
13843 PR target/37137
13844 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
13845
72b9acff
AO
138462009-05-12 Alexandre Oliva <aoliva@redhat.com>
13847
13848 * tree.c (iterative_hash_pointer): Delete.
13849 (iterative_hash_expr): Short-circuit handling of NULL pointer.
13850 Hash UIDs and versions of SSA names. Don't special-case built-in
13851 function declarations.
13852
b7dd69ac
ILT
138532009-05-11 Ian Lance Taylor <iant@google.com>
13854
13855 PR bootstrap/40103
13856 * graphite.c: Force -Wc++-compat to only be a warning before
13857 #including "cloog/cloog.h".
13858
ed102b70
MJ
138592009-05-11 Martin Jambor <mjambor@suse.cz>
13860
13861 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
f100a4a8 13862
08f1af2e
JH
138632009-05-11 Jan Hubicka <jh@suse.cz>
13864
13865 * tree-ssa-loop-ivcanon.c: Include target.h
13866 (struct loop_size): new structure.
13867 (constant_after_peeling): New predicate.
13868 (tree_estimate_loop_size): New function.
13869 (estimated_unrolled_size): Rewrite for new estimates.
13870 (try_unroll_loop_completely): Use new estimates.
13871 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
13872
a7d39bd3
AP
138732009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
13874
13875 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
13876 libcpp interface change.
13877 (spu_macro_to_expand): Likewise.
13878
f5a1f0d0
PB
138792009-05-11 Paolo Bonzini <bonzini@gnu.org>
13880
13881 PR tree-optimization/40026
13882 * gimplify.c (gimplify_init_constructor): Change initial conditional
13883 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
13884 optimize_compound_literals_in_ctor.
13885
c260f01f
NS
138862009-05-11 Nathan Sidwell <nathan@codesourcery.com>
13887
13888 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
13889 New devices.
13890 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
13891
df398a37
L
138922009-05-11 H.J. Lu <hongjiu.lu@intel.com>
13893
13894 * tree-vect-data-refs.c (vect_analyze_group_access): Use
13895 HOST_WIDE_INT for gap.
13896
4da39468
IR
138972009-05-11 Ira Rosen <irar@il.ibm.com>
13898
13899 PR tree-optimization/40074
13900 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
13901 account in group size and step comparison.
13902
4effdf02
RG
139032009-05-11 Richard Guenther <rguenther@suse.de>
13904
13905 * passes.c (init_optimization_passes): Strip now incorrect comment.
13906 (execute_function_todo): Do not set PROP_alias.
13907 * tree-pass.h (PROP_alias): Remove.
13908 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
13909 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
13910 * tree-nrv.c (pass_return_slot): Likewise.
13911 * tree-object-size.c (pass_object_sizes): Likewise.
13912 * tree-ssa-dom.c (pass_dominator): Likewise.
13913 (pass_phi_only_cprop): Likewise.
13914 * tree-ssa-dse.c (pass_dse): Likewise.
13915 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
13916 (pass_cselim): Likewise.
13917 * tree-ssa-pre.c (pass_pre): Likewise.
13918 (pass_fre): Likewise.
13919 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
13920 * tree-ssa-sink.c (pass_sink_code): Likewise.
13921 * tree-stdarg.c (pass_stdarg): Likewise.
13922 * tree-tailcall.c (pass_tail_calls): Likewise.
13923 * tree-vrp.c (pass_vrp): Likewise.
13924
24b97832
ILT
139252009-05-10 Ian Lance Taylor <iant@google.com>
13926
13927 * basic-block.h (enum profile_status): Break out of struct
13928 control_flow_graph.
13929 * cgraph.h (struct inline_summary): Break out of struct
13930 cgraph_local_info.
13931 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
13932 of struct cgraph_order_sort.
fbdf817d 13933 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
13934 * cse.c (struct branch_path): Break out of struct
13935 cse_basic_block_data.
13936 * except.h (enum eh_region_type): Break out of struct eh_region.
13937 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 13938 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
13939 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
13940 ggc_pch_data.
fbdf817d
UB
13941 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
13942 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
13943 * sched-int.h (enum post_call_group): New enum, broken out of
13944 struct deps.
13945 (struct deps_reg): Break out of struct deps.
13946 * target.h (struct asm_int_op): Break out of struct gcc_target.
13947 * tree-eh.c (struct goto_queue_node): Break out of struct
13948 leh_tf_state.
13949 * tree-inline.h (enum copy_body_cge_which): Break out of
13950 copy_body_data.
13951 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
13952
13953 * c-decl.c (in_struct, struct_types): New static variables.
13954 (pushtag): Add loc parameter. Change all callers.
13955 (lookup_tag): Add ploc parameter. Change all callers.
13956 (check_compound_literal_type): New function.
13957 (parser_xref_tag): Add loc parameter. Change all callers. If
13958 -Wc++-compat, warn about struct/union/enum types defined within a
13959 struct or union.
13960 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
13961 and loc parameters. Change all callers. Change error calls to
13962 error_at, using loc. For a redefinition, if the location of the
13963 original definition is known, report it. Set in_struct and
fbdf817d 13964 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
13965 (finish_struct): Add new parameters enclosing_in_struct and
13966 enclosing_struct_types. Change all callers. Set
13967 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
13968 in the struct. If in a struct, add this struct to struct_types.
13969 (start_enum): Add loc parameter. Change all callers. Use
13970 error_at for errors, using loc. For a redefinition, if the
13971 location of the original definition is known, report it. If in a
13972 struct, add this enum type to struct_types. If -Wc++-compat warn
13973 if in sizeof, typeof, or alignof.
fbdf817d
UB
13974 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
13975 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
13976 (c_parser_enum_specifier): Get enum location for start_enum.
13977 (c_parser_struct_or_union_specifier): Get struct location for
13978 start_struct. Save in_struct and struct_types status between
13979 start_struct and finish_struct.
13980 (c_parser_cast_expression): Get location of cast.
13981 (c_parser_alignof_expression): Get location of type.
13982 (c_parser_postfix_expression): Likewise.
13983 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
13984 parameter. Change all callers. Call check_compound_literal_type.
13985 Use type_loc for error about variable size type.
13986 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
13987 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
13988 (c_cast_expr): Add loc parameter. Change all callers. If
13989 -Wc++-compat, warn about defining a type in a cast.
13990 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
13991 (start_enum, start_struct, finish_struct): Update declarations.
13992 (parser_xref_tag, c_cast_expr): Update declarations.
13993 (check_compound_literal_type): Declare.
13994
7a2738fa
BE
139952009-05-11 Ben Elliston <bje@au.ibm.com>
13996
13997 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
13998 for recent libcpp interface change.
13999 (rs6000_macro_to_expand): Likewise.
14000
af618949
MM
140012009-05-10 Michael Matz <matz@suse.de>
14002
14003 PR target/40031
14004 * config/arm/arm.c (require_pic_register): Emit on entry edge,
14005 not at entry of function.
14006
b7d7a473
RG
140072009-05-10 Richard Guenther <rguenther@suse.de>
14008
14009 PR tree-optimization/40081
14010 Revert
14011 * tree-sra.c (instantiate_element): Instantiate scalar replacements
14012 using the main variant of the element type. Do not fiddle with
14013 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
14014
14015 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
14016 structs with volatile fields.
14017
078c3644
JH
140182009-05-10 Jan Hubicka <jh@suse.cz>
14019
14020 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
14021 (estimate_move_cost): Assert that it does not get called for
14022 VOID_TYPE_P.
078c3644
JH
14023 (estimate_num_insns): Skip VOID types in argument handling.
14024 (optimize_inline_calls): Delete unreachable blocks and verify that
14025 callgraph is valid.
14026
39ff5a96
JH
140272009-05-10 Jan Hubicka <jh@suse.cz>
14028
14029 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
14030 * cgraph.c (cgraph_mark_address_taken_node): New function.
14031 (dump_cgraph_node): Dump new flag.
14032 * cgraph.h (struct cgraph_node): Add address_taken.
14033 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
14034 * ipa.c (cgraph_postorder): Prioritize functions with address taken
14035 since new direct calls can be born.
14036
9a0c6187
JM
140372009-05-10 Joseph Myers <joseph@codesourcery.com>
14038
14039 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
14040 tok->val.node.node.
14041
4b685e14
JH
140422009-05-10 Jan Hubicka <jh@suse.cz>
14043
14044 PR middle-end/40084
fb0be169
EB
14045 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
14046 argument; rewrite.
4b685e14
JH
14047 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
14048 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
14049 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
14050 (fold_marked_statements): Update call to
14051 cgraph_update_edges_for_call_stmt.
4b685e14 14052
29d08eba
JM
140532009-05-10 Joseph Myers <joseph@codesourcery.com>
14054
14055 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
14056 identifiers in diagnostics.
14057 * config/arm/arm.c (arm_handle_fndecl_attribute,
14058 arm_handle_isr_attribute): Likewise.
14059 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 14060 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
14061 * config/bfin/bfin.c (handle_int_attribute,
14062 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
14063 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
14064 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
14065 Likewise.
14066 * config/darwin.c (darwin_handle_kext_attribute,
14067 darwin_handle_weak_import_attribute): Likewise.
14068 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
14069 h8300_handle_eightbit_data_attribute,
14070 h8300_handle_tiny_data_attribute): Likewise.
14071 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 14072 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
14073 * config/i386/winnt.c (ix86_handle_shared_attribute,
14074 ix86_handle_selectany_attribute): Likewise.
14075 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
14076 * config/m32c/m32c.c (function_vector_handler): Likewise.
14077 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
14078 m68hc11_handle_fntype_attribute): Likewise.
14079 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
14080 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
14081 * config/mips/mips.c (mips_insert_attributes,
14082 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
14083 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
14084 rs6000_handle_struct_attribute): Likewise.
14085 * config/sh/sh.c (sh_insert_attributes,
14086 sh_handle_resbank_handler_attribute,
14087 sh_handle_interrupt_handler_attribute,
14088 sh2a_handle_function_vector_handler_attribute,
14089 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
14090 Likewise.
14091 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
14092 * config/spu/spu.c (spu_handle_fndecl_attribute,
14093 spu_handle_vector_attribute): Likewise.
14094 * config/stormy16/stormy16.c
14095 (xstormy16_handle_interrupt_attribute): Likewise.
14096 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
14097 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
14098
f41c4af3
JM
140992009-05-10 Joseph Myers <joseph@codesourcery.com>
14100
782dc37a 14101 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
14102 (pp_translate_identifiers): New.
14103 (pp_identifier): Only conditionally translate identifier to locale
14104 character set.
14105 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
14106 (pp_base_tree_identifier): Only conditionally translate identifier
14107 to locale character set.
14108 * c-pretty-print.c (M_): Define.
14109 (pp_c_type_specifier, pp_c_primary_expression): Mark English
14110 fragments for conditional translation with M_.
14111 * tree-pretty-print.c (maybe_init_pretty_print): Disable
14112 identifier translation.
14113
896d7dbd
RG
141142009-05-10 Richard Guenther <rguenther@suse.de>
14115
14116 PR tree-optimization/40081
14117 * tree-sra.c (instantiate_element): Instantiate scalar replacements
14118 using the main variant of the element type. Do not fiddle with
14119 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
14120
9a23acef
JH
141212009-05-09 Jan Hubicka <jh@suse.cz>
14122
14123 PR middle-end/40080
14124 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
14125 indirect calls; verify cgraph afterwards.
14126
d563610d
JH
141272009-05-09 Jan Hubicka <jh@suse.cz>
14128
14129 PR bootstrap/40082
14130 * ipa.c (update_inlined_to_pointer): New function.
14131 (cgraph_remove_unreachable_nodes): Use it.
14132
f08a18d0
JH
141332009-05-09 Jan Hubicka <jh@suse.cz>
14134
14135 * tree-eh.c (struct leh_state): Remove prev_try.
14136 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
14137 not track prev_try.
f100a4a8 14138 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
f08a18d0
JH
14139 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
14140 remove_eh_handler_and_replace, foreach_reachable_handler,
14141 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
14142 * except.h (struct eh_region): Remove eh_region_u_cleanup.
14143 (gen_eh_region_cleanup): Update prototype.
14144
0afd7219
JH
141452009-05-09 Jan Hubicka <jh@suse.cz>
14146
14147 PR middle-end/40043
14148 * except.c (copy_eh_region): Always set prev_try.
14149 (redirect_eh_edge_to_label): Find outer try.
14150 (foreach_reachable_handler): When looking for prev try
14151 handle case where previous try is not going to be taken.
14152
ad6c0864
MM
141532009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
14154
14155 PR tree-optimization/40049
14156 * tree-vect-stmts.c (vectorizable_operation): If the machine has
14157 only vector/vector shifts, convert the type of the constant to the
14158 appropriate type to avoid building incorrect trees, which
14159 eventually have problems with garbage collection.
14160
c94f9067
JM
141612009-05-08 Joseph Myers <joseph@codesourcery.com>
14162
14163 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
14164 -1 for complex floating-point types if honoring signed zeros.
14165
9187e02d
JH
141662009-05-08 Jan Hubicka <jh@suse.cz>
14167
20acb8a2
EB
14168 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
14169 argument; handle correctly when profile is absent.
9187e02d
JH
14170 (build_cgraph_edges): Update.
14171 (rebuild_cgraph_edges): Update.
20acb8a2
EB
14172 * cgraph.c: Do not include varray.h.
14173 (cgraph_set_call_stmt_including_clones): New function.
14174 (cgraph_create_edge_including_clones): Likewise
14175 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
14176 (cgraph_update_edges_for_call_stmt): Handle clones.
14177 (cgraph_remove_node): Handle clone tree.
14178 (cgraph_remove_node_and_inline_clones): New function.
14179 (dump_cgraph_node): Dump clone tree.
14180 (cgraph_clone_node): Handle clone tree.
20acb8a2 14181 (clone_function_name): Bring here from tree-inline.c.
9187e02d 14182 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
14183 * cgraph.h (ipa_replace_map): Move here from ipa.h.
14184 (cgraph_clone_info): New function.
9187e02d 14185 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
14186 (cgraph_remove_node_and_inline_clones,
14187 cgraph_set_call_stmt_including_clones,
14188 cgraph_create_edge_including_clones,
14189 cgraph_create_virtual_clone): Declare.
9187e02d
JH
14190 (cgraph_function_versioning): Use VEC argument.
14191 (compute_call_stmt_bb_frequency): Update prototype.
14192 (cgraph_materialize_all_clones): New function.
14193 * ipa-cp.c (ipcp_update_cloned_node): Remove.
14194 (ipcp_create_replace_map): Update to VECtors.
14195 (ipcp_update_callgraph): Use virtual clones.
14196 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
14197 (ipcp_update_profiling): Do not update local profiling.
14198 (ipcp_insert_stage): Use VECtors and virtual clones.
14199 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
14200 (clone_of_p): New function.
14201 (cgraph_preserve_function_body_p): Use clone tree.
14202 (cgraph_optimize): Materialize clones.
14203 (cgraph_function_versioning): Update for VECtors.
14204 (save_inline_function_body): Use clone tree.
20acb8a2
EB
14205 (cgraph_materialize_clone): New function.
14206 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
14207 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
14208 * ipa.c: Include gimple.h.
14209 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
14210 * ipa-prop.c (ipa_note_param_call): Update call to
14211 compute_call_stmt_bb_frequencycall.
9187e02d 14212 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 14213 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
14214 (copy_bb): Handle updating of clone tree; add new edge when new call
14215 appears.
14216 (expand_call_inline): Be strict about every call having edge.
14217 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
14218 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
14219 (tree_function_versioning): Use VECtors; always remove unreachable
14220 blocks and fold conditionals.
14221 * tree-inline.h: Do not include varray.h.
9187e02d
JH
14222 (tree_function_versioning): Remove.
14223 * Makefile.in (GTFILES): Remove tree-inline.c
14224 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
14225 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
14226 tree.
9187e02d 14227
9b86d6bb
L
142282009-05-08 H.J. Lu <hongjiu.lu@intel.com>
14229 Andrew Morrow <acm@google.com>
14230
14231 PR c/36892
14232 * c-common.c (c_common_attribute_table): Permit deprecated
14233 attribute to take an optional argument.
14234 (handle_deprecated_attribute): If the optional argument to
14235 __attribute__((deprecated)) is not a string ignore the attribute
14236 and emit a warning.
14237
14238 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
14239 * c-typeck.c (build_component_ref): Likewise.
14240 (build_external_ref): Likewise.
14241
14242 * toplev.c (warn_deprecated_use): Add an attribute argument.
14243 Emit the message associated with __attribute__((deprecated)).
14244
14245 * toplev.h (warn_deprecated_use): Updated.
14246
14247 * doc/extend.texi: Document new optional parameter to
14248 __attribute__((deprecated))
14249
82ad047f
ME
142502009-05-08 Michael Eager <eager@eagercon.com>
14251
14252 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
14253 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
14254
788d3075
RG
142552009-05-08 Richard Guenther <rguenther@suse.de>
14256
14257 PR tree-optimization/40062
14258 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
14259 Avoid exponential behavior.
14260
00952e97
PB
142612009-05-08 Paolo Bonzini <bonzini@gnu.org>
14262
14263 PR rtl-optimization/33928
14264 PR 26854
14265 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
14266 process_uses, build_single_def_use_links): New.
14267 (update_df): Update use_def_ref.
14268 (forward_propagate_into): Use get_def_for_use instead of use-def
14269 chains.
14270 (fwprop_init): Call build_single_def_use_links and let it initialize
14271 dataflow.
14272 (fwprop_done): Free use_def_ref.
14273 (fwprop_addr): Eliminate duplicate call to df_set_flags.
f100a4a8 14274 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
00952e97
PB
14275 df_rd_simulate_one_insn): New.
14276 (df_rd_bb_local_compute_process_def): Update head comment.
14277 (df_chain_create_bb): Use the new RD simulation functions.
f100a4a8 14278 * df.h (df_rd_simulate_artificial_defs_at_top,
00952e97
PB
14279 df_rd_simulate_one_insn): New.
14280 * opts.c (decode_options): Enable fwprop at -O1.
14281 * doc/invoke.texi (-fforward-propagate): Document this.
14282
2ca862e9
JM
142832009-05-08 Joseph Myers <joseph@codesourcery.com>
14284
14285 PR c/24581
14286 * c-typeck.c (build_binary_op): Handle arithmetic between one real
14287 and one complex operand specially.
14288 * tree-complex.c (some_nonzerop): Do not identify a real value as
14289 zero if flag_signed_zeros.
14290
3e807ffc
PB
142912009-05-08 Paolo Bonzini <bonzini@gnu.org>
14292
14293 PR rtl-optimization/33928
7925c06c 14294 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 14295
1bfdbb29
PB
142962009-05-08 Paolo Bonzini <bonzini@gnu.org>
14297
14298 PR rtl-optimization/33928
e913423f
EB
14299 * loop-invariant.c (struct use): Add addr_use_p.
14300 (struct def): Add n_addr_uses.
14301 (struct invariant): Add cheap_address.
14302 (create_new_invariant): Set cheap_address.
14303 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
14304 (record_uses): Pass df_ref to record_use.
14305 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
14306 used only as such.
1bfdbb29 14307
702cb2a0
KK
143082009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
14309
14310 * config/sh/sh.c: Do not include c-pragma.h.
14311
5e8df753
AP
143122009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
14313
14314 * config/spu/spu.c: Remove include of c-common.h.
14315
6ec637a4
JJ
143162009-05-07 Janis Johnson <janis187@us.ibm.com>
14317
14318 PR c/39037
14319 * c-common.h (mark_valid_location_for_stdc_pragma,
14320 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
14321 clear_float_const_decimal64, float_const_decimal64_p): New.
14322 * c.opt (Wunsuffixed-float-constants): New.
14323 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
14324 unsuffixed float constant, handle new warning.
14325 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
14326 * c-decl.c (c_scope): New flag float_const_decimal64.
14327 (set_float_const_decimal64, clear_float_const_decimal64,
14328 float_const_decimal64_p): New.
14329 (push_scope): Set new flag.
14330 * c-parser.c (c_parser_translation_unit): Mark when it's valid
14331 to use STDC pragmas.
14332 (c_parser_external_declaration): Ditto.
14333 (c_parser_compound_statement_nostart): Ditto.
14334 * c-pragma.c (valid_location_for_stdc_pragma,
14335 mark_valid_location_for_stdc_pragma,
14336 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
14337 handle_pragma_float_const_decimal64): New.
14338 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
14339 * cp/semantics.c (valid_location_for_stdc_pragma_p,
14340 set_float_const_decimal64, clear_float_const_decimal64,
14341 float_const_decimal64_p): New dummy functions.
14342 * doc/extend.texi (Decimal Float): Remove statement that the
14343 pragma, and suffix for double constants, are not supported.
14344 * doc/invoke.texi (Warning Options): List new option.
14345 (-Wunsuffixed-float-constants): New.
14346
45b9b2e9
SB
143472009-05-08 Steven Bosscher <steven@gcc.gnu.org>
14348
14349 * config/i386/i386.c: Do not include c-common.h.
14350
e71da632
MH
143512009-05-07 Mark Heffernan <meheff@google.com>
14352
14353 * doc/invoke.texi (Debugging Options): Document change of debugging
14354 dump location.
e913423f 14355 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
14356 aux_base_name directory.
14357
fe4c7bc6
HS
143582009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
14359
14360 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
14361 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
14362
3b3e44eb
RAE
143632009-05-07 Rafael Avila de Espindola <espindola@google.com>
14364
14365 * Makefile.in (install-plugin): Simplify a bit.
14366
fac41238
PB
143672009-05-07 Paolo Bonzini <bonzini@gnu.org>
14368
14369 * Makefile.in (OBJS-common): Add regcprop.o.
14370 (regcprop.o): New.
14371 * timevar.def (TV_CPROP_REGISTERS): New.
14372 * regrename.c (regrename_optimize): Return 0.
14373 (rest_of_handle_regrename): Delete.
14374 (pass_rename_registers): Point to regrename_optimize.
f100a4a8 14375 (struct value_data_entry, struct value_data,
fac41238
PB
14376 kill_value_one_regno, kill_value_regno, kill_value,
14377 set_value_regno, init_value_data, kill_clobbered_value,
14378 kill_set_value, kill_autoinc_value, copy_value,
14379 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
14380 replace_oldest_value_reg, replace_oldest_value_addr,
14381 replace_oldest_value_mem, copyprop_hardreg_forward_1,
14382 debug_value_data, validate_value_data): Move...
14383 * regcprop.c: ... here.
14384 (rest_of_handle_cprop): Delete.
14385 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
14386
472e0df9
JJ
143872009-05-07 Jakub Jelinek <jakub@redhat.com>
14388
14389 PR middle-end/40057
14390 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
14391 GEN_INT for 1 << bitnum.
14392 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
14393 build_int_cst_type.
14394
0d50d55a
UB
143952009-05-07 Uros Bizjak <ubizjak@gmail.com>
14396
14397 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 14398 Remove wrong description of "nand" operation.
0d50d55a 14399
22f597f1
RG
144002009-05-06 Richard Guenther <rguenther@suse.de>
14401 Adam Nemet <anemet@caviumnetworks.com>
14402
14403 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
14404 comment. Add that if LHS is not a gimple register, then RHS1 has
14405 to be a single object (GIMPLE_SINGLE_RHS).
14406
641cac0b
AN
144072009-05-06 Adam Nemet <anemet@caviumnetworks.com>
14408
14409 * expr.c (get_def_for_expr): Move it up in the file.
14410 (store_field): When expanding a bit-field store, look at the
14411 defining gimple stmt for the masking conversion.
14412
5a5c6435
JJ
144132009-05-06 Janis Johnson <janis187@us.ibm.com>
14414
14415 PR middle-end/39986
14416 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
14417 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
14418 32-bit memcpy into long.
14419
96474f36
JJ
144202009-05-06 Jakub Jelinek <jakub@redhat.com>
14421
14422 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
14423 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
14424 new_reg_loc_descr.
14425 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
14426 instead of appending DW_OP_deref*.
14427
529ff441
MM
144282009-05-06 Michael Matz <matz@suse.de>
14429
14430 PR middle-end/40021
14431 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
14432 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
14433
9419a9fd
RAE
144342009-05-06 Rafael Avila de Espindola <espindola@google.com>
14435
14436 * Makefile.in (install-plugin): Fix srcdir handling.
14437
fff1894c
AB
144382009-05-06 Andrey Belevantsev <abel@ispras.ru>
14439
14440 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
14441 when processing for not_regs_needed bitmap.
14442 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
f100a4a8
UB
14443 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
14444 handling it for rhs.
fff1894c 14445
700ae70c
L
144462009-05-06 H.J. Lu <hongjiu.lu@intel.com>
14447
ab3426a7 14448 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 14449 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
14450 * config/i386/predicates.md (incdec_operand): Likewise.
14451 (aligned_operand): Likewise.
14452 * config/i386/sse.md (divv8sf3): Likewise.
14453 (sqrtv8sf2): Likewise.
14454
67341fb5
L
144552009-05-06 H.J. Lu <hongjiu.lu@intel.com>
14456
14457 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
14458
14459 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
14460
87946f42
L
144612009-05-06 H.J. Lu <hongjiu.lu@intel.com>
14462
14463 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
14464 ssemodesuffixf2c with avxmodesuffixf2c.
14465
1202aec1
JM
144662009-05-06 Joseph Myers <joseph@codesourcery.com>
14467
14468 PR c/40032
aa016ff7 14469 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 14470
6e57a01d
JJ
144712009-05-05 Jakub Jelinek <jakub@redhat.com>
14472
14473 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
14474 (struct tree_base): Adjust spacing for 8 bit boundaries.
14475 (struct tree_decl_common): Add decl_by_reference_flag bit.
14476 (DECL_BY_REFERENCE): Adjust.
14477 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
14478 print DECL_BY_REFERENCE bit.
14479 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
14480 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
14481 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
14482 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
14483 unconditionally.
14484
32f579f6
JJ
14485 PR middle-end/39666
14486 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
14487 range of the type, but default label is missing, add it with one
14488 of the existing labels instead of adding a new label for it.
14489
617ab743
JM
144902009-05-05 Joseph Myers <joseph@codesourcery.com>
14491
14492 * dwarf.h: Remove.
14493
bf016de8
RAE
144942009-05-05 Rafael Avila de Espindola <espindola@google.com>
14495
14496 * Makefile.in (enable_plugin, plugin_includedir): New.
14497 (install): Depend on install-plugin.
14498 (PLUGIN_HEADERS): New.
14499 (install-plugin): New.
14500 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
14501
7f8fdb9f
RG
145022009-05-05 Richard Guenther <rguenther@suse.de>
14503
14504 PR tree-optimization/40022
14505 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
14506 the only vuse.
14507 (phivn_valid_p): Fix tuplification error, simplify.
14508 (phiprop_insert_phi): Add dumps.
14509 (propagate_with_phi): Simplify.
14510
8d972839
RG
145112009-05-05 Richard Guenther <rguenther@suse.de>
14512
14513 PR middle-end/40023
aa016ff7 14514 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 14515
66ba9b0b
SZ
145162009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
14517
14518 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
14519 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
14520 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
14521 block_ultimate_origin): Rearrange the declarations line to match the
14522 comment that indicates the .c file which the functions are defined.
14523 (dwarf2out_*, set_decl_rtl): Add comment.
14524 (get_base_address): Adjust comment.
14525 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
14526 declarations line and add comment.
14527 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 14528
4f1e4960
JM
145292009-05-04 Joseph Myers <joseph@codesourcery.com>
14530
14531 * attribs.c (decl_attributes): Use %qE for identifiers in
14532 diagnostics.
14533 * cgraphunit.c (verify_cgraph_node): Translate function names to
14534 locale character set in diagnostics.
14535 * coverage.c (get_coverage_counts): Use %qE for identifiers in
14536 diagnostics.
14537 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
14538 Document that functions are named in UTF-8.
14539 * expr.c (expand_expr_real_1): Translate function names to locale
14540 character set in diagnostics.
14541 * gimplify.c (omp_notice_variable, omp_is_private,
14542 gimplify_scan_omp_clauses): Use %qE for identifiers in
14543 diagnostics.
14544 * langhooks.c (lhd_print_error_function): Translate function names
14545 to locale character set.
14546 * langhooks.h (decl_printable_name): Document that return value is
14547 in internal character set.
14548 * stmt.c: Include pretty-print.h
14549 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
14550 diagnostics.
14551 (resolve_operand_name_1): Translate named operand name to locale
14552 character set.
14553 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
14554 diagnostics.
14555 * toplev.c (announce_function): Translate function names to locale
14556 character set.
14557 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
14558 (default_tree_printer): Use pp_identifier or translate identifiers
14559 to locale character set. Mark "<anonymous>" for translation.
14560 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
14561 for identifiers in diagnostics.
14562 * tree.c (handle_dll_attribute): Use %qE for identifiers in
14563 diagnostics.
14564 * varasm.c (output_constructor): Use %qE for identifiers in
14565 diagnostics.
14566
40540e68
RAE
145672009-05-04 Rafael Avila de Espindola <espindola@google.com>
14568
14569 * configure.ac: use ` ` instead of $()
14570 * configure: Regenerate.
14571
33fc884c
BE
145722009-05-05 Ben Elliston <bje@au.ibm.com>
14573
14574 * config/pa/linux-atomic.c: Eliminate conditional include of
14575 errno.h on non-LP64 systems to simplify build requirements.
14576
88388a52
JM
145772009-05-04 Joseph Myers <joseph@codesourcery.com>
14578
14579 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
14580 diagnostics.
14581 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
14582 and pass value to identifier_to_locale.
14583 (warn_variable_length_array): Make name a tree.
14584 (grokdeclarator): Separate diagnostic texts for named and unnamed
14585 declarators. Use %qE for named declarators.
14586 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
14587 diagnostics.
14588 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
14589 identifiers in diagnostics.
14590 * c-typeck.c (push_member_name, start_init): Pass identifiers to
14591 identifier_to_locale. Mark "anonymous" strings for translation.
14592
960c5c79
ME
145932009-05-04 Michael Eager <eager@eagercon.com>
14594
14595 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 14596 address for DImode/DFmode only if double-precision FP regs.
960c5c79 14597
d083fbba
ME
145982009-05-04 Michael Eager <eager@eagercon.com>
14599
14600 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
14601 TARGET_SINGLE_FLOAT check.
14602
c3ba8d32
ME
146032009-05-04 Michael Eager <eager@eagercon.com>
14604
14605 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
14606
edce9f18
ME
146072009-05-04 Michael Eager <eager@eagercon.com>
14608
14609 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
14610 * config/rs6000/t-xilinx: New
14611
506d7b68
PB
146122009-05-04 Paolo Bonzini <bonzini@gnu.org>
14613
e913423f 14614 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
14615 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
14616 * gcc/explow.c (memory_address): Use target hook.
14617 * gcc/targhooks.c (default_legitimize_address): New.
14618 * gcc/targhooks.h (default_legitimize_address): New.
14619 * gcc/target.h (legitimize_address): New.
14620 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
14621 (TARGET_INITIALIZER): Include it.
14622 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
14623
14624 * config/bfin/bfin-protos.h (legitimize_address): Remove.
14625 * config/bfin/bfin.c (legitimize_address): Remove.
14626 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
14627 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
14628 Remove.
506d7b68
PB
14629 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
14630 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
14631
14632 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
14633 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
14634 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
14635 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
14636 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
14637 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
14638 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
14639 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
14640 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
14641 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
14642 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
14643 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
14644 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
14645 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
14646 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
14647 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
14648 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
14649 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
14650 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
14651 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
14652 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
14653 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
14654 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
14655
14656 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
14657 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
14658 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
14659 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
14660 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
14661 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
14662 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
14663 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
14664 (thumb_legitimize_address): Delete.
14665 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
14666 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
14667 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
14668 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
14669 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
14670 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
14671 Delete.
14672 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
14673 Delete.
506d7b68
PB
14674
14675 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
14676 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
14677 * config/m32r/m32r.c (m32r_legitimize_address): New.
14678 * config/m68k/m68k.c (m68k_legitimize_address): New.
14679 * config/score/score.c (score_legitimize_address): Standardize.
14680 * config/score/score3.c (score3_legitimize_address): Standardize.
14681 * config/score/score3.h (score3_legitimize_address): Adjust.
14682 * config/score/score7.c (score7_legitimize_address): Standardize.
14683 * config/score/score7.h (score7_legitimize_address): Adjust.
14684 * config/sh/sh.c (sh_legitimize_address): New.
14685 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
14686
14687 * gcc/config/s390/s390.c (legitimize_address): Rename to...
14688 (s390_legitimize_address): ... this.
14689 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
14690 (sparc_legitimize_address): ... this.
14691 * gcc/config/i386/i386.c (legitimize_address): Rename to...
14692 (ix86_legitimize_address): ... this.
14693 * gcc/config/avr/avr.c (legitimize_address): Rename to...
14694 (avr_legitimize_address): ... this.
14695 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
14696 (mn10300_legitimize_address): ... this.
14697 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
14698 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
14699 (alpha_expand_mov): Adjust call.
14700
14701 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
14702 * config/spu/spu.c (spu_legitimize_address): Likewise.
14703 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
14704 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
14705
a3af5087
JM
147062009-05-04 Joseph Myers <joseph@codesourcery.com>
14707
14708 * intl.c (locale_encoding, locale_utf8): New.
14709 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
14710 * intl.h (locale_encoding, locale_utf8): Declare.
14711 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
14712 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
14713 New.
14714 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
14715 argument.
14716 (pp_tree_identifier): Define to call pp_base_tree_identifier.
14717 (pp_base_tree_identifier): Declare as function.
14718 (identifier_to_locale): Declare.
14719 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 14720 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 14721
ea5cd5f1
RG
147222009-05-04 Richard Guenther <rguenther@suse.de>
14723
14724 PR middle-end/40015
14725 * builtins.c (fold_builtin_memory_op): Do not decay to element
14726 type if the size matches the whole array.
14727
ddc2690a
KH
147282009-05-04 Kazu Hirata <kazu@codesourcery.com>
14729
14730 * expmed.c (synth_mult): When trying out a shift, pass the result
14731 of a signed shift.
14732
ef268d34
KH
147332009-05-04 Kazu Hirata <kazu@codesourcery.com>
14734
14735 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
14736 (shiftsub1_cost): New.
14737 (init_expmed): Compute shiftsub1_cost.
14738 (synth_mult): Optimize multiplications by constants of the form
14739 -(2^^m-1) for some constant positive integer m.
14740
255d3827
RG
147412009-05-03 Richard Guenther <rguenther@suse.de>
14742
14743 PR c/39983
14744 * c-typeck.c (array_to_pointer_conversion): Do not built
14745 ADDR_EXPRs of arrays of pointer-to-element type.
14746 * c-gimplify.c (c_gimplify_expr): Revert change fixing
14747 up wrong ADDR_EXPRs after-the-fact.
14748 * c-common.c (strict_aliasing_warning): Strip pointer
14749 conversions for obtaining the original type.
14750 * builtins.c (fold_builtin_memset): Handle array types.
14751 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
14752 and array types
14753
16c33770
RG
147542009-05-03 Richard Guenther <rguenther@suse.de>
14755
14756 PR middle-end/23329
14757 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
14758 Do not lose casts from array types with unknown extent to array
14759 types with known extent.
14760 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
14761 alias set compatibility.
14762
62a67c94
MLI
147632009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
14764
14765 * flags.h (extra_warnings): Delete.
14766 * toplev.c (process_options): Handle Wuninitialized here.
14767 * opts.c (extra_warnings): Delete.
14768 (set_Wextra): Delete.
14769 (common_handle_option): -Wextra can be handled automatically.
14770 * c-opts.c (c_common_handle_option): Delete obsolete code.
14771 (c_common_post_options): Simplify comment.
14772 * common.opt (W): Add Var.
14773 (Wextra): Add Var.
14774 (Wuninitialized): Initialize to -1.
14775
8c7926c4
AN
147762009-05-03 Adam Nemet <anemet@caviumnetworks.com>
14777 Richard Guenther <rguenther@suse.de>
14778
14779 * expr.c (get_def_for_expr): New function.
14780 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
14781 SSA rather than trees.
14782 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
14783 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
f100a4a8 14784
fa5da7de
JM
147852009-05-03 Joseph Myers <joseph@codesourcery.com>
14786
14787 * c-common.c (reswords): Add _Imaginary.
14788 * c-common.c (enum rid): Add RID_IMAGINARY.
14789
2ddd5020
PB
147902009-05-03 Paolo Bonzini <bonzini@gnu.org>
14791
14792 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
14793 Patch by Richard Guenther.
14794
aea88c05
AS
147952009-05-03 Anatoly Sokolov <aesok@post.ru>
14796
14797 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
14798 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
14799 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
14800 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
14801 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
14802 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
14803 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
14804 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
14805 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
14806 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
14807 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
14808 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
14809 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
14810 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
14811 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
14812 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
14813 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
14814 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
14815
85e59f3a
RG
148162009-05-02 Richard Guenther <rguenther@suse.de>
14817
14818 PR tree-optimization/39940
14819 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
14820 doing so.
14821
4636b850
RG
148222009-05-02 Richard Guenther <rguenther@suse.de>
14823
14824 PR middle-end/40001
14825 * tree-ssa.c (execute_update_addresses_taken): Properly check
14826 if we can mark a variable DECL_GIMPLE_REG_P.
14827 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
14828 back to the end of the function.
14829 (is_gimple_reg_type): Remove complex type special casing.
14830 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
14831 if not optimizing.
14832
5e10cb5a
BE
148332009-05-02 Ben Elliston <bje@au.ibm.com>
14834
14835 * doc/collect2.texi (Collect2): Document search path behaviour
14836 when configured with --with-ld.
14837
048bf48b
JH
148382009-05-02 Jan Hubicka <jh@suse.cz>
14839
14840 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
14841 parameter; update callers.
aa016ff7
UB
14842 (coalesce_cost_edge): EH edges are costier because they needs
14843 splitting even if not critical and even more costier when there are
14844 multiple EH predecestors.
048bf48b 14845
d5c5f9ab
JH
148462009-05-02 Jan Hubicka <jh@suse.cz>
14847
14848 * except.c (remove_eh_handler_and_replace): Handle updating after
14849 removing TRY blocks.
14850
2ed1959a
EB
148512009-05-02 Eric Botcazou <ebotcazou@adacore.com>
14852
14853 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
14854
d363a7e7
SB
148552009-05-02 Steven Bosscher <steven@gcc.gnu.org>
14856
14857 * varasm.c: Do not include c-pragma.h.
14858 * attribs.c: Do not incude c-common.h.
14859
9c3d55b4
MM
148602009-05-01 Michael Matz <matz@suse.de>
14861
14862 * calls.c (initialize_argument_information): Handle SSA names like
14863 decls with a non MEM_P DECL_RTL.
14864
ea264ca5
SB
148652009-05-01 Steven Bosscher <steven@gcc.gnu.org>
14866
14867 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
14868 * ipa-utils.c: Likewise.
14869 * ipa-type-escape.c: Likewise.
14870 * cgraphunit.c Do not include c-common.h.
14871 * ipa-pure-const.c: Likewise.
14872 * tree-if-conv.c: Likewise.
14873 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
14874 * ipa-struct-reorg.c: Likewise.
14875 * tree-nomudflap.c: Likewise.
14876 * tree-ssa-structalias.c: Likewise.
14877
6c5d4d1a
SB
148782009-05-01 Steven Bosscher <steven@gcc.gnu.org>
14879
14880 * store-motion.c: Many cleanups to make this pass a first-class
14881 citizen instead of an appendix to gcse load motion. Add TODO list
14882 to make this pass faster/cleaner/better.
14883
14884 (struct ls_expr): Post gcse.c-split cleanups.
14885 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
14886 "stores" field to "avail_stores".
14887 (pre_ldst_mems): Rename to store_motion_mems.
14888 (pre_ldst_table): Rename to store_motion_mems_table.
14889 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
14890 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
14891 (ldst_entry): Rename to st_expr_entry, update users.
14892 (free_ldst_entry): Rename to free_st_expr_entry, update users.
14893 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
14894 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
14895 update caller.
6c5d4d1a
SB
14896 (first_ls_expr): Rename to first_st_expr, update users.
14897 (next_ls_expr): Rename to next_st_expr, update users.
14898 (print_ldst_list): Rename to print_store_motion_mems. Print names of
14899 fields properly for store motion instead of names inherited from load
14900 motion in gcse.c.
14901 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
14902 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
14903 are done with it.
14904
14905 (ae_kill): Rename to st_kill, update users.
14906 (ae_gen): Rename to st_avloc, update users.
14907 (transp): Rename to st_transp, update users.
14908 (pre_insert_map): Rename to st_insert_map, update users.
14909 (pre_delete_map): Rename to st_delete_map, update users.
14910 (insert_store, build_store_vectors, free_store_memory,
14911 one_store_motion_pass): Update for abovementioned changes.
14912
14913 (gcse_subst_count, gcse_create_count): Remove.
14914 (one_store_motion_pass): New statistics counters "n_stores_deleted"
14915 and "n_stores_created", local variables.
14916
14917 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
14918 use for_each_rtx.
14919
14920 (regvec, compute_store_table_current_insn): Remove.
14921 (reg_set_info, reg_clear_last_set): Remove.
14922 (compute_store_table): Use DF caches instead of local dataflow
14923 solvers.
14924
b02cec6e
JM
149252009-05-01 Joseph Myers <joseph@codesourcery.com>
14926
14927 * c-objc-common.c (c_tree_printer): Print identifiers with
14928 pp_identifier, not pp_string. Mark "({anonymous})" for
14929 translation.
14930 * c-pretty-print.c (pp_c_ws_string): New.
14931 (pp_c_cv_qualifier, pp_c_type_specifier,
14932 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
14933 pp_c_storage_class_specifier, pp_c_function_specifier,
14934 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
14935 pp_c_primary_expression, pp_c_postfix_expression,
14936 pp_c_unary_expression, pp_c_shift_expression,
14937 pp_c_relational_expression, pp_c_equality_expression,
14938 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
14939 use pp_string and pp_c_ws_string in place of pp_identifier and
14940 pp_c_identifier for non-identifiers. Mark English strings for
14941 translation.
14942 * c-pretty-print.h (pp_c_ws_string): Declare.
14943
cd533689
PP
149442009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
14945 Roland McGrath <roland@redhat.com>
14946
aa016ff7 14947 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
14948 (ENABLE_LD_BUILDID): New configuration option.
14949 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
14950 (LINK_BUILDID_SPEC): New macro.
14951 (init_spec): If defined, prepend it between LINK_EH_SPEC and
14952 link_spec.
14953 * doc/install.texi: Document --enable-linker-build-id option.
14954 * configure: Rebuild.
14955 * config.in: Rebuild.
14956
ba6adec4
AN
149572009-04-30 Adam Nemet <anemet@caviumnetworks.com>
14958
14959 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
14960 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
14961 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
14962 MIPS_GP_SAVE_AREA_SIZE.
14963 * config/mips/mips.c (struct mips_frame_info): Update comment
14964 before arg_pointer_offset and hard_frame_pointer_offset.
14965 (mips_compute_frame_info): Update diagram before function: to
14966 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
14967 indicate the position of frame_pointer_rtx with -fstack-protector and
14968 to show args_size. Don't allocate cprestore area for leaf functions
14969 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
14970 cprestore_size.
14971 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
14972
48f5b722
MM
149732009-04-30 Michael Matz <matz@suse.de>
14974
ba6adec4
AN
14975 PR tree-optimization/39955
14976 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 14977
b65d6744
DK
149782009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
14979
14980 * ira.c (setup_cover_and_important_classes): Use safe macro
14981 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
14982 directly.
14983 * genpreds.c (write_tm_preds_h): Output suitable definition of
14984 REG_CLASS_FOR_CONSTRAINT.
14985
f136c8ae
RAE
149862009-04-30 Rafael Avila de Espindola <espindola@google.com>
14987
14988 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
14989 instead of an int.
14990 * bitmap.c (bitmap_descriptor): Likewise.
14991 * ggc-common.c (loc_descriptor): Likewise.
14992 * varray.c (varray_descriptor): Likewise.
14993 * vec.c (vec_descriptor): Likewise.
14994
43fcece8 149952009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
14996
14997 * Makefile.in (dce.o): Add $(EXCEPT_H).
14998 * dce.c: Include except.h and delete redundant vector definitions.
14999 (deletable_insn_p): Return false for non-call insns that can throw
15000 if DF is running.
15001
df35c271
SB
150022009-04-30 Steven Bosscher <steven@gcc.gnu.org>
15003
15004 * gcse.c (ae_gen): Remove.
15005 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
15006 and make non-static function to make it available in store-motion.c.
15007 Update call sites with search-and-replace.
15008 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
15009 extract_mentioned_regs, extract_mentioned_regs_helper,
15010 find_moveable_store, compute_store_table, load_kills_store, find_loads,
15011 store_killed_in_insn, store_killed_after, store_killed_before,
15012 build_store_vectors, insert_insn_start_basic_block, insert-store,
15013 remove_reachable_equiv_notes, replace_store_insn, delete_store,
15014 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
15015 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
15016 * store-motion.c: ...new file. Also copy data structures from gcse.c
15017 and clean up to remove parts not used by store motion.
15018 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
15019 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
15020
f711a87a
RR
150212009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15022
15023 PR target/38571
15024 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
15025 when optimizing for size.
15026
fa5ed76e
HPN
150272009-04-30 Hans-Peter Nilsson <hp@axis.com>
15028
15029 * gcse.c (gcse_constant_p): Fix typo in last change.
15030
0acbbdb0
RAE
150312009-04-30 Rafael Avila de Espindola <espindola@google.com>
15032
15033 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
15034
82f5c05d
AK
150352009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
15036
15037 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
15038
6d8f135b
JW
150392009-04-29 James E. Wilson <wilson@codesourcery.com>
15040
15041 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
15042 CONST_HIGH_PART result.
15043
c21ca196
AS
150442009-04-29 Anatoly Sokolov <aesok@post.ru>
15045
15046 * config/avr/avr.c (initial_elimination_offset): Rename to
15047 avr_initial_elimination_offset.
15048 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
15049 change return type to bool.
15050 (avr_can_eliminate): New function.
15051 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
15052 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
15053 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 15054 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
15055 avr_initial_elimination_offset.
15056 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
15057 (avr_initial_elimination_offset): Define.
15058
2a34bece 150592009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 15060 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
15061
15062 PR rtl-optimization/39938
15063 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
15064 * cfgrtl.c: Include insn-attr.h.
15065 (rest_of_pass_free_cfg): New function.
15066 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
15067 * resource.c (init_resource_info): Remove call to df_analyze.
15068
5dc7911e
RG
150692009-04-29 Richard Guenther <rguenther@suse.de>
15070
15071 PR target/39943
15072 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
15073 allow conversion to signed integers.
15074
1fe479fd
RG
150752009-04-29 Richard Guenther <rguenther@suse.de>
15076
15077 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
15078 shifts of floating point vectors if the shift amount is
15079 a constant multiple of the element size.
15080
8e001680
AK
150812009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
15082 Michael Matz <matz@suse.de>
15083
15084 PR middle-end/39927
15085 PR bootstrap/39929
15086 * tree-outof-ssa.c (emit_partition_copy): New function.
15087 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
15088 insert_part_to_rtx_on_edge): Perform the partition base var
15089 copy using emit_partition_copy.
15090 (insert_value_copy_on_edge): Convert constants to the right mode.
15091 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
15092 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
15093
e50e3081
BS
150942009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
15095
15096 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
15097 scan backwards to try to find a constant to initialize it.
15098
4e5d521b
BS
15099 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
15100 insn before the loop_end instruction, don't look past labels.
15101
7c90021d
RG
151022009-04-29 Richard Guenther <rguenther@suse.de>
15103
15104 PR middle-end/39937
15105 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
15106 loose type conversions.
15107 (forward_propagate_addr_expr): Fix tuplification bug. Remove
15108 stmts only if there are no uses of its definition.
15109
97a988bc
BS
151102009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
15111
15112 * config/bfin/bfin.h (splitting_loops): Declare.
15113 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
15114 Reorder bit definitions to be ascending.
15115 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
15116 * config/bfin/bfin.c (splitting_loops): New variable.
15117 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
15118 (struct loop_info): Remove members INIT and LOOP_INIT.
15119 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
15120 the LSETUP sequence. Allow LC to be loaded from any register, but
15121 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
15122 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
15123 set to 1.
15124 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
15125 of reload_completed.
aa016ff7 15126
97a988bc
BS
15127 From Jie Zhang:
15128 * config/bfin/bfin.md (movsi_insn): Refine constraints.
15129
0c463e16
RAE
151302009-04-29 Rafael Avila de Espindola <espindola@google.com>
15131
15132 * Makefile.in (PLUGIN_VERSION_H): New.
15133 (OBJS-common): Remove plugin-version.o.
15134 (plugin.o): Depend on (PLUGIN_VERSION_H).
15135 (plugin-version.o): Remove.
15136 * configure: Regenerate
15137 * configure.ac: Create plugin-version.h.
15138 * gcc-plugin.h (plugin_gcc_version): Remove.
15139 (plugin_default_version_check): Change signature.
15140 * plugin-version.c: Remove.
15141 * plugin.c: Include plugin-version.h.
15142 (str_plugin_gcc_version_name): Remove.
15143 (try_init_one_plugin): Pass gcc version to plugin_init.
15144 (plugin_default_version_check): Both gcc and plugin versions are now
15145 arguments.
15146
307e7eab 151472009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
f100a4a8 15148
307e7eab
BS
15149 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
15150 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
15151 Remove special case testing for last insn of inner loops. Don't fail
15152 if the loop ends with a jump, emit an extra nop instead.
307e7eab 15153
c5d96723
BS
15154 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
15155 DREGS rather than comparing directly. Remove code that tries to
15156 account for latencies.
15157
de0b4ad5
RG
151582009-04-29 Richard Guenther <rguenther@suse.de>
15159
15160 PR tree-optimization/39941
15161 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
15162 eliminating an indirect call.
15163
3a19701a
RG
151642009-04-29 Richard Guenther <rguenther@suse.de>
15165
15166 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
15167 parameter. Allow invariants as base if !require_lvalue.
15168 (verify_gimple_assign_single): Adjust.
15169
a0a31d1e
BS
151702009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
15171
15172 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
15173 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
15174 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
15175 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
15176 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
15177 a VEC_SELECT.
aa016ff7
UB
15178 * config/bfin/bfin.c (bfin_expand_builtin,
15179 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 15180
795bd26a
RG
151812009-04-28 Richard Guenther <rguenther@suse.de>
15182
15183 * tree-vect-loop.c (get_initial_def_for_induction): Use
15184 correct types for pointer increment.
15185
04be270f
KG
151862009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15187
15188 * toplev.c (print_version): Update GMP version string calculation.
15189
e1a3b85c
EB
151902009-04-28 Eric Botcazou <ebotcazou@adacore.com>
15191
15192 PR rtl-optimization/39938
15193 * resource.c (init_resource_info): Add call to df_analyze.
15194
8224166e
UB
151952009-04-28 Uros Bizjak <ubizjak@gmail.com>
15196
15197 * config/alpha/alpha.md (usegp): Cast the result of
15198 alpha_find_lo_sum_using_gp to enum attr_usegp.
15199 * config/alpha/alpha.c (override_options): Remove end-of-structure
15200 marker element from cpu_table. Use array size of cpu_table to handle
15201 -mcpu and -mtune options.
15202 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
15203
c5f0fe67
JM
152042009-04-28 Joseph Myers <joseph@codesourcery.com>
15205
15206 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
15207 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
15208 tune_32 and tune_64.
15209 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
15210 support on PowerPC.
15211 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
15212 * config/rs6000/option-defaults.h: ... here. New file.
15213 (OPT_64, OPT_32): Define.
15214 (MASK_64BIT): Define to 0 if not already defined.
15215 (OPT_ARCH64, OPT_ARCH32): Define.
15216 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
15217 and tune_64.
15218
0c48a567
RR
152192009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15220
15221 * config/arm/arm.c (arm_override_options): Emit error on using
15222 fpa with AAPCS.
15223
f1028b9d
UB
152242009-04-28 Uros Bizjak <ubizjak@gmail.com>
15225
15226 PR rtl-optimization/39914
15227 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
15228 registers for allocnos created from user-defined variables only
15229 when not optimizing.
15230
e0dd989a
RG
152312009-04-28 Richard Guenther <rguenther@suse.de>
15232
15233 PR middle-end/39937
15234 * fold-const.c (fold_binary): Use distribute_real_division only
15235 on float types.
15236
9a17c91d
SE
152372009-04-28 Steve Ellcey <sje@cup.hp.com>
15238
15239 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
15240 add hpux-stdint.h to tm_file.
15241 (hppa[12]*-*-hpux11*): Ditto.
15242 (ia64*-*-hpux*): Ditto.
15243 * config/hpux-stdint.h: New.
60839f5d 15244 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 15245 __STDC_EXT__ for all compiles.
60839f5d
EB
15246 * config/pa/pa-hpux.h: Ditto.
15247 * config/pa/pa-hpux10.h: Ditto.
15248 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 15249
af04e659
CM
152502009-04-28 Catherine Moore <clm@codesourcery.com>
15251
15252 * debug.h (set_name): Add comment.
15253
04ef80ce
AP
152542009-04-28 Andrew Pinski <pinskia@gmail.com>
15255
15256 PR target/39929
15257 * config/darwin.c (machopic_gen_offset): Check
15258 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
15259 * config/arm/arm.c (require_pic_register): Likewise.
15260
65ad77af
PB
152612009-04-28 Paolo Bonzini <bonzini@gnu.org>
15262
8224166e
UB
15263 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
15264 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
15265 m32c_promote_prototypes): Delete.
65ad77af 15266
1b15a008
MM
152672009-04-28 Michael Matz <matz@suse.de>
15268
15269 PR middle-end/39922
15270 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
15271 constants.
15272
7569a6cc
RG
152732009-04-28 Richard Guenther <rguenther@suse.de>
15274
f1028b9d 15275 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 15276
ead204d9
RR
152772009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15278
15279 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
15280 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
15281 * config/arm/arm-tune.md: Regenerate.
15282
f2c45f08 152832009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 15284
f2c45f08
AM
15285 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
15286 block if there are complex incoming edges.
15287 (sel_merge_blocks): Remove useless assert.
15288 (sel_redirect_edge_and_branch): Check that edge was redirected.
15289 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
15290 (sel_find_rgns): Delete declaration.
15291 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
15292 the region when it is not a preheader.
15293
7a00d767
UB
152942009-04-28 Uros Bizjak <ubizjak@gmail.com>
15295
15296 PR c/39323
15297 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
15298
448ee662
RG
152992009-04-28 Richard Guenther <rguenther@suse.de>
15300
15301 * tree.h (SSA_NAME_VALUE): Remove.
15302 (struct tree_ssa_name): Remove value_handle member.
15303 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
15304 array for jump threading.
15305 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
15306 SSA_NAME_VALUEs.
15307 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
15308 * tree-flow.h (threadedge_initialize_values): Declare.
15309 (threadedge_finalize_values): Likewise.
15310 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
15311 (SSA_NAME_VALUE): Define.
15312 (threadedge_initialize_values): New function.
15313 (threadedge_finalize_values): Likewise.
15314 * tree-ssa-dom.c (ssa_name_values): New global variable.
15315 (SSA_NAME_VALUE): Define.
f1028b9d 15316 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 15317
8644a673
IR
153182009-04-28 Ira Rosen <irar@il.ibm.com>
15319
15320 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
f100a4a8 15321 Use REPORT_VECTORIZED_LOCATIONS instead
8644a673
IR
15322 REPORT_VECTORIZED_LOOPS.
15323 * tree-vectorizer.c (vect_verbosity_level): Make static.
15324 (vect_loop_location): Rename to vect_location.
15325 (vect_set_verbosity_level): Update comment.
15326 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
15327 and vect_location.
15328 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
15329 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
15330 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
15331 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
15332 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 15333 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
f100a4a8 15334 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
15335 REPORT_UNVECTORIZED_LOCATIONS.
15336 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
f100a4a8 15337 and vect_used_in_loop and to vect_unused_in_scope and
8644a673
IR
15338 vect_used_in_scope.
15339 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
15340 (vect_verbosity_level): Remove declaration.
15341 (vect_analyze_operations): Likewise.
15342 (vect_analyze_stmt): Declare.
15343 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
15344 REPORT_UNVECTORIZED_LOCATIONS.
15345 (vect_get_loop_niters): Fix indentation.
15346 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
15347 (vect_analyze_loop_operations): New function.
15348 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
15349 vect_analyze_operations.
15350 (vect_is_simple_reduction): Use new names.
15351 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
15352 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
15353 to specify whether the data references can be a part of interleaving
15354 chain.
8644a673
IR
15355 (vect_analyze_data_ref_dependence): Use new names.
15356 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
15357 (vect_create_addr_base_for_vector_ref): Remove redundant code.
15358 * tree-vect-patterns.c (widened_name_p): Use new names.
15359 (vect_recog_dot_prod_pattern): Likewise.
15360 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
f100a4a8 15361 (process_use, vect_mark_stmts_to_be_vectorized,
8644a673
IR
15362 vect_model_simple_cost, vect_model_store_cost,
15363 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
15364 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
15365 vectorizable_operation, vectorizable_type_demotion,
15366 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
15367 vectorizable_condition): Likewise.
15368 (vect_analyze_operations): Split into vect_analyze_loop_operations
15369 and ...
15370 (vect_analyze_stmt): ... new function.
15371 (new_stmt_vec_info): Use new names.
15372 (vect_is_simple_use): Use new names and fix comment.
15373 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
15374 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
15375
b91322f2
UB
153762009-04-28 Uros Bizjak <ubizjak@gmail.com>
15377
15378 PR target/39911
15379 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
15380 and integer modes for x87 operands. Do not ICE for unsupported size,
15381 generate error instead. Generate error for unsupported operand types.
15382 ['z']: Do not handle HImode memory operands specially. Warning
15383 for floating-point operands. Fallthru to 'Z' for unsupported operand
15384 types. Do not ICE for unsupported size, generate error instead.
15385 (output_387_binary_op): Use %Z to output operands.
15386 (output_fp_compare): Ditto.
15387 (output_387_reg_move): Ditto.
15388
b2ed71b6
BE
153892009-04-28 Ben Elliston <bje@au.ibm.com>
15390
15391 PR c++/35652
15392 Revert:
15393
15394 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15395
15396 * builtins.c (c_strlen): Do not warn here.
15397 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
15398 * c-common.c (pointer_int_sum): Take an explicit location.
15399 Warn about offsets out of bounds.
15400 * c-common.h (pointer_int_sum): Adjust declaration.
15401
81f40b79
ILT
154022009-04-27 Ian Lance Taylor <iant@google.com>
15403
15404 * collect2.c (is_ctor_dtor): Change type of ret field in struct
15405 names to symkind.
15406 * dce.c (run_fast_df_dce): Change type of old_flags to int.
15407 * df-core.c (df_set_flags): Change return type to int. Change
15408 type of old_flags to int.
15409 (df_clear_flags): Likewise.
15410 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
15411 (df_get_conditional_uses): Likewise.
15412 * df.h (df_set_flags, df_clear_flags): Update declarations.
15413 * dwarf2out.c (struct indirect_string_node): Change type of form
15414 field to enum dwarf_form.
15415 (AT_string_form): Change return type to enum dwarf_form.
15416 * fixed-value.c (fixed_compare): Add cast to enum type.
15417 * fwprop.c (update_df): Change 0 to VOIDmode.
15418 * gensupport.c: Change 0 to UNKNOWN.
15419 * gimple.h (gimple_cond_code): Add cast to enum type.
15420 * haifa-sched.c (reemit_notes): Add cast to enum type.
15421 * hooks.c (hook_int_void_no_regs): Remove function.
15422 * hooks.h (hook_int_void_no_regs): Remove declaration.
15423 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 15424 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
15425 * real.c (real_arithmetic): Add cast to enum type.
15426 (real_compare): Likewise.
15427 * target.h (struct gcc_target): Change return type of
15428 branch_target_register_class to enum reg_class.
15429 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
15430 default_branch_target_register_class.
7a00d767 15431 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 15432 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 15433 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
15434 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
15435 cast to int.
15436 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
15437 ERROR_MARK.
15438 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
15439 vect_uninitialized_def. Change 0 to ERROR_MARK.
15440 * tree-vect-stmts.c (supportable_widening_operation): Don't
15441 initialize icode1 and icode2.
7a00d767 15442 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
15443 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
15444 and to STD_C89.
15445 (cmn_err_flag_specs): Change 0 to STD_C89.
15446 (cmn_err_char_table): Likewise.
15447 * config/arm/arm.c (get_arm_condition_code): Change type of code
15448 to enum arm_cond_code.
15449 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
15450 (IWMMXT_BUILTIN2): Likewise.
15451 (neon_builtin_type_bits): Don't define typedef.
15452 (neon_builtin_datum): Change type of bits field to int.
15453 (arm_expand_neon_args): Add cast to enum type.
15454 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
15455 TLS_MODEL_NONE.
15456 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
15457 casts to enum type.
15458 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
15459 MIPS_FP_COND_f.
15460 * config/mips/mips.md (jal_macro): Return enum constant.
15461 (single_insn): Likewise.
15462 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
15463 CODE_FOR_nothing.
15464 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15465 casts to enum type.
15466 * config/s390/s390.c (s390_tune_flags): Change type to int.
15467 (s390_arch_flags): Likewise.
7a00d767 15468 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
15469 * config/s390/s390.h (s390_tune_flags): Update declaration.
15470 (s390_arch_flags): Likewise.
15471 * config/sh/sh.c (prepare_move_operands): Compare
15472 tls_symbolic_operand result with enum constant.
15473 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
15474 (sh_expand_prologue): Add cast to enum type.
15475 (sh_expand_epilogue): Likewise.
15476 (tls_symbolic_operand): Change return type to enum tls_model.
15477 (fpscr_set_from_mem): Add cast to enum type.
15478 (legitimize_pic_address): Compare tls_symbolic_operand result with
15479 enum constant.
15480 (sh_target_reg_class): Change return type to enum reg_class.
15481 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
15482 PROCESSOR_xxx.
7a00d767
UB
15483 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
15484 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
15485 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
15486 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
15487 (delayed_branch, tls_call_delay): Likewise.
15488 (eligible_for_sibcall_delay): Likewise.
f100a4a8 15489 (eligible_for_return_delay): Likewise.
81f40b79
ILT
15490 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
15491 (spu_expand_builtin_1): Likewise.
15492
15493 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
15494 for all types of conversions.
15495 (output_init_element): Issue -Wc++-compat warning if needed when
15496 initializing a bitfield with enum type.
15497 * c-parser.c (c_parser_expression): Set original_type to
9302a061 15498 original_type of right hand operand of comma operator.
81f40b79 15499
e4ae5e77
RW
155002009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15501
15502 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
15503 grammar nits.
7a00d767 15504 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
15505 * doc/cpp.texi (Standard Predefined Macros)
15506 (Implementation-defined behavior): Likewise.
7a00d767 15507 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
15508 * doc/gimple.texi (GIMPLE Exception Handling)
15509 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 15510 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
15511 * doc/invoke.texi (Warning Options, Optimize Options)
15512 (AVR Options, Darwin Options): Likewise.
15513 (Optimize Options): Reformulate -fwhole-program description.
15514 * doc/loop.texi (Lambda): Likewise.
15515 * doc/md.texi (Output Template, Define Constraints)
15516 (Standard Names, Insn Splitting): Likewise.
15517 * doc/options.texi (Option properties): Likewise.
15518 * doc/passes.texi (Tree-SSA passes): Likewise.
15519 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
15520 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
15521 (File Names and DBX): Likewise.
15522 * doc/trouble.texi (Incompatibilities): Likewise.
15523
1883802f 155242009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
15525
15526 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
15527 instruction is correct.
15528
1883802f 155292009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
15530
15531 Allow non-constant arguments to conversion intrinsics.
15532 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
15533 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
15534 * spu.c (print_operand): Handle 'v' and 'w'.
15535 (exp2_immediate_p, spu_gen_exp2): Define.
15536 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
15537 spu_convtf_1): Update parameter descriptions.
7a00d767 15538 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
15539 * constraints.md ('v', 'w'): New.
15540 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
15541 Remove.
15542 (i2f, I2F): New define_mode_attr.
15543 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
15544 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
15545 fixuns_truncv4sfv4si2): Update to use mode attribute.
15546 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
15547 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
15548 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
15549 patterns for combine.
15550
5f39ad47
SB
155512009-04-27 Steven Bosscher <steven@gcc.gnu.org>
15552
15553 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
15554 (cprop, hoist, pre, store_motion): New debug counters.
15555 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
15556 is not an RTL pass anymore.
15557 (pass_profiling): Remove extern decl for pass removed in 2005.
15558 (pass_gcse, pass_jump_bypass): Remove.
15559 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
15560 to 0 for clean state.
15561 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
15562 * cse.c (gate_handle_cse_after_global_opts,
15563 rest_of_handle_cse_after_global_opts): New functions.
15564 (pass_cse_after_global_opts): New pass, does local CSE.
15565 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
15566 (TV_CPROP): New timevar.
15567 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
15568 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
15569 (gcse_main, recompute_all_luids): Remove.
15570 (compute_hash_table_work): Call max_reg_num instead of reading
15571 max_gcse_regno.
15572 (cprop_jump): Don't set run_jump_opt_after_gcse.
15573 (constprop_register): Always allow to alter jumps.
15574 (cprop_insn): Likewise.
15575 (do_local_cprop): Likewise.
15576 (local_cprop_pass): Likewise. Return non-zero if something changed.
15577 (cprop): Remove function, fold interesting bits into one_cprop_pass.
15578 (find_implicit_sets): Add note about missed optimization opportunity.
15579 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
15580 pass_rtl_cprop execute function.
15581 Don't bother tracking the pass number, each pass gets its own dumpfile
15582 now anyway.
15583 Always allow to alter jumpsand bypass jumps.
15584 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
15585 will just find no suitable set.
15586 (pre_edge_insert): Fix dumping, this function is for PRE only.
15587 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
15588 pass_rtl_pre execute function.
15589 (hoist_code): Return non-zero if something changed. Keep track of
15590 substitutions and insertions for statistics gathering similar to PRE.
15591 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
15592 called from the pass_rtl_hoist execute function. Show pass statistics.
15593 (compute_store_table): Use max_reg_num directly instead of using the
15594 formerly global max_gcse_regno.
15595 (build_store_vectors): Likewise.
15596 (replace_store_insn): Fix dumping.
15597 (store_motion): Rename to ...
15598 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
15599 pass, called from the pass_rtl_store_motion execute function. Keep
15600 track of substitutions and insertions for statistics gathering similar
15601 to PRE.
15602 (bypass_jumps): Remove, fold interesting bits into ...
15603 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
15604 from the pass_rtl_cprop execute function.
15605 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
15606 pass_jump_bypass): Remove.
15607 (gate_handle_gcse, rest_of_handle_gcse): Remove.
15608 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
15609 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
15610 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
15611 (gate_rtl_store_motion, execute_rtl_store_motion,
15612 pass_rtl_store_motion): New.
15613 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
15614 make it clear that -fcse-skip-blocks is a no-op for backward compat.
15615 * passes.c (init_optimization_passes): Remove pass_gcse and
15616 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
15617 and cse_after_global_opts in place of pass_gcse. Schedule cprop
15618 instead of pass_jump_bypass.
15619
c685de4a
RG
156202009-04-27 Richard Guenther <rguenther@suse.de>
15621
15622 PR middle-end/39928
15623 * gimplify.c (gimplify_expr): If we are required to create
15624 a temporary make sure it ends up as register.
15625
72d41f29
L
156262009-04-27 H.J. Lu <hongjiu.lu@intel.com>
15627
15628 PR target/39903
15629 * config/i386/i386.c (construct_container): Don't call
15630 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
15631 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
15632
e97809c6
MM
156332009-04-27 Michael Matz <matz@suse.de>
15634
15635 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
15636 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
15637 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
15638 (dump_replaceable_exprs): Take a bitmap.
15639 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
15640 array.
15641 (expand_gimple_basic_block): Likewise.
15642 * tree-ssa-ter.c (struct temp_expr_table_d): Make
15643 replaceable_expressions member a bitmap.
15644 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
15645 (mark_replaceable): Likewise.
15646 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
15647 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
15648
211ca15c
RG
156492009-04-27 Richard Guenther <rguenther@suse.de>
15650
15651 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
15652 (verify_stmts): Dispatch to gimple/type verification code.
15653 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
15654 issue with call argument types.
15655
fca5f3d1
MM
156562009-04-27 Michael Matz <matz@suse.de>
15657
15658 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
15659 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
15660 to above.
15661
a1fa3e79 156622009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 15663 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
15664
15665 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
15666 a label's basic block.
15667 (mark_target_live_regs): Tidy and rework obsolete comments.
15668 Change back DF problem to LIVE. If a label starts a basic block,
15669 assume that all registers that used to be live then still are.
15670 (init_resource_info): If a label starts a basic block, set its
15671 BLOCK_FOR_INSN accordingly.
15672 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
15673
33b223c0
RG
156742009-04-27 Richard Guenther <rguenther@suse.de>
15675
15676 * tree-flow-inline.h (function_ann): Remove.
15677 (get_function_ann): Likewise.
15678 * tree-dfa.c (create_function_ann): Remove.
15679 * tree-flow.h (struct static_var_ann_d): Remove.
15680 (struct function_ann_d): Likewise.
15681 (union tree_ann_d): Remove fdecl member.
15682 (function_ann_t): Remove.
15683 (function_ann, get_function_ann, create_function_ann): Remove
15684 declarations.
15685
e3136fa2
UB
156862009-04-27 Uros Bizjak <ubizjak@gmail.com>
15687
15688 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
15689
f87c9042
JH
156902009-04-27 Jan Hubicka <jh@suse.cz>
15691
15692 * ipa-pure-const.c (struct funct_state_d): New fields
15693 state_previously_known, looping_previously_known; remove
15694 state_set_in_source.
15695 (analyze_function): Use new fields.
15696 (propagate): Avoid assumption that state_set_in_source imply
15697 nonlooping.
15698
15699 * tree-ssa-loop-niter.c (finite_loop_p): New function.
15700 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
15701 * cfgloop.h (finite_loop_p): Declare.
15702
33abd718
MM
157032009-04-26 Michael Matz <matz@suse.de>
15704
e3136fa2 15705 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 15706
ddc34084
MM
157072009-04-26 Michael Matz <matz@suse.de>
15708
15709 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
15710 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
15711 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
15712 pass_mark_used_blocks): Remove.
15713 * tree-optimize.c (pass_free_datastructures,
15714 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
15715 * passes.c (init_optimization_passes): Don't call
15716 pass_mark_used_blocks, remove dead code.
15717
1fec7ed4
L
157182009-04-26 H.J. Lu <hongjiu.lu@intel.com>
15719
15720 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
15721 * tree-ssa-live.h (register_ssa_partition): Likewise.
15722
4e3825db
MM
157232009-04-26 Michael Matz <matz@suse.de>
15724
15725 Expand from SSA.
15726 * builtins.c (fold_builtin_next_arg): Handle SSA names.
15727 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
15728 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
f100a4a8 15729 SSA names.
4e3825db
MM
15730 (compare_pairs): Swap cost comparison.
15731 (coalesce_ssa_name): Don't use change_partition_var.
15732 * tree-nrv.c (struct nrv_data): Add modified member.
15733 (finalize_nrv_r): Set it.
15734 (tree_nrv): Use it to update statements.
15735 (pass_nrv): Require PROP_ssa.
15736 * tree-mudflap.c (mf_decl_cache_locals,
15737 mf_build_check_statement_for): Use make_rename_temp.
15738 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
15739 * alias.c (find_base_decl): Handle SSA names.
15740 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
15741 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
15742 * rtl.h (set_reg_attrs_for_parm): Declare.
15743 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
15744 to "optimized", remove unused locals at finish.
15745 (execute_free_datastructures): Make global, call
15746 delete_tree_cfg_annotations.
15747 (execute_free_cfg_annotations): Don't call
15748 delete_tree_cfg_annotations.
15749
15750 * ssaexpand.h: New file.
15751 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 15752 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
15753 (expand_expr_real_1): Expand SSA names.
15754 * cfgexpand.c (toplevel): Include ssaexpand.h.
15755 (SA): New global variable.
15756 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
15757 (SSAVAR): New macro.
15758 (set_rtl): New helper function.
15759 (add_stack_var): Deal with SSA names, use set_rtl.
15760 (expand_one_stack_var_at): Likewise.
15761 (expand_one_stack_var): Deal with SSA names.
15762 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
15763 before unique numbers.
15764 (expand_stack_vars): Use set_rtl.
15765 (expand_one_var): Accept SSA names, add asserts for them, feed them
15766 to above subroutines.
15767 (expand_used_vars): Expand all partitions (without default defs),
15768 then only the local decls (ignoring those expanded already).
15769 (expand_gimple_cond): Remove edges when jumpif() expands an
15770 unconditional jump.
15771 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
15772 or remove abnormal edges. Ignore insns setting the LHS of a TERed
15773 SSA name.
15774 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
15775 members of SA; deal with PARM_DECL partitions here; expand
15776 all PHI nodes, free tree datastructures and SA. Commit instructions
15777 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
15778 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
15779 info and statements at start, collect garbage at finish.
15780 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
15781 (VAR_ANN_PARTITION) Remove.
15782 (change_partition_var): Don't declare.
15783 (partition_to_var): Always return SSA names.
15784 (var_to_partition): Only accept SSA names.
15785 (register_ssa_partition): Only check argument.
15786 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
15787 member.
15788 (delete_var_map): Don't free it.
15789 (var_union): Only accept SSA names, simplify.
15790 (partition_view_init): Mark only useful SSA names as used.
15791 (partition_view_fini): Only deal with SSA names.
15792 (change_partition_var): Remove.
15793 (dump_var_map): Use ssa_name instead of partition_to_var member.
15794 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
15795 basic blocks.
15796 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
15797 (struct _elim_graph): New member const_dests; nodes member vector of
15798 ints.
15799 (set_location_for_edge): New static helper.
15800 (create_temp): Remove.
15801 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 15802 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
15803 (new_elim_graph): Allocate const_dests member.
15804 (clean_elim_graph): Truncate const_dests member.
15805 (delete_elim_graph): Free const_dests member.
15806 (elim_graph_size): Adapt to new type of nodes member.
15807 (elim_graph_add_node): Likewise.
15808 (eliminate_name): Likewise.
15809 (eliminate_build): Don't take basic block argument, deal only with
15810 partition numbers, not variables.
15811 (get_temp_reg): New static helper.
15812 (elim_create): Use it, deal with RTL temporaries instead of trees.
15813 (eliminate_phi): Adjust all calls to new signature.
15814 (assign_vars, replace_use_variable, replace_def_variable): Remove.
15815 (rewrite_trees): Only do checking.
15816 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
15817 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
15818 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
15819 contains_tree_r, MAX_STMTS_IN_LATCH,
15820 process_single_block_loop_latch, analyze_edges_for_bb,
15821 perform_edge_inserts): Remove.
15822 (expand_phi_nodes): New global function.
15823 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
15824 functions, initialize new parameter, remember partitions having a
15825 default def.
15826 (finish_out_of_ssa): New global function.
15827 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
15828 don't reset in_ssa_p here, don't disable TER when mudflap.
15829 (pass_del_ssa): Remove.
15830 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
15831 partition members.
15832 (execute_free_datastructures): Declare.
15833 * Makefile.in (SSAEXPAND_H): New variable.
15834 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
15835 * basic-block.h (commit_one_edge_insertion): Declare.
15836 * passes.c (init_optimization_passes): Move pass_nrv and
15837 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
15838 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
15839 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
15840 (redirect_branch_edge): Deal with super block when expanding, split
15841 out jump patching itself into ...
15842 (patch_jump_insn): ... here, new static helper.
15843
17c665a9
MM
158442009-04-26 Michael Matz <matz@suse.de>
15845
15846 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
15847 beyond num_ssa_names.
15848 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
15849 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
15850
92061771
JJ
158512009-04-26 Jakub Jelinek <jakub@redhat.com>
15852
ce372372
JJ
15853 PR inline-asm/39543
15854 * fwprop.c (forward_propagate_asm): New function.
15855 (forward_propagate_and_simplify): Propagate also into __asm, if it
15856 doesn't increase the number of referenced registers.
15857
92061771
JJ
15858 PR c/39889
15859 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
15860
158612009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
15862
15863 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
15864 note_nonlocal_vla_type for nonlocal VLAs.
15865 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
15866 contains_remapped_vars, remap_vla_decls): New functions.
15867 (convert_nonlocal_reference_stmt): If not optimizing, call
15868 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
15869 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
15870 if it wasn't found in var_map.
15871 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
15872 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
15873 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
15874 declare_vars.
15875 * gimplify.c (nonlocal_vlas): New variable.
15876 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
15877 referenced VLAs.
15878 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 15879
4561e242
JJ
15880 * dwarf2out.c (loc_descr_plus_const): New function.
15881 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
15882 mem_loc_descriptor, loc_descriptor_from_tree_1,
15883 descr_info_loc, gen_variable_die): Use it.
15884
a9548ddf
JJ
15885 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
15886 !TREE_STATIC VAR_DECLs.
15887 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
15888 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
15889 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
15890 DECL_BY_REFERENCE is valid.
15891 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
15892 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
15893 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
15894 Copy DECL_BY_REFERENCE.
15895 (struct nesting_copy_body_data): New type.
15896 (nesting_copy_decl): New function.
15897 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
15898 if they have variable length.
15899
10555d08
MM
159002009-04-26 Michael Matz <matz@suse.de>
15901
15902 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
15903 mark new temporaries for renaming.
15904
e11187cc
JM
159052009-04-26 Joseph Myers <joseph@codesourcery.com>
15906
15907 PR c/39581
15908 * c-decl.c (global_bindings_p): Return negative value.
15909 (c_variable_size): New. Based on variable_size from
15910 stor-layout.c.
15911 (grokdeclarator): Call c_variable_size not variable_size.
15912
f6a51d31
UB
159132009-04-26 Uros Bizjak <ubizjak@gmail.com>
15914
15915 * config/i386/i386.c (print_operand) ['z']: Fix typo.
15916
4b97723d
KT
159172009-04-26 Kai Tietz <kai.tietz@onevision.com>
15918
15919 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
15920 Redefine it to just use mingw/include.
15921 (ASM_SPEC): Rules for -m32 and -m64.
15922 (LINK_SPEC): Use Likewise.
15923 (SPEC_32): New define.
15924 (SPEC_64): Likewise.
15925 (SUB_LINK_SPEC): Likewise.
15926 (MULTILIB_DEFAULTS): New define.
15927 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
15928 Add multilib options.
15929 (MULTILIB_DIRNAMES): Likewise.
15930 (MULTILIB_OSDIRNAMES): Likewise.
15931 (LIBGCC): Likewise.
15932 (INSTALL_LIBGCC): Likewise.
15933
991d6621
JM
159342009-04-26 Joseph Myers <joseph@codesourcery.com>
15935
15936 PR c/39556
15937 * c-tree.h (enum c_inline_static_type): New.
15938 (record_inline_static): Declare.
15939 * c-decl.c (struct c_inline_static, c_inline_statics,
15940 record_inline_static, check_inline_statics): New.
15941 (pop_file_scope): Call check_inline_statics.
15942 (start_decl): Call record_inline_static instead of pedwarning
15943 directly for static in inline function.
15944 * c-typeck.c (build_external_ref): Call record_inline_static
15945 instead of pedwarning directly for static referenced in inline
15946 function.
15947
4a81774c
SB
159482009-04-26 Steven Bosscher <steven@gcc.gnu.org>
15949
15950 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
15951 not new but only being rescanned.
15952 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
15953 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
15954 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
15955 record_set_info, compute_set, grealloc): Remove.
15956 (recompute_all_luids): New function.
15957 (gcse_main): Don't compute sets, and don't do related memory
15958 allocations/free-ing. If something changed before the end of the
15959 pass, update LUIDs using recompute_all_luids.
15960 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
15961 (free_gcse_mem): Don't free it either.
15962 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
15963 Use the df insn LUIDs.
15964 (load_killed_in_block): Likewise.
15965 (compute_hash_table_work): Don't compute reg_set_in_block.
15966 (compute_transp): Use DF_REG_DEF_CHAINs.
15967 (local_cprop_pass): Don't use compute_sets and related functions.
15968 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
15969 Use get_max_uid() instead of max_cuid.
15970 (insert_insn_end_basic_block, pre_insert_copy_insn,
15971 update_ld_motion_stores): Don't try to
15972 keep reg_set tables up to date.
15973 (pre_insert_copies): Use df insn LUIDs.
15974 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
15975 (reg_set_info): Don't use extra bitmap argument.
15976 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
15977 information to compute regs_set_in_block.
15978 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
15979 (bypass_jumps): Don't use compute_sets and friends.
15980
e8f99a9d
RW
159812009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15982
15983 PR testsuite/39710
15984 * opts.c (undocumented_msg): Do not leave blank even with
15985 ENABLE_CHECKING.
15986
6895bac8
JM
159872009-04-25 Joseph Myers <joseph@codesourcery.com>
15988
15989 * c-decl.c (build_enumerator): Allow values folding to integer
15990 constants but not integer constant expressions with a pedwarn if
15991 pedantic.
15992
24070fcb
JM
159932009-04-25 Joseph Myers <joseph@codesourcery.com>
15994
15995 PR c/39582
15996 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
15997 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
15998 type is an integer constant.
15999
d6d89aa1
UB
160002009-04-25 Uros Bizjak <ubizjak@gmail.com>
16001
16002 PR target/39897
16003 * config/i386/i386.c (print_operand) ['z']: Revert handling of
16004 HImode operands.
16005
92f6fd0b
JM
160062009-04-25 Joseph Myers <joseph@codesourcery.com>
16007
16008 PR c/39564
16009 * c-decl.c (grokdeclarator): Diagnose declarations of functions
16010 with variably modified return type and no storage class
16011 specifiers, except for the case of nested functions. Distinguish
16012 extern declarations of functions with variably modified return
16013 types from those of objects with variably modified types.
16014
a3710436
JH
160152009-04-25 Jan Hubicka <jh@suse.cz>
16016
16017 * tree.c (list_equal_p): New function.
16018 * tree.h (list_equal_p): Declare.
16019 * coretypes.h (edge_def, edge, const_edge, basic_block_def
16020 basic_block_def, basic_block, const_basic_block): New.
16021 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
16022 (redirect_eh_edge): New function.
16023 (make_eh_edge_update_phi): EH edges are not abnormal.
16024 * except.c: Include tree-flow.h.
16025 (list_match): New function.
16026 (eh_region_replaceable_by_p): New function.
16027 (replace_region): New function.
16028 (hash_type_list): New function.
16029 (hash_eh_region): New function.
16030 (eh_regions_equal_p): New function.
16031 (merge_peers): New function.
16032 (remove_unreachable_regions): Verify EH tree when checking;
16033 merge peers.
16034 (copy_eh_region_1): New function.
16035 (copy_eh_region): New function.
16036 (push_reachable_handler): New function.
16037 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
16038 regions without label but with live RESX.
16039 * except.h (redirect_eh_edge_to_label): New.
16040 * tree-flow.h (redirect_eh_edge): New.
16041 * coretypes.h (edge_def, edge, const_edge, basic_block_def
16042 basic_block_def, basic_block, const_basic_block): Remove.
16043 * Makefile.in (except.o): Add dependency on tree-flow.h
16044 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
16045 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
16046 Remove.
16047
3764d512
EB
160482009-04-25 Eric Botcazou <ebotcazou@adacore.com>
16049
16050 PR bootstrap/39645
16051 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
16052 on the destination of memcpy.
16053
1c62e8f2
PB
160542009-04-25 Paolo Bonzini <bonzini@gnu.org>
16055
16056 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
16057 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
16058 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
16059
496a4ef5
JH
160602009-04-25 Jan Hubicka <jh@suse.cz>
16061
16062 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
16063 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
16064 to be reached by different label than left.
16065 (update_eh_edges): Update comment; remove edge_to_remove if possible
16066 and return true if suceeded.
16067 (cleanup_empty_eh): Accept sharing map; handle shared regions.
16068 (cleanup_eh): Compute sharing map.
16069 * except.c (remove_eh_handler_and_replace): Add argument if we should
16070 update regions.
16071 (remove_unreachable_regions): Update for label sharing.
16072 (label_to_region_map): Likewise.
16073 (get_next_region_sharing_label): New function.
16074 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
16075 prev_try pointers.
16076 (remove_eh_handler): Update.
16077 (remove_eh_region_and_replace_by_outer_of): New function.
16078 * except.h (struct eh_region): Add next_region_sharing_label.
16079 (remove_eh_region_and_replace_by_outer_of,
16080 get_next_region_sharing_label): Declare.
16081 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
16082
160832009-04-25 Jan Hubicka <jh@suse.cz>
16084
16085 * tree-cfg.c (split_critical_edges): Split also edges where we can't
16086 insert code even if they are not critical.
16087
160882009-04-25 Jan Hubicka <jh@suse.cz>
16089
16090 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
16091 (gimple_can_remove_branch_p): EH edges won't remove branch by
16092 redirection.
16093 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
16094 updating of non-abnormal EH edges.
16095 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
16096 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
16097 (split_critical_edges): Split also edges where emitting code on them
16098 will lead to splitting later.
16099
a3a5e3d1
UB
161002009-04-25 Uros Bizjak <ubizjak@gmail.com>
16101 H.J. Lu <hongjiu.lu@intel.com>
16102
16103 PR target/39590
16104 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
16105 the configured assembler supports fildq and fistpq mnemonics.
16106 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
16107 * configure: Regenerated.
16108 * config.in: Ditto.
16109
16110 * config/i386/i386.c (print_operand): Handle 'Z'.
16111 ['z']: Remove handling of special fild/fist suffixes.
16112 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
16113 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
16114 suffix of fild insn.
16115 (*floatsi<mode>2_vector_mixed): Ditto.
16116 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
16117 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
16118 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
16119 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
16120 * config/i386/gas.h (GAS_MNEMONICS): Remove.
16121
23750d7f 161222009-04-25 Ben Elliston <bje@au.ibm.com>
f100a4a8 16123
23750d7f
BE
16124 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
16125 the source of a set operation.
16126
e6ff3083
AS
161272009-04-25 Anatoly Sokolov <aesok@post.ru>
16128
16129 * target.h (struct gcc_target): Add case_values_threshold field.
16130 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
16131 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
16132 * targhooks.c (default_case_values_threshold): New function.
16133 * targhooks.h (default_case_values_threshold): Declare function.
16134 * stmt.c (expand_case): Use case_values_threshold target hook.
16135 * expr.h (case_values_threshold): Remove declartation.
16136 * expr.c (case_values_threshold): Remove function.
16137 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
16138
16139 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
16140 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
16141 (avr_case_values_threshold): Declare as static.
16142 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
16143
16144 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
16145 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
16146 (mn10300_case_values_threshold): New function.
16147
569c72fc
L
161482009-04-24 H.J. Lu <hongjiu.lu@intel.com>
16149
16150 * ira.c (setup_cover_and_important_classes): Add enum cast.
16151
ff3cb468
VM
161522009-04-24 Vladimir Makarov <vmakarov@redhat.com>
16153
16154 * genpreds.c (write_enum_constraint_num): Output definition of
16155 CONSTRAINT_NUM_DEFINED_P macro.
16156 * ira.c (setup_cover_and_important_classes): Use
16157 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
f100a4a8 16158
4f7be849
DD
161592009-04-24 DJ Delorie <dj@redhat.com>
16160
16161 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
16162 __SH2A_SINGLE_ONLY__ also.
16163
735b94a7
SE
161642009-04-24 Steve Ellcey <sje@cup.hp.com>
16165
16166 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
16167 (movdf_internal): Ditto.
16168 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
16169 SFmode and DFmode constants.
16170 (ia64_print_operand): Add 'G' format for printing
16171 floating point constants.
16172
77a30264
RG
161732009-04-24 Richard Guenther <rguenther@suse.de>
16174
16175 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
16176 from unsigned additions.
16177
2b6da65c
JM
161782009-04-24 Joseph Myers <joseph@codesourcery.com>
16179
16180 * c-typeck.c (set_init_index): Allow array designators that are
16181 not integer constant expressions with a pedwarn if pedantic.
16182
f5a17c43
BS
161832009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
16184
16185 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
16186 zero if no overlap in nonzero bits between the operands.
16187
32e8bb8e
ILT
161882009-04-24 Ian Lance Taylor <iant@google.com>
16189
16190 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
16191 (record_dead_and_set_regs): Likewise.
16192 * df.h (struct df_mw_hardreg): Change flags field to int.
16193 (struct df_base_ref): Likewise.
16194 (struct df): Change changeable_flags field to int.
16195 * df-scan.c (df_defs_record): Change clobber_flags to int.
16196 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
16197 constants rather than #define macros.
16198 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
16199 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
16200 (enum dwarf_calling_convention): Likewise.
16201 (enum dwarf_line_number_x_ops): Likewise.
16202 (enum dwarf_call_frame_info): Likewise.
16203 (enum dwarf_source_language): Likewise.
16204 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
16205 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
16206 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
16207 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
16208 * genrecog.c (maybe_both_true_2): Change c to int.
16209 (write_switch): Likewise. Add cast to enum type.
16210 * gimplify.c (gimplify_omp_for): Handle return values from
16211 gimplify_expr using MIN rather than bitwise or.
16212 (gimplify_expr): Add cast to enum type.
16213 * ipa-prop.c (update_jump_functions_after_inlining): Change
16214 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
16215 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
16216 Add casts to enum type.
32e8bb8e
ILT
16217 (setup_cover_and_important_classes): Change cl to int. Add casts
16218 to enum type.
16219 (setup_class_translate): Change cl and mode to int.
16220 (ira_init_once): Change mode to int.
16221 (free_register_move_costs): Likewise.
16222 (setup_prohibited_mode_move_regs): Add casts to enum type.
16223 * langhooks.c (add_builtin_function_common): Rework assertion that
16224 value fits bitfield.
16225 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
16226 * omega.c (omega_do_elimination): Avoid math on enum types.
16227 * optabs.c (expand_vec_shift_expr): Remove casts to int.
16228 * opts.c (set_debug_level): Change 2 to enum constant. Use new
16229 int local to handle integral_argment value.
16230 * regmove.c (try_auto_increment): Change PUT_MODE to
16231 PUT_REG_NOTE_KIND.
16232 * reload.c (push_secondary_reload): Add casts to enum type.
16233 (secondary_reload_class, find_valid_class): Likewise.
16234 * reload1.c (emit_input_reload_insns): Likewise.
16235 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
16236 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
16237 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
16238 constant.
16239 * tree.c (build_common_builtin_nodes): Add casts to enum type.
16240 * tree-complex.c (complex_lattice_t): Typedef to int rather than
16241 enum type.
16242 (expand_complex_libcall): Add casts to enum type.
16243 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
16244 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
16245 with ERROR_MARK, not NUM_TREE_CODES.
16246 (vect_create_epilog_for_reduction): Likewise.
16247 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 16248 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
16249 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
16250 enum machine_mode.
16251 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
16252 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 16253 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
16254 * var-tracking.c (get_init_value): Change return type to enum
16255 var_init_status.
16256 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
16257 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
16258 arm_fp_model.
16259 (arm_override_options): Add casts to enum type.
16260 (arm_emit_tls_decoration): Likewise.
16261 * config/i386/i386.c (ix86_function_specific_restore): Add casts
16262 to enum type.
16263 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
16264 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
16265 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
16266 enum type.
16267 * config/s390/s390.c (code_for_builtin_64): Change to array of
16268 enum insn_code.
16269 (code_for_builtin_31): Likewise.
16270 (s390_expand_builtin): Change code_for_builtin to enum insn_code
16271 const *.
16272 * config/sparc/sparc.c (sparc_override_options): Change value
16273 field in struct code_model to enum cmodel. In initializer change
16274 0 to NULL and add cast to enum type.
16275
16276 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
16277 Change all callers. Issue a -Wc++-compat warning using
16278 lhs_origtype if necessary.
16279 (convert_for_assignment): Issue -Wc++-compat warnings about
16280 invalid conversions to enum type on assignment.
16281 * c-common.h (build_modify_expr): Update declaration.
16282
ac4fc08a
NC
162832009-04-24 Nick Clifton <nickc@redhat.com>
16284
16285 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
16286 (function_arg_advance): Likewise.
16287 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
16288 5th alternative.
16289
f22e891a
AK
162902009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
16291
16292 * config/s390/constraints.md ('I', 'J'): Fix condition.
16293
ad58aabe
DN
162942009-04-24 Diego Novillo <dnovillo@google.com>
16295
16296 * gengtype-parse.c (parse_error): Add newline after message.
16297
879a4a01
L
162982009-04-24 H.J. Lu <hongjiu.lu@intel.com>
16299
16300 * config/i386/sse.md (avxmodesuffixs): Removed.
16301 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
16302 (*avx_pinsr<ssevecsize>): This.
16303
f63426af
BS
163042009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
16305
16306 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
16307 follow chains of regs with a single definition, and allow expressions
16308 that are function_invariant_p.
ce72fe6c 16309 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 16310
30349c74
PB
163112009-04-24 Paolo Bonzini <bonzini@gnu.org>
16312
16313 PR middle-end/39867
16314 * fold-const.c (fold_cond_expr_with_comparison): When folding
16315 > and >= to MAX, make sure the MAX uses the same type as the
16316 comparison's operands.
16317
8d8256c1
NC
163182009-04-24 Nick Clifton <nickc@redhat.com>
16319
16320 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
16321 addressing for DImode accesses.
16322 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 16323 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 16324
6216f94e
JJ
163252009-04-24 Jakub Jelinek <jakub@redhat.com>
16326
16327 PR rtl-optimization/39794
16328 * alias.c (canon_true_dependence): Add x_addr argument.
16329 * rtl.h (canon_true_dependence): Adjust prototype.
16330 * cse.c (check_dependence): Adjust canon_true_dependence callers.
16331 * cselib.c (cselib_invalidate_mem): Likewise.
16332 * gcse.c (compute_transp): Likewise.
16333 * dse.c (scan_reads_nospill): Likewise.
16334 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
16335 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
16336 canon_base_addr of the group, plus optional offset.
16337 (struct group_info): Rename canon_base_mem to
16338 canon_base_addr.
16339 (get_group_info): Set canon_base_addr to canon_rtx of base, not
16340 canon_rtx of base_mem.
16341
6de7a512
PB
163422009-04-23 Paolo Bonzini <bonzini@gnu.org>
16343
16344 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
16345 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
16346
4a3a2376
UW
163472009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16348
16349 * config/spu/spu-builtins.h: Delete file.
16350
16351 * config/spu/spu.h (enum spu_builtin_type): Move here from
16352 spu-builtins.h.
16353 (struct spu_builtin_description): Likewise. Add GTY marker.
16354 Do not use enum spu_function_code or enum insn_code.
16355 (spu_builtins): Add extern declaration.
16356
16357 * config/spu/spu.c: Do not include "spu-builtins.h".
16358 (enum spu_function_code, enum spu_builtin_type_index,
16359 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
16360 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
16361 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
16362 unsigned_V2DI_type_node): Move here from spu-builtins.h.
16363 (spu_builtin_types): Make static. Add GTY marker.
16364 (spu_builtins): Add extern declaration with GTY marker.
16365 Include "gt-spu.h".
16366
16367 * config/spu/spu-c.c: Do not include "spu-builtins.h".
16368 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
16369 Check programmatically whether all parameters are scalar.
16370
16371 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
16372
bbaba73f
EB
163732009-04-23 Eric Botcazou <ebotcazou@adacore.com>
16374
16375 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
16376 assignment from the constructor either if the target is volatile.
16377
ee93c1c6
DJ
163782009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
16379
16380 * config/arm/arm.md (insv): Do not share operands[0].
16381
b2f21330
NS
163822009-04-23 Nathan Sidwell <nathan@codesourcery.com>
16383
16384 * config/vxlib-tls.c (active_tls_threads): Delete.
16385 (delete_hook_installed): New.
16386 (tls_delete_hook): Don't delete the delete hook.
16387 (tls_destructor): Delete it here.
16388 (__gthread_set_specific): Adjust installing the delete hook.
16389 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
16390 __gthread_leave_tsd_dtor_context.
16391
4782dfa7
RAE
163922009-04-23 Rafael Avila de Espindola <espindola@google.com>
16393
16394 * c-format.c (gcc_tdiag_char_table): Add support for %E.
16395
bf758008
UB
163962009-04-23 Uros Bizjak <ubizjak@gmail.com>
16397
16398 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
16399 enum type.
16400 (alpha_rtx_costs): Ditto.
16401 (emit_unlikely_jump): Use add_reg_note.
16402 (emit_frame_store_1): Ditto.
16403 (alpha_expand_prologue): Ditto.
16404 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
16405 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
16406
7323a100
NC
164072009-04-23 Nick Clifton <nickc@redhat.com>
16408
16409 * config/v850/v850.md (epilogue): Remove suppressed code.
16410 (return): Rename to return_simple and remove test of frame size.
16411 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
16412 to gen_return_simple.
16413
360032ba
JY
164142009-04-22 Jing Yu <jingyu@google.com>
16415
16416 PR testsuite/39781
16417 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
16418
53650abe
AP
164192009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
16420
16421 PR C/31499
16422 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
16423 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
16424 value is a VECTOR_CST, the element type is the element type of the
16425 vector.
16426
89043e8a
DD
164272009-04-22 DJ Delorie <dj@redhat.com>
16428
16429 * config/m32c/m32c.h: Update GTY annotations to new syntax.
16430
023f059b
JJ
164312009-04-22 Jakub Jelinek <jakub@redhat.com>
16432
16433 * alias.c (find_base_term): Move around LO_SUM case, so that
16434 CONST falls through into PLUS/MINUS handling.
16435
2c0eba5a
JJ
16436 PR c/39855
16437 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
16438 into 0, use omit_one_operand.
16439
9a461028
BE
164402009-04-23 Ben Elliston <bje@au.ibm.com>
16441
16442 * config/rs6000/linux-unwind.h (get_regs): Remove type
16443 puns. Change the type of `pc' to an array of unsigned ints and
16444 update all users. Constify frame24.
16445
653e2568
DD
164462009-04-22 DJ Delorie <dj@redhat.com>
16447
16448 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
16449 declarations before code.
16450 (current_function_special_page_vector): Likewise.
16451 (m32c_expand_insv): Silence a warning.
16452
60839f5d 164532009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
16454
16455 * alias.c: Update GTY annotations to new syntax.
16456 * basic-block.h: Likewise.
16457 * bitmap.h: Likewise.
16458 * c-common.h: Likewise.
16459 * c-decl.c: Likewise.
16460 * c-parser.c: Likewise.
16461 * c-pragma.c: Likewise.
16462 * c-tree.h: Likewise.
16463 * cfgloop.h: Likewise.
16464 * cgraph.h: Likewise.
16465 * config/alpha/alpha.c: Likewise.
16466 * config/arm/arm.h: Likewise.
16467 * config/avr/avr.h: Likewise.
16468 * config/bfin/bfin.c: Likewise.
16469 * config/cris/cris.c: Likewise.
16470 * config/darwin.c: Likewise.
16471 * config/frv/frv.c: Likewise.
16472 * config/i386/i386.c: Likewise.
16473 * config/i386/i386.h: Likewise.
16474 * config/i386/winnt.c: Likewise.
16475 * config/ia64/ia64.h: Likewise.
16476 * config/iq2000/iq2000.c: Likewise.
16477 * config/mips/mips.c: Likewise.
16478 * config/mmix/mmix.h: Likewise.
16479 * config/pa/pa.c: Likewise.
16480 * config/pa/pa.h: Likewise.
16481 * config/rs6000/rs6000.c: Likewise.
16482 * config/s390/s390.c: Likewise.
16483 * config/sparc/sparc.c: Likewise.
16484 * config/xtensa/xtensa.c: Likewise.
16485 * cselib.h: Likewise.
16486 * dbxout.c: Likewise.
16487 * dwarf2out.c: Likewise.
16488 * except.c: Likewise.
16489 * except.h: Likewise.
16490 * fixed-value.h: Likewise.
16491 * function.c: Likewise.
16492 * function.h: Likewise.
16493 * gimple.h: Likewise.
16494 * integrate.c: Likewise.
16495 * optabs.c: Likewise.
16496 * output.h: Likewise.
16497 * real.h: Likewise.
16498 * rtl.h: Likewise.
16499 * stringpool.c: Likewise.
16500 * tree-data-ref.c: Likewise.
16501 * tree-flow.h: Likewise.
16502 * tree-scalar-evolution.c: Likewise.
16503 * tree-ssa-address.c: Likewise.
16504 * tree-ssa-alias.h: Likewise.
16505 * tree-ssa-operands.h: Likewise.
16506 * tree.c: Likewise.
16507 * tree.h: Likewise.
16508 * varasm.c: Likewise.
16509 * varray.h: Likewise.
16510 * vec.h: Likewise.
bf758008 16511 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
16512 * doc/gty.texi: Update GTY documentation to new syntax.
16513 * gengtype-lex.l: Enforce attribute-like syntax for GTY
16514 annotations on structs.
16515 * gengtype-parse.c: Likewise.
16516
a123d175
MH
165172009-04-22 Mark Heffernan <meheff@google.com>
16518
bf758008 16519 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 16520
4c7c486a
KH
165212009-04-22 Kazu Hirata <kazu@codesourcery.com>
16522
16523 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
16524 where appropriate.
16525
6e782a29
KH
165262009-04-22 Kazu Hirata <kazu@codesourcery.com>
16527
16528 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
16529 the same as a PLUS without a shift. Increase the cost of a
16530 CONST_INT in MULT.
16531
38d2336a
MLI
165322009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16533
16534 * Makefile.in: Update dependencies.
bf758008 16535 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
16536 * errors.h: Remove bogus comment about compatibility.
16537 (warning): Update declaration.
16538 * genautomata.c: Update all calls to warning.
16539 * gimple.c: Do not include errors.h. Include toplev.h.
16540 * tree-ssa-structalias.c: Do not include errors.h.
16541 * omega.c: Likewise.
16542 * tree-ssa-reassoc.c: Likewise.
16543 * config/spu/spu-c.c: Likewise.
16544 * config/spu/t-spu-elf: Update dependencies.
16545
aea4deba
RG
165462009-04-22 Richard Guenther <rguenther@suse.de>
16547
16548 PR tree-optimization/39824
16549 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
16550 make sure the types are compatible.
16551
cfc93532
MLI
165522009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16553
16554 PR c++/14875
16555 * c-common.c (c_parse_error): Take a token_flags parameter.
16556 Use token_type for the token type instead.
16557 Pass token_flags to cpp_type2name.
16558 * c-common.h (c_parse_error): Update declaration.
16559 * c-parser.c (c_parser_error): Pass 0 as token flags.
16560
8632d02a
AB
165612009-04-22 Andrey Belevantsev <abel@ispras.ru>
16562
16563 PR rtl-optimization/39580
f100a4a8
UB
16564 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
16565
4c33221c
UW
165662009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16567
16568 * function.c (expand_function_end): Do not emit a jump to the "naked"
16569 return label for fall-through returns.
16570 * except.c (sjlj_emit_function_exit): Always place the call to the
16571 unregister function at the location installed by expand_function_end.
16572
9925bce0
RG
165732009-04-22 Richard Guenther <rguenther@suse.de>
16574
16575 PR tree-optimization/39845
16576 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
16577 (gen_inbound_check): Likewise.
16578
24a40b35
NS
165792009-04-22 Nathan Sidwell <nathan@codesourcery.com>
16580
16581 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
16582 padding for PPC.
16583 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
16584 * config/vxlib.c (__gthread_once): Add race guard for PPC.
16585
6c34a092
PB
165862009-04-22 Paolo Bonzini <bonzini@gnu.org>
16587
16588 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
16589 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
16590 shift counts to avoid out-of-bounds array accesses.
16591
baa48dfa
PB
165922009-04-22 Paolo Bonzini <bonzini@gnu.org>
16593
16594 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
16595 (Pmode): Move above.
16596
7d83f4f5
UB
165972009-04-22 Uros Bizjak <ubizjak@gmail.com>
16598
16599 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
16600 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
16601 GET_CODE macro. Use IN_RANGE macro where appropriate.
16602 * config/alpha/alpha.h: Ditto.
16603 * config/alpha/alpha.md: Ditto.
16604 * config/alpha/constraints.md: Ditto.
16605 * config/alpha/predicates.md: Ditto.
f100a4a8 16606
3ad606bc
PB
166072009-04-22 Paolo Bonzini <bonzini@gnu.org>
16608
16609 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
16610 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16611 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16612 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16613 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16614 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16615 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16616 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16617 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16618 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16619 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16620 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16621 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16622 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16623 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16624 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16625 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16626 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16627 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16628 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16629 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16630 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16631 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16632 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16633 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16634 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16635 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
16636
3cabd6d1
LB
166372009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16638
16639 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
16640 references from comments.
16641 * cfgbuild.c: (count_basic_blocks): Delete.
16642 (find_basic_blocks_1): Delete.
16643 (find_basic_blocks): Delete.
16644 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 16645 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
16646 * except.h (finish_eh_generation): Delete.
16647 * basic-block.h (find_basic_blocks): Delete.
16648 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
16649
270d1bcd
DK
166502009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
16651
16652 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
16653 (sdbout_parms): Likewise.
16654
b757d36f
KK
166552009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
16656
16657 * config/sh/sh.c (prepare_cbranch_operands): Use
16658 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
16659 (expand_cbranchdi4): Likewise.
16660 (from_compare): Add cast to enum type.
16661 (expand_cbranchsi4): Use add_reg_note.
16662 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
16663 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
16664 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
16665 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
16666 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
16667 instead of CODE_FOR_nothing.
16668 (cbranchdi4): Likewise. Fix the order of arguments for
16669 gen_rtx_fmt_ee.
16670 (push_fpscr): Use add_reg_note.
16671 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
16672 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
f100a4a8 16673
ad41bd84
JM
166742009-04-21 Joseph Myers <joseph@codesourcery.com>
16675
16676 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
16677 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
16678 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
16679 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
16680 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
16681 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
16682 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
16683 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
16684 config/alpha/x-vms, config/arc/t-arc,
16685 config/arm/README-interworking, config/arm/arm-c.c,
16686 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
16687 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
16688 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
16689 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
16690 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
16691 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
16692 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
16693 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
16694 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
16695 config/cris/t-elfmulti, config/crx/t-crx,
16696 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
16697 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
16698 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
16699 config/h8300/t-h8300, config/i386/athlon.md,
16700 config/i386/darwin-libgcc.10.4.ver,
16701 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
16702 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
16703 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
16704 config/i386/t-linux64, config/i386/t-nwld,
16705 config/i386/t-rtems-i386, config/i386/t-sol2-10,
16706 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
16707 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
16708 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
16709 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
16710 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
16711 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
16712 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
16713 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
16714 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
16715 config/m68k/t-uclinux, config/mcore/t-mcore,
16716 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
16717 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
16718 config/mips/crtn.asm, config/mips/irix-crti.asm,
16719 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
16720 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
16721 config/mips/mips-fixed.md, config/mips/sb1.md,
16722 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
16723 config/mips/t-iris6, config/mips/t-isa3264,
16724 config/mips/t-libgcc-mips16, config/mips/t-linux64,
16725 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
16726 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
16727 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
16728 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
16729 config/mn10300/t-linux, config/mn10300/t-mn10300,
16730 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
16731 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
16732 config/picochip/libgccExtras/clzsi2.asm,
16733 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
16734 config/rs6000/darwin-libgcc.10.4.ver,
16735 config/rs6000/darwin-libgcc.10.5.ver,
16736 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
16737 config/rs6000/t-aix43, config/rs6000/t-aix52,
16738 config/rs6000/t-darwin, config/rs6000/t-fprules,
16739 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
16740 config/rs6000/t-lynx, config/rs6000/t-netbsd,
16741 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
16742 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
16743 config/rs6000/t-rtems, config/rs6000/t-spe,
16744 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
16745 config/score/t-score-elf, config/sh/divcost-analysis,
16746 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
16747 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
16748 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
16749 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
16750 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
16751 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
16752 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
16753 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
16754 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
16755 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
16756 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
16757 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
16758 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
16759 limitx.h, version.c, xcoff.h: Add copyright and license notices.
16760 * config/h8300/genmova.sh: Include copyright and license notices
16761 in generated output.
16762 * config/h8300/mova.md: Regenerate.
16763 * doc/install.texi2html: Include word "Copyright" in copyright
16764 notice and use name "Free Software Foundation, Inc.".
16765 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
16766 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
16767 ChangeLog-2007, ChangeLog-2008: Correct dates.
16768
ca80e52b
EB
167692009-04-21 Eric Botcazou <ebotcazou@adacore.com>
16770
16771 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
16772 NE_EXPR operations as well.
16773 * c-parser.c (c_parser_condition): Do not set location information on
16774 the condition.
16775 (c_parser_conditional_expression): Likewise.
16776 (c_parser_binary_expression): Set location information on operators.
16777 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
16778 TRUTH_NOT_EXPR has been folded.
16779 * fold-const.c (fold_truth_not_expr): Copy location information from
16780 the incoming expression to the outgoing one.
16781 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
16782 recursive calls on the LHS of the operator but pass that of the
16783 operator to recursive calls on the RHS of the operator. Set it
16784 on the COND_EXPR.
16785 (shortcut_cond_expr): Set the locus of the operator on the second
16786 COND_EXPR and that of the expression on the first in degenerate cases.
16787 Pass the locus of the expression to calls to shortcut_cond_r.
16788 Set the locus of the 'then' block on the associated jump, if any.
16789 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
16790 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
16791 expression to call to gimplify_boolean_expr.
16792
35091630
KT
167932009-04-21 Kai Tietz <kai.tietz@onevision.com>
16794
16795 * config.gcc: Add additional configuration for
16796 i686-w64-mingw* and x86_64-w64-mingw* triplet.
16797 * config/i386/mingw-w64.h: New mingw-w64 specific header.
16798 (CPP_SPEC): Redefine for allowing -municode option.
16799 (STARTFILE_SPEC): Likewise.
16800 * config/i386/t-mingw-w64: New.
16801 * config/i386/mingw-w64.opt: New.
16802 (municode): Add new target option.
16803 * doc/invoke.texi (municode): Add documentation for new option.
16804
0267afc4
ILT
168052009-04-21 Ian Lance Taylor <iant@google.com>
16806
16807 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16808 Correct test for number of arguments.
16809 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
16810
2ba9daa7
AS
168112009-04-21 Andreas Schwab <schwab@linux-m68k.org>
16812
16813 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
16814 argument of emit_library_call.
16815
ad8a1ac0
RG
168162009-04-21 Richard Guenther <rguenther@suse.de>
16817
16818 PR middle-end/39829
16819 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
16820 inside VIEW_CONVERT_EXPRs.
16821
7156c8ab
MJ
168222009-04-21 Martin Jambor <mjambor@suse.cz>
16823
16824 * tree-switch-conversion.c (build_constructors): Split a long line.
16825 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
16826 (build_one_array): Create assigns of constants if possible, do not
16827 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
16828 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
16829 make_rename_temp. Do not call mark_symbols_for_renaming, call
16830 update_stmt.
16831 (gen_def_assigns): Do not call mark_symbols_for_renaming or
16832 find_new_referenced_vars, call update_stmt.
16833 (gen_inbound_check): Use create_tmp_var and create ssa names manually
16834 instead of calling make_rename_temp. Do not call
16835 find_new_referenced_vars or mark_symbols_for_renaming, call
16836 update_stmt.
16837
2970ccb3
RG
168382009-04-21 Richard Guenther <rguenther@suse.de>
16839
16840 PR tree-optimization/39827
7d83f4f5 16841 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
16842 (tree_ssa_phiprop): Pass the correct array size.
16843
47f402d1
UB
168442009-04-21 Uros Bizjak <ubizjak@gmail.com>
16845
16846 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
16847
1e4ae551
MLI
168482009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
16849
16850 PR 16202
16851 * c-typeck.c (lvalue_p): Move declaration ...
16852 * c-common.h (lvalue_p): ... to here.
16853 * c-common.c (candidate_equal_p): New.
16854 (add_tlist): Use it.
16855 (merge_tlist): Use it.
16856 (warn_for_collisions_1): Likewise.
16857 (warning_candidate_p): Accept more candidates.
16858 (verify_tree): A warning candidate can be an expression. Use
16859 candidate_equal_p.
16860
244609a6
BE
168612009-04-21 Ben Elliston <bje@au.ibm.com>
16862
16863 PR target/5267
16864 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
16865 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
16866 options. Remove -mcall-solaris documentation.
16867
9c650d90
MLI
168682009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16869
16870 PR c++/13358
16871 * doc/invoke.texi (-Wlong-long): Update description.
16872 * c-lex (interpret_integer): Only warn if there was no previous
16873 overflow and -Wlong-long is enabled.
16874 * c-decl.c (declspecs_add_type): Drop redundant flags.
16875 * c.opt (Wlong-long): Init to -1.
16876 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
16877 and front-end warn_long_long. Wlong-long only depends on other
16878 flags if it is uninitialized.
16879 * c-parser.c (disable_extension_diagnostics): warn_long_long is
16880 the same for CPP and FE.
16881 (restore_extension_diagnostics): Likewise.
16882
bbbbb16a
ILT
168832009-04-20 Ian Lance Taylor <iant@google.com>
16884
16885 Fix enum conversions which are invalid in C++:
47f402d1
UB
16886 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
16887 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
16888 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
16889 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 16890 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 16891 (dbxout_parms): Likewise.
47f402d1 16892 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
16893 (df_clear_flags): Likewise.
16894 * df-problems.c (df_rd_bb_local_compute_process_def): Change
16895 top_flag parameter to int.
16896 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
16897 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
16898 Remove cast.
bbbbb16a
ILT
16899 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
16900 (df_ref_create_structure, df_def_record_1): Likewise.
16901 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
16902 (df_notes_rescan): Change 0 to VOIDmode in function call.
16903 (df_get_call_refs, df_insn_refs_collect): Likewise.
16904 (df_bb_regs_collect): Likewise.
16905 (df_entry_block_defs_collect): Likewise.
16906 (df_exit_block_uses_collect): Likewise.
16907 * df.h: Update declarations.
16908 * double-int.c (double_int_divmod): Add cast to enum type.
16909 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
16910 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
16911 (based_loc_descr): Likewise.
16912 (loc_descriptor_from_tree_1): Change first_op and second_op to
16913 enum dwarf_location_atom. Add cast to enum type.
16914 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 16915 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
16916 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
16917 (do_store_flag): Likewise.
16918 * fixed-value.h (struct fixed_value): Change mode to enum
16919 machine_mode.
47f402d1 16920 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
16921 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
16922 function call.
16923 (insert_insn_decl, insert_decl, insert_state): Likewise.
16924 (automata_list_finish): Likewise.
16925 * genrecog.c (process_define_predicate): Add cast to enum type.
16926 * gensupport.c (init_predicate_table): Add cast to enum type.
16927 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
16928 function call.
16929 (gimple_build_call_1, gimple_build_label): Likewise.
16930 (gimple_build_goto, gimple_build_asm_1): Likewise.
16931 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 16932 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
16933 (enum fallback): Rename from enum fallback_t.
16934 (fallback_t): Typedef as int.
16935 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
16936 GSI_SAME_STMT in function call.
16937 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
16938 enum type.
16939 (setup_reg_class_relations): Likewise.
47f402d1 16940 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
16941 (setup_prohibited_class_mode_regs): Add cast to enum type.
16942 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 16943 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
16944 (record_address_regs): Change i to enum reg_class.
16945 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
16946 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
16947 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
16948 (GET_MODE_2XWIDER_MODE): Likewise.
16949 (GET_CLASS_NARROWEST_MODE): Likewise.
16950 * omp-low.c (expand_omp_for): Add cast to enum type.
16951 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
16952 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
16953 * postreload.c (reload_cse_simplify_operands): Change rclass local
16954 to enum reg_class.
16955 * predict.c (combine_predictions_for_insn): Change best_predictor
16956 and predictor to enum br_predictor.
16957 (combine_predictions_for_bb): Likewise.
16958 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
16959 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 16960 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
16961 * reginfo.c (init_move_cost): Add casts to enum type.
16962 (init_reg_sets_1, init_fake_stack_mems): Likewise.
16963 * regmove.c (regclass_compatible_p): Change class0 and class1 to
16964 enum reg_class.
16965 * reload.c (find_valid_class): Add casts to enum type.
16966 (push_reload): Change 0 to NO_REGS in function call.
16967 (find_reloads): Change this_alternative to array of enum
16968 reg_class. Remove some now-unnecessary casts.
16969 (make_memloc): Change 0 to VOIDmode in function call.
16970 * reload1.c (reload): Change 0 to VOIDmode in function call.
16971 (eliminate_regs_1, elimination_effects): Likewise.
16972 (eliminate_regs_in_insn): Likewise.
16973 (emit_input_reload_insns): Add cast to enum type.
16974 (delete_output_reload): Change 0 to VOIDmode in function call.
16975 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
16976 to enum type in function call.
16977 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
16978 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 16979 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
16980 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
16981 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
16982 (dump_function): Likewise.
16983 * tree-dump.h: Update declarations.
16984 * tree-pass.h: Update declarations.
16985 * varasm.c (assemble_integer): Change mclass to enum mode_class.
16986 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
16987 enum type.
16988 (arm_rtx_costs_1): Correct parenthesization.
16989 (arm_rtx_costs): Add casts to enum type.
16990 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
16991 (vfp_emit_fstmd): Use add_rg_note.
16992 (emit_multi_reg_push, emit_sfm): Likewise.
16993 (thumb_set_frame_pointer): Likewise.
16994 (arm_expand_prologue): Likewise.
16995 (arm_regno_class): Change return type to enum reg_class.
16996 (thumb1_expand_prologue): Use add_reg_note.
16997 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
16998 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
16999 in function call.
17000 * config/arm/gentune.sh: Add cast to enum type.
17001 * config/arm/arm-tune.md: Rebuild.
17002 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
17003 (ix86_split_fp_branch, predict_jump): Likewise.
17004 (ix86_expand_multi_arg_builtin): Change sub_code from enum
17005 insn_code to enum rtx_code.
17006 (ix86_builtin_vectorized_function): Add cast to enum type.
17007 * config/i386/i386.md (truncdfsf2): Change slot to enum
17008 ix86_stack_slot.
17009 (truncxf<mode>2, isinf<mode>2): Likewise.
17010 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
17011 enum type.
17012 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
17013 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
17014 (insert_bundle_state): Change 1 to INSERT in function call.
17015 (ia64_add_bundle_selector_before): Likewise.
17016 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
17017 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
17018 (restore_stack_nonlocal): Likewise.
17019 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
17020 function call.
17021 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
17022 function call.
17023 (mips_rtx_costs): Likewise.
17024 (mips_override_options): Add casts to enum type.
17025 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
17026 in function call.
17027 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
17028 (store_reg, set_reg_plus_d): Likewise.
17029 (hppa_expand_prologue, hppa_profile_hook): Likewise.
17030 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
17031 cast to enum type.
17032 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
17033 function call.
17034 (emit_unlikely_jump): Use add_reg_note.
17035 (rs6000_emit_allocate_stack): Likewise.
17036 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
17037 (output_toc): Change 1 to INSERT in function call.
17038 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
17039 (rs6000_initialize_trampoline): Likewise.
17040 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
17041 function call.
17042 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
17043 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
17044 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
17045 (save_gprs): Use add_reg_note.
17046 (s390_emit_prologue): Likewise.
47f402d1 17047 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
17048 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
17049 (sparc_fold_builtin): Add cast to enum type.
17050 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
17051 enum insn_code.
17052 (spu_expand_prologue): Use add_reg_note.
47f402d1 17053 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
17054
170552009-04-20 Ian Lance Taylor <iant@google.com>
17056
17057 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
17058 (c_parser_postfix_expression_after_primary): Get VEC for list of
17059 arguments. Get original types of arguments. Call
17060 build_function_call_vec.
17061 (cached_expr_list_1, cached_expr_list_2): New static variables.
17062 (c_parser_expr_list): Change return type to VEC *. Add
17063 p_orig_types parameter. Change all callers.
17064 (c_parser_release_expr): New static function.
17065 (c_parser_vec_to_tree_list): New static function.
17066 * c-typeck.c (build_function_call): Rewrite to build a VEC and
17067 call build_function_call_vec.
17068 (build_function_call_vec): New function, based on old
17069 build_function_call.
17070 (convert_arguments): Remove nargs and argarray parameters. Change
17071 values to a VEC. Add origtypes parameter.
47f402d1 17072 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
17073 (convert_for_assignment): Add origtype parameter. Change all
17074 callers. If warn_cxx_compat, check for conversion to an enum
17075 type when calling a function.
17076 (store_init_value): Add origtype parameter. Change all callers.
17077 (digest_init): Likewise.
17078 (struct init_node): Add origtype field.
17079 (add_pending_init): Add origtype parameter. Change all callers.
17080 (output_init_element): Likewise.
17081 (output_pending_init_elements): Pass origtype from init_node to
17082 output_init_element.
f28a61ab 17083 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
17084 output_init_element.
17085 (c_finish_return): Add origtype parameter. Change all callers.
17086 * c-common.c (sync_resolve_size): Change params to VEC *. Change
17087 caller.
17088 (sync_resolve_params): Likewise.
47f402d1 17089 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 17090 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 17091 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
17092 * c-decl.c (finish_decl): Add origtype parameter. Change all
17093 callers. Call build_function_call_vec rather than
17094 build_function_call for cleanup.
17095 * c-tree.h: Update declarations.
17096 * c-common.h: Update declarations.
17097 * stub-objc.c (objc_rewrite_function_call): Change parameter from
17098 params to first_param.
17099 * target.h (struct gcc_target): Change resolve_overloaded_builtin
17100 params parameter from tree to void *.
17101 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17102 Change arglist parameter to have type void *, and to be a pointer
17103 to a VEC.
17104 * config/rs6000/rs6000-protos.h
17105 (altivec_resolve_overloaded_builtin): Update declaration.
17106 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
17107 fnargs parameter to have type void *, and to be a pointer to a
17108 VEC. Call build_function_call_vec instead of
17109 build_function_call.
47f402d1 17110 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 17111
6ff078d4 171122009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 17113 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
17114 H.J. Lu <hongjiu.lu@intel.com>
17115
17116 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
17117
17118 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
17119 (IX86_LEA_PRIORITY): Likewise.
17120 (distance_non_agu_define): New function.
17121 (distance_agu_use): Likewise.
17122 (ix86_lea_for_add_ok): Likewise.
17123 (ix86_dep_by_shift_count): Likewise.
17124
17125 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
17126 should split for LEA.
17127
17128 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
17129 function.
17130 (ix86_dep_by_shift_count): Likewise.
17131
87a5b4cc
RG
171322009-04-20 Richard Guenther <rguenther@suse.de>
17133
17134 * expr.c (handled_component_p): Move ...
17135 * tree.h (handled_component_p): ... here.
17136 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
17137 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
17138 and REALPART_EXPR to be in one group.
17139
438c239d
RG
171402009-04-20 Richard Guenther <rguenther@suse.de>
17141
17142 * basic-block.h (get_all_dominated_blocks): Declare.
17143 * dominance.c (get_all_dominated_blocks): New function.
17144 * tree-cfg.c (get_all_dominated_blocks): Remove.
17145 (remove_edge_and_dominated_blocks): Adjust.
17146 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
17147 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
17148 instead of recursing.
17149
fed5ae11
DK
171502009-04-20 Doug Kwan <dougkwan@google.com>
17151
17152 * cgraph.h (cgraph_node_ptr): New type for vector functions.
17153 (struct cgraph_node_set_def): New type.
17154 (cgraph_node_set) New type. Also declare vector functions.
17155 (struct cgraph_node_set_element_def): New type.
17156 (cgraph_node_set_element): Ditto.
17157 (cgraph_node_set_iterator): New iterator type.
17158 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
17159 cgraph_node_set_remove, dump_cgraph_node_set,
17160 debug_cgraph_node_set): New prototypes.
17161 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
17162 cgraph_node_set_size): New inlines.
17163 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
17164 including cgraph.h.
17165 (struct ipa_opt_pass): Add struct cgraph_node_set_def
17166 argument to function 'write_summary'.
17167 * ipa.c: Include ggc.h.
17168 (hash_cgraph_node_set_element,
17169 eq_cgraph_node_set_element, cgraph_node_set_new,
17170 cgraph_node_set_add, cgraph_node_set_remove,
17171 cgraph_node_set_find, dump_cgraph_node_set,
17172 debug_cgraph_node_set): New functions.
17173 * Makefile.in (ipa.o): Add dependency on GGC_H.
17174
c4551b28
IR
171752009-04-20 Ira Rosen <irar@il.ibm.com>
17176
17177 PR tree-optimization/39675
2ba9daa7 17178 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
17179 check of the return code of vect_schedule_slp. Check that
17180 stmt_vec_info still exists for the statement, before checking its
17181 vectorization type.
c4551b28 17182
21a495fb
MM
171832009-04-20 Michael Matz <matz@suse.de>
17184
17185 * Makefile.in (generated_files): Take out $(simple_generated_c).
17186
8e208874
DK
171872009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
17188
17189 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
17190 (UINTPTR_TYPE): Likewise.
17191
a45e580b
JM
171922009-04-19 Joseph Myers <joseph@codesourcery.com>
17193
17194 PR c/37481
17195 * c-typeck.c (digest_init): Check for initializing an array with a
17196 string literal.
17197
20845d35
JM
171982009-04-19 Joseph Myers <joseph@codesourcery.com>
17199
17200 PR c/19771
17201 * c-semantics.c (pop_stmt_list): Propagate
17202 STATEMENT_LIST_HAS_LABEL to parent statement list.
17203
28143fdd
AN
172042009-04-19 Adam Nemet <anemet@caviumnetworks.com>
17205
17206 * config/mips/mips.h (mips_tune_attr): New macro.
17207 * config/mips/mips.md (cpu): Use it.
17208
da377db9
JM
172092009-04-19 Joseph Myers <joseph@codesourcery.com>
17210
17211 PR c/38243
17212 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
17213 declaring a tag.
17214
3baf459d
DN
172152009-04-19 Diego Novillo <dnovillo@google.com>
17216
17217 * toplev.c (compile_file): Move call to coverage_finish ...
17218 * cgraphunit.c (ipa_passes): ... here.
17219 Call cgraph_process_new_functions.
17220 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
17221 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
17222
b6fa5b01
JH
172232009-04-19 Jan Hubicka <jh@suse.cz>
17224
47f402d1
UB
17225 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
17226 cfun.
b6fa5b01
JH
17227 (dump_cgraph_node): Dump can throw external flag.
17228 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
17229
ca409efd
MLI
172302009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
17231
17232 PR c/32061
17233 PR c++/36954
17234 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
17235 * common.opt (Wlogical-op): Move from here...
17236 * c.opt (Wlogical-op): ... to here.
17237 * c-typeck.c (parser_build_binary_op): Update call to
17238 warn_logical_operator.
17239 * c-opts.c (c_common_post_options): Enable warn_logical_op with
17240 extra_warnings.
17241 * c-common.c (warn_logical_op): Update.
17242 * c-common.h (warn_logical_op): Update declaration.
17243
9db4cdd3
EB
172442009-04-19 Eric Botcazou <ebotcazou@adacore.com>
17245
17246 * tree.c (protected_set_expr_location): Fix formatting.
17247
f37acdf9
JM
172482009-04-18 Joseph Myers <joseph@codesourcery.com>
17249
17250 PR c/27676
17251 * c-typeck.c (readonly_warning): new.
17252 (build_unary_op, build_modify_expr): Use readonly_warning for
17253 storing into something readonly but not const-qualified.
17254
2b4b7036
JM
172552009-04-18 Joseph Myers <joseph@codesourcery.com>
17256
17257 PR c/22367
17258 * c-typeck.c (build_unary_op): Check for taking address of
17259 expression of type void.
17260
3ce62965
JM
172612009-04-18 Joseph Myers <joseph@codesourcery.com>
17262
17263 PR c/35210
17264 * c-typeck.c (build_function_call): Check for calling a function
17265 with qualified void return types. Call require_complete_type when
17266 generating a trap.
17267
2505c5ed
JH
172682009-04-18 Jan Hubicka <jh@suse.cz>
17269
17270 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
17271 Set nothrow flag.
17272 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
17273 can_throw_external flag.
17274 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
17275 * ipa-pure-const.c (ignore_edge): New function.
17276 (propagate): Compute order for NOTHROW computation; set NOTHROWs
17277 only over can_throw_external edges.
17278 (local_pure_const): Add nothrow flag.
17279 * ipa-utils.c (searchc): Add ignore_edge callback.
17280 (ipa_utils_reduced_inorder): Add ignore_edge callback.
17281 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
17282 (set_nothrow_function_flags): Update cgraph.
17283 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
17284
2586ba4b
RG
172852009-04-18 Richard Guenther <rguenther@suse.de>
17286
17287 PR middle-end/39804
17288 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
17289 (fold_stmt): ... this and ...
17290 (fold_stmt_inplace): ... this.
17291 (fold_stmt_1): Fold references in calls and asms.
17292 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
17293
1eefab17
KH
172942009-04-18 Kazu Hirata <kazu@codesourcery.com>
17295
17296 * tree-vrp.c (ssa_name_nonzero_p): Remove.
17297 * tree.h: Remove the prototype for ssa_name_nonzero_p.
17298
aa424b01
KH
172992009-04-18 Kazu Hirata <kazu@codesourcery.com>
17300
17301 * tree.c (function_args_count): Remove.
17302 * tree.h: Remove the prototype for function_args_count.
17303
613a896b
KH
173042009-04-18 Kazu Hirata <kazu@codesourcery.com>
17305
17306 * tree-iterator.c (expr_only): Remove.
17307 * tree.h: Remove the prototype for expr_only.
17308
579e694c
KH
173092009-04-18 Kazu Hirata <kazu@codesourcery.com>
17310
17311 * reginfo.c (cannot_change_mode_set_regs): Remove.
17312 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
17313
ee7e3ad3
AS
173142009-04-08 Anatoly Sokolov <aesok@post.ru>
17315
17316 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
17317 whether operands 0 and 1 overlaps.
17318
92ef7fb1
MLI
173192009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
17320
17321 PR middle-end/36902
17322 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
17323 pointer. Use warning_at instead of warning.
17324 (search_for_addr_array): Likewise.
17325 (check_array_bounds): Likewise.
17326 (check_all_array_refs): Check that the incoming edge is not in the
17327 list of edges to be removed.
17328 (check_all_array_refs): Avoid the temporal pointer.
17329 (vrp_visit_cond_stmt): Fix typo.
17330 (simplify_switch_using_ranges): Handle the case where the switch
17331 index is an integer constant.
17332
0e097268
AN
173332009-04-18 Adam Nemet <anemet@caviumnetworks.com>
17334
17335 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
17336
c782f1dd
KH
173372009-04-18 Kazu Hirata <kazu@codesourcery.com>
17338
17339 * doc/extend.texi, doc/invoke.texi: Fix typos.
17340
668fb0e8
CC
173412009-04-17 Cary Coutant <ccoutant@google.com>
17342
17343 * tree-flow-inline.h (get_lineno): Fix inverted test.
17344
4d4014c1
DN
173452009-04-17 Diego Novillo <dnovillo@google.com>
17346
17347 * tree-ssa-pre.c (create_expression_by_pieces): Remove
17348 assertion for AVAIL_OUT.
17349
2984e1b6
MF
173502009-04-17 Mike Frysinger <vapier@gentoo.org>
17351
17352 PR target/38627
17353 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
17354 * config/sh/linux-atomic.asm: Likewise.
17355
9994a182
DN
173562009-04-17 Diego Novillo <dnovillo@google.com>
17357
17358 * except.c (debug_eh_tree): New.
17359 (struct eh_region, struct eh_status): Move ...
17360 * except.h: ... here.
17361 (add_type_for_runtime): Declare extern.
17362 (lookup_type_for_runtime): Likewise.
17363 (debug_eh_tree): Declare.
17364 * Makefile.in (GTFILES): List except.h before except.c
17365
07485407
DN
173662009-04-17 Diego Novillo <dnovillo@google.com>
17367
47f402d1 17368 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
17369 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
17370 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
17371 (find_vars_r): ... here.
17372 * tree-flow.h (find_referenced_vars_in): Declare.
17373 * tree-ssa-pre.c (create_expression_by_pieces): Assert
17374 that AVAIL_OUT exists for BLOCK.
17375 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
17376 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
17377 (tree-parloops.o): Likewise.
17378
4e53d196
SB
173792009-04-17 Simon Baldwin <simonb@google.com>
17380
17381 * toplev.c (default_tree_printer): Add handling for %E format.
17382
413d3aa8
DN
173832009-04-17 Diego Novillo <dnovillo@google.com>
17384
47f402d1
UB
17385 * tree-pretty-print.c (dump_generic_node): Add break after
17386 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
17387 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
17388 FUNCTION_TYPE together. Call print_struct_decl when printing
17389 structures and TDF_SLIM is not given.
413d3aa8
DN
17390 (print_struct_decl): Fix logic for detecting recursion.
17391
5a691e98
RAE
173922009-04-17 Rafael Avila de Espindola <espindola@google.com>
17393
17394 PR 31567
17395 * gcc.c (create_at_file): New.
17396 (compile_input_file_p): New.
17397 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
17398 * main.c (main): Update call to toplev_main.
17399 * toplev.c (toplev_main): Change signature. Call expandargv.
17400 * toplev.h (toplev_main): Change signature.
17401
9eacf7a6
EB
174022009-04-17 Eric Botcazou <ebotcazou@adacore.com>
17403
17404 * dwarf2out.c (field_byte_offset): Use the type size as the field size
17405 if the latter is not constant.
17406
58298177
DE
174072009-04-17 David Edelsohn <edelsohn@gnu.org>
17408
17409 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
17410
5b4c43d7
EB
174112009-04-17 Eric Botcazou <ebotcazou@adacore.com>
17412
17413 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
17414 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
17415
b51605c4
RG
174162009-04-17 Richard Guenther <rguenther@suse.de>
17417
17418 * tree-ssa-structalias.c (get_constraint_for_component_ref):
17419 Handle component references view-converting an invariant address.
17420
9e3be889
AN
174212009-04-17 Adam Nemet <anemet@caviumnetworks.com>
17422
17423 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
17424 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
17425 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
17426 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
17427 Use @deftypevr rather than @deftypevar.
17428
7c3e9dc3
RG
174292009-04-17 Richard Guenther <rguenther@suse.de>
17430
47f402d1 17431 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
17432 (get_prop_source_stmt): Likewise.
17433 (can_propagate_from): Likewise.
17434
aca600aa
AS
174352009-04-17 Andrew Stubbs <ams@codesourcery.com>
17436
17437 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
17438 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
17439 (--with-multilib-list): Add default value.
17440 * configure: Regenerate.
17441 * Makefile.in (TM_ENDIAN_CONFIG): Define.
17442 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
17443 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
17444 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
17445 Don't add default cpu to multilib list unnecessarily, but do enable
17446 the relevant compiler option..
17447 Add support for --with-multilib-list=<blank> and
17448 --with-multilib-list=!<somelib> to supress unwanted multilibs.
17449 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
17450 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
17451 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
17452 TM_MULTILIB_CONFIG.
17453 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
17454 (MULTILIB_OSDIRNAMES): New variable.
17455 * config/sh/t-1e: Delete file.
17456 * config/sh/t-mlib-sh1: Delete file.
17457 * config/sh/t-mlib-sh2: Delete file.
17458 * config/sh/t-mlib-sh2a: Delete file.
17459 * config/sh/t-mlib-sh2a-nofpu: Delete file.
17460 * config/sh/t-mlib-sh2a-single: Delete file.
17461 * config/sh/t-mlib-sh2a-single-only: Delete file.
17462 * config/sh/t-mlib-sh2e: Delete file.
17463 * config/sh/t-mlib-sh3e: Delete file.
17464 * config/sh/t-mlib-sh4: Delete file.
17465 * config/sh/t-mlib-sh4-nofpu: Delete file.
17466 * config/sh/t-mlib-sh4-single: Delete file.
17467 * config/sh/t-mlib-sh4-single-only: Delete file.
17468 * config/sh/t-mlib-sh4a: Delete file.
17469 * config/sh/t-mlib-sh4a-nofpu: Delete file.
17470 * config/sh/t-mlib-sh4a-single: Delete file.
17471 * config/sh/t-mlib-sh4a-single-only: Delete file.
17472 * config/sh/t-mlib-sh4al: Delete file.
17473 * config/sh/t-mlib-sh5-32media: Delete file.
17474 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
17475 * config/sh/t-mlib-sh5-64media: Delete file.
17476 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
17477 * config/sh/t-mlib-sh5-compact: Delete file.
17478 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
17479 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
17480 * doc/install.texi (Options specification): Add
17481 --with-multilib-list and --with-endian.
17482
cf8aba7f
RAE
174832009-04-17 Rafael Avila de Espindola <espindola@google.com>
17484
17485 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
17486 REVISION_c.
17487 (OBJS-common): Add plugin-version.o.
17488 (plugin-version.o): New.
17489 * gcc-plugin.h (plugin_gcc_version): New.
17490 (plugin_default_version_check): New.
17491 (plugin_init_func, plugin_init): Add version argument.
17492 * plugin-version.c: New.
17493 * plugin.c (str_plugin_gcc_version_name): New.
17494 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
17495 pass it to the init function.
17496 (plugin_default_version_check): New.
17497
61e20b90
RG
174982009-04-17 Richard Guenther <rguenther@suse.de>
17499
17500 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
17501 for decl-vs-decl disambiguation.
17502
90c6fd8a
AK
175032009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
17504
17505 * config/s390/s390.h (s390_tune_attr): New macro definition.
17506 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
17507
9fe9fe04
RG
175082009-04-17 Richard Guenther <rguenther@suse.de>
17509
17510 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
17511 (fold_stmt_r): Likewise.
17512 (maybe_fold_reference): New function.
17513 (fold_gimple_assign): Handle cases fold_stmt_r did.
17514 (fold_stmt): Do not use fold_stmt_r.
17515 (fold_stmt_inplace): Likewise.
17516
7e673273
RG
175172009-04-17 Richard Guenther <rguenther@suse.de>
17518
17519 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
17520 (record_equivalences_from_stmt): Remove useless checks and
17521 simplifications.
17522 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
17523 the type is already suitable.
17524
fabf2749
PB
175252009-04-17 Paolo Bonzini <bonzini@gnu.org>
17526
17527 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
17528
68f7b061
UB
175292009-04-17 Uros Bizjak <ubizjak@gmail.com>
17530
17531 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
17532 (CMPtype): Define as __gcc_CMPtype.
17533
532bfb0a
AJ
175342009-04-17 Aurelien Jarno <aurelien@aurel32.net>
17535
17536 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
17537 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
17538
e3ac77ff
RG
175392009-04-17 Richard Guenther <rguenther@suse.de>
17540
17541 PR tree-optimization/39746
17542 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
17543 special-casing for builtins and static variable use/def.
17544 (call_may_clobber_ref_p_1): Likewise.
17545
7072a650
ILT
175462009-04-16 Ian Lance Taylor <iant@google.com>
17547
17548 * df.h: Include "timevar.h".
17549 (struct df_problem): Change tv_id field to timevar_id_t.
17550 * tree-pass.h: Include "timevar.h".
17551 (struct opt_pass): Change tv_id field to timevar_id_t.
17552 * timevar.h (timevar_id_t): Define TV_NONE.
17553 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
17554 TV_NONE rather than tv_id != 0.
17555 (execute_one_pass): Likewise.
17556 * Makefile.in (DF_H): Add $(TIMEVAR_H).
17557 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
17558 dependencies to $(TREE_PASS_H).
17559 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
17560 to TV_NONE.
17561 (pass_branch_target_load_optimize2): Likewise.
17562 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
17563 (pass_outof_cfg_layout_mode): Likewise.
17564 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
17565 (pass_rebuild_cgraph_edges): Likewise.
17566 (pass_remove_cgraph_callee_edges): Likewise.
17567 * df-core.c (pass_df_initialize_opt): Likewise.
17568 (pass_df_initialize_no_opt): Likewise.
17569 (pass_df_finish): Likewise.
17570 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
17571 * except.c (pass_set_nothrow_function_flags): Likewise.
17572 (pass_convert_to_eh_region_ranges): Likewise.
17573 * final.c (pass_compute_alignments): Likewise.
17574 * function.c (pass_instantiate_virtual_regs): Likewise.
17575 (pass_init_function): Likewise.
17576 (pass_leaf_regs): Likewise.
17577 (pass_match_asm_constraints): Likewise.
17578 * gimple-low.c (pass_lower_cf): Likewise.
17579 (pass_mark_used_blocks): Likewise.
17580 * init-regs.c (pass_initialize_regs): Likewise.
17581 * integrate.c (pass_initial_value_sets): Likewise.
17582 * ira.c (pass_ira): Likewise.
17583 * jump.c (pass_cleanup_barriers): Likewise.
17584 * omp-low.c (pass_expand_omp): Likewise.
17585 (pass_lower_omp): Likewise.
17586 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
17587 * recog.c (pass_split_all_insns): Likewise.
17588 (pass_split_after_reload): Likewise.
17589 (pass_split_before_regstack): Likewise.
17590 (pass_split_before_sched2): Likewise.
17591 (pass_split_for_shorten_branches): Likewise.
17592 * reginfo.c (pass_reginfo_init): Likewise.
17593 (pass_subregs_of_mode_init): Likewise.
17594 (pass_subregs_of_mode_finish): Likewise.
17595 * passes.c (pass_postreload): Likewise.
17596 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
17597 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
17598 (pass_warn_function_return): Likewise.
17599 (pass_warn_function_noreturn): Likewise.
17600 * tree-complex.c (pass_lower_complex): Likewise.
17601 (pass_lower_complex_O0): Likewise.
17602 * tree-if-conv.c (pass_if_conversion): Likewise.
17603 * tree-into-ssa.c (pass_build_ssa): Likewise.
17604 * tree-mudflap.c (pass_mudflap_1): Likewise.
17605 (pass_mudflap_2): Likewise.
17606 * tree-nomudflap.c (pass_mudflap_1): Likewise.
17607 (pass_mudflap_2): Likewise.
17608 * tree-nrv.c (pass_return_slot): Likewise.
17609 * tree-object-size.c (pass_object_sizes): Likewise.
17610 * tree-optimize.c (pass_all_optimizations): Likewise.
17611 (pass_early_local_passes): Likewise.
17612 (pass_all_early_optimizations): Likewise.
17613 (pass_cleanup_cfg): Likewise.
17614 (pass_cleanup_cfg_post_optimizing): Likewise.
17615 (pass_free_datastructures): Likewise.
17616 (pass_free_cfg_annotations): Likewise.
17617 (pass_fixup_cfg): Likewise.
17618 (pass_init_datastructures): Likewise.
17619 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
17620 (pass_late_warn_uninitialized): Likewise.
17621 (pass_update_address_taken): Likewise.
17622 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
17623 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
17624 (pass_cse_sincos): Likewise.
17625 (pass_convert_to_rsqrt): Likewise.
17626 * tree-ssa-structalias.c (pass_build_alias): Likewise.
17627 * tree-stdarg.c (pass_stdarg): Likewise.
17628 * tree-tailcall.c (pass_tail_recursion): Likewise.
17629 (pass_tail_calls): Likewise.
17630 * tree-vect-generic.c (pass_lower_vector): Likewise.
17631 (pass_lower_vector_ssa): Likewise.
17632 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
17633
0051ef59
JM
176342009-04-16 Joseph Myers <joseph@codesourcery.com>
17635
17636 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
17637 XLR entry.
17638 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
17639 Handle -march=xlr.
17640 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
17641 logical and signext.
17642
b3f8558a
KK
176432009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
17644
17645 PR target/39767
17646 * config/sh/predicates.md (arith_operand): Check if the operand
17647 of TRUNCATE is a REG.
17648
f57597d9
KH
176492009-04-16 Kazu Hirata <kazu@codesourcery.com>
17650
17651 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
17652 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
17653
b172d063
KH
176542009-04-16 Kazu Hirata <kazu@codesourcery.com>
17655
17656 * tree-iterator.c (tsi_split_statement_list_after,
17657 tsi_split_statement_list_before): Remove.
17658 * tree-iterator.h: Remove the prototypes for
532bfb0a 17659 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 17660
78fe4f1f
KH
176612009-04-16 Kazu Hirata <kazu@codesourcery.com>
17662
17663 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
17664 * tree-ssa-propagate.h: Remove the prototype for
17665 stmt_makes_single_load.
17666
43dd3201
KH
176672009-04-16 Kazu Hirata <kazu@codesourcery.com>
17668
17669 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
17670 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
17671
4252a4aa
KH
176722009-04-16 Kazu Hirata <kazu@codesourcery.com>
17673
17674 * tree-iterator.c (EXPR_LAST_BODY): Remove.
17675
bfb69968
KH
176762009-04-16 Kazu Hirata <kazu@codesourcery.com>
17677
17678 * except.c (eh_region_outer_p): Remove.
17679 * except.h: Remove the prototype for eh_region_outer_p.
17680
c7db7fa5
KH
176812009-04-16 Kazu Hirata <kazu@codesourcery.com>
17682
17683 * function.c (current_function_assembler_name): Remove.
17684 * function.h: Remove the prototype for
17685 current_function_assembler_name.
17686
efc0b2bd
ILT
176872009-04-16 Ian Lance Taylor <iant@google.com>
17688
532bfb0a 17689 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
17690 (add_reg_note): Call alloc_reg_note.
17691 * rtl.h (alloc_reg_note): Declare.
17692 * combine.c (try_combine): Use alloc_reg_note.
17693 (recog_for_combine, move_deaths): Likewise.
17694 (distribute_notes): Use alloc_reg_note and add_reg_note.
17695 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
17696 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
17697 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
17698
6080348f
VM
176992009-04-16 Vladimir Makarov <vmakarov@redhat.com>
17700
17701 PR rtl-optimization/39762
17702 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
17703 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 17704 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 17705
6080348f
VM
17706 * ira-conflicts.c (process_regs_for_copy): Use function
17707 ira_get_register_move_cost instead of global
17708 ira_register_move_cost.
17709
17710 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
17711 color_pass, move_spill_restore, update_curr_costs): Ditto.
17712
17713 * ira-lives.c (process_single_reg_class_operands): Ditto.
17714
17715 * ira-emit.c (emit_move_list): Ditto.
17716
17717 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
17718 (record_reg_classes): Ditto. Use functions
17719 ira_get_register_move_cost and ira_get_may_move_cost instead of
17720 global vars ira_register_move_cost, ira_may_move_out_cost and
17721 ira_may_move_in_cost.
17722 (record_address_regs): Don't call ira_init_register_move_cost.
17723 Use function ira_get_may_move_cost instead of global
17724 ira_may_move_in_cost.
17725 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 17726 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 17727 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 17728
646bea10
RG
177292009-04-16 Richard Guenther <rguenther@suse.de>
17730
17731 * tree-cfg.c (verify_gimple_assign_binary):
17732 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
17733 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
17734 (create_general_new_stmt): Note that this function is broken.
17735
02e819ff
RAE
177362009-04-16 Rafael Avila de Espindola <espindola@google.com>
17737
17738 * common.opt (fhelp): Add Var(help_flag).
17739 * gcc-plugin.h (plugin_info): Add help.
17740 * plugin.c (plugin_name_args): Add help.
17741 (register_plugin_info): Set plugin->help.
17742 (print_help_one_plugin): New.
17743 (print_plugins_help): New.
17744 * plugin.h (print_plugins_help): New.
17745 * toplev.c (toplev_main): Call print_plugins_help if needed.
17746
ccacdf06
RG
177472009-04-16 Richard Guenther <rguenther@suse.de>
17748
17749 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
17750 (gimple_ior_addresses_taken_1): New function.
17751 (gimple_ior_addresses_taken): Likewise.
17752 * gimple.h (struct gimple_statement_with_ops_base): Remove
17753 addresses_taken member.
17754 (gimple_ior_addresses_taken): Declare.
17755 (gimple_addresses_taken, gimple_addresses_taken_ptr,
17756 gimple_set_addresses_taken): Remove.
17757 * ipa-reference.c (mark_address): New function.
17758 (scan_stmt_for_static_refs): Use it for marking addresses taken.
17759 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
17760 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
17761 (gimple_add_to_addresses_taken): Remove.
17762 (get_tmr_operands): Call mark_address_taken.
17763 (get_asm_expr_operands): Likewise.
17764 (get_expr_operands): Likewise.
17765 (build_ssa_operands): Do not clear the addresses_taken bitmap.
17766 (free_stmt_operands): Do not free it.
17767 * tree-ssa.c (delete_tree_ssa): Likewise.
17768 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
17769
346ef3fa
RG
177702009-04-16 Richard Guenther <rguenther@suse.de>
17771
17772 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
17773 (walk_stmt_load_store_ops): Likewise.
17774 * gimple.c (get_base_loadstore): New function.
17775 (walk_stmt_load_store_addr_ops): Likewise.
17776 (walk_stmt_load_store_ops): Likewise.
17777 * ipa-pure-const.c (check_op): Simplify.
17778 (check_load, check_store): New functions.
17779 (check_stmt): Use walk_stmt_load_store_ops.
17780 * ipa-reference.c (mark_load): Adjust signature.
17781 (mark_store): Likewise.
17782 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
17783
44e9f006
RAE
177842009-04-16 Rafael Avila de Espindola <espindola@google.com>
17785
17786 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
17787 (plugin_info): New.
17788 * opts.c (common_handle_option): Don't call print_version.
17789 * plugin.c (plugin_name_args): Add version.
17790 (register_plugin_info): New.
17791 (register_callback): Handle PLUGIN_INFO.
17792 (try_init_one_plugin): New.
17793 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
17794 if failed to init.
17795 (finalize_one_plugin): New.
17796 (finalize_plugins): New.
17797 (print_one_plugin): New.
17798 (print_plugins_versions): New.
17799 * plugin.h (print_plugins_versions): New.
17800 (finalize_plugins): New.
17801 * toplev.c (compile_file): Don't call initialize_plugins.
17802 (print_version): Call print_plugins_versions.
17803 (toplev_main): Call initialize_plugins. Print version if needed.
17804 Call finalize_plugins.
17805
41fd0f9b
RAE
178062009-04-16 Rafael Avila de Espindola <espindola@google.com>
17807
17808 * common.opt (fversion): New.
17809 * gcc.c (print_version): New.
17810 (process_command): Don't print the version. Just set print_version.
17811 (main): Print version. Call subprocesses if print_version and
17812 verbose_flag are set.
17813 * opts.c (common_handle_option): Handle OPT_fversion.
17814
550918ca 178152009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 17816 Ira Rosen <irar@il.ibm.com>
550918ca
RG
17817
17818 PR tree-optimization/39698
17819 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
17820 type of the reduction variable. Only generate the def if
17821 it is needed.
17822
17823 * omp-low.c (expand_omp_for_generic): When converting to a pointer
17824 make sure to first convert to an integer of the same precision.
17825 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
17826 the type of the evolution correctly in computing the new
17827 induction variable base.
17828
54634841
RG
178292009-04-16 Richard Guenther <rguenther@suse.de>
17830
17831 PR middle-end/39625
17832 * tree-cfg.c (make_blocks): Split statements with to-be
17833 abnormal SSA names on the lhs.
17834
b6fc2cdb
PB
178352009-04-16 Paolo Bonzini <bonzini@gnu.org>
17836
17837 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
17838 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
17839 * c-typeck.c (really_start_incremental_init): Likewise.
17840 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
17841 (TARGET_INITIALIZER): Remove it.
17842 * target.h (struct target): Remove vector_opaque_p.
17843 * tree.c (build_opaque_vector_type): New.
17844 * tree.h (TYPE_VECTOR_OPAQUE): New.
17845 (build_opaque_vector_type): Declare.
17846 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
17847 * config/rs6000/rs6000.c (build_opaque_vector_type,
17848 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
17849 (rs6000_init_builtins): Use build_opaque_vector_type for
17850 opaque_V4SI_type_node.
17851
a417cdd9
CM
178522009-04-15 Catherine Moore <clm@codesourcery.com>
17853
532bfb0a
AJ
17854 * debug.h (set_name): Declare.
17855 * dwarf2out.c (dwarf2out_set_name): Declare.
17856 (dwarf2_debug_hooks): Add set_name.
17857 (find_AT_string): New.
17858 (add_AT_string): Call find_AT_string.
17859 (dwarf2out_set_name): New.
17860 * cp/decl.c (grokdeclarator): Call set_name.
17861 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
17862 * debug.c (do_nothing_debug_hooks): Likewise.
17863 * dbxout.c (dbx_debug_hooks): Likewise.
17864 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 17865
60839f5d 178662009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 17867
532bfb0a
AJ
17868 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
17869 reg for single-precision FPU.
17870 * config/rs6000/rs6000.md (movsi_internal1): Only for
17871 !TARGET_SINGLE_FPU.
17872 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
17873 single-precision FP regs.
17874
ada39f0b
RG
178752009-04-15 Richard Guenther <rguenther@suse.de>
17876
17877 * omp-low.c (lower_rec_input_clauses): Build correct address
17878 expressions.
17879 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 17880 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
17881 (generate_memset_zero): Fix types.
17882 * tree-profile.c (prepare_instrumented_value): Correctly
17883 widen a pointer.
17884
6866c6e8
ILT
178852009-04-15 Ian Lance Taylor <iant@google.com>
17886
17887 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
17888 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
17889 for -Wall and for -Wc++-compat.
17890 (c_common_post_options): For C++, set warn_enum_compare if not
17891 already set.
17892 * c-tree.h (struct c_expr): Add field original_type.
17893 (build_external_ref): Update declaration.
17894 * c-parser.c (c_parser_braced_init): Set original_type.
17895 (c_parser_initelt): Likewise.
17896 (c_parser_expr_no_commas): Likewise.
17897 (c_parser_conditional_expression): Likewise.
17898 (c_parser_cast_expression): Likewise.
17899 (c_parser_unary_expression): Likewise. Pull setting of
17900 original_code to top of function.
17901 (c_parser_sizeof_expression): Set original_type.
17902 (c_parser_alignof_expression): Likewise.
17903 (c_parser_postfix_expression): Likewise. Pull setting of
17904 original_code to top of function.
532bfb0a 17905 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
17906 (c_parser_postfix_expression_after_primary): Likewise.
17907 (c_parser_expression): Likewise.
17908 * c-typeck.c (build_external_ref): Add type parameter. Change all
17909 callers.
17910 (c_expr_sizeof_expr): Set original_type field.
17911 (parser_build_unary_op): Likewise.
17912 (parser_build_binary_op): Likewise. Optionally warn about
17913 comparisons of enums of different types.
17914 (digest_init): Set original_type field.
17915 (really_start_incremental_init): Likewise.
17916 (push_init_level, pop_init_level): Likewise.
17917 * doc/invoke.texi (Warning Options): -Wenum-compare now
17918 supported in C.
17919
f116fecf
RG
179202009-04-15 Richard Guenther <rguenther@suse.de>
17921
17922 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
17923 out a necessary conversion.
17924 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
17925 names we didn't value number.
17926 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
17927
25e20805
RG
179282009-04-15 Richard Guenther <rguenther@suse.de>
17929
17930 PR tree-optimization/39764
17931 * tree-ssa-ccp.c (get_value): Canonicalize value with
17932 canonicalize_float_value.
17933
90cc3676
JH
179342009-04-15 Jan Hubicka <jh@suse.cz>
17935
17936 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
17937 Wrong version of patch.
17938
6d14c006
JH
179392009-04-15 Jan Hubicka <jh@suse.cz>
17940
17941 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
17942
5afaa917
NS
179432009-04-15 Nathan Sidwell <nathan@codesourcery.com>
17944
17945 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
17946 our distinct integral and vector types.
17947
3b482fca
RAE
179482009-04-15 Rafael Avila de Espindola <espindola@google.com>
17949
17950 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
17951 * init.c (build_vtbl_address): Remove call to assemble_external.
17952
6cd1d2e2
DJ
179532009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
17954
17955 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
17956 output for other floating point modes.
17957
dab71827
DN
179582009-04-14 Diego Novillo <dnovillo@google.com>
17959
17960 * diagnostic.c (diagnostic_report_diagnostic): Do not
17961 warn about loaded plugins for DK_ERROR and DK_WARNING.
17962 * c-decl.c (declspecs_add_type): Move call to
17963 invoke_plugin_callbacks ...
17964 * c-parser.c (c_parser_declspecs): ... here.
17965 * plugin.c (dump_active_plugins): Tidy output.
17966
68a607d8
DN
179672009-04-14 Diego Novillo <dnovillo@google.com>
17968 Le-Chun Wu <lcwu@google.com>
17969
17970 * configure.ac: Add --enable-plugin support.
17971 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
17972 * Makefile.in (PLUGIN_H): Define.
17973 Export ENABLE_PLUGIN and GMPINC to site.exp.
17974 Add PLUGINLIBS to link command.
17975 Add/modify dependencies for plugin.o and files including plugin.h.
17976 (plugin.o): New.
17977 * config.in: Regenerate.
2ba9daa7 17978
68a607d8
DN
17979 * opts.c (common_handle_option): Handle OPT_fplugin_ and
17980 OPT_fplugin_arg_.
17981
179822009-04-14 Le-Chun Wu <lcwu@google.com>
17983
17984 * tree-pass.h (register_one_dump_file): Add a prototype for
17985 register_one_dump_file.
17986 * toplev.c (compile_file): Call initialize_plugins.
17987 (do_compile): Call invoke_plugin_callbacks.
17988 (toplev_main): Call invoke_plugin_callbacks.
17989 * common.opt: Add -fplugin= and -fplugin-arg-.
17990 * gcc-plugin.h: New public header file for plugins to include.
17991 * plugin.c: New source file.
17992 * plugin.h: New internal header file.
17993 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 17994
68a607d8
DN
17995 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
17996
179972009-04-14 Diego Novillo <dnovillo@google.com>
17998
17999 * doc/plugins.texi: New.
18000 * doc/gccint.texi: Add reference to Plugins chapter.
18001 * doc/invoke.texi: Document -fplugin and -fplugin-arg
18002 * diagnostic.c (diagnostic_report_diagnostic): Warn about
18003 loaded plugins, if any.
18004 * timevar.def (TV_PLUGIN_INIT): Define.
18005 (TV_PLUGIN_RUN): Define.
18006 * plugin.c: Include timevar.h
18007 (plugins_active_p): New.
18008 (dump_active_plugins): New.
18009 (debug_active_plugins): New.
18010
50617257
JM
180112009-04-14 Joseph Myers <joseph@codesourcery.com>
18012
18013 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
18014 library paths.
18015 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
18016
b32f6fff
KH
180172009-04-14 Kazu Hirata <kazu@codesourcery.com>
18018
18019 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
18020 the same as a minus without a shift.
18021
85d04fa2
NC
180222009-04-14 Nick Clifton <nickc@redhat.com>
18023
18024 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
18025 comparisons with small integers will always produce a short
18026 branch.
18027
e495a0c8
RAE
180282009-04-14 Rafael Avila de Espindola <espindola@google.com>
18029
18030 Merge:
e495a0c8
RAE
18031 2008-12-19 Diego Novillo <dnovillo@google.com>
18032
532bfb0a 18033 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 18034
ad41bd84 180352009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
18036
18037 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
18038 verification.
18039 (verify_gimple_assign_binary): Likewise. Handle shifts and
18040 rotates correctly.
18041 (verify_gimple_phi): Print the mismatched argument position.
18042 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
18043 Fix types.
18044 (vect_update_init_of_dr): Likewise.
18045 * matrix-reorg.c (transform_access_sites): Do what the
18046 comment suggests.
18047 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
18048
60839f5d 180492009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
18050
18051 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
18052 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
18053 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 18054 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
18055 remove duplicate config
18056
b0e2d008
DR
180572009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18058
18059 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
18060 file_name:line_number type locator of the call site.
2ba9daa7 18061
1244a8b7
VM
180622009-04-13 Vladimir Makarov <vmakarov@redhat.com>
18063
18064 * genautomata.c: Put blank after comma.
18065 (automaton_decls): New.
18066 (struct unit_usage): Add comments to member next.
18067 (store_alt_unit_usage): Keep the list ordered.
18068 (unit_present_on_list_p, equal_alternatives_p): New.
18069 (check_regexp_units_distribution): Check units distribution
18070 correctness correctly.
18071 (main): Don't write automata if error is found. Return correct
18072 exit code.
2ba9daa7 18073
1244a8b7
VM
18074 * config/m68k/cf.md (cfv4_ds): Remove.
18075 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
18076 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
18077
18078 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
18079 power4-load-ext, power4-store, power4-store-update,
18080 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
18081 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
18082 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
18083 power4-sqrt, power4-isync): Modify reservation to make correct
18084 unit distribution to automata.
18085
18086 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
18087 power5-store-update, power5-two, power5-three, power5-lmul,
18088 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 18089
f7dd1864
AN
180902009-04-13 Adam Nemet <anemet@caviumnetworks.com>
18091
18092 * except.c (pass_set_nothrow_function_flags): Set name and add
18093 TODO_dump_func.
18094 (set_nothrow_function_flags): Mention in the dump file when
18095 changing a function to nothrow.
18096
59a1171f
OS
180972009-04-13 Ozkan Sezer <sezeroz@gmail.com>
18098
18099 PR/39066
18100 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
18101 instead of unsigned long.
18102
934c2060
RR
181032009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18104
f7dd1864
AN
18105 * config/arm/arm.c (return_used_this_function): Remove.
18106 (arm_output_function_prologue): Remove use of
934c2060 18107 return_used_this_function.
f7dd1864 18108 (output_return_instruction): Replace use of
934c2060
RR
18109 return_used_this_function
18110 by cfun->machine->return_used_this_function.
f7dd1864
AN
18111 (arm_output_epilogue): Likewise.
18112 (arm_output_function_epilogue): Likewise.
18113 (thumb_unexpanded_epilogue): Likewise.
18114 * config/arm/arm.h (struct machine_function):
934c2060 18115 New member return_used_this_function.
f7dd1864 18116
ae5cc016
MM
181172009-04-12 Mark Mitchell <mark@codesourcery.com>
18118
18119 * doc/install.texi: Correct description of default directory for
18120 --with-gxx-include-dir.
18121
a0ce68df 181222009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
18123
18124 * fold-const.c (build_range_check): Properly deal with enumeral and
18125 boolean base types.
18126
3906a4a1
SB
181272009-04-12 Steven Bosscher <steven@gcc.gnu.org>
18128
18129 * doc/invoke.texi (max_gcse_passes): Remove documentation.
18130 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
18131 * params.h (MAX_GCSE_PASSES): Remove.
18132 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
18133 in sequence. Remove ability to run multiple passes.
18134 (bypass_jumps): Report run as third CPROP pass.
18135
efaadb93
AN
181362009-04-12 Adam Nemet <anemet@caviumnetworks.com>
18137
18138 PR middle-end/39651
18139 * except.c (can_throw_external): Look at each insn in a SEQUENCE
18140 when deciding whether the whole SEQUENCE can throw.
18141
4c48007b
UB
181422009-04-12 Uros Bizjak <ubizjak@gmail.com>
18143
18144 PR target/39740
18145 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
18146 offseted label references.
18147
b4104018
JH
181482009-04-11 Jan Hubicka <jh@suse.cz>
18149
18150 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
18151
32848948
RG
181522009-04-11 Richard Guenther <rguenther@suse.de>
18153
18154 PR middle-end/39732
18155 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
18156 return variables as TREE_ADDRESSABLE.
18157
8810712e
RG
181582009-04-11 Richard Guenther <rguenther@suse.de>
18159
18160 PR tree-optimization/39713
18161 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
18162 reference trees have SSA_NAME operands.
18163
fa78c0c1
RG
181642009-04-11 Richard Guenther <rguenther@suse.de>
18165
18166 PR c/39712
18167 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
18168 address expressions.
18169
4d722130
DK
181702009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
18171
18172 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
18173 match changes in Cygwin 1.7
18174 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
18175 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
18176
567a90f5
PB
181772009-04-10 Paolo Bonzini <bonzini@gnu.org>
18178
18179 PR tree-optimization/39701
18180 * doc/invoke.texi (Optimization Options): Document change in
18181 meaning and initialization of -fdelete-null-pointer-checks.
18182
1ad2f450
L
181832009-04-10 H.J. Lu <hongjiu.lu@intel.com>
18184
18185 PR middle-end/39701
18186 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
18187
18188 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
18189 here.
18190
18191 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
18192
1afc5373
CF
181932009-04-10 Chao-ying Fu <fu@mips.com>
18194
18195 * doc/tm.texi (Instruction Output): Document
18196 TARGET_ASM_FINAL_POSTSCAN_INSN.
18197 * target.h (final_postscan_insn): New field in asm_out.
18198 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
18199 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
18200 * final.c (final_scan_insn): Call
18201 targetm.asm_out.final_postscan_insn after outputting
18202 an asm macro and a normal instruction.
18203
18204 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
18205 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
18206 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
18207 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
18208 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
18209
4d35e75c
PB
182102009-04-10 Paolo Bonzini <bonzini@gnu.org>
18211
18212 PR middle-end/39701
1ad2f450
L
18213 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
18214 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 18215
62c49b83
L
182162009-04-10 H.J. Lu <hongjiu.lu@intel.com>
18217
18218 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
18219
80558628
L
182202009-04-09 H.J. Lu <hongjiu.lu@intel.com>
18221
18222 PR target/39678
18223 * config/i386/i386.c (classify_argument): Handle SCmode with
18224 (bit_offset % 64) != 0.
18225
8c70d28b
SL
182262009-04-09 Sandra Loosemore <sandra@codesourcery.com>
18227
18228 * doc/invoke.texi (Optimize Options): Add cross-reference to
18229 -Q --help=optimizers examples.
18230
e1ff19bf
BE
182312009-04-10 Ben Elliston <bje@au.ibm.com>
18232
18233 PR target/36800
18234 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
18235 regalign for the reg == fpr and TDmode case.
18236
52daca75
DA
182372009-04-09 David Ayers <ayers@fsfe.org>
18238
18239 PR objc/29200
18240 * objc/objc-act.c (warn_with_method): Remove helper function.
18241 (check_duplicates): Call warning and inform directly.
18242 (really_start_method): Likewise.
18243
b45f0e58
PB
182442009-04-09 Paolo Bonzini <bonzini@gnu.org>
18245
18246 * expmed.c (expand_divmod): Always use a comparison for a division
18247 by a large unsigned integer.
18248
1ad2f450
L
18249 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
18250 for things others than variables or functions as nonzero.
b45f0e58 18251
748086b7
JJ
182522009-04-09 Nick Clifton <nickc@redhat.com>
18253
18254 * unwind-compat.c: Change copyright header to refer to version
18255 3 of the GNU General Public License with version 3.1 of the
18256 GCC Runtime Library Exception and to point readers at the
7a715bba 18257 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
18258 * config/alpha/crtfastmath.c: Likewise.
18259 * config/alpha/linux-unwind.h: Likewise.
18260 * config/alpha/qrnnd.asm: Likewise.
18261 * config/alpha/vms-crt0-64.c: Likewise.
18262 * config/alpha/vms-crt0.c: Likewise.
18263 * config/alpha/vms-dwarf2.asm: Likewise.
18264 * config/alpha/vms-dwarf2eh.asm: Likewise.
18265 * config/alpha/vms-psxcrt0-64.c: Likewise.
18266 * config/alpha/vms-psxcrt0.c: Likewise.
18267 * config/alpha/vms_tramp.asm: Likewise.
18268 * config/arc/initfini.c: Likewise.
18269 * config/arc/lib1funcs.asm: Likewise.
18270 * config/arm/bpabi-v6m.S: Likewise.
18271 * config/arm/bpabi.S: Likewise.
18272 * config/arm/bpabi.c: Likewise.
18273 * config/arm/crti.asm: Likewise.
18274 * config/arm/crtn.asm: Likewise.
18275 * config/arm/ieee754-df.S: Likewise.
18276 * config/arm/ieee754-sf.S: Likewise.
18277 * config/arm/lib1funcs.asm: Likewise.
18278 * config/arm/libunwind.S: Likewise.
18279 * config/arm/linux-atomic.c: Likewise.
18280 * config/arm/mmintrin.h: Likewise.
18281 * config/arm/pr-support.c: Likewise.
18282 * config/arm/unaligned-funcs.c: Likewise.
18283 * config/arm/unwind-arm.c: Likewise.
18284 * config/arm/unwind-arm.h: Likewise.
18285 * config/avr/libgcc.S: Likewise.
18286 * config/bfin/crti.s: Likewise.
18287 * config/bfin/crtlibid.s: Likewise.
18288 * config/bfin/crtn.s: Likewise.
18289 * config/bfin/lib1funcs.asm: Likewise.
18290 * config/bfin/linux-unwind.h: Likewise.
18291 * config/cris/arit.c: Likewise.
18292 * config/cris/cris_abi_symbol.c: Likewise.
18293 * config/darwin-64.c: Likewise.
18294 * config/darwin-crt2.c: Likewise.
18295 * config/darwin-crt3.c: Likewise.
18296 * config/darwin.h: Likewise.
18297 * config/dbxelf.h: Likewise.
18298 * config/dfp-bit.c: Likewise.
18299 * config/dfp-bit.h: Likewise.
18300 * config/elfos.h: Likewise.
18301 * config/fixed-bit.c: Likewise.
18302 * config/fixed-bit.h: Likewise.
18303 * config/fp-bit.c: Likewise.
18304 * config/fp-bit.h: Likewise.
18305 * config/fr30/crti.asm: Likewise.
18306 * config/fr30/crtn.asm: Likewise.
18307 * config/fr30/lib1funcs.asm: Likewise.
18308 * config/freebsd-spec.h: Likewise.
18309 * config/frv/cmovd.c: Likewise.
18310 * config/frv/cmovh.c: Likewise.
18311 * config/frv/cmovw.c: Likewise.
18312 * config/frv/frvbegin.c: Likewise.
18313 * config/frv/frvend.c: Likewise.
18314 * config/frv/lib1funcs.asm: Likewise.
18315 * config/glibc-stdint.h: Likewise.
18316 * config/h8300/clzhi2.c: Likewise.
18317 * config/h8300/crti.asm: Likewise.
18318 * config/h8300/crtn.asm: Likewise.
18319 * config/h8300/ctzhi2.c: Likewise.
18320 * config/h8300/fixunssfsi.c: Likewise.
18321 * config/h8300/lib1funcs.asm: Likewise.
18322 * config/h8300/parityhi2.c: Likewise.
18323 * config/h8300/popcounthi2.c: Likewise.
18324 * config/i386/ammintrin.h: Likewise.
18325 * config/i386/att.h: Likewise.
18326 * config/i386/avxintrin.h: Likewise.
18327 * config/i386/biarch64.h: Likewise.
18328 * config/i386/bmmintrin.h: Likewise.
18329 * config/i386/cpuid.h: Likewise.
18330 * config/i386/cross-stdarg.h: Likewise.
18331 * config/i386/crtfastmath.c: Likewise.
18332 * config/i386/crtprec.c: Likewise.
18333 * config/i386/cygming-crtbegin.c: Likewise.
18334 * config/i386/cygming-crtend.c: Likewise.
18335 * config/i386/cygwin.asm: Likewise.
18336 * config/i386/emmintrin.h: Likewise.
18337 * config/i386/gmm_malloc.h: Likewise.
18338 * config/i386/gthr-win32.c: Likewise.
18339 * config/i386/i386.h: Likewise.
18340 * config/i386/immintrin.h: Likewise.
18341 * config/i386/linux-unwind.h: Likewise.
18342 * config/i386/linux64.h: Likewise.
18343 * config/i386/mm3dnow.h: Likewise.
18344 * config/i386/mmintrin-common.h: Likewise.
18345 * config/i386/mmintrin.h: Likewise.
18346 * config/i386/nmmintrin.h: Likewise.
18347 * config/i386/pmm_malloc.h: Likewise.
18348 * config/i386/pmmintrin.h: Likewise.
18349 * config/i386/smmintrin.h: Likewise.
18350 * config/i386/sol2-c1.asm: Likewise.
18351 * config/i386/sol2-ci.asm: Likewise.
18352 * config/i386/sol2-cn.asm: Likewise.
18353 * config/i386/sol2-gc1.asm: Likewise.
18354 * config/i386/tmmintrin.h: Likewise.
18355 * config/i386/unix.h: Likewise.
18356 * config/i386/w32-unwind.h: Likewise.
18357 * config/i386/wmmintrin.h: Likewise.
18358 * config/i386/x86-64.h: Likewise.
18359 * config/i386/x86intrin.h: Likewise.
18360 * config/i386/xmmintrin.h: Likewise.
18361 * config/ia64/crtbegin.asm: Likewise.
18362 * config/ia64/crtend.asm: Likewise.
18363 * config/ia64/crtfastmath.c: Likewise.
18364 * config/ia64/crti.asm: Likewise.
18365 * config/ia64/crtn.asm: Likewise.
18366 * config/ia64/fde-glibc.c: Likewise.
18367 * config/ia64/lib1funcs.asm: Likewise.
18368 * config/ia64/linux-unwind.h: Likewise.
18369 * config/ia64/quadlib.c: Likewise.
18370 * config/ia64/unwind-ia64.c: Likewise.
18371 * config/linux.h: Likewise.
18372 * config/m32c/m32c-lib1.S: Likewise.
18373 * config/m32c/m32c-lib2-trapv.c: Likewise.
18374 * config/m32c/m32c-lib2.c: Likewise.
18375 * config/m32r/initfini.c: Likewise.
18376 * config/m68hc11/larith.asm: Likewise.
18377 * config/m68hc11/m68hc11-crt0.S: Likewise.
18378 * config/m68k/cf.md: Likewise.
18379 * config/m68k/crti.s: Likewise.
18380 * config/m68k/crtn.s: Likewise.
18381 * config/m68k/lb1sf68.asm: Likewise.
18382 * config/m68k/linux-unwind.h: Likewise.
18383 * config/mcore/crti.asm: Likewise.
18384 * config/mcore/crtn.asm: Likewise.
18385 * config/mcore/lib1.asm: Likewise.
18386 * config/mips/linux-unwind.h: Likewise.
18387 * config/mips/loongson.h: Likewise.
18388 * config/mips/mips16.S: Likewise.
18389 * config/mmix/crti.asm: Likewise.
18390 * config/mmix/crtn.asm: Likewise.
18391 * config/pa/fptr.c: Likewise.
18392 * config/pa/hpux-unwind.h: Likewise.
18393 * config/pa/lib2funcs.asm: Likewise.
18394 * config/pa/linux-atomic.c: Likewise.
18395 * config/pa/linux-unwind.h: Likewise.
18396 * config/pa/milli64.S: Likewise.
18397 * config/pa/quadlib.c: Likewise.
18398 * config/pa/stublib.c: Likewise.
18399 * config/picochip/libgccExtras/adddi3.asm: Likewise.
18400 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
18401 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
18402 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
18403 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
18404 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
18405 * config/picochip/libgccExtras/divmod15.asm: Likewise.
18406 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
18407 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
18408 * config/picochip/libgccExtras/longjmp.asm: Likewise.
18409 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
18410 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
18411 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
18412 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
18413 * config/picochip/libgccExtras/setjmp.asm: Likewise.
18414 * config/picochip/libgccExtras/subdi3.asm: Likewise.
18415 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
18416 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
18417 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
18418 * config/rs6000/750cl.h: Likewise.
18419 * config/rs6000/altivec.h: Likewise.
18420 * config/rs6000/biarch64.h: Likewise.
18421 * config/rs6000/crtresfpr.asm: Likewise.
18422 * config/rs6000/crtresgpr.asm: Likewise.
18423 * config/rs6000/crtresxfpr.asm: Likewise.
18424 * config/rs6000/crtresxgpr.asm: Likewise.
18425 * config/rs6000/crtsavfpr.asm: Likewise.
18426 * config/rs6000/crtsavgpr.asm: Likewise.
18427 * config/rs6000/darwin-asm.h: Likewise.
18428 * config/rs6000/darwin-fallback.c: Likewise.
18429 * config/rs6000/darwin-fpsave.asm: Likewise.
18430 * config/rs6000/darwin-ldouble.c: Likewise.
18431 * config/rs6000/darwin-tramp.asm: Likewise.
18432 * config/rs6000/darwin-unwind.h: Likewise.
18433 * config/rs6000/darwin-vecsave.asm: Likewise.
18434 * config/rs6000/darwin-world.asm: Likewise.
18435 * config/rs6000/e500crtres32gpr.asm: Likewise.
18436 * config/rs6000/e500crtres64gpr.asm: Likewise.
18437 * config/rs6000/e500crtres64gprctr.asm: Likewise.
18438 * config/rs6000/e500crtrest32gpr.asm: Likewise.
18439 * config/rs6000/e500crtrest64gpr.asm: Likewise.
18440 * config/rs6000/e500crtresx32gpr.asm: Likewise.
18441 * config/rs6000/e500crtresx64gpr.asm: Likewise.
18442 * config/rs6000/e500crtsav32gpr.asm: Likewise.
18443 * config/rs6000/e500crtsav64gpr.asm: Likewise.
18444 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
18445 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
18446 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
18447 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
18448 * config/rs6000/eabi-ci.asm: Likewise.
18449 * config/rs6000/eabi-cn.asm: Likewise.
18450 * config/rs6000/eabi.asm: Likewise.
18451 * config/rs6000/linux-unwind.h: Likewise.
18452 * config/rs6000/linux64.h: Likewise.
18453 * config/rs6000/paired.h: Likewise.
18454 * config/rs6000/paired.md: Likewise.
18455 * config/rs6000/ppc64-fp.c: Likewise.
18456 * config/rs6000/ppu_intrinsics.h: Likewise.
18457 * config/rs6000/rs6000.h: Likewise.
18458 * config/rs6000/si2vmx.h: Likewise.
18459 * config/rs6000/sol-ci.asm: Likewise.
18460 * config/rs6000/sol-cn.asm: Likewise.
18461 * config/rs6000/spe.h: Likewise.
18462 * config/rs6000/spu2vmx.h: Likewise.
18463 * config/rs6000/sysv4.h: Likewise.
18464 * config/rs6000/tramp.asm: Likewise.
18465 * config/rs6000/vec_types.h: Likewise.
18466 * config/s390/linux-unwind.h: Likewise.
18467 * config/s390/tpf-unwind.h: Likewise.
18468 * config/score/crti.asm: Likewise.
18469 * config/score/crtn.asm: Likewise.
18470 * config/sh/crt1.asm: Likewise.
18471 * config/sh/crti.asm: Likewise.
18472 * config/sh/crtn.asm: Likewise.
18473 * config/sh/divtab-sh4-300.c: Likewise.
18474 * config/sh/divtab-sh4.c: Likewise.
18475 * config/sh/divtab.c: Likewise.
18476 * config/sh/lib1funcs-4-300.asm: Likewise.
18477 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
18478 * config/sh/lib1funcs.asm: Likewise.
18479 * config/sh/lib1funcs.h: Likewise.
18480 * config/sh/linux-atomic.asm: Likewise.
18481 * config/sh/linux-unwind.h: Likewise.
18482 * config/sh/shmedia.h: Likewise.
18483 * config/sh/sshmedia.h: Likewise.
18484 * config/sh/ushmedia.h: Likewise.
18485 * config/sparc/crtfastmath.c: Likewise.
18486 * config/sparc/linux-unwind.h: Likewise.
18487 * config/sparc/sol2-c1.asm: Likewise.
18488 * config/sparc/sol2-ci.asm: Likewise.
18489 * config/sparc/sol2-cn.asm: Likewise.
18490 * config/spu/divmodti4.c: Likewise.
18491 * config/spu/divv2df3.c: Likewise.
18492 * config/spu/float_disf.c: Likewise.
18493 * config/spu/float_unsdidf.c: Likewise.
18494 * config/spu/float_unsdisf.c: Likewise.
18495 * config/spu/float_unssidf.c: Likewise.
18496 * config/spu/mfc_multi_tag_release.c: Likewise.
18497 * config/spu/mfc_multi_tag_reserve.c: Likewise.
18498 * config/spu/mfc_tag_release.c: Likewise.
18499 * config/spu/mfc_tag_reserve.c: Likewise.
18500 * config/spu/mfc_tag_table.c: Likewise.
18501 * config/spu/multi3.c: Likewise.
18502 * config/spu/spu_internals.h: Likewise.
18503 * config/spu/spu_intrinsics.h: Likewise.
18504 * config/spu/spu_mfcio.h: Likewise.
18505 * config/spu/vec_types.h: Likewise.
18506 * config/spu/vmx2spu.h: Likewise.
18507 * config/stormy16/stormy16-lib2.c: Likewise.
18508 * config/svr4.h: Likewise.
18509 * config/sync.c: Likewise.
18510 * config/v850/lib1funcs.asm: Likewise.
18511 * config/vxlib-tls.c: Likewise.
18512 * config/vxlib.c: Likewise.
18513 * config/vxworks-dummy.h: Likewise.
18514 * config/xtensa/crti.asm: Likewise.
18515 * config/xtensa/crtn.asm: Likewise.
18516 * config/xtensa/ieee754-df.S: Likewise.
18517 * config/xtensa/ieee754-sf.S: Likewise.
18518 * config/xtensa/lib1funcs.asm: Likewise.
18519 * config/xtensa/lib2funcs.S: Likewise.
18520 * config/xtensa/linux-unwind.h: Likewise.
18521 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
18522 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
18523 * coretypes.h: Likewise.
18524 * crtstuff.c: Likewise.
18525 * defaults.h: Likewise.
18526 * dwarf2.h: Likewise.
18527 * emutls.c: Likewise.
18528 * gbl-ctors.h: Likewise.
18529 * gcov-io.h: Likewise.
18530 * ginclude/float.h: Likewise.
18531 * ginclude/iso646.h: Likewise.
18532 * ginclude/stdarg.h: Likewise.
18533 * ginclude/stdbool.h: Likewise.
18534 * ginclude/stddef.h: Likewise.
18535 * ginclude/stdfix.h: Likewise.
18536 * ginclude/stdint-gcc.h: Likewise.
18537 * ginclude/tgmath.h: Likewise.
18538 * gthr-aix.h: Likewise.
18539 * gthr-dce.h: Likewise.
18540 * gthr-gnat.c: Likewise.
18541 * gthr-gnat.h: Likewise.
18542 * gthr-lynx.h: Likewise.
18543 * gthr-mipssde.h: Likewise.
18544 * gthr-nks.h: Likewise.
18545 * gthr-posix.c: Likewise.
18546 * gthr-posix.h: Likewise.
18547 * gthr-posix95.h: Likewise.
18548 * gthr-rtems.h: Likewise.
18549 * gthr-single.h: Likewise.
18550 * gthr-solaris.h: Likewise.
18551 * gthr-tpf.h: Likewise.
18552 * gthr-vxworks.h: Likewise.
18553 * gthr-win32.h: Likewise.
18554 * gthr.h: Likewise.
18555 * libgcc2.c: Likewise.
18556 * libgcc2.h: Likewise.
18557 * libgcov.c: Likewise.
18558 * tsystem.h: Likewise.
18559 * typeclass.h: Likewise.
18560 * unwind-c.c: Likewise.
18561 * unwind-compat.h: Likewise.
18562 * unwind-dw2-fde-compat.c: Likewise.
18563 * unwind-dw2-fde-darwin.c: Likewise.
18564 * unwind-dw2-fde-glibc.c: Likewise.
18565 * unwind-dw2-fde.c: Likewise.
18566 * unwind-dw2-fde.h: Likewise.
18567 * unwind-dw2.c: Likewise.
18568 * unwind-dw2.h: Likewise.
18569 * unwind-generic.h: Likewise.
18570 * unwind-pe.h: Likewise.
18571 * unwind-sjlj.c: Likewise.
18572 * unwind.inc: Likewise.
18573 * config/arm/neon-gen.ml: Change generated copyright header to
18574 refer to version 3 of the GNU General Public License with
18575 version 3.1 of the GCC Runtime Library Exception and to point
18576 readers at the COPYING3 and COPYING3.RUNTIME files and the
18577 FSF's license web page.
18578 * config/arm/arm_neon.h: Regenerate.
18579
185802009-04-09 Jakub Jelinek <jakub@redhat.com>
18581
18582 * config/cris/cris.md: Change copyright header to refer to version
18583 3 of the GNU General Public License.
18584 * doc/install.texi2html: Change copyright header to refer to version
18585 3 of the GNU General Public License and to point readers at the
18586 COPYING3 file and the FSF's license web page.
18587 * config/vax/linux.h: Likewise.
18588
4a77c72b
PB
185892009-04-09 Paolo Bonzini <bonzini@gnu.org>
18590
1ad2f450
L
18591 * config/i386/i386.md (cmpcc): New.
18592 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
18593 (sync_compare_and_swap_cc*): Delete.
18594
18595 * config/s390/s390.c (s390_compare_emitted): Remove.
18596 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
18597 s390_compare_emitted used to be handled. Assert that modes match.
18598 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
18599 refer to sync_compare_and_swap_ccsi.
18600 * config/s390/s390.h (s390_compare_emitted): Remove.
18601 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
18602 instead of s390_compare_emitted.
18603 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
18604 instead of s390_compare_emitted.
18605 * config/s390/s390.md (cmpcc): New.
18606 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
18607 CC_REGNUM, do not pretend it's set.
18608 (sync_compare_and_swap_cc*): Delete.
18609 * config/s390/predicates.md (cc_reg_operand): New.
18610
18611 * expr.c (sync_compare_and_swap_cc): Delete.
18612 * optabs.h (sync_compare_and_swap_cc): Delete.
18613 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
18614 is being used with can_compare_p.
18615 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
18616 (find_cc_set): New.
18617 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
18618 look for a MODE_CC set instead. Use emit_store_flag.
18619 (expand_compare_and_swap_loop): Likewise, with some additional
18620 complication to avoid a force_reg when useless. Use
18621 emit_cmp_and_jump_insns.
18622 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
18623 * doc/md.texi (sync_compare_and_swap_cc): Merge with
18624 sync_compare_and_swap documentation.
4a77c72b 18625
0c0efb33
JH
186262009-04-09 Jan Hubicka <jh@suse.cz>
18627
18628 * except.c (find_prev_try): Break out from ....
18629 (duplicate_eh_regions): ... here; properly update prev_try pointers
18630 when duplication part of tree.
18631 (dump_eh_tree): Improve dumping.
18632 (verify_eh_region): New.
18633 (verify_eh_tree): Use it.
18634
22a65a54
RG
186352009-04-06 Richard Guenther <rguenther@suse.de>
18636
18637 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
18638 &ARRAY addresses by adjusting their types and prepending
18639 a conversion.
18640 * tree-cfg.c (verify_gimple_assign_single): Verify that
18641 addresses are correct.
18642
f76968e6
RG
186432009-04-09 Richard Guenther <rguenther@suse.de>
18644
18645 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
18646 indices into an array reference if possible.
18647 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
18648 Fold POINTER_PLUS_EXPR statements with invariant address.
18649
c90c5fb5
AM
186502009-04-09 Alan Modra <amodra@bigpond.net.au>
18651
18652 PR target/39634
18653 * config.gcc (powerpc64-*-linux*): Always build biarch.
18654
17cede2e
JM
186552009-04-09 Joseph Myers <joseph@codesourcery.com>
18656
18657 PR c/39613
18658 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
18659 it and pedwarn if this results in an INTEGER_CST.
18660
a3337ea2
KG
186612009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18662
18663 * doc/install.texi: Update minimum GMP version. Remove obsolete
18664 text in MPFR section.
18665
ce9ba79b
JJ
186662009-04-08 Jakub Jelinek <jakub@redhat.com>
18667
18668 * dwarf2out.c (class_scope_p): New static inline.
18669 (class_or_namespace_scope_p): Use it.
18670 (gen_variable_die): Use DW_TAG_member tag for static data member
18671 declarations instead of DW_TAG_variable.
18672
4f0ae266
JJ
18673 PR middle-end/39573
18674 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
18675 variables.
18676
d27f0ddc
RG
186772009-04-08 Richard Guenther <rguenther@suse.de>
18678
18679 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
18680 valueize random data.
18681
557cc596
DE
186822009-04-08 David Edelsohn <edelsohn@gnu.org>
18683
18684 * config.gcc (aix tm_file): Add aix-stdint.h.
18685 (aix tm clause use_gcc_stdint): Set to wrap.
18686 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 18687
75ccc1e7
RG
186882009-04-08 Richard Guenther <rguenther@suse.de>
18689
18690 PR middle-end/36291
18691 * tree-dfa.c (add_referenced_var): Do not recurse into
18692 global initializers.
18693 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
18694 exposed variables.
18695 (fold_const_aggregate_ref): Likewise.
18696
c6963675
PB
186972009-04-08 Paolo Bonzini <bonzini@gnu.org>
18698
6c44cf79
L
18699 * recog.c (ordered_comparison_operator): New.
18700 * gensupport.c (std_preds): Add it.
c6963675
PB
18701 * doc/md.texi (Machine-Independent Predicates): Document it.
18702
6d07ad98
JH
187032009-04-08 Jan Hubicka <jh@suse.cz>
18704
18705 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
18706 * function.h (rtl_eh): Remove exception_handler_label_map.
18707 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
18708 remove_exception_handler_label, for_each_eh_label_1): Remove.
18709 (rtl_remove_unreachable_regions): Remove.
18710 (convert_from_eh_region_ranges): Do not remove unreachable regions.
18711 (find_exception_handler_labels): Don't build the hashtable.
18712 (maybe_remove_eh_handler): Remove.
18713 (for_each_eh_label): Rewrite to walk the tree.
18714 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
18715 * except.h (maybe_remove_eh_handler): Remove.
18716 * passes.c (init_optimization_passes): Schedule second EH cleanup
18717 before out-of-ssa.
18718 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
18719 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
18720
7ddf71e3
PB
187212009-04-08 Paolo Bonzini <bonzini@gnu.org>
18722
18723 * genoutput.c (validate_optab_operands): New.
18724 (gen_insn, gen_expand): Call it.
18725
18726 * genflags.c (gen_insn): Detect misused iterators.
18727 (main): Pass line_no to gen_insn, exit with status 1 on error.
18728
18729 * genextract.c (line_no): Make global.
18730 (VEC_safe_set_locstr): Change assertion to error message.
18731 (main): Exit with status 1 on error.
18732
4d84fe7c
JM
187332009-04-08 Joseph Myers <joseph@codesourcery.com>
18734
18735 PR c/39614
18736 PR c/39673
18737 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
18738 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
18739 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
18740 * c-convert.c (convert): Do not call fold on results of conversion
18741 functions when the result is a C_MAYBE_CONST_EXPR.
18742 * c-parser.c (c_parser_postfix_expression): Do not fold condition
18743 of __builtin_choose_expr.
18744 * c-typeck.c (remove_c_maybe_const_expr): New.
18745 (build_unary_op, build_conditional_expr, build_compound_expr,
18746 build_binary_op, c_objc_common_truthvalue_conversion): Call
18747 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
18748 integer operands.
18749
60839f5d 187502009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 18751
2ba9daa7 18752 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 18753 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 18754
8e481a2c
DS
187552009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
18756
18757 PR bootstrap/39660
18758 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
18759 mix declarations and code.
18760
ee618c17
BE
187612009-04-08 Ben Elliston <bje@au.ibm.com>
18762
18763 * gcc.c: Replace `CC' with `GCC' throughout.
18764
f2a758a2
L
187652009-04-07 H.J. Lu <hongjiu.lu@intel.com>
18766
18767 * doc/invoke.texi: Document Atom support.
18768
6ea2bd47
JM
187692009-04-07 Jason Merrill <jason@redhat.com>
18770
18771 PR c++/25185
18772 * c-common.h, c-common.c: Add flag_pretty_templates.
18773 * c-opts.c (c_common_handle_option): Set it.
18774 * c.opt: Add -fno-pretty-templates.
18775 * doc/invoke.texi (C++ Dialect Options): Likewise.
18776
fcb82ab0
UB
187772009-04-07 Uros Bizjak <ubizjak@gmail.com>
18778
18779 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
18780 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
18781 (ia64_expand_builtin): Likewise.
18782
dc5e7298
MJ
187832009-04-07 Martin Jambor <mjambor@suse.cz>
18784
18785 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
18786 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
18787 ADDR_EXPRS are include too.
18788
0609b355
RG
187892009-04-07 Richard Guenther <rguenther@suse.de>
18790
18791 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
18792 decls are only used if passes as parameters or if they are
18793 local statics and the call is not to a builtin.
18794 (call_may_clobber_ref_p_1): Likewise.
18795
d8e535fa
PB
187962009-04-07 Paolo Bonzini <bonzini@gnu.org>
18797
18798 * expr.c (do_store_flag): Remove last argument. Simplify code
18799 to avoid duplication of tests already done by can_compare_p.
18800 (expand_expr_real_1): Adjust caller.
18801
c3c64f50
PB
188022009-04-07 Paolo Bonzini <bonzini@gnu.org>
18803
fcb82ab0
UB
18804 * optabs.c (can_compare_p): Test the predicate of a
18805 cbranch and cstore pattern.
c3c64f50 18806
9a53bc17
PB
188072009-04-07 Paolo Bonzini <bonzini@gnu.org>
18808
fcb82ab0
UB
18809 * expr.c (convert_move): Use emit_store_flag instead of
18810 "emulating" it.
9a53bc17 18811
67b8f1c1
PB
188122009-04-07 Paolo Bonzini <bonzini@gnu.org>
18813
fcb82ab0
UB
18814 * config/i386/i386.c (ix86_compare_emitted): Remove.
18815 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
18816 ix86_compare_op0 like ix86_compare_emitted used to be handled.
18817 * config/i386/i386.h (ix86_compare_emitted): Remove.
18818 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
18819 instead of ix86_compare_emitted.
18820 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 18821
44509946
AS
188222009-04-07 Andrew Stubbs <ams@codesourcery.com>
18823
18824 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
18825 Add t-sysroot-suffix to tmake_file.
18826 * config/print-sysroot-suffix.sh: New file.
18827 * config/t-sysroot-suffix: New file.
18828
ca22d882
BE
188292009-04-07 Ben Elliston <bje@au.ibm.com>
18830
18831 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
18832 as the latter produces a warning when the target does not support
18833 infinity.
18834
95aac11b
BE
188352009-04-07 Ben Elliston <bje@au.ibm.com>
18836
18837 * dfp.c: Replace type punning assignments with memcpy throughout.
18838 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 18839
633dd061
AM
188402009-04-07 Alan Modra <amodra@bigpond.net.au>
18841
18842 PR target/39634
18843 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
18844 Include soft-fp/t-softfp after rs6000/t-linux64.
18845
fe0a25ec
EB
188462009-04-06 Eric Botcazou <ebotcazou@adacore.com>
18847
18848 * stor-layout.c (set_sizetype): Use the full precision of their
18849 machine mode for bitsize types.
18850
0c011bc3
L
188512009-04-06 H.J. Lu <hongjiu.lu@intel.com>
18852
18853 * config/i386/i386.md: Revert 2 accidental checkins.
18854
b6837b94 188552009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 18856 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
18857 H.J. Lu <hongjiu.lu@intel.com>
18858
18859 Atom pipeline model, tuning and insn selection.
18860 * config.gcc (atom): Add atom config options and target.
18861
18862 * config/i386/atom.md: New.
18863
18864 * config/i386/i386.c (atom_cost): New cost.
18865 (m_ATOM): New macro flag.
18866 (initial_ix86_tune_features): Set m_ATOM.
18867 (x86_accumulate_outgoing_args): Likewise.
18868 (x86_arch_always_fancy_math_387): Likewise.
18869 (processor_target): Add Atom cost.
18870 (cpu_names): Add Atom cpu name.
18871 (override_options): Set Atom ISA.
18872 (ix86_issue_rate): New case PROCESSOR_ATOM.
18873 (ix86_adjust_cost): Likewise.
18874
18875 * config/i386/i386.h (TARGET_ATOM): New target macro.
18876 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
18877 (TARGET_OPT_AGU): New target option.
18878 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
18879 (processor_type): Add PROCESSOR_ATOM.
18880
18881 * config/i386/i386.md (cpu): Add new value "atom".
18882 (use_carry, movu): New attr.
18883 (atom.md): Include atom.md.
18884 (adddi3_carry_rex64): Set attr "use_carry".
18885 (addqi3_carry): Likewise.
18886 (addhi3_carry): Likewise.
18887 (addsi3_carry): Likewise.
18888 (*addsi3_carry_zext): Likewise.
18889 (subdi3_carry_rex64): Likewise.
18890 (subqi3_carry): Likewise.
18891 (subhi3_carry): Likewise.
18892 (subsi3_carry): Likewise.
18893 (x86_movdicc_0_m1_rex64): Likewise.
18894 (*x86_movdicc_0_m1_se): Likewise.
18895 (x86_movsicc_0_m1): Likewise.
18896 (*x86_movsicc_0_m1_se): Likewise.
18897 (*adddi_1_rex64): Emit add insn as much as possible.
18898 (*addsi_1): Likewise.
18899 (return_internal): Set atom_unit.
18900 (return_internal_long): Likewise.
18901 (return_pop_internal): Likewise.
18902 (*rcpsf2_sse): Set atom_sse_attr attr.
18903 (*qrt<mode>2_sse): Likewise.
18904 (*prefetch_sse): Likewise.
18905
18906 * config/i386/i386-c.c (ix86_target_macros_internal): New case
18907 PROCESSOR_ATOM.
18908 (ix86_target_macros_internal): Likewise.
18909
18910 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
18911 (*prefetch_sse_rex): Likewise.
18912 (sse_rcpv4sf2): Likewise.
18913 (sse_vmrcpv4sf2): Likewise.
18914 (sse_sqrtv4sf2): Likewise.
18915 (<sse>_vmsqrt<mode>2): Likewise.
18916 (sse_ldmxcsr): Likewise.
18917 (sse_stmxcsr): Likewise.
18918 (*sse_sfence): Likewise.
18919 (sse2_clflush): Likewise.
18920 (*sse2_mfence): Likewise.
18921 (*sse2_lfence): Likewise.
18922 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
18923 (<sse>_movup<ssemodesuffixf2c>): Likewise.
18924 (avx_movdqu<avxmodesuffix>): Likewise.
18925 (avx_lddqu<avxmodesuffix>): Likewise.
18926 (sse2_movntv2di): Change attr "type" to "ssemov".
18927 (sse2_movntsi): Likewise.
18928 (rsqrtv8sf2): Change attr "type" to "sseadd".
18929 (sse3_addsubv2df3): Set attr "atom_unit".
18930 (sse3_h<plusminus_insn>v4sf3): Likewise.
18931 (*sse2_pmaddwd): Likewise.
18932 (*vec_extractv2di_1_rex64): Likewise.
18933 (*vec_extractv2di_1_avx): Likewise.
18934 (sse2_psadbw): Likewise.
18935 (ssse3_phaddwv8hi3): Likewise.
18936 (ssse3_phaddwv4hi3): Likewise.
18937 (ssse3_phadddv4si3): Likewise.
18938 (ssse3_phadddv2si3): Likewise.
18939 (ssse3_phaddswv8hi3): Likewise.
18940 (ssse3_phaddswv4hi3): Likewise.
18941 (ssse3_phsubwv8hi3): Likewise.
18942 (ssse3_phsubwv4hi3): Likewise.
18943 (ssse3_phsubdv4si3): Likewise.
18944 (ssse3_phsubdv2si3): Likewise.
18945 (ssse3_phsubswv8hi3): Likewise.
18946 (ssse3_phsubswv4hi3): Likewise.
18947 (ssse3_pmaddubsw128): Likewise.
18948 (sse3_pmaddubsw: Likewise.
18949 (ssse3_palignrti): Likewise.
18950 (ssse3_palignrdi): Likewise.
18951
53e350d3
GP
189522009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
18953
18954 * doc/install.texi (Specific): Fix two cross-references to MinGW.
18955
439ef907
RG
189562009-04-06 Richard Guenther <rguenther@suse.de>
18957
18958 PR tree-optimization/28868
18959 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
18960 of which PHI results we inserted.
18961 (insert_into_preds_of_block): Record inserted PHIs.
18962 (eliminate): Eliminate redundant PHI nodes.
18963 (init_pre): Init inserted_phi_names.
18964
4bad83f5
RG
189652009-04-06 Richard Guenther <rguenther@suse.de>
18966
18967 PR tree-optimization/39643
18968 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
18969 IMAGPART_EXPRs of complex constants.
18970 (execute_fold_all_builtins): If we folded a call queue
18971 TODO_update_address_taken.
18972
570c4247
JH
189732009-04-06 Jan Hubicka <jh@suse.cz>
18974
18975 PR middle-end/39659
18976 * except.c (remove_unreachable_regions): Propagate may_contain_throw
18977 flag.
18978
a460d7a1
AS
189792009-04-06 Andrew Stubbs <ams@codesourcery.com>
18980
18981 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
18982 delay slot.
18983 (ic_invalidate_array): Likewise.
18984
60839f5d 189852009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
18986
18987 * calls.c (emit_library_call_value_1): Fix a problem with parameter
18988 alignment for library calls.
18989
7d253f6e
DS
189902009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
18991
18992 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
18993 (mingw32 tm clause use_gcc_stdint): Set to wrap.
18994 * config/i386/mingw-stdint.h: New file.
18995
941c3614
RB
189962009-04-05 Richard Guenther <rguenther@suse.de>
18997
18998 PR tree-optimization/39648
18999 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
19000 our &A vs. &A[0] IL deficiencies.
19001
12633413
JH
190022009-04-04 Jan Hubicka <jh@suse.cz>
19003
941c3614
RB
19004 * except.c (sjlj_find_directly_reachable_regions): Be ready for
19005 removed toplevel regions.
12633413
JH
19006 (sjlj_mark_call_sites): Likewise.
19007
bb2aaded
DK
190082009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
19009
19010 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
19011 (cygwin tm clause use_gcc_stdint): Set to wrap.
19012 * config/i386/cygwin-stdint.h: New file.
19013
86290011
RG
190142009-04-04 Richard Guenther <rguenther@suse.de>
19015
19016 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
19017 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
19018 single-argument PHIs if we are in loop-closed SSA form.
19019 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
19020 for the pre-condition.
19021 (slpeel_tree_peel_loop_to_edge): Likewise.
19022 (vect_build_loop_niters): Take an optional sequence to append stmts.
19023 (vect_generate_tmps_on_preheader): Likewise.
19024 (vect_do_peeling_for_loop_bound): Take extra guards for the
19025 pre-condition.
19026 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
19027 the cost model check.
19028 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 19029 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
19030 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
19031 (vect_do_peeling_for_loop_bound): Likewise.
19032 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
19033 loop bound only record extra pre-conditions, do not apply loop
19034 versioning.
19035
5eeeac64
RG
190362009-04-04 Richard Guenther <rguenther@suse.de>
19037
19038 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
19039 renaming code.
19040
1ff7d06b
JH
190412009-04-04 Jan Hubicka <jh@suse.cz>
19042
19043 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
19044 last_basic_block for size of bb->index indexed array.
19045 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
19046 compute_out, link_btr_uses, build_btr_def_use_webs,
19047 build_btr_def_use_webs, migrate_btr_defs): Likewise.
19048
14925fcd
JH
190492009-04-04 Jan Hubicka <jh@suse.cz>
19050
19051 * except.c (remove_eh_handler_and_replace): Break out from ...
19052 (remove_eh_handler): ... here.
19053 (bring_to_root): New function.
19054 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
19055 handled ones, bring others to root of tree.
19056
4e6d1743
JH
190572009-04-04 Jan Hubicka <jh@suse.cz>
19058
4cb735f7
JH
19059 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
19060 (all_phis_safe_to_merge): New function.
19061 (update_info): New structure.
19062 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
19063 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 19064
c6803d43
RG
190652009-04-04 Richard Guenther <rguenther@suse.de>
19066
19067 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
19068 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
19069 (append_vuse): Likewise.
19070
54f5943c
JJ
190712009-04-04 Jakub Jelinek <jakub@redhat.com>
19072
19073 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
19074 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
19075 instead of REG_UNSAVED for DW_CFA_undefined.
19076 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
19077 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
19078 outermost frame.
19079
aad2bccb
RE
190802009-04-04 Richard Earnshaw <rearnsha@arm.com>
19081
19082 PR target/39501
19083 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
19084 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
19085 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
19086
aa7069aa
RG
190872009-04-04 Richard Guenther <rguenther@suse.de>
19088
19089 PR tree-optimization/8781
19090 PR tree-optimization/37892
19091 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
19092 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
19093 (valueize_refs): Call it for *& valueizations.
19094 (shared_reference_ops_from_ref): Rename to ...
19095 (valueize_shared_reference_ops_from_ref): ... this and valueize.
19096 (shared_reference_ops_from_call): Rename to ...
19097 (valueize_shared_reference_ops_from_call): ... this and valueize.
19098 (vn_reference_lookup): Update.
19099 (visit_reference_op_call): Likewise.
19100 * tree-ssa-pre.c (phi_translate_1): Fold *&.
19101 (eliminate): Value-replace the call address in call statements.
19102
cd15ad3e
RG
191032009-04-04 Richard Guenther <rguenther@suse.de>
19104
19105 PR tree-optimization/39636
19106 * tree-ssa-forwprop.c
19107 (forward_propagate_addr_into_variable_array_index): Check for
19108 GIMPLE_ASSIGN before accessing the rhs code.
19109
462f3262
JM
191102009-04-03 Jason Merrill <jason@redhat.com>
19111
19112 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
19113
6adb807e
SE
191142009-04-03 Steve Ellcey <sje@cup.hp.com>
19115
19116 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
19117 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
19118 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
19119 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
19120 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
19121 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
19122 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
19123 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
19124 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
19125 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
19126 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
19127 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
19128 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
19129 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
19130 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
19131 Use fr_reg_or_fp01_operand instead of fr_register_operand
19132
19133 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
19134 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
19135 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
19136
174b3107
VM
191372009-04-03 Vladimir Makarov <vmakarov@redhat.com>
19138
b844e5d8
L
19139 PR rtl-optimization/39607
19140 PR rtl-optimization/39631
7a715bba
UB
19141
19142 Revert:
2ba9daa7 19143
174b3107
VM
19144 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
19145 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
19146 instead of DF_LR_OUT.
19147 * ira-lives.c (process_bb_node_lives): Ditto.
19148 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
19149 instead of DF_LR_{OUT,IN}.
19150 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
19151 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
19152
535b544a
SB
191532009-04-03 Steven Bosscher <steven@gcc.gnu.org>
19154
19155 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
19156 (execute_lower_omp): Always run but take the short way out if -fopenmp
19157 is not given.
19158 (gate_lower_omp): Remove, forcing the pass manager to always run the
19159 pass and always set PROP_gimple_lomp.
19160 (pass_lower_omp): Remove gate function.
19161 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
19162 PROP_trees. Instead, require it.
19163 * ipa-cp.c (pass_ipa_cp): Likewise.
19164 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
19165 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
19166 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
19167 and PROP_gimple_leh.
19168
5006671f
RG
191692009-04-03 Richard Guenther <rguenther@suse.de>
19170
19171 PR middle-end/13146
19172 PR tree-optimization/23940
19173 PR tree-optimization/33237
19174 PR middle-end/33974
19175 PR middle-end/34093
19176 PR tree-optimization/36201
19177 PR tree-optimization/36230
19178 PR tree-optimization/38049
19179 PR tree-optimization/38207
19180 PR tree-optimization/38230
19181 PR tree-optimization/38301
19182 PR tree-optimization/38585
19183 PR middle-end/38895
19184 PR tree-optimization/38985
19185 PR tree-optimization/39299
19186 * tree-ssa-structalias.h: Remove.
19187 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
19188 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
19189 (struct vuse_element_d): Remove.
19190 (struct vuse_vec_d): Likewise.
19191 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
19192 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
19193 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
19194 VUSE_ELEMENT_VAR): Likewise.
19195 (struct voptype_d): Likewise.
19196 (NUM_VOP_FREE_BUCKETS): Likewise.
19197 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
19198 (struct stmt_operands_d): Remove.
19199 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
19200 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
19201 VDEF_NUM, VDEF_VECT): Likewise.
19202 (copy_virtual_operands): Remove.
19203 (operand_build_cmp): Likewise.
19204 (create_ssa_artificial_load_stmt): Likewise.
19205 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
19206 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
19207 vuse_index and mayuse_index members. Pack and move done and iter_type
19208 members to the front.
19209 (SSA_OP_VMAYUSE): Remove.
19210 (SSA_OP_VIRTUAL_USES): Adjust.
19211 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
19212 (unlink_stmt_vdef): Declare.
19213 (add_to_addressable_set): Remove.
19214 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
19215 (vrp_visit_stmt): Likewise.
19216 * doc/tree-ssa.texi (Alias analysis): Update.
19217 * doc/invoke.texi (max-aliased-vops): Remove docs.
19218 (avg-aliased-vops): Likewise.
19219 * tree-into-ssa.c (syms_to_rename): Remove.
19220 (need_to_update_vops_p): Likewise.
19221 (need_to_initialize_update_ssa_p): Rename to ...
19222 (update_ssa_initialized_fn): ... this. Track function we are
19223 initialized for.
19224 (symbol_marked_for_renaming): Simplify.
19225 (add_new_name_mapping): Do not set need_to_update_vops_p.
19226 (dump_currdefs): Use SYMS_TO_RENAME.
19227 (rewrite_update_stmt): Always walk all uses/defs.
19228 (dump_update_ssa): Adjust.
19229 (init_update_ssa): Take function argument. Track what we are
19230 initialized for.
19231 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
19232 (create_new_def_for): Initialize for cfun, assert we are initialized
19233 for cfun.
19234 (mark_sym_for_renaming): Simplify.
19235 (mark_set_for_renaming): Do not initialize update-ssa.
19236 (need_ssa_update_p): Simplify. Take function argument.
19237 (name_mappings_registered_p): Assert we ask for the correct function.
19238 (name_registered_for_update_p): Likewise.
19239 (ssa_names_to_replace): Likewise.
19240 (release_ssa_name_after_update_ssa): Likewise.
19241 (update_ssa): Likewise. Use SYMS_TO_RENAME.
19242 (dump_decl_set): Do not print a newline.
19243 (debug_decl_set): Do it here.
19244 (dump_update_ssa): And here.
19245 * tree-ssa-loop-im.c (move_computations): Adjust.
19246 (movement_possibility): Likewise.
19247 (determine_max_movement): Likewise.
19248 (gather_mem_refs_stmt): Likewise.
19249 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
19250 or NAME_MEMORY_TAG.
19251 * tree-complex.c (update_all_vops): Remove.
19252 (expand_complex_move): Adjust.
19253 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
19254 Simplify test for memory referencing statement. Exclude
19255 non-invariant ADDR_EXPRs.
19256 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
19257 * tree-loop-distribution.c (generate_memset_zero): Adjust.
19258 (rdg_flag_uses): Likewise.
19259 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
19260 related code.
19261 (tree_optimize_tail_calls_1): Also split the
19262 edge from the entry block if we have degenerate PHI nodes in
19263 the first basic block.
19264 * tree.c (init_ttree): Remove memory-tag related code.
19265 (tree_code_size): Likewise.
19266 (tree_node_structure): Likewise.
19267 (build7_stat): Re-write to be build6_stat.
19268 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
19269 (SSA_VAR_P): Adjust.
19270 (struct tree_memory_tag): Remove.
19271 (struct tree_memory_partition_tag): Likewise.
19272 (union tree_node): Adjust.
19273 (build7): Re-write to be build6.
19274 * tree-pass.h (pass_reset_cc_flags): Remove.
19275 (TODO_update_address_taken): New flag.
19276 (pass_simple_dse): Remove.
19277 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
19278 * params.h (MAX_ALIASED_VOPS): Remove.
19279 (AVG_ALIASED_VOPS): Likewise.
19280 * omp-low.c (expand_omp_taskreg): Update SSA form.
19281 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
19282 aliases the lhs in a copy stmt.
19283 * tree-ssa-dse.c (struct address_walk_data): Remove.
19284 (memory_ssa_name_same): Likewise.
19285 (memory_address_same): Likewise.
19286 (get_kill_of_stmt_lhs): Likewise.
19287 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
19288 unused stores. Look through PHI nodes into post-dominated regions.
19289 (dse_optimize_stmt): Simplify. Properly remove stores.
19290 (tree_ssa_dse): Compute dominators.
19291 (execute_simple_dse): Remove.
19292 (pass_simple_dse): Likewise.
19293 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
19294 gimple_loaded_syms and gimple_stored_syms computation.
19295 * toplev.c (dump_memory_report): Dump alias and pta stats.
19296 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
19297 (vn_reference_eq): Likewise.
19298 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
19299 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
19300 valueize_vuses): Remove.
19301 (get_def_ref_stmt_vuses): Simplify. Rename to ...
19302 (get_def_ref_stmt_vuse): ... this.
19303 (vn_reference_lookup_2): New function.
19304 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
19305 walking equivalent vuses. Simplify.
19306 (vn_reference_lookup): Likewise.
19307 (vn_reference_insert): Likewise.
19308 (vn_reference_insert_pieces): Likewise.
19309 (visit_reference_op_call): Simplify.
19310 (visit_reference_op_load): Likewise.
19311 (visit_reference_op_store): Likewise.
19312 (init_scc_vn): Remove shared_lookup_vuses initialization.
19313 (free_scc_vn): Remove shared_lookup_vuses freeing.
19314 (sort_vuses, sort_vuses_heap): Remove.
19315 (get_ref_from_reference_ops): Export.
19316 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
19317 vector with single vuse pointer.
19318 (vn_reference_lookup_pieces, vn_reference_lookup,
19319 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
19320 (shared_vuses_from_stmt): Remove.
19321 (get_ref_from_reference_ops): Declare.
19322 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
19323 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
19324 memory-tag related code.
19325 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
19326 (likely_value): Add comment, skip static-chain of call statements.
19327 (surely_varying_stmt_p): Adjust.
19328 (gimplify_and_update_call_from_tree): Likewise.
19329 (execute_fold_all_builtins): Do not rebuild alias info.
19330 (gimplify_and_update_call_from_tree): Properly update VOPs.
19331 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
19332 (copy_ref_info): Remove memory-tag related code.
19333 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
19334 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
19335 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
19336 computation.
19337 * tree-ssa-dom.c (gimple_p): Remove typedef.
19338 (eliminate_redundant_computations): Adjust.
19339 (record_equivalences_from_stmt): Likewise.
19340 (avail_expr_hash): Likewise.
19341 (avail_expr_eq): Likewise.
7a715bba 19342 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
19343 (stmt_makes_single_load): Likewise.
19344 (stmt_makes_single_store): Likewise.
19345 * tree-ssa-alias.c: Rewrite completely.
19346 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
19347 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
19348 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
19349 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
19350 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
19351 Remove public functions.
19352 (pass_reset_cc_flags): Remove.
19353 (pass_build_alias): Move ...
19354 * tree-ssa-structalias.c (pass_build_alias): ... here.
19355 * tree-ssa-alias.c (may_be_aliased): Move ...
19356 * tree-flow-inline.h (may_be_aliased): ... here.
19357 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
19358 count_uses_and_derefs): Move ...
19359 * gimple.c: ... here.
19360 * gimple.h (count_uses_and_derefs): Declare.
19361 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
19362 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
19363 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
19364 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
19365 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
19366 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
19367 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
19368 New functions.
19369 * tree-dfa.c (refs_may_alias_p): Move ...
19370 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
19371 * tree-ssa-alias.h: New file.
19372 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
19373 (statement_sink_location): Likewise.
19374 * opts.c (decode_options): Do not adjust max-aliased-vops or
19375 avg-aliased-vops values.
19376 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
19377 (TV_CALL_CLOBBER): Likewise.
19378 (TV_FLOW_SENSITIVE): Likewise.
19379 (TV_FLOW_INSENSITIVE): Likewise.
19380 (TV_MEMORY_PARTITIONING): Likewise.
19381 (TV_ALIAS_STMT_WALK): New timevar.
19382 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
19383 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
19384 (get_address_description): Remove memory-tag related code.
19385 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
19386 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
19387 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
19388 and immediate uses in statements. Document.
19389 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
19390 (dump_symbols): Remove.
19391 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
19392 * alias.c (get_deref_alias_set): New function split out from ...
19393 (get_alias_set): ... here.
19394 * alias.h (get_deref_alias_set): Declare.
19395 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
19396 type parameter. Remove restrict pointer handling. Create a
19397 ref-all pointer in case type-based alias sets do not conflict.
19398 (vect_analyze_data_refs): Remove SMT related code.
19399 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
19400 (vectorizable_load): Likewise.
19401 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
19402 (DR_SYMBOL_TAG, DR_VOPS): Remove.
19403 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
19404 Ignore vops and SMTs.
19405 (dr_analyze_alias): Likewise..
19406 (free_data_ref): Likewise.
19407 (create_data_ref): Likewise.
19408 (analyze_all_data_dependences): Likewise.
19409 (get_references_in_stmt): Adjust.
19410 * tree-flow-inline.h (gimple_aliases_computed_p,
19411 gimple_addressable_vars, gimple_call_clobbered_vars,
19412 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
19413 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
19414 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
19415 gimple_mem_ref_stats): Remove.
19416 (gimple_vop): New function.
19417 (op_iter_next_use): Remove vuses and mayuses cases.
19418 (op_iter_next_def): Remove vdefs case.
19419 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
19420 (clear_and_done_ssa_iter): Do not set removed fields.
19421 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
19422 Assert we are not iterating over vuses or vdefs if not also
19423 iterating over uses or defs.
19424 (op_iter_init_use): Likewise.
19425 (op_iter_init_def): Likewise.
19426 (op_iter_next_vdef): Remove.
19427 (op_iter_next_mustdef): Likewise.
19428 (op_iter_init_vdef): Likewise.
19429 (compare_ssa_operands_equal): Likewise.
19430 (link_use_stmts_after): Handle vuse operand.
19431 (is_call_used): Use is_call_clobbered.
19432 (is_call_clobbered): Global variables are always call clobbered,
19433 query the call-clobbers bitmap.
19434 (mark_call_clobbered): Ignore global variables.
19435 (clear_call_clobbered): Likewise.
19436 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
19437 virtual operands sanity check.
19438 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
19439 Remove.
19440 (TARGET_MEM_REF): Remove TMR_TAG operand.
19441 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
19442 Remove call-clobber related code.
19443 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
19444 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
19445 partitions or escape reason.
19446 (get_single_def_stmt, get_single_def_stmt_from_phi,
19447 get_single_def_stmt_with_phi): Remove.
19448 (dump_referenced_vars): Tidy.
19449 (get_ref_base_and_extent): Allow bare decls.
19450 (collect_dfa_stats): Adjust.
19451 * graphite.c (rename_variables_in_stmt): Adjust.
19452 (graphite_copy_stmts_from_block): Likewise.
19453 (translate_clast): Likewise.
19454 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
19455 (EXPR_DIES): New.
19456 (translate_vuse_through_block): Use the oracle.
19457 (phi_translate_1): Adjust.
19458 (value_dies_in_block_x): Use the oracle. Cache the outcome
19459 in EXPR_DIES.
19460 (valid_in_sets): Check if the VUSE for
19461 a REFERENCE is available.
19462 (eliminate): Do not remove stmts during elimination,
19463 instead queue and remove them afterwards.
19464 (do_pre): Do not rebuild alias info.
19465 (pass_pre): Run TODO_rebuild_alias before PRE.
19466 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
19467 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
19468 (mark_all_v_defs_stmt): Remove.
19469 (mark_all_v_defs_seq): Adjust.
19470 (sra_replace): Likewise.
19471 (scalarize_use): Likewise.
19472 (scalarize_copy): Likewise.
19473 (scalarize_init): Likewise.
19474 (scalarize_ldst): Likewise.
19475 (todoflags): Remove.
19476 (tree_sra): Do not rebuild alias info.
19477 (tree_sra_early): Adjust.
19478 (pass_sra): Run TODO_update_address_taken before SRA.
19479 * tree-predcom.c (set_alias_info): Remove.
19480 (prepare_initializers_chain): Do not call it.
19481 (mark_virtual_ops_for_renaming): Adjust.
19482 (mark_virtual_ops_for_renaming_list): Remove.
19483 (initialize_root_vars): Adjust.
19484 (initialize_root_vars_lm): Likewise.
19485 (prepare_initializers_chain): Likewise.
19486 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
19487 (may_propagate_copy_into_stmt): Likewise.
19488 (merge_alias_info): Do nothing for now.
19489 (propagate_tree_value_into_stmt): Adjust.
19490 (stmt_may_generate_copy): Likewise.
19491 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
19492 not mark symbols for renaming.
19493 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
19494 with the same statement, make sure to update the new pointed-to one.
19495 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
19496 call statements, do not mark symbols for renaming.
19497 (mark_operand_necessary): Dump something.
19498 (ref_may_be_aliased): New function.
19499 (mark_aliased_reaching_defs_necessary_1): New helper function.
19500 (mark_aliased_reaching_defs_necessary): Likewise.
19501 (mark_all_reaching_defs_necessary_1): Likewise.
19502 (mark_all_reaching_defs_necessary): Likewise.
19503 (propagate_necessity): Do not process virtual PHIs. For
19504 non-aliased loads mark all reaching definitions as necessary.
19505 For aliased loads and stores mark the immediate dominating
19506 aliased clobbers as necessary.
19507 (visited): New global static.
19508 (perform_tree_ssa_dce): Free visited bitmap after propagating
19509 necessity.
19510 (remove_dead_phis): Perform simple dead virtual PHI removal.
19511 (remove_dead_stmt): Properly unlink virtual operands when
19512 removing stores.
19513 (eliminate_unnecessary_stmts): Schedule PHI removal after
19514 stmt removal.
19515 * tree-ssa-ter.c (is_replaceable_p): Adjust.
19516 (process_replaceable): Likewise.
19517 (find_replaceable_in_bb): Likewise.
19518 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
19519 based on the single gimple vop.
19520 (verify_flow_insensitive_alias_info): Remove.
19521 (verify_flow_sensitive_alias_info): Likewise.
19522 (verify_call_clobbering): Likewise.
19523 (verify_memory_partitions): Likewise.
19524 (verify_alias_info): Likewise.
19525 (verify_ssa): Adjust..
19526 (execute_update_addresses_taken): Export. Update SSA
19527 manually. Optimize only when optimizing. Use a local bitmap.
19528 (pass_update_address_taken): Remove TODO_update_ssa, add
19529 TODO_dump_func.
19530 (pass_update_address_taken): Just use TODO_update_address_taken.
19531 (init_tree_ssa): Do not initialize addressable_vars.
19532 (verify_ssa): Verify new VUSE / VDEF properties.
19533 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
19534 Do not call verify_alias_info.
19535 (delete_tree_ssa): Clear the VUSE, VDEF operands.
19536 Do not free the loaded and stored syms bitmaps. Reset the escaped
19537 and callused solutions. Do not free addressable_vars.
19538 Remove memory-tag related code.
19539 (warn_uninitialized_var): Aliases are always available.
19540 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
19541 * lambda-code.c (can_put_in_inner_loop): Adjust.
19542 (can_put_after_inner_loop): Likewise.
19543 (perfect_nestify): Likewise.
19544 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
19545 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
19546 (vectorizable_conversion): Do not mark symbols for renaming.
19547 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
19548 (expand_call_inline): Unlink the calls virtual operands before
19549 replacing it.
19550 (tree_function_versioning): Do not call update_ssa if we are not
19551 updating clones. Simplify.
19552 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
19553 (propagate_with_phi): Likewise..
19554 * tree-outof-ssa.c (create_temp): Remove memory tag and call
19555 clobber code. Assert we are not aliased or global.
19556 * tree-flow.h: Include tree-ssa-alias.h
19557 (enum escape_type): Remove.
19558 (struct mem_sym_stats_d): Likewise.
19559 (struct mem_ref_stats_d): Likewise.
19560 (struct gimple_df): Add vop member. Remove global_var,
19561 call_clobbered_vars, call_used_vars, addressable_vars,
19562 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
19563 escaped and callused members.
19564 (struct ptr_info_def): Remove all members, add points-to solution
19565 member pt.
19566 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
19567 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
19568 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
19569 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
19570 (tree-ssa-alias.o): Likewise.
19571 (toplev.o): Add tree-ssa-alias.h
19572 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
19573 * gimple.c (gimple_set_bb): Fix off-by-one error.
19574 (is_gimple_reg): Do not handle memory tags.
19575 (gimple_copy): Also copy virtual operands.
19576 Delay updating the statement. Do not reset loaded and stored syms.
19577 (gimple_set_stored_syms): Remove.
19578 (gimple_set_loaded_syms): Likewise.
19579 (gimple_call_copy_skip_args): Copy the virtual operands
19580 and mark the new statement modified.
19581 * tree-ssa-structalias.c (may_alias_p): Remove.
19582 (set_uids_in_ptset): Take the alias set to prune with as
19583 parameter. Fold in the alias test of may_alias_p.
19584 (compute_points_to_sets): Compute whether a ptr is dereferenced
19585 in a local sbitmap.
19586 (process_constraint): Deal with &ANYTHING on the lhs, reject all
19587 other ADDRESSOF constraints on the lhs.
19588 (get_constraint_for_component_ref): Assert that we don't get
19589 ADDRESSOF constraints from the base of the reference.
19590 Properly generate UNKNOWN_OFFSET for DEREF if needed.
19591 (struct variable_info): Remove collapsed_to member.
19592 (get_varinfo_fc): Remove.
19593 (new_var_info): Do not set collapsed_to.
19594 (dump_constraint): Do not follow cycles.
19595 (dump_constraint_graph): Likewise.
19596 (build_pred_graph): Likewise.
19597 (build_succ_graph): Likewise.
19598 (rewrite_constraints): Likewise.
19599 (do_simple_structure_copy): Remove.
19600 (do_rhs_deref_structure_copy): Remove.
19601 (do_lhs_deref_structure_copy): Remove.
19602 (collapse_rest_of_var): Remove.
19603 (do_structure_copy): Re-implement.
19604 (pta_stats): New global variable.
19605 (dump_pta_stats): New function.
19606 (struct constraint_expr): Make offset signed.
19607 (UNKNOWN_OFFSET): Define special value.
19608 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
19609 (solution_set_expand): New helper function split out from ...
19610 (do_sd_constraint): ... here.
19611 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
19612 (do_ds_constraint): Likewise.
19613 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
19614 and CALLUSED = *CALLUSED.
19615 (set_union_with_increment): Make inc argument signed.
19616 (type_safe): Remove.
19617 (get_constraint_for_ptr_offset): Handle unknown and negative
19618 constant offsets.
19619 (first_vi_for_offset): Handle offsets before start. Bail
19620 out early for offsets beyond the variable extent.
19621 (first_or_preceding_vi_for_offset): New function.
19622 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
19623 Together with ESCAPED = *ESCAPED this properly computes reachability.
19624 (find_what_var_points_to): New function.
19625 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
19626 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
19627 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
19628 pt_solutions_intersect): New functions.
19629 (compute_call_used_vars): Remove.
19630 (compute_may_aliases): New main entry into PTA computation.
19631 * gimple.h (gimple_p): New typedef.
19632 (struct gimple_statement_base): Remove references_memory_p.
19633 (struct gimple_statement_with_memory_ops_base): Remove
19634 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
19635 members.
19636 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
19637 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
19638 gimple_set_references_memory): Remove.
19639 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
19640 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
19641 New functions.
19642 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
19643 (verify_expr): Allow RESULT_DECL.
19644 (gimple_duplicate_bb): Do not copy virtual operands.
19645 (gimple_duplicate_sese_region): Adjust.
19646 (gimple_duplicate_sese_tail): Likewise.
19647 (mark_virtual_ops_in_region): Remove.
19648 (move_sese_region_to_fn): Do not call it.
19649 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
19650 and pass_simple_dse.
19651 (execute_function_todo): Handle TODO_update_address_taken,
19652 call execute_update_addresses_taken for TODO_rebuild_alias.
19653 (execute_todo): Adjust.
19654 (execute_one_pass): Init dump files early.
19655 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
19656 call-clobbered.
19657 (create_general_new_stmt): Clear vops.
19658 * tree-ssa-reassoc.c (get_rank): Adjust.
19659 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
19660 symbols for renaming.
19661 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
19662 (PARAM_AVG_ALIASED_VOPS): Likewise.
19663 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
19664 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 19665 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
19666 (operand_build_cmp, copy_virtual_operands,
19667 create_ssa_artificial_load_stmt, add_to_addressable_set,
19668 gimple_add_to_addresses_taken): Remove public functions.
19669 (unlink_stmt_vdef): New function.
19670
457d1d00
AM
196712009-04-03 Alan Modra <amodra@bigpond.net.au>
19672
19673 * config.gcc (powerpc-*-linux*): Merge variants.
19674
e19da24c 196752009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 19676 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
19677
19678 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
19679 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
19680 cop0_sp_offset.
19681 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
19682 keep_interrupts_masked_p, use_debug_exception_return_p.
19683 (mips_attribute_table): Add interrupt, use_shadow_register_set,
19684 keep_interrupts_masked, use_debug_exception_return.
19685 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
19686 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
19687 New functions.
19688 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
19689 (mips_print_operand): Process COP0 registers to print $0 .. $31
19690 correctly for GAS to process.
19691 (mips_interrupt_extra_call_saved_reg_p): New function.
19692 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
19693 extra registers.
19694 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
19695 (mips_compute_frame_info): Add supports for interrupt context that
19696 includes doubleword accumulators and COP0 registers.
19697 (mips_for_each_saved_acc): New function.
19698 (mips_for_each_saved_gpr_and_fpr): Change the function name from
19699 mips_for_each_saved_reg.
19700 (mips_save_reg): Save accumulators.
19701 (mips_kernel_reg_p): A new for_each_rtx callback.
19702 (mips_expand_prologue): Support interrupt handlers.
19703 (mips_restore_reg): Restore accumulators.
19704 (mips_expand_epilogue): Support interrupt handlers.
19705 (mips_can_use_return_insn): Return false for interrupt handlers.
19706 (mips_epilogue_uses): New function.
19707 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
19708 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
19709 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
19710 cop0_move): New instructions.
19711 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
19712 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
19713 defines.
19714 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
19715 New defines.
19716 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
19717 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
19718 interrupt handlers, we use K0 as the temporary register.
19719 (EPILOGUE_USES): Change to a function call.
19720 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
19721 handlers, we use K0 as the temporary register.
2ba9daa7 19722
e19da24c
CF
19723 * doc/extend.texi (Function Attributes): Document interrupt,
19724 use_shadow_register_set, keep_interrupts_masked,
19725 use_debug_exception_return for MIPS attributes.
19726
aa1ca044
AM
197272009-04-03 Alan Modra <amodra@bigpond.net.au>
19728
19729 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
19730 Remove a number of t-files from tmake_file.
19731 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
19732 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
19733 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
19734 target_prototype, not TARGET_PROTOTYPE.
19735 (LINK_OS_GNU_SPEC): Define.
19736 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
19737 and darwin-ldoubdle.c.
19738
14fdc613
MM
197392009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
19740
19741 PR driver/39293
19742 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
19743 (cpp_options): Ditto.
19744 (default_compilers): Ditto.
19745 (display_help): Ditto.
19746 (process_command): Ditto.
19747 (do_spec_1): Ditto.
19748 (set_input): Use lbasename instead of duplicate code.
19749 (save_temps_prefix): New static for -save-temps=obj.
19750 (save_temps_length): Ditto.
2ba9daa7 19751
14fdc613
MM
19752 * doc/invoke.texi (-save-temps=obj): Document new variant to
19753 -save-temps switch.
19754
d3aa398e
JL
197552009-04-02 Jeff Law <law@redhat.com>
19756
19757 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
19758 variable.
19759
83f0ccb8
L
197602009-04-02 H.J. Lu <hongjiu.lu@intel.com>
19761
19762 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
19763 * configure: Regenerated.
19764
dcb6e951
RAE
197652009-04-02 Rafael Avila de Espindola <espindola@google.com>
19766
19767 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
19768 share the argument list.
19769
d85478c2
RAE
197702009-04-02 Rafael Avila de Espindola <espindola@google.com>
19771
19772 Merge
19773
19774 2009-02-12 Diego Novillo <dnovillo@google.com>
19775
83f0ccb8
L
19776 * varpool.c (debug_varpool): New.
19777 * cgraph.h (debug_varpool): Declare.
d85478c2 19778
34f42a49
JH
197792009-04-02 Jan Hubicka <jh@suse.cz>
19780
19781 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
19782 pass.
19783
a4747b4a
L
197842009-04-02 H.J. Lu <hongjiu.lu@intel.com>
19785
19786 * config/i386/i386.c (ix86_abi): Move initialization to ...
19787 (override_options): Here.
19788
63a9de54
CB
197892009-04-02 Christian Bruel <christian.bruel@st.com>
19790
19791 * config/sh/sh.c (sh_dwarf_register_span): New function.
19792 (TARGET_DWARF_REGISTER_SPAN): Define.
19793 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 19794
2f0fa28e
IR
197952009-04-02 Ira Rosen <irar@il.ibm.com>
19796
19797 PR tree-optimization/39595
2ba9daa7 19798 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
19799 interleaved loads group is not greater than the SLP group size.
19800
bbf7ce11
RAE
198012009-04-02 Rafael Avila de Espindola <espindola@google.com>
19802
19803 * builtins.c (is_builtin_name): New.
19804 (called_as_built_in): Use is_builtin_name.
19805 * tree.h (is_builtin_name): New.
19806 * varasm.c (incorporeal_function_p): Use is_builtin_name
19807
47e4dfcf
AS
198082009-04-02 Andrew Stubbs <ams@codesourcery.com>
19809
19810 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
19811
d0940d56
DS
198122009-04-02 Dodji Seketeli <dodji@redhat.com>
19813
19814 PR c++/26693
532bfb0a 19815 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
19816 * c-common.c (set_underlying_type): ... here.
19817 Also, make sure the function properly sets TYPE_STUB_DECL() on
19818 the newly created typedef variant type.
19819 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
19820 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
19821 points.
d0940d56 19822
bf1cbdc6
RG
198232009-04-02 Richard Guenther <rguenther@suse.de>
19824
19825 PR tree-optimization/37221
19826 * tree-flow.h (degenerate_phi_result): Declare.
19827 * tree-ssa-dom.c (degenerate_phi_result): Export.
19828 * tree-scalar-evolution.c (analyze_initial_condition): If
19829 the initial condition is defined by a degenerate PHI node
19830 use the degenerate value.
19831
87cfb32c
EB
198322009-04-01 Eric Botcazou <ebotcazou@adacore.com>
19833
19834 PR rtl-optimization/39588
19835 * combine.c (merge_outer_ops): Do not set the constant when this
19836 is not necessary.
19837 (simplify_shift_const_1): Do not modify it either in this case.
19838
bbb6eae8
SB
198392009-04-01 Steven Bosscher <steven@gcc.gnu.org>
19840
19841 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
19842 tuning is deprecated if -mtune value is set to an Itanium1 variant.
19843
839a3b8a
JJ
198442009-04-01 Janis Johnson <janis187@us.ibm.com>
19845
19846 PR c/29027
19847 * c-lex.c (interpret_float): Default (no suffix) is double.
19848
667e8acb
XDL
198492009-04-1 Xinliang David Li <davidxl@google.com>
19850
19851 * config/i386/i386.c (legitimate_constant_p): Recognize
19852 all one vector constant.
19853
60839f5d 198542009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19855
60839f5d 19856 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
19857 Change #include order to silence two warnings.
19858
60839f5d 198592009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19860
60839f5d 19861 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
19862 (ASM_SPEC): Pass -k to the assembler for PIC code.
19863
60839f5d 198642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19865
60839f5d
EB
19866 * config.gcc: Add vax-*-linux* to the switch.
19867 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
19868 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
19869
60839f5d 198702009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19871
60839f5d 19872 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 19873 Use predicate macros instead of GET_CODE() == foo.
60839f5d 19874 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
19875 ashlsi3, rotrsi3, <unnamed>): Likewise.
19876
60839f5d 198772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19878
60839f5d 19879 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 19880 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
19881 * config/vax/constraints.md: Likewise.
19882 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
19883 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
19884 * config/vax/predicates.md: Likewise.
19885 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 19886 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
19887 * config/vax/vax.h: Likewise.
19888 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 19889
60839f5d 198902009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19891
60839f5d 19892 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
19893 (indirectable_address_p, adjacent_operands_p): Add spaces around
19894 braces.
60839f5d 19895 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 19896
60839f5d 198972009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19898
60839f5d 19899 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
19900 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
19901 index_term_p, reg_plus_index_p, legitimate_address_p,
19902 vax_mode_dependent_address_p): Update comments to match functions
19903 modified by the recent int->bool conversion.
19904
60839f5d 199052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19906
60839f5d
EB
19907 * config/vax/builtins.md: Update copyright message.
19908 * config/vax/constraints.md: Likewise.
19909 * config/vax/netbsd-elf.h: Likewise.
19910 * config/vax/predicates.md: Likewise.
19911 * config/vax/vax-protos.h: Likewise.
19912 * config/vax/vax.c: Likewise.
19913 * config/vax/vax.h: Likewise.
19914 * config/vax/vax.md: Likewise.
19915 * config/vax/vax.opt: Likewise.
c4e75102 19916
60839f5d 199172009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 19918
60839f5d 19919 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 19920 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
19921 * config/vax/constraints.md (B, R): Likewise.
19922 * config/vax/predicates.md (external_memory_operand,
c4e75102 19923 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
19924 * config/vax/vax.c (vax_output_int_add): Likewise.
19925 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
19926 untyped_call): Likewise.
19927
60839f5d 199282009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 19929
7a715bba
UB
19930 * config/vax/predicates.md: New file.
19931 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
19932 external_const_operand, nonsymbolic_operand, external_memory_operand,
19933 indirect_memory_operand, indexed_memory_operand,
19934 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
19935 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
19936 predicate.
7a715bba
UB
19937 * config/vax/constraints.md: New file.
19938 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
19939 New constraint.
19940 * config/vax/builtins.md: New file.
19941 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
19942 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
19943 jbbccisi): Define.
c4e75102
MT
19944 * config/vax/vax.opt (mqmath): Add option.
19945 * config/vax/vax.md (isfx): Extend with DI.
19946 (VAXintQH, VAXintQHSD): Define.
19947 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
19948 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
19949 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
19950 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
19951 (movdi): Update constraints and use vax_output_int_move().
19952 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
19953 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
19954 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
19955 nonlocal_goto): New.
19956 (mov<mode>): Extend accepted operand types.
19957 (subdi3_old): Rename from subdi3, change update constraints and use
19958 a new implementation.
60839f5d 19959 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
19960 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
19961 MOVE_RATIO, CLEAR_RATIO): Define.
19962 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
19963 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
19964 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 19965 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
19966 (split_quadword_operands): Make static and really allow variable
19967 splitting.
19968 (print_operand_address): Update for PIC generation.
19969 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
19970 indexable_address_p, fixup_mathdi_operand,
19971 vax_expand_addsub_di_operands, adjacent_operands_p): New.
19972 (vax_float_literal, legitimate_constant_p,
19973 indirectable_constant_address_p, index_term_p,
19974 reg_plus_index_p): Return bool instead of int.
19975 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
19976 where needed.
19977 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
19978 generation.
19979 (vax_output_conditional_branch): Indent.
19980 (legitimate_constant_address_p, indirectable_constant_address_p,
19981 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
19982 vax_mode_dependent_address_p): Return bool instead of int, update for
19983 PIC generation.
19984 * config/vax/vax-protos.h (legitimate_constant_address_p,
19985 legitimate_constant_p, legitimate_address_p,
19986 vax_mode_dependent_address_p): Change declaration to bool.
19987 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
19988 vax_expand_addsub_di_operands, vax_output_int_subtract,
19989 vax_output_movmemsi): Declare.
19990 (split_quadword_operands, vax_float_literal): Delete declaration.
19991 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
19992 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
19993 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
19994 ASM_OUTPUT_DWARF_PCREL): Define.
19995 (ASM_SPEC): Change definition to allow PIC generation.
19996
9332c6eb
L
199972009-04-01 Steve Ellcey <sje@cup.hp.com>
19998
19999 * doc/sourcebuild.texi: Update front-end requirements.
20000
d93e052c
JJ
200012009-04-01 Jakub Jelinek <jakub@redhat.com>
20002
20003 PR target/39226
20004 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
20005 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
20006 (booldi3_internal3): Use boolean_or_operator instead of
20007 boolean_operator.
20008
6ccb2a4a
JM
200092009-04-01 Joseph Myers <joseph@codesourcery.com>
20010
20011 PR c/39605
20012 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
20013 declarator whose size is not an integer constant expression but
20014 folds to an integer constant, then treat it as a constant
20015 subsequently.
20016
299b87f8
RG
200172009-04-01 Richard Guenther <rguenther@suse.de>
20018
20019 * fold-const.c (fold_plusminus_mult_expr): Do not fold
20020 i * 4 + 2 to (i * 2 + 1) * 2.
20021
b85eb797
JJ
200222009-04-01 Jakub Jelinek <jakub@redhat.com>
20023
20024 PR c/37772
20025 * c-parser.c (c_parser_asm_statement): Skip until close paren and
20026 return if c_parser_asm_string_literal returned NULL.
20027
235e1fe8
NC
200282009-04-01 Nick Clifton <nickc@redhat.com>
20029
20030 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
20031 already defined.
20032 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
20033 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
20034 other typedefs to avoid conflicts with libgcc2.c. Define labels
20035 to gain 16-bit bit-manipulation functions from libgcc2.c and then
20036 include it.
20037 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
20038 to gain 16-bit trapping arithmetic functions from libgcc2.c and
20039 then include it.
20040
d6868399
RAE
200412009-04-01 Rafael Avila de Espindola <espindola@google.com>
20042
7a715bba
UB
20043 * varasm.c (default_function_rodata_section): Declare DOT as
20044 const char*.
d6868399 20045
73d21f56 200462009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 20047 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
20048
20049 PR/39492
20050 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
20051 Make object_name unique for each process.
20052
03742a9b
JJ
200532009-04-01 Jakub Jelinek <jakub@redhat.com>
20054
20055 PR other/39591
20056 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
20057 addressable variables in the parallel that could go out of scope while
20058 running queued tasks.
20059
4223ff5f
AS
200602009-04-01 Anatoly Sokolov <aesok@post.ru>
20061
20062 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
20063 (CASE_VALUES_THRESHOLD): Redefine.
20064 * config/avr/avr.c (avr_override_options): Remove initialization of
20065 avr_case_values_threshold variable.
20066 (avr_case_values_threshold): Remove variable. Add new function.
20067 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
20068 * config/avr/avr.opt (mno-tablejump): Remove option.
20069 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
20070
e893f6f3
DD
200712009-04-01 DJ Delorie <dj@redhat.com>
20072
20073 * varasm.c (default_function_rodata_section): Don't assume
20074 anything about where the first '.' in the section name is.
20075
b246d100
AM
200762009-04-01 Alan Modra <amodra@bigpond.net.au>
20077
20078 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
20079 rs6000_emit_stack_tie.
20080
d3e37a9e
ILT
200812009-03-31 Ian Lance Taylor <iant@google.com>
20082
20083 * tree-eh.c (tree_remove_unreachable_handlers): Compare
20084 gimple_code with GIMPLE_RESX, not RESX.
20085
c1b61fca
JM
200862009-03-31 Joseph Myers <joseph@codesourcery.com>
20087
20088 * c-common.c (c_get_ident): New.
7a715bba 20089 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 20090
c2d2ad48
BE
200912009-04-01 Ben Elliston <bje@au.ibm.com>
20092
20093 * config/rs6000/sysv4.opt (msdata): Improve option description.
20094
13d1a6e7
SE
200952009-03-31 Steve Ellcey <sje@cup.hp.com>
20096
20097 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
20098 (divdf3_internal_lat): Remove.
20099 (divxf3_internal_lat): Remove.
20100 (divxf3_internal_thr): Remove.
20101 (divxf): Use divxf3_internal.
20102 * config/ia64/div.md (divsf3_internal_lat): New.
20103 (divdf3_internal_lat): New.
20104 (divxf3_internal): New.
20105
207bf79d
JM
201062009-03-31 Joseph Myers <joseph@codesourcery.com>
20107
20108 PR c/448
20109 * Makefile.in (USE_GCC_STDINT): Define.
20110 (stmp-int-hdrs): Install stdint.h if applicable.
20111 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
20112 if known.
20113 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
20114 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
20115 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
20116 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
20117 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
20118 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
20119 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
20120 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
20121 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
20122 (c_common_nodes_and_builtins): Initialize
20123 underlying_wchar_type_node. Do not initialize
20124 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
20125 nodes for new types.
20126 (c_stddef_cpp_builtins): Define macros for new types.
20127 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
20128 Remove.
20129 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
20130 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
20131 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
20132 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
20133 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
20134 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
20135 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
20136 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
20137 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
20138 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
20139 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
20140 int16_type_node, int32_type_node, int64_type_node,
20141 uint8_type_node, uint16_type_node, c_uint32_type_node,
20142 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
20143 int_least32_type_node, int_least64_type_node,
20144 uint_least8_type_node, uint_least16_type_node,
20145 uint_least32_type_node, uint_least64_type_node,
20146 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
20147 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
20148 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
20149 uintptr_type_node): Define.
20150 * c-cppbuiltin.c (builtin_define_constants,
20151 builtin_define_type_minmax): New.
20152 (builtin_define_stdint_macros): Define more macros.
20153 (c_cpp_builtins): Define more limit macros.
20154 (type_suffix): New.
20155 (builtin_define_type_max): Define in terms of
20156 builtin_define_type_minmax. Remove is_long parameter. All
20157 callers changed.
20158 * config.gcc (use_gcc_stdint): Define.
20159 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
20160 Add newlib-stdint.h for generic targets.
20161 * config/glibc-stdint.h, config/newlib-stdint.h,
20162 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
20163 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
20164 * config/score/score.h (UINTPTR_TYPE): Define.
20165 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
20166 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
20167 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
20168 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
20169 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
20170 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
20171 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
20172 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
20173 * config/spu/spu.h (STDINT_LONG32): Define.
20174 * configure.ac (use_gcc_stdint): Substitute.
20175 * configure: Regenerate.
20176 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
20177 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
20178 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
20179 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
20180 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
20181 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
20182 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
20183 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
20184 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
20185 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
20186 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
20187 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
20188 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
20189 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
20190 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
20191 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
20192 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
20193 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
20194 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
20195 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
20196 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
20197 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
20198 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
20199 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
20200 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
20201 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
20202 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
20203 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
20204 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
20205
ed853664
BS
202062009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
20207
20208 * loop-iv.c (suitable_set_for_replacement): Renamed from
20209 simplify_using_assignment; changed to return bool and to accept new
20210 args DEST and SRC. Return true iff we find a source/destination pair
20211 that can be used to make a replacement, and fill SRC and DEST if so.
20212 Remove arg ALTERED. Don't deal with altered regs here. All callers
20213 changed.
20214 (simplify_using_initial_values): Deal with altered regs here and track
20215 more precisely the effect they have on the validity of our expression.
20216
1569e190
BS
20217 * loop-iv.c (simplify_using_condition): A condition of the form
20218 (EQ REG CONST) can be used to simply make a substitution.
20219 (simplify_using_initial_values): Keep track of conditions we have seen
20220 and keep using them to simplify new expressions, while applying the
20221 same substitutions to them as to the expression.
20222
1d1eb80c
BS
20223 * simplify-rtx.c (simplify_relational_operation_1): Simplify
20224 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
20225 GEU/LTU reversed.
20226
28af33b0
BS
20227 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
20228 changed. Use this when trying to improve the upper bound.
20229 Generate the comparison by using simplify_gen_relational.
20230
b30321cd
BS
20231 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
20232
60081874
BS
20233 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
20234 functions.
2ba9daa7 20235 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
20236 replace_in_expr to make replacements. Call replace_single_def_regs
20237 once on the initial version of the expression.
20238
bebc6e07
RR
202392009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20240
fcb82ab0 20241 PR target/27237
bebc6e07 20242 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 20243
6b12efe9
RG
202442009-03-31 Richard Guenther <rguenther@suse.de>
20245
20246 PR middle-end/31029
20247 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
20248 equality comparisons. Fold C - X CMP X if C % 2 == 1.
20249
108f6c2f
RG
202502009-03-31 Richard Guenther <rguenther@suse.de>
20251
20252 * tree.h (div_if_zero_remainder): Declare.
20253 * fold-const.c (div_if_zero_remainder): Export.
20254 * tree-ssa-forwprop.c
20255 (forward_propagate_addr_into_variable_array_index): Handle
20256 constant array index addition outside of the variable index.
20257
8f612190
JM
202582009-03-31 Joseph Myers <joseph@codesourcery.com>
20259
20260 PR target/39592
20261 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
20262 define_splits, floatunssi<mode>2): Require x87 conversions from
20263 DImode to be permitted.
20264
47580d22
JM
202652009-03-31 Joseph Myers <joseph@codesourcery.com>
20266
20267 PR preprocessor/15638
20268 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
20269
ba4d8f9d
RG
202702009-03-31 Richard Guenther <rguenther@suse.de>
20271
20272 PR middle-end/23401
20273 PR middle-end/27810
20274 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
20275 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
20276 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
20277 a separate statement.
20278 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
20279 (lookup_tmp_var): Likewise.
20280 (is_gimple_formal_tmp_or_call_rhs): Remove.
20281 (is_gimple_reg_or_call_rhs): Rename to ...
20282 (is_gimple_reg_rhs_or_call): ... this.
20283 (is_gimple_mem_or_call_rhs): Rename to ...
20284 (is_gimple_mem_rhs_or_call): ... this.
20285 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
20286 DECL_GIMPLE_REG_P only if is_formal is true.
20287 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
20288 for non-proper post-modify expression gimplification.
20289 (gimplify_self_mod_expr): For post-modify expressions gimplify
20290 the lvalue to a minimal lvalue.
20291 (rhs_predicate_for): Remove formal temp case.
20292 (gimplify_modify_expr_rhs): Likewise.
20293 (gimplify_addr_expr): Use is_gimple_reg.
20294 (gimplify_expr): Remove formal temp cases.
20295 (gimple_regimplify_operands): Likewise.
20296 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
20297 and FILTER_EXPR like constants.
20298 * gimple.c (walk_gimple_op): Fix val_only initialization, use
20299 is_gimple_reg.
20300 (is_gimple_formal_tmp_rhs): Remove.
20301 (is_gimple_reg_rhs): Remove special casing.
20302 (is_gimple_mem_rhs): Fix.
20303 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
20304 (is_gimple_formal_tmp_var): Remove.
20305 (is_gimple_formal_tmp_reg): Likewise.
20306 (is_gimple_min_lval): Allow invariant component ref parts.
20307 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
20308 is_gimple_formal_tmp_reg): Remove declarations.
20309 * tree-cfg.c (verify_expr): Verify that variables with address
20310 taken do not have DECL_GIMPLE_REG_P set.
20311 * tree-mudflap.c (mf_build_check_statement_for): Use
20312 force_gimple_operand instead of gimplify_expr.
20313
8de9b877
AZ
203142009-03-31 Ayal Zaks <zaks@il.ibm.com>
20315
20316 * modulo-sched.c (sms_schedule_by_order): Pass the actual
20317 schedulable rows to compute_split_row.
20318
b5e3caf2
BE
203192009-03-31 Ben Elliston <bje@au.ibm.com>
20320
20321 PR target/31635
20322 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
20323 OPT_mvrsave.
20324
9752c4ad
AM
203252009-03-31 Alan Modra <amodra@bigpond.net.au>
20326
20327 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
20328 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
20329 * configure: Regenerate.
20330 * config.in: Regenerate.
20331 * config/rs6000/rs6000.opt (mtls-markers): Add.
20332 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
20333 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
20334 (tls_ld_aix, tls_ld_sysv): Likewise.
20335 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
20336 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
20337
b597d1b6
AM
203382009-03-31 Alan Modra <amodra@bigpond.net.au>
20339
20340 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
20341
a203a221
JH
203422009-03-30 Jan Hubicka <jh@suse.cz>
20343
b597d1b6
AM
20344 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
20345 out of RESX.
20346 (tree_remove_unreachable_handlers): Cleanup EH predecestor
20347 detection and label handling.
a203a221 20348
5b0c0b2c
VM
203492009-03-30 Vladimir Makarov <vmakarov@redhat.com>
20350
20351 * ira-int.h (ira_allocno): Rename left_conflicts_num to
20352 left_conflicts_size.
20353 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
20354 ALLOCNO_LEFT_CONFLICTS_SIZE.
20355
20356 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
20357 remove_allocno_from_bucket_and_push,
20358 allocno_spill_priority_compare, push_allocnos_to_stack,
20359 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
20360 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
20361 (setup_allocno_left_conflicts_num): Ditto. Rename to
20362 setup_allocno_left_conflicts_size.
20363 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
20364 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
20365 setup_allocno_left_conflicts_size instead of
20366 setup_allocno_left_conflicts_num.
20367
20368 * ira-build.c (ira_create_allocno): Use
20369 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
20370 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 20371
9a48a93f
VM
203722009-03-30 Vladimir Makarov <vmakarov@redhat.com>
20373
20374 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
20375 instead of DF_LR_OUT.
20376
20377 * ira-lives.c (process_bb_node_lives): Ditto.
20378
20379 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
20380 instead of DF_LR_{OUT,IN}.
20381
20382 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
20383
20384 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
20385
4c936d4f
JH
203862009-03-30 Jan Hubicka <jh@suse.cz>
20387
20388 * except.c (label_to_region_map): Fix thinko.
20389
f4d9f129
SE
203902009-03-30 Steve Ellcey <sje@cup.hp.com>
20391
20392 PR middle-end/38237
20393 * tree.h (tree_find_value): New declaration.
20394 * tree.c (tree_find_value): New function.
20395 * varasm.c (assemble_external): Avoid duplicate entries on lists.
20396
b3f27c15
JJ
203972009-03-30 Jakub Jelinek <jakub@redhat.com>
20398
20399 PR debug/39563
20400 * c-decl.c (struct c_binding): Add locus field.
20401 (bind): Add locus argument, set locus field from it.
20402 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
20403 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
20404 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
20405 implicitly_declare, undeclared_variable, lookup_label,
20406 declare_label, c_make_fname_decl, c_builtin_function,
20407 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
20408 bind callers.
20409
ad41bd84 204102009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
20411
20412 PR target/38781
20413 * config/i386/i386.c (classify_argument): Check total size of
20414 structure.
20415
133f9369
MJ
204162009-03-30 Martin Jambor <mjambor@suse.cz>
20417
20418 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
20419 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
20420 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
20421 respectively.
20422
20423 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
20424 seen_variable_array_ref while also traversing a union.
20425
20426 * tree-inline.c (optimize_inline_calls): Do not call
20427 cgraph_node_remove_callees.
20428 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
20429 (pass_remove_cgraph_callee_edges): New variable.
20430 * passes.c (init_optimization_passes): Add
20431 pass_remove_cgraph_callee_edges after early inlining and before all
20432 late intraprocedural passes.
20433
20434 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
20435
1190f2eb
PB
204362009-03-30 Paolo Bonzini <bonzini@gnu.org>
20437
20438 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
20439 Fix typos in names.
20440
fedc1775
PB
204412009-03-30 Paolo Bonzini <bonzini@gnu.org>
20442
fcb82ab0
UB
20443 * combine.c (simplify_comparison): Use have_insn_for.
20444 * dojump.c (do_jump): Likewise.
fedc1775 20445
65c5ae8b
PB
204462009-03-30 Paolo Bonzini <bonzini@gnu.org>
20447
20448 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
20449 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
20450 sparc_compare_op0 like sparc_compare_emitted used to be handled.
20451 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
20452 instead of sparc_compare_emitted.
20453 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
20454 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
20455 instead of sparc_compare_emitted.
20456
d25aa7ab
PB
204572009-03-30 Paolo Bonzini <bonzini@gnu.org>
20458
20459 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
20460 enter/exit cfglayout mode.
20461 (pass_partition_block): Require it.
20462 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
20463 (combine_instructions): Track basic blocks instead of labels.
20464 (update_cfg_for_uncondjump): New.
20465 (try_combine): Use it. Update jumps after rescanning.
20466 (pass_combine): Require PROP_cfglayout.
20467 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
20468
9c9e26f5
PB
204692009-03-30 Paolo Bonzini <bonzini@gnu.org>
20470
fcb82ab0
UB
20471 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
20472 Provide/destroy PROP_cfglayout respectively.
20473 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
20474 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 20475
28ddeea1
PB
204762009-03-30 Paolo Bonzini <bonzini@gnu.org>
20477
20478 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
20479 fold_convert_const_fixed_from_fixed,
20480 fold_convert_const_fixed_from_int,
20481 fold_convert_const_fixed_from_real, fold_negate_const): Do not
20482 set TREE_CONSTANT_OVERFLOW.
20483 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
20484 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
20485
ebfd146a
IR
204862009-03-30 Ira Rosen <irar@il.ibm.com>
20487
20488 * tree-vect-loop-manip.c: New file.
20489 * tree-vectorizer.c: Update documentation and included files.
20490 (vect_loop_location): Make extern.
20491 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
20492 (rename_variables_in_bb, rename_variables_in_loop,
20493 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
20494 slpeel_update_phi_nodes_for_guard1,
20495 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
20496 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
20497 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 20498 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
20499 find_loop_location): Likewise.
20500 (new_stmt_vec_info): Move to tree-vect-stmts.c.
20501 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
20502 get_vectype_for_scalar_type, vect_is_simple_use,
20503 supportable_widening_operation, supportable_narrowing_operation):
20504 Likewise.
20505 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
20506 (new_loop_vec_info, destroy_loop_vec_info,
20507 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
20508 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
20509 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
20510 (vect_supportable_dr_alignment): Likewise.
20511 * tree-vectorizer.h (tree-data-ref.h): Include.
20512 (vect_loop_location): Declare.
20513 Reorganize function declarations according to the new file structure.
20514 * tree-vect-loop.c: New file.
2ba9daa7 20515 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
20516 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
20517 * tree-vect-data-refs.c: New file.
20518 * tree-vect-patterns.c (timevar.h): Don't include.
20519 * tree-vect-stmts.c: New file.
2ba9daa7 20520 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 20521 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
20522 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
20523 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
20524 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
20525 (tree-vect-analyze.o): Remove.
20526 (tree-vect-transform.o): Likewise.
20527 (tree-vect-data-refs.o): Add rule.
2ba9daa7 20528 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
20529 tree-vect-slp.o): Likewise.
20530 (tree-vect-patterns.o): Remove redundant dependencies.
20531 (tree-vectorizer.o): Likewise.
20532 * tree-vect-slp.c: New file.
20533
40a1cfba
RW
205342009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20535
20536 * optc-gen.awk: Warn if an option flag has multiple different
20537 help strings.
20538
a9a7a9a2
SP
205392009-03-30 Sebastian Pop <sebastian.pop@amd.com>
20540
20541 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
20542 -floop-block): Document dependences on PPL, CLooG and Graphite.
20543
8ce94e44
JM
205442009-03-30 Joseph Myers <joseph@codesourcery.com>
20545
20546 PR rtl-optimization/323
20547 * c-common.c (c_fully_fold, convert_and_check,
20548 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
20549 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
20550 * c-common.def (EXCESS_PRECISION_EXPR): New.
20551 * c-cppbuiltin.c (builtin_define_float_constants): Define
20552 constants with enough digits for long double.
20553 * c-lex.c (interpret_float): Interpret constant with excess
20554 precision where appropriate.
20555 * c-opts.c (c_common_post_options): Set
20556 flag_excess_precision_cmdline. Give an error for
20557 -fexcess-precision=standard for C++ for processors where the
20558 option is significant.
20559 * c-parser.c (c_parser_conditional_expression): Handle excess
20560 precision in condition.
20561 * c-typeck.c (convert_arguments): Handle arguments with excess
20562 precision.
20563 (build_unary_op): Move excess precision outside operation.
20564 (build_conditional_expr): Likewise.
20565 (build_compound_expr): Likewise.
20566 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
20567 (build_modify_expr): Handle excess precision in RHS.
20568 (convert_for_assignment): Handle excess precision in converted
20569 value.
20570 (digest_init, output_init_element, process_init_element): Handle
20571 excess precision in initializer.
20572 (c_finish_return): Handle excess precision in return value.
20573 (build_binary_op): Handle excess precision in operands and add
20574 excess precision as needed for operation.
20575 * common.opt (-fexcess-precision=): New option.
20576 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
20577 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20578 For standard excess precision, output explicit conversion to and
20579 truncation from XFmode.
20580 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
20581 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
20582 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
20583 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
20584 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
20585 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
20586 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
20587 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
20588 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
20589 define_splits, sqrt<mode>2): Disable where appropriate for
20590 standard excess precision.
20591 * convert.c (convert_to_real): Do not shorten arithmetic to type
20592 for which excess precision would be used.
20593 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
20594 * doc/invoke.texi (-fexcess-precision=): Document option.
20595 (-mfpmath=): Correct index entry.
20596 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
20597 flag_excess_precision): New.
20598 * langhooks.c (lhd_post_options): Set
20599 flag_excess_precision_cmdline.
20600 * opts.c (common_handle_option): Handle -fexcess-precision=.
20601 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
20602 init_excess_precision): New.
20603 (lang_dependent_init_target): Call init_excess_precision.
20604 * tree.c (excess_precision_type): New.
20605 * tree.h (excess_precision_type): Declare.
20606
1e57bf47
JM
206072009-03-30 Joseph Myers <joseph@codesourcery.com>
20608
20609 PR c/35235
20610 * c-typeck.c (build_component_ref): Do not copy qualifiers from
20611 non-lvalue to component.
20612
148e4216
JM
206132009-03-29 Joseph Myers <joseph@codesourcery.com>
20614
20615 PR preprocessor/34695
20616 * Makefile.in (c-opts.o): Depend on c-tree.h.
20617 * c-common.c: Move down include of diagnostic.h.
20618 (done_lexing, c_cpp_error): New.
20619 * c-common.h (done_lexing): Declare.
20620 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
20621 (parse_in).
20622 * c-opts.c: Include c-tree.h.
20623 (c_common_init_options): Set preprocessor error callback.
20624 (c_common_handle_option): Do not set preprocessor
20625 inhibit_warnings, warnings_are_errors, warn_system_headers,
20626 pedantic_errors or inhibit_warnings flags.
20627 (c_common_post_options): Do not check cpp_errors (parse_in).
20628 (c_common_finish): Do not output dependencies if there were
20629 errors. Do not check return value of cpp_finish.
20630 * c-ppoutput.c (pp_file_change): Set input_location.
20631 * c-tree.h (c_cpp_error): Declare.
20632 * diagnostic.c (diagnostic_set_info_translated): Also initialize
20633 override_column.
20634 (diagnostic_build_prefix): Check override_column.
20635 * diagnostic.h (diagnostic_info): Add override_column field.
20636 (diagnostic_override_column): Define.
20637
2ec5deb5
PB
206382009-03-28 Paolo Bonzini <bonzini@gnu.org>
20639
ba20e309
UB
20640 * c-common.c (c_expand_expr, c_staticp): Remove.
20641 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
20642 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
20643 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
20644 * c-gimplify.c (gimplify_compound_literal_expr,
20645 optimize_compound_literals_in_ctor): Remove.
20646 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
20647 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
20648 * c-semantics.c (emit_local_var): Remove.
20649
20650 * langhooks-def.h (lhd_expand_expr): Remove.
20651 * langhooks.c (lhd_expand_expr): Remove.
20652 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
20653
20654 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
20655 handling from c-semantics.c; don't call into langhook.
20656 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
20657 * gimplify.c (gimplify_compound_literal_expr,
20658 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
20659 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
20660 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
20661 as was done in c-gimplify.c.
20662 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
20663 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
20664 Move from c-common.h.
20665 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
20666
20667 * tree.c (staticp): Do not call langhook.
20668 * langhooks.c (lhd_staticp): Delete.
20669 * langhooks-def.h (lhd_staticp): Delete prototype.
20670 (LANG_HOOKS_STATICP): Delete.
20671 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
20672
ba20e309
UB
20673 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
20674 instead of DECL_STMTs.
2ec5deb5 20675
928c19bb
JM
206762009-03-29 Joseph Myers <joseph@codesourcery.com>
20677
20678 PR c/456
20679 PR c/5675
20680 PR c/19976
20681 PR c/29116
20682 PR c/31871
20683 PR c/35198
20684 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
20685 void_type_node.
20686 (fold_call_expr): Return a NOP_EXPR from folding rather than the
20687 contained expression.
ba20e309 20688 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
20689 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
20690 conditional expressions for C.
20691 (decl_constant_value_for_optimization): Move from
ba20e309 20692 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
20693 whether optimizing and that the expression is a VAR_DECL not of
20694 array type instead of doing such checks in the caller. Do not
20695 check pedantic. Call gcc_unreachable for C++.
20696 * c-common.def (C_MAYBE_CONST_EXPR): New.
20697 * c-common.h (c_fully_fold, c_save_expr,
20698 decl_constant_value_for_optimization): New prototypes.
20699 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
20700 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
20701 EXPR_INT_CONST_OPERANDS): Define.
20702 * c-convert.c (convert): Strip nops from expression.
20703 * c-decl.c (groktypename): Take extra parameters expr and
20704 expr_const_operands. Update call to grokdeclarator.
20705 (start_decl): Update call to grokdeclarator. Add statement for
20706 expressions used in type of decl.
20707 (grokparm): Update call to grokdeclarator.
20708 (push_parm_decl): Update call to grokdeclarator.
20709 (build_compound_literal): Add parameter non_const and build a
20710 C_MAYBE_COSNT_EXPR if applicable.
20711 (grokdeclarator): Take extra parameters expr and
20712 expr_const_operands. Track expressions used in declaration
20713 specifiers and declarators. Fold array sizes and track whether
20714 they are constant expressions and whether they are integer
20715 constant expressions.
20716 (parser_xref_tag): Set expr and expr_const_operands fields in
20717 return value.
20718 (grokfield): Update call to grokdeclarator.
20719 (start_function): Update call to grokdeclarator.
20720 (build_null_declspecs): Set expr and expr_const_operands fields in
20721 return value.
20722 (declspecs_add_type): Handle expressions in typeof specifiers.
20723 * c-parser.c (c_parser_declspecs): Set expr and
20724 expr_const_operands fields for declaration specifiers.
20725 (c_parser_enum_specifier): Likewise.
20726 (c_parser_struct_or_union_specifier): Likewise.
20727 (c_parser_typeof_specifier): Likewise. Update call to
20728 groktypename. Fold expression as needed. Return expressions with
20729 type instead of adding statements.
20730 (c_parser_attributes): Update calls to c_parser_expr_list.
20731 (c_parser_statement_after_labels): Fold expression before passing
20732 to objc_build_throw_stmt.
20733 (c_parser_condition): Fold expression.
20734 (c_parser_asm_operands): Fold expression.
20735 (c_parser_conditional_expression): Use c_save_expr. Update call
20736 to build_conditional_expr.
20737 (c_parser_alignof_expression): Update call to groktypename.
20738 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
20739 original_code. Fold expression argument of va_arg. Create
20740 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
20741 argument to va_arg. Update calls to groktypename. Fold array
20742 index for offsetof. Verify that first argument to
20743 __builtin_choose_expr has integer type.
20744 (c_parser_postfix_expression_after_paren_type): Update calls to
20745 groktypename and build_compound_literal. Handle expressions with
20746 side effects in type name.
20747 (c_parser_postfix_expression_after_primary): Update call to
20748 c_parser_expr_list. Set original_code for calls to
20749 __builtin_constant_p.
20750 (c_parser_expr_list): Take extra parameter fold_p. Fold
20751 expressions if requested.
20752 (c_parser_objc_type_name): Update call to groktypename.
20753 (c_parser_objc_synchronized_statement): Fold expression.
20754 (c_parser_objc_receiver): Fold expression.
20755 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
20756 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
20757 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
20758 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
20759 (struct c_typespec): Add elements expr and expr_const_operands.
20760 (struct c_declspecs): Add elements expr and expr_const_operands.
20761 (groktypename, build_conditional_expr, build_compound_literal):
20762 Update prototypes.
20763 (in_late_binary_op): Declare.
20764 * c-typeck.c (note_integer_operands): New function.
20765 (in_late_binary_op): New variable.
20766 (decl_constant_value_for_broken_optimization): Move to c-common.c
20767 and rename to decl_constant_value_for_optimization.
20768 (default_function_array_conversion): Do not strip nops.
20769 (default_conversion): Do not call
20770 decl_constant_value_for_broken_optimization.
20771 (build_array_ref): Do not fold result.
20772 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
20773 result when operand is a VLA.
20774 (c_expr_sizeof_type): Update call to groktypename. Handle
20775 expressions included in type name. Use C_MAYBE_CONST_EXPR for
20776 result when operand names a VLA type.
20777 (build_function_call): Update call to build_compound_literal.
20778 Only fold result for calls to __builtin_* functions. Strip
20779 NOP_EXPR from INTEGER_CST returned from such functions. Fold
20780 the function designator.
20781 (convert_arguments): Fold arguments. Update call to
20782 convert_for_assignment.
20783 (build_unary_op): Handle increment and decrement of
20784 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
20785 decrement earlier. Fold operand of increment and decrement.
20786 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
20787 built for integer operand. Wrap returns that are INTEGER_CSTs
20788 without being integer constant expressions or that have integer
20789 constant operands without being INTEGER_CSTs.
20790 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
20791 (build_conditional_expr): Add operand ifexp_bcp. Track whether
20792 result is an integer constant expression or can be used in
20793 unevaluated parts of one and avoid folding and wrap as
20794 appropriate. Fold operands before possibly doing -Wsign-compare
20795 warnings.
20796 (build_compound_expr): Wrap result for C99 if operands can be used
20797 in integer constant expressions.
20798 (build_c_cast): Update call to digest_init. Do not ignore
20799 overflow from casting floating-point constants to integers. Wrap
20800 results that could be confused with integer constant expressions,
20801 null pointer constants or floating-point constants.
20802 (c_cast_expr): Update call to groktypename. Handle expressions
20803 included in type name.
20804 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
20805 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
20806 Update calls to convert_for_assignment.
20807 (convert_for_assignment): Take new parameter
20808 null_pointer_constant. Do not strip nops or call
20809 decl_constant_value_for_broken_optimization. Set
20810 in_late_binary_op for conversions to boolean.
20811 (store_init_value): Update call to digest_init.
20812 (digest_init): Take new parameter null_pointer_constant. Do not
20813 call decl_constant_value_for_broken_optimization. pedwarn for
20814 initializers not constant expressions. Update calls to
20815 convert_for_assignment.
20816 (constructor_nonconst): New.
20817 (struct constructor_stack): Add nonconst element.
20818 (really_start_incremental_init, push_init_level, pop_init_level):
20819 Handle constructor_nonconst and nonconst element.
20820 (set_init_index): Call constant_expression_warning for array
20821 designators.
20822 (output_init_element): Fold value. Set constructor_nonconst as
20823 applicable. pedwarn for initializers not constant expressions.
20824 Update call to digest_init. Call constant_expression_warning
20825 where constant initializers are required.
20826 (process_init_element): Use c_save_expr.
20827 (c_finish_goto_ptr): Fold expression.
20828 (c_finish_return): Fold return value. Update call to
20829 convert_for_assignment.
20830 (c_start_case): Fold switch expression.
20831 (c_process_expr_stmt): Fold expression.
20832 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 20833 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
20834 (build_binary_op): Track whether results are integer constant
20835 expressions or may occur in such, disable folding and wrap results
20836 as applicable. Fold operands for -Wsign-compare warnings unless
20837 in_late_binary_op.
20838 (c_objc_common_truthvalue_conversion): Handle results folded to
20839 integer constants that are not integer constant expressions.
20840 * doc/extend.texi: Document when typeof operands are evaluated,
20841 that condition of __builtin_choose_expr is an integer constant
20842 expression, and more about use of __builtin_constant_p in
20843 initializers.
20844
5babbcc0
RG
208452009-03-29 Richard Guenther <rguenther@suse.de>
20846
20847 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
20848 propagate addresses of array references.
20849
0340f2ba
SB
208502009-03-29 Steven Bosscher <steven@gcc.gnu.org>
20851
20852 * regmove.c (perhaps_ends_bb_p): Remove.
20853 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
20854 from INSN and check that the main loop stays within that basic block.
20855 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
20856 (regmove_forward_pass): Split out from regmove_optimize. Use
20857 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
20858 (regmove_backward_pass): Split out from regmove_optimize. Use
20859 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
20860 (regmove_optimize): Simplify.
20861
eeae74a1
L
208622009-03-29 H.J. Lu <hongjiu.lu@intel.com>
20863
20864 PR target/39545
20865 * config/i386/i386.c (classify_argument): Ignore flexible array
20866 member in struct and warn ABI change.
20867
a24078b2
L
208682009-03-29 H.J. Lu <hongjiu.lu@intel.com>
20869
20870 * config/i386/i386-protos.h (ix86_agi_dependent): New.
20871
20872 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
20873 (ix86_adjust_cost): Updated.
20874
a8da523f
JH
208752009-03-29 Jan Hubicka <jh@suse.cz>
20876
20877 PR middle-end/28850
20878 * tree-pass.h (pass_cleanup_eh): New function.
20879 (remove_unreachable_regions): Break code handling RTL
20880 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
20881 that can not be reached by runtime.
20882 (can_be_reached_by_runtime): New function.
20883 (label_to_region_map): New function.
20884 (num_eh_regions): New function.
20885 (rtl_remove_unreachable_regions): New function.
20886 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
20887 (remove_eh_region): New function.
20888 * except.h: Include sbitmap and vecprim.
20889 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
20890 num_eh_regions): Declare.
20891 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 20892 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
20893 * tree-eh.c (tree_remove_unreachable_handlers): New function.
20894 (tree_empty_eh_handler_p): New function.
20895 (cleanup_empty_eh): New function.
20896 (cleanup_eh): New function.
20897 (pass_cleanup_eh): New function.
20898
98f358e5
JH
208992009-03-29 Jan Hubicka <jh@suse.cz>
20900
20901 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
20902 for removed regions.
20903
13a9fa44
JH
209042009-03-29 Jan Hubicka <jh@suse.cz>
20905
20906 * except.c (dump_eh_tree): Dump all datastructures.
20907
e38cf733
JH
209082009-03-29 Jan Hubicka <jh@suse.cz>
20909
20910 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
20911 (duplicate_eh_regions_1): Likewise.
20912 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
20913 vector; call EH verification.
20914 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
20915 Be ready for region being removed.
20916
12802c2b
JH
209172009-03-29 Jan Hubicka <jh@suse.cz>
20918
20919 * bitmap.c (bitmap_last_set_bit): New function.
20920 * bitmap.h (bitmap_last_set_bit): Declare.
20921
4ea80a41
DA
209222009-03-29 David Ayers <ayers@fsfe.org>
20923
20924 PR objc/27377
20925 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
20926 by calling objc_compare_types and surpress warnings about
20927 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 20928
4ea80a41 209292009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
20930
20931 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
20932 call initialize_inline_failed.
20933 (initialize_inline_failed): Move it from here ...
20934 * cgraph.c (initialize_inline_failed): ... to here.
20935 (cgraph_create_edge): Call initialize_inline_failed rather than
20936 setting inline_failed directly.
20937
7fb0ee07
BE
209382009-03-29 Ben Elliston <bje@au.ibm.com>
20939
20940 PR target/32542
20941 * sysv4.opt (msdata): Improve comment.
20942 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
20943 * sysv4.h (SVR4_ASM_SPEC): Likewise.
20944
0be77bf2
BE
209452009-03-29 Ben Elliston <bje@au.ibm.com>
20946
20947 PR target/30451
20948 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
20949 load and store attributes.
20950
593812b6
BE
209512009-03-29 Ben Elliston <bje@au.ibm.com>
20952
20953 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
20954 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
20955 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
20956 * doc/extend.texi (X86 Built-in Functions): Add index entries for
20957 __builtin_infq and __builtin_huge_valq.
20958
8272d11d
AS
209592009-03-28 Anatoly Sokolov <aesok@post.ru>
20960
20961 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
20962 atmega8m1 devices.
20963 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
20964 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
20965
74fe548b
XDL
209662009-03-28 Xinliang David Li <davidxl@google.com>
20967
2ba9daa7 20968 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
20969 (do_dbg_cnt): New function.
20970
33977f81
JH
209712009-03-28 Jan Hubicka <jh@suse.cz>
20972
20973 Merge from pretty-ipa:
20974
20975 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 20976
33977f81
JH
20977 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
20978 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
20979 * passes.c (function_called_by_processed_nodes_p): New.
20980 * ipa-pure-const.c (check_call): Fix handling of operands.
20981 (analyze_function): Dump debug output for skipped bodies.
20982 (local_pure_const): Use function_called_by_processed_nodes_p.
20983 * dwarf2out.c (reference_to_unused): Use output.
20984 * passes.c (do_per_function_toporder): Likewise.
20985
20986 2008-11-12 Jan Hubicka <jh@suse.cz>
20987
20988 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
20989 * ipa-pure-const.c (funct_state_d): Add can throw field; make
20990 state_set_in_source enum
20991 (check_decl): Ignore memory tags; do not set fake looping flags;
20992 dump diagnostics.
20993 (check_operand, check_tree, check_rhs_var, check_lhs_var,
20994 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
20995 (check_call, analyze_function): Rewrite.
20996 (check_stmt): New.
20997 (add_new_function): Update call of analyze_function.
20998 (generate_summary): Add call of analyze_function.
20999 (propagate): Propagate can_throw; handle state_set_in_source correctly.
21000 (local_pure_const): New function.
21001 (pass_local_pure_const): New pass.
21002 * ipa-inline.c (inline_transform): Set after_inlining.
21003 * tree-eh.c (stmt_can_throw_external): New.
21004 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
21005 work with aliasing built.
21006 * tree-flow.h (stmt_can_throw_external): New.
21007 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
21008 and local pure/const pass in early and late optimization queue.
ba20e309 21009
617f3897
MJ
210102009-03-28 Martin Jambor <mjambor@suse.cz>
21011
21012 * fold-const.c (get_pointer_modulus_and_residue): New parameter
21013 allow_func_align.
21014 (fold_binary): Allow function decl aligment consideration is the
21015 second argument is integer constant one.
21016 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
21017 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
21018 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
21019
fe89fbc5
JH
210202009-03-28 Jan Hubicka <jh@suse.cz>
21021
21022 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
21023 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
21024 * function.h (rtl_data): Add nothrow flag.
21025 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
21026 set DECL_NOTHROW for AVAILABLE functions.
21027
574872ff
JJ
210282009-03-28 Jakub Jelinek <jakub@redhat.com>
21029
b3bf8855
JJ
21030 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
21031 following vector keyword has expansion starting with pixel or bool
21032 keyword, expand vector to __vector and pixel or bool to __pixel or
21033 __bool.
21034
574872ff
JJ
21035 PR c++/39554
21036 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
21037 warn_if_disallowed_function_p): Removed.
21038 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
21039 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
21040 warning_if_disallowed_function_p.
21041 * flags.h (warn_if_disallowed_function_p,
21042 warn_disallowed_functions): Removed.
21043 * common.opt (Wdisallowed-function-list=): Removed.
21044 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
21045
b005da11
RG
210462009-03-28 Richard Guenther <rguenther@suse.de>
21047
21048 PR tree-optimization/38723
21049 * tree-ssa-pre.c (compute_avail): Add all default definitions to
21050 the entry block.
21051
1de812a6
JH
210522009-03-28 Jan Hubicka <jh@suse.cz>
21053
21054 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
21055 test introduced by my previous patch.
21056
fbb789d4
RG
210572009-03-28 Richard Guenther <rguenther@suse.de>
21058
21059 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
21060 the PHIs value undefined.
21061
6f1873a1
JH
210622009-03-28 Jan Hubicka <jh@suse.cz>
21063
21064 * tree-pass.h (pass_fixup_cfg): New pass.
21065 * ipa-inline.c (inline_transform): Set
21066 always_inline_functions_inlined/after_inlining.
21067 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
21068 (pass_fixup_cfg): New pass.
21069 * passes.c (init_optimization_passes): Add fixup_cfg.
21070
17021bc8
RG
210712009-03-28 Richard Guenther <rguenther@suse.de>
21072
21073 PR tree-optimization/38458
21074 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
21075 argument use the arguments copy-of value.
21076
e8114fba
RG
210772009-03-28 Richard Guenther <rguenther@suse.de>
21078
21079 PR tree-optimization/38180
21080 * tree-ssa-ccp.c (get_default_value): Simplify.
21081 (likely_value): Likewise.
21082 (surely_varying_stmt_p): Properly handle VOP case.
21083 (ccp_initialize): Likewise.
21084 (ccp_fold): Handle propagating through *&.
21085 (fold_const_aggregate_ref): Also handle decls.
21086
257eb6e3
JH
210872009-03-28 Jan Hubicka <jh@suse.cz>
21088
21089 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
21090 * cgraph.h (cgraph_node): Likewise.
21091 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
21092 (cgraph_reset_node): Use process flag.
21093 (cgraph_mark_functions_to_output): Likewise.
21094 (cgraph_expand_function): Likewise.
21095 (cgraph_expand_all_functions): Likewise.
21096 (cgraph_output_in_order): Likewise.
21097 * dwarf2out.c (reference_to_unused): Likewise.
21098 * passes.c do_per_function_toporder): Likewise.
21099
61a05df1
JH
211002009-03-28 Jan Hubicka <jh@suse.cz>
21101
21102 Bring from lto-branch:
ba20e309 21103
61a05df1
JH
21104 2008-09-03 Doug Kwan <dougkwan@google.com>
21105
21106 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
21107 enums instead of reason strings.
21108 * cgraph.c (cgraph_create_edge): Same.
21109 (cgraph_inline_failed_string): New function.
21110 * cgraph.h (cgraph_inline_failed_t): New enum type.
21111 (cgraph_inline_failed_string): New prototype.
21112 (struct cgraph_edge): Change type of INLINED_FAILED from constant
21113 char pointer to cgraph_inline_failed_t.
21114 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
21115 (cgraph_default_inline_p): Ditto.
60839f5d 21116 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
21117 to cgraph_inline_failed_t pointer.
21118 * cif-code.def: New file.
21119 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
21120 reason string.
21121 (cgraph_check_inline_limits): Change type of REASON to pointer to
21122 cgraph_inline_failed_t. Replace reason strings with enums.
21123 (cgraph_default_inline_p): Ditto.
21124 (cgraph_recursive_inlining_p): Ditto.
21125 (update_caller_keys): Change type of FAILED_REASON to
21126 cgraph_inline_failed_t.
21127 (cgraph_set_inline_failed): Change type of REASON to pointer to
21128 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
21129 convert enums to strings for text output.
21130 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
21131 to be of type cgraph_inline_failed_t. Replace reason strings with
21132 enums. Call cgraph_inline_failed_string to covert enums
21133 to strings for text output.
21134 (cgraph_decide_inlining): Replace reason strings with enums.
21135 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
21136 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
21137 for text output.
21138 * tree-inline.c (expand_call_inline): Change type of REASON
21139 to cgraph_inline_failed_t. Replace reason strings with enums.
21140 Call cgraph_inline_failed_string for text output.
21141 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
21142 (cgraph.o): Ditto.
21143
144e8aac
JH
211442009-03-28 Jan Hubicka <jh@suse.cz>
21145
21146 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
21147 cgraph_clone_node): Remove master clone handling.
21148 (cgraph_is_master_clone, cgraph_master_clone): Remove.
21149 * cgraph.h (master_clone): Remove.
21150 (cgraph_is_master_clone, cgraph_master_clone): Remove.
21151 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
21152 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
21153
4a371c8d
JH
211542009-03-28 Jan Hubicka <jh@suse.cz>
21155
21156 * cgraph.c (cgraph_function_body_availability): Functions declared
21157 inline are always safe to assume that it is not going to be replaced.
21158
6cdb0ee3
RG
211592009-03-28 Richard Guenther <rguenther@suse.de>
21160
21161 PR tree-optimization/38513
21162 * tree-ssa-pre.c (eliminate): Remove redundant stores.
21163 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
21164 EXC_PTR_EXPR and FILTER_EXPR.
21165 (get_ref_from_reference_ops): Likewise.
21166
8ca1fd76
RG
211672009-03-28 Richard Guenther <rguenther@suse.de>
21168
21169 PR tree-optimization/38968
21170 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
21171 Use FLOOR_MOD_EXPR to compute misalignment.
21172
a254e44d
RG
211732009-03-28 Richard Guenther <rguenther@suse.de>
21174
21175 PR tree-optimization/37795
21176 * tree.h (combine_comparisons): Declare.
21177 * fold-const.c (combine_comparisons): Export.
21178 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
21179 comparisons.
21180 (ifcombine_iforif): Use combine_comparisons.
21181
a8ee227c
JH
211822009-03-28 Jan Hubicka <jh@suse.cz>
21183
21184 * tree-eh.c (inlinable_call_p): New function.
21185 (make_eh_edges): Use it.
21186 (verify_eh_edges): Use it.
21187 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
21188 * except.c (reachable_next_level): Add inlinable_function argument
21189 (sjlj_find_directly_reachable_regions): Update.
21190 (add_reachable_handler): Do not set saw_any_handlers.
21191 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
21192 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
21193 Add new inlinable call parameter.
21194 (can_throw_internal, can_throw_external): Update.
21195 * except.h (can_throw_internal_1, can_throw_external_1,
21196 foreach_reachable_handler): Update declaration.
21197
52c0e446
JM
211982009-03-28 Joseph Myers <joseph@codesourcery.com>
21199
21200 * config/arm/t-arm-coff, config/h8300/coff.h,
21201 config/i386/i386-aout.h, config/i386/i386-coff.h,
21202 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
21203 config/pdp11/2bsd.h, config/rs6000/aix41.h,
21204 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
21205 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
21206 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
21207 sys-types.h: Remove.
21208 * Makefile.in: Remove protoize and fixproto support and references
21209 in comments.
21210 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
21211 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
21212 Remove.
21213 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
21214 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
21215 unprotoize$(exeext).
21216 (rest.encap): Don't depend on $(STMP_FIXPROTO)
21217 (.PHONY): Don't depend on proto.
21218 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
21219 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
21220 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
21221 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
21222 build/gen-protos.o, build/scan.o, xsys-protos.h,
21223 build/fix-header$(build_exeext), build/fix-header.o,
21224 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
21225 stmp-install-fixproto): Remove.
21226 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
21227 SYSCALLS.c or fixproto files.
21228 (install-common): Don't install protoize.
21229 (install-headers-tar, install-headers-cpio, install-headers-cp):
21230 Don't depend on $(STMP_FIXPROTO).
21231 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
21232 install fixproto files or write out fixproto settings.
21233 (uninstall): Don't uninstall protoize.
21234 * config.gcc (use_fixproto): Remove.
21235 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
21236 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
21237 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
21238 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
21239 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
21240 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
21241 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
21242 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
21243 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
21244 * config/t-vxworks (STMP_FIXPROTO): Remove.
21245 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
21246 STMP_FIXPROTO): Remove.
21247 * config.in, configure: Regenerate.
21248 * crtstuff.c (gid_t, uid_t): Don't undefine.
21249 * doc/install.texi: Change m68k-coff to m68k-elf in example.
21250 (arm-*-coff, arm-*-aout: Remove target entries.
21251 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
21252 Remove mention of AIX 4.1.
21253 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
21254 * doc/invoke.texi (Running Protoize): Remove.
21255 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
21256 (Protoize Caveats): Remove.
21257 * tsystem.h: Update comments on headers assumed to exist.
21258
20a07f44
VM
212592009-03-27 Vladimir Makarov <vmakarov@redhat.com>
21260
21261 * genautomata.c: Add a new year to the copyright. Add a new
21262 reference.
21263 (struct insn_reserv_decl): Add comments for member bypass_list.
21264 (find_bypass): Remove.
21265 (insert_bypass): New.
21266 (process_decls): Use insert_bypass.
21267 (output_internal_insn_latency_func): Output all bypasses with the
21268 same input insn in one switch case.
21269
21270 * rtl.def (define_bypass): Describe bypass choice.
21271 * doc/md.texi (define_bypass): Ditto.
21272
3a0d06c1
RB
212732009-03-27 Richard Guenther <rguenther@suse.de>
21274
21275 * gimplify.c (mark_addressable): Export.
21276 * tree-flow.h (mark_addressable): Declare.
21277 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
21278 * tree-ssa.c (verify_phi_args): Verify that address taken
21279 variables have TREE_ADDRESSABLE set.
21280
212812009-03-27 Richard Guenther <rguenther@suse.de>
21282
21283 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
21284 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
21285 Do not mark decls TREE_ADDRESSABLE.
21286 (build_fold_addr_expr): Adjust.
21287 (fold_addr_expr): Remove.
21288 (fold_unary): Use build_fold_addr_expr.
21289 (fold_comparison): Likewise.
21290 (split_address_to_core_and_offset): Likewise.
21291 * coverage.c (tree_coverage_counter_addr): Mark the array decl
21292 TREE_ADDRESSABLE.
21293 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
21294 (gimplify_modify_expr_to_memcpy): Mark source and destination
21295 addressable.
21296 * omp-low.c (create_omp_child_function): Mark the object decl
21297 TREE_ADDRESSABLE.
21298 (lower_rec_input_clauses): Mark the var we take the address of
21299 TREE_ADDRESSABLE.
21300 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
21301
2ac26e15
L
213022009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21303
21304 PR middle-end/39315
21305 * cfgexpand.c (expand_one_stack_var_at): Change alignment
21306 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
21307
472c7fbd
RG
213082009-03-27 Richard Guenther <rguenther@suse.de>
21309
21310 PR tree-optimization/39120
21311 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
21312 constraints.
21313 (handle_lhs_call): Process return constraints. Add escape
21314 constraints if necessary.
21315 (handle_const_call): Fill out return constraints. Make nested
21316 case more precise. Avoid consttmp if possible.
21317 (handle_pure_call): Fill out return constraints. Avoid
21318 callused if possible.
21319 (find_func_aliases): Simplify call handling.
21320
213212009-03-27 Richard Guenther <rguenther@suse.de>
21322
21323 PR tree-optimization/39120
21324 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
21325 as a representative.
21326 (solve_graph): Do propagate CALLUSED.
21327 (handle_pure_call): Use a scalar constraint from CALLUSED for
21328 the return value.
21329 (find_what_p_points_to): CALLUSED shall not appear in poins-to
21330 solutions.
21331
d9223014
L
213322009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21333
21334 PR c/39323
21335 * c-common.c (handle_aligned_attribute): Properly check alignment
21336 overflow. Use (1U << i) instead of (1 << i).
21337
ba20e309 21338 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
21339
21340 * expr.h (get_mem_align_offset): Updated.
21341
21342 * tree.h (tree_decl_common): Change align to "unsigned int" and
21343 move it before pointer_alias_set.
21344
689b689c
L
213452009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21346 Jakub Jelinek <jakub@redhat.com>
21347
21348 PR target/38034
21349 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
21350 gr_register_operand with gr_reg_or_0_operand.
21351 (cmpxchg_rel_di): Likewise.
21352 (sync_lock_test_and_set<mode>): Likewise.
21353
c619e982
L
213542009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21355
21356 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
21357 (true_regnum): Likewise.
21358
21359 * rtlanal.c (subreg_info): Moved to ...
21360 * rtl.h (subreg_info): Here. New.
21361 (subreg_get_info): New.
21362
21363 * rtlanal.c (subreg_get_info): Make it extern.
21364
51212b32
L
213652009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21366
21367 PR target/39472
21368 * config/i386/i386.c (ix86_abi): New.
21369 (override_options): Handle -mabi=.
ba20e309 21370 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
21371 (ix86_call_abi_override): Likewise.
21372 (init_cumulative_args): Likewise.
21373 (function_arg_advance): Likewise.
21374 (function_arg_64): Likewise.
21375 (function_arg): Likewise.
21376 (ix86_pass_by_reference): Likewise.
21377 (ix86_function_value_regno_p): Likewise.
21378 (ix86_build_builtin_va_list_abi): Likewise.
21379 (setup_incoming_varargs_64): Likewise.
21380 (is_va_list_char_pointer): Likewise.
21381 (ix86_init_machine_status): Likewise.
ba20e309 21382 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
21383 (ix86_function_type_abi): Return enum calling_abi. Rewrite
21384 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 21385 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
21386 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
21387 with ix86_abi.
21388 (ix86_fn_abi_va_list): Updated.
21389
21390 * config/i386/i386.h (ix86_abi): New.
21391 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
21392 (CONDITIONAL_REGISTER_USAGE): Likewise.
21393 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
21394 (machine_function): Likewise.
21395
21396 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
21397 with ix86_abi.
21398 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
21399 (STACK_BOUNDARY): Likewise.
21400 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
21401
21402 * config/i386/i386.opt (mabi=): New.
21403
21404 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
21405 return enum calling_abi.
21406 (ix86_function_type_abi): Likewise.
21407 (ix86_function_abi): Removed.
21408
21409 * doc/invoke.texi: Document -mabi= option for x86.
21410
7338ea63
KG
214112009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21412
21413 * builtins.c (real_dconstp): Delete.
21414 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
21415
68599f33
DS
214162009-03-27 Dodji Seketeli <dodji@redhat.com>
21417 Jakub Jelinek <jakub@redhat.com>
21418
21419 PR debug/37959
21420 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
21421 (gen_subprogram_die): When a function is explicit, generate the
21422 DW_AT_explicit attribute.
21423 * langhooks.h (struct lang_hooks_for_decls): Add
21424 function_decl_explicit_p langhook.
21425 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
21426 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
21427
9f5e9983
JJ
214282009-03-27 Jakub Jelinek <jakub@redhat.com>
21429
64d7685c
JJ
21430 * builtins.c (fold_builtin_memory_op): Optimize memmove
21431 into memcpy if we can prove source and destination don't overlap.
21432
9f5e9983
JJ
21433 * tree-inline.c: Include gt-tree-inline.h.
21434 (clone_fn_id_num): New variable.
21435 (clone_function_name): New function.
21436 (tree_function_versioning): Use it.
21437 * Makefile.in (GTFILES): Add tree-inline.c.
21438
e54d52a8
MM
214392009-03-27 Mark Mitchell <mark@codesourcery.com>
21440
21441 * BASE-VER: Change to 4.5.0.
21442
e9d51dc6
XDL
214432009-03-27 Xinliang David Li <davidxl@google.com>
21444
21445 PR tree-optimization/39557
21446 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
21447
4577cea1
XDL
214482009-03-27 Xinliang David Li <davidxl@google.com>
21449
21450 PR tree-optimization/39548
2ba9daa7 21451 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
21452 candidate check.
21453
0f7464f4
L
214542009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21455
21456 * c-common.c (pointer_int_sum): Use %wd on return from
21457 tree_low_cst.
21458
a8847a7f
L
214592009-03-27 H.J. Lu <hongjiu.lu@intel.com>
21460
21461 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
21462 on return from tree_low_cst.
21463
b0957daf
AP
214642009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
21465
21466 PR c++/36799
ba20e309
UB
21467 * ginclude/stdarg.h (va_copy): Define also for
21468 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 21469
a5f805df
MLI
214702009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21471
21472 PR c++/35652
21473 * builtins.h (c_strlen): Do not warn here.
21474 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
21475 * c-common.c (pointer_int_sum): Take an explicit location.
21476 Warn about offsets out of bounds.
21477 * c-common.h (pointer_int_sum): Adjust declaration.
21478
6f401211
RW
214792009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21480
a5f805df
MLI
21481 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
21482 markup glitch.
6f401211 21483
5a59b39e
JJ
214842009-03-26 Jakub Jelinek <jakub@redhat.com>
21485
21486 PR c++/39554
21487 * opts.c (warn_if_disallowed_function_p): Don't assume
21488 get_callee_fndecl must return non-NULL.
21489
d5f89b53
VM
214902009-03-26 Vladimir Makarov <vmakarov@redhat.com>
21491
21492 PR rtl-optimization/39522
21493 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
21494 when reg_reloaded_valid is set.
21495
61238a79
UW
214962009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21497
21498 * config/spu/divv2df3.c: New file.
21499 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
21500 (DPBIT_FUNCS): Filter out _div_df.
21501
03f8829b
BS
215022009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
21503
21504 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
21505 a jump insn, count that jump in the distance to the loop start.
21506
9fdcdc74
KK
215072009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
21508
21509 PR target/39523
21510 * config/sh/sh.c (calc_live_regs): Fix condition for global
21511 registers except PIC_OFFSET_TABLE_REGNUM.
21512
46994828
KT
215132009-03-25 Kai Tietz <kai.tietz@onevision.com>
21514
21515 PR/39518
21516 * doc/invoke.texi (-mconsole): New.
21517 (-mcygwin): New.
21518 (-mno-cygwin): New.
21519 (-mdll): New.
21520 (-mnop-fun-dllimport): New.
21521 (-mthread): New.
21522 (-mwin32): New.
21523 (-mwindows): New.
21524 (sub section "i386 and x86-64 Windows Options"): New.
21525
60839f5d 215262009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
21527
21528 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
21529 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
21530
ae560440
RG
215312009-03-25 Richard Guenther <rguenther@suse.de>
21532
21533 PR middle-end/39497
21534 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
21535 of -Wno-error.
21536
cd510f15
AM
215372009-03-25 Andrey Belevantsev <abel@ispras.ru>
21538
21539 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
21540 neither of haifa/selective schedulers are working.
21541
44ab0f0e
RW
215422009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21543
21544 * doc/invoke.texi (Debugging Options): Fix description of
21545 -fno-merge-debug-strings.
21546
ad9646c7
HPN
215472009-03-24 Hans-Peter Nilsson <hp@axis.com>
21548
e6142656
HPN
21549 * config/cris/libgcc.ver: New version-script.
21550 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
21551
ad9646c7
HPN
21552 * configure.ac <GAS features, nop mnemonic>: Add pattern
21553 crisv32-*-* for "nop".
ba20e309 21554 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
21555 * configure: Regenerate.
21556
09ac4473
IR
215572009-03-24 Ira Rosen <irar@il.ibm.com>
21558
21559 PR tree-optimization/39529
21560 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
21561 mark_sym_for_renaming for the tag copied to the new vector
21562 pointer.
21563
d94a427e
AL
215642009-03-24 Arthur Loiret <aloiret@debian.org>
21565
ba20e309 21566 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
21567 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
21568 EXTRA_SPEC_FUNCTIONS.
21569 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
21570 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
21571 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
21572 -march and -mtune options.
21573
60839f5d 215742009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
21575
21576 * config/m68k/t-rtems: Add m5329 multilib.
21577
603f5959
DS
215782009-03-24 Dodji Seketeli <dodji@redhat.com>
21579 Jakub Jelinek <jakub@redhat.com>
21580
21581 PR debug/39524
21582 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
21583 nodes.
21584
c5cdb03f
JJ
215852009-03-23 Jakub Jelinek <jakub@redhat.com>
21586
21587 PR c/39495
21588 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
21589 instead of c_parser_expression_conv, if original_code isn't one of the
21590 4 allowed comparison codes, fail.
21591
3691626c
RG
215922009-03-23 Richard Guenther <rguenther@suse.de>
21593
21594 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
21595 * tree.h (struct tree_type): Likewise.
21596 * reload.h (struct insn_chain): Likewise.
21597 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
21598 * function.h (struct function): Likewise.
21599 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
21600
88ccb72a
JJ
216012009-03-23 Jakub Jelinek <jakub@redhat.com>
21602
21603 PR tree-optimization/39516
21604 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
21605
60839f5d 216062009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 21607
2ba9daa7 21608 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
21609 should be set true if BITS_PER_WORD of target is bigger than 32
21610
f82162f8
HPN
216112009-03-22 Hans-Peter Nilsson <hp@axis.com>
21612
21613 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
21614 Translate -B-options to -rpath-link. Correct existing
21615 rpath-link and conditionalize on !nostdlib.
21616
048fd785
RW
216172009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21618
21619 * doc/extend.texi (Function Attributes, Variable Attributes):
21620 Fix typos.
21621 * doc/invoke.texi (Debugging Options, Optimize Options)
21622 (i386 and x86-64 Options, MCore Options): Likewise.
21623
6e75c1a9
JJ
216242009-03-20 Jakub Jelinek <jakub@redhat.com>
21625
21626 PR debug/37890
21627 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
21628 it for block local namespace aliases.
21629 (gen_decl_die): Pass context_die to gen_namespace_die.
21630
ea1199ee
JJ
216312009-03-19 Jakub Jelinek <jakub@redhat.com>
21632
21633 PR c/39495
21634 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
21635 minimum or maximum value.
21636
58929c10
AO
216372009-03-19 Alexandre Oliva <aoliva@redhat.com>
21638
21639 * reginfo.c (globalize_reg): Recompute derived reg sets.
21640
60839f5d 216412009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
21642
21643 PR target/39063
21644 * libgcc2.c (mprotect): Do not use signed arguments for
21645 VirtualProtect, use DWORD arguments. Also fix the 'may
21646 be used uninitialized' warning for the np variable.
21647
f57c2f04
JJ
216482009-03-19 Jakub Jelinek <jakub@redhat.com>
21649
21650 PR target/39496
21651 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
21652 functions using regparm calling conventions when not optimizing.
21653 (ix86_function_sseregparm): Similarly for sseregparm calling
21654 conventions.
21655
9e517d61
LF
216562009-03-19 Li Feng <nemokingdom@gmail.com>
21657
21658 PR middle-end/39500
21659 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
21660 dependence if the first conflict is after niter iterations.
21661
8ef20026
HPN
216622009-03-19 Hans-Peter Nilsson <hp@axis.com>
21663
21664 PR middle-end/38609
21665 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
21666 functions with dynamic stack-pointer adjustments.
21667
64e4a1a6
BE
216682009-03-19 Ben Elliston <bje@au.ibm.com>
21669
21670 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
21671 option; change to -msdata=data.
21672
9a0f3e86
RW
216732009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21674
21675 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
21676 and -fopenmp.
21677
09bc5979
EB
216782009-03-18 Eric Botcazou <ebotcazou@adacore.com>
21679
21680 PR target/35180
21681 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
21682
332459cd
SL
216832009-03-18 Sandra Loosemore <sandra@codesourcery.com>
21684
21685 * doc/invoke.texi (Code Gen Options): Expand discussion of
21686 -fno-common.
21687
8f5929e1
JJ
216882009-03-18 Jakub Jelinek <jakub@redhat.com>
21689
21690 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
21691 * matrix-reorg.c (struct matrix_info): Likewise.
21692 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
21693 * rtl.h (struct mem_attrs): Likewise.
21694 * df.h (struct df): Likewise.
21695 * tree-data-ref.h (struct data_dependence_relation): Likewise.
21696 * ira-int.h (struct ira_allocno): Likewise.
21697 * df-scan.c (struct df_collection_rec): Likewise.
21698 * ira.c (struct equivalence): Likewise.
21699 * function.c (struct temp_slot): Likewise.
21700 * cfgloop.h (struct loop): Likewise.
21701
d130d647
JJ
21702 PR debug/39485
21703 * function.c (use_register_for_decl): When not optimizing, disregard
21704 register keyword for variables with types containing methods.
21705
9968d233
SP
217062009-03-18 Sebastian Pop <sebastian.pop@amd.com>
21707
21708 PR middle-end/39447
21709 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
21710 (is_simple_operand): Call contains_component_ref_p before calling data
21711 reference analysis that would fail on COMPONENT_REFs.
21712
21713 * tree-vrp.c (search_for_addr_array): Fix formatting.
21714
69484bfd
RG
217152009-03-18 Richard Guenther <rguenther@suse.de>
21716
21717 * tree-vect-transform.c (vect_loop_versioning): Fold the
21718 generated comparisons.
21719 * tree-vectorizer.c (set_prologue_iterations): Likewise.
21720 (slpeel_tree_peel_loop_to_edge): Likewise.
21721
66811228
RW
217222009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21723
0631b69f
RW
21724 PR middle-end/37805
21725 * opts.c (print_specific_help): In addition to `undocumented',
21726 accept `separate' and `joined' flags if passed alone. Describe
21727 output by the first matched one of those.
21728 (common_handle_option): Skip over empty strings.
21729 * gcc.c (display_help): Fix help string for `--help='.
21730 * doc/invoke.texi (Option Summary, Overall Options): With
21731 `--help=', classes and qualifiers can both be repeated, but
21732 only the latter can be negated. One should not pass only
21733 negated qualifiers. Fix markup and examples.
21734
66811228
RW
21735 Revert
21736 2008-10-14 Jakub Jelinek <jakub@redhat.com>
21737 PR middle-end/37805
21738 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
21739 and -fhelp=separate.
21740
3c072c6b
JY
217412009-03-17 Jing Yu <jingyu@google.com>
21742
21743 PR middle-end/39378
80c65208
JY
21744 * function.h (struct rtl_data): Move is_thunk from here...
21745 (struct function): ...to here.
21746 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
21747 * varasm.c (assemble_start_function): Change is_thunk from crtl to
21748 cfun.
80c65208
JY
21749 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
21750 cfun.
21751 (alpha_does_function_need_gp, alpha_start_function): Likewise.
21752 (alpha_output_function_end_prologue): Likewise.
21753 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
21754 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
21755 (rs6000_output_function_epilogue): Likewise.
21756 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 21757
9ade279b
UB
217582009-03-17 Uros Bizjak <ubizjak@gmail.com>
21759
21760 PR target/39482
21761 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
21762 from different units in a single alternative.
21763 (*truncdfsf_i387): Ditto.
21764 (*truncxfsf2_mixed): Ditto.
21765 (*truncxfdf2_mixed): Ditto.
21766
16e60c17
JJ
217672009-03-17 Jakub Jelinek <jakub@redhat.com>
21768
98381eb4
JJ
21769 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
21770 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
21771
df5deb18
JJ
21772 PR debug/39474
21773 * tree-ssa-live.c (remove_unused_locals): Don't remove local
21774 unused non-artificial variables when not optimizing.
21775
a3f596ba
JJ
21776 PR debug/39471
21777 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
21778 DW_TAG_imported_module even if decl is IMPORTED_DECL with
21779 NAMESPACE_DECL in its DECL_INITIAL.
21780
6b2b8871
JJ
21781 PR middle-end/39443
21782 * optabs.c (set_user_assembler_libfunc): New function.
21783 * expr.h (set_user_assembler_libfunc): New prototype.
21784 * c-common.c: Include libfuncs.h.
21785 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
21786 for memcmp, memset, memcpy, memmove and abort.
21787 * Makefile.in (c-common.o): Depend on libfuncs.h.
21788
16e60c17
JJ
21789 PR debug/39412
21790 * dwarf2out.c (gen_inlined_enumeration_type_die,
21791 gen_inlined_structure_type_die, gen_inlined_union_type_die,
21792 gen_tagged_type_instantiation_die): Removed.
21793 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
21794 do nothing.
21795
4d936aca
JJ
217962009-03-17 Janis Johnson <janis187@us.ibm.com>
21797
21798 PR testsuite/38526
21799 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
21800 its use.
21801 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
21802 (check-parallel-%): Ditto.
21803 (check-consistency): Ditto.
21804
4e9b2e50
KT
218052009-03-17 Kai Tietz <kai.tietz@onevision.com>
21806
21807 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
21808 local variable rhs by NULL_TREE.
21809
21440b2d
L
218102009-03-17 H.J. Lu <hongjiu.lu@intel.com>
21811
21812 PR target/39477
9ade279b 21813 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 21814
d8905c6a
L
218152009-03-17 H.J. Lu <hongjiu.lu@intel.com>
21816
21817 PR target/39476
9ade279b 21818 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
21819
218202009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
21821
21822 PR target/39473
21823 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
21824 for ms->sysv ABI calls only in 64bit mode.
21825
21826 * config/i386/i386.md (untyped_call): Support 32bit.
21827
cdcabece
L
218282009-03-16 H.J. Lu <hongjiu.lu@intel.com>
21829
21830 * doc/extend.texi: Replace x86_65 with x86_64.
21831
97b4ba9f
JJ
218322009-03-16 Jakub Jelinek <jakub@redhat.com>
21833
21834 PR tree-optimization/39455
21835 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
21836 mismatches for POINTER_TYPE_P (type).
21837 (number_of_iterations_le): Likewise.
21838
60839f5d 218392009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
21840
21841 * config/picochip/picochip.c: Removed profiling support.
21842 * config/picochip/picochip.md: Removed profiling instruction.
21843 * config/picochip/picochip.h: Removed profiling builtin.
21844
f38095f3
JM
218452009-03-16 Joseph Myers <joseph@codesourcery.com>
21846
21847 * doc/install.texi (--with-host-libstdcxx): Document.
21848
2cb4817b
AS
218492009-03-14 Anatoly Sokolov <aesok@post.ru>
21850
21851 PR target/34299
21852 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
21853 generate a warning if the function name does not begin with
21854 "__vector" and the function has either the 'signal' or 'interrupt'
21855 attribute, from here to ...
21856 (avr_declare_function_name): ...here. New function.
21857 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
21858 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
21859
39b2ac74
JJ
218602009-03-14 Jakub Jelinek <jakub@redhat.com>
21861
21862 PR bootstrap/39454
21863 * cse.c (fold_rtx): Don't modify original const_arg1 when
21864 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
21865 separate variable instead.
21866 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
21867 from out of range shift counts.
21868 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
21869
ad41bd84 218702009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 21871
60839f5d 21872 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
21873 diagnostic.h with $(DIAGNOSTIC_H).
21874
ad41bd84 218752009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
21876
21877 PR target/39431
21878 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
21879 predicate.
21880 * config/i386/sync.md (sync_compare_and_swap<mode>,
21881 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
21882 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
21883 into a register.
21884 (sync_double_compare_and_swapdi_pic,
21885 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
21886 cmpxchg8b_pic_memory_operand instead of just memory_operand.
21887
122c59c7
L
218882009-03-12 H.J. Lu <hongjiu.lu@intel.com>
21889
21890 PR target/39445
9ade279b 21891 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 21892
cec8874f
L
218932009-03-12 H.J. Lu <hongjiu.lu@intel.com>
21894
21895 PR target/39327
21896 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
21897 (avx_addsubv4df3): Likewise.
21898 (*avx_addsubv4sf3): Likewise.
21899 (sse3_addsubv4sf3): Likewise.
21900
bbb52802
L
219012009-03-12 H.J. Lu <hongjiu.lu@intel.com>
21902
21903 PR target/38824
9ade279b 21904 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 21905
a812fb07
VM
219062009-03-12 Vladimir Makarov <vmakarov@redhat.com>
21907
21908 PR debug/39432
21909 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
21910 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
21911 registers for allocnos created from user-defined variables.
21912
4caab5ba
UW
219132009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21914
21915 PR target/39181
21916 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
21917 of non-integer mode as well.
21918
498e51ca
AN
219192009-03-11 Adam Nemet <anemet@caviumnetworks.com>
21920
21921 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
21922 for functions for which the parameter types are unknown.
21923
9bfaf89d
JJ
219242009-03-11 Jakub Jelinek <jakub@redhat.com>
21925
21926 PR target/39137
9ade279b 21927 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
21928 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
21929 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
21930 * config/i386/i386.c (ix86_local_alignment): For
21931 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
21932 long long variables on the stack to avoid dynamic realignment.
21933 Allow the first argument to be a decl rather than type.
21934 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
21935
18a3bdcb
NC
219362009-03-11 Nick Clifton <nickc@redhat.com>
21937
21938 PR target/5362
40190a76
NC
21939 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
21940 options.
21941 Add description to mno-lsim option.
21942 * config/mcore/mcore.h: Remove comment about deprecated m4align
21943 option.
21944 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
21945 * doc/invoke.texi: Add description of mno-lsim and
21946 mstack-increment options.
21947
18a3bdcb
NC
21948 * config/fr30/fr30.opt: Document the -mno-lsim option.
21949 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
21950 and -mno-lsim options.
21951
dc215785
UW
219522009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21953
21954 * fold-const.c (fold_comparison): Only call fold_inf_compare
21955 if the mode supports infinities.
21956
7716876b
JM
219572009-03-11 Jason Merrill <jason@redhat.com>
21958
21959 PR debug/39086
21960 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
21961 end already did. Notice GIMPLE_CALL modifications of the result.
21962 Don't copy debug information from an ignored decl or a decl from
21963 another function.
21964
ddef83d2
RG
219652009-03-10 Richard Guenther <rguenther@suse.de>
21966 Nathan Froyd <froydnj@codesourcery.com>
21967
21968 PR middle-end/37850
9ade279b 21969 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
21970 (__divMODE3): Likewise.
21971
9a9ba8d9
JJ
219722009-03-09 Jakub Jelinek <jakub@redhat.com>
21973
21974 PR tree-optimization/39394
21975 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
21976 DECL_SIZE_UNIT of variable length FIELD_DECLs.
21977
929b7fc3
AK
219782009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21979
21980 * recog.c (verfiy_changes): Disallow renaming of hard regs in
21981 inline asms for register asm ("") declarations.
21982
1803581d
EB
219832009-03-09 Eric Botcazou <ebotcazou@adacore.com>
21984
21985 * fold-const.c (fold_unary): Fix comment.
21986
8454d27e
JH
219872009-03-07 Jan Hubicka <jh@suse.cz>
21988
21989 PR target/39361
969a5433
JJ
21990 * tree-inline.c (setup_one_parameter): Do replacement of const
21991 argument by constant in SSA form.
8454d27e 21992
3a695389
UW
219932009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21994
21995 PR middle-end/38028
21996 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
21997 determine alignment passed to assign_stack_local.
21998 (assign_parms_unsplit_complex): Likewise.
21999 * except.c (sjlj_build_landing_pads): Likewise.
22000
9f0e7885
JJ
220012009-03-06 Jakub Jelinek <jakub@redhat.com>
22002
65401a0b
JJ
22003 PR middle-end/39360
22004 * tree-flow.h (add_referenced_var): Return bool instead of void.
22005 * tree-dfa.c (add_referenced_var): Return result of
22006 referenced_var_check_and_insert call.
22007 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
22008 of referenced_var_check_and_insert.
22009
9f0e7885 22010 PR debug/39372
9ade279b 22011 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
22012 (gen_variable_die): Emit DW_AT_location on abstract static variable's
22013 DIE, don't emit it if abstract origin already has it.
22014 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
22015 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
22016
3b664bd1
JBG
220172009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
22018
ba20e309 22019 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
22020 detection.
22021 (write_tm_constrs_h): Indent generated code.
22022
d8f8ca80
RR
220232009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22024
22025 * doc/extend.texi (Function Attributes): Add documentation
22026 for isr attributes.
22027
6c3d550c
JJ
220282009-03-06 Jakub Jelinek <jakub@redhat.com>
22029
22030 PR debug/39387
22031 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
22032 take locus from its DECL_SOURCE_LOCATION instead of input_location.
22033
f9e96751
BS
220342009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
22035
22036 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
22037 the loop as bad.
22038
ee0ee7e2
JJ
220392009-03-05 Jakub Jelinek <jakub@redhat.com>
22040
22041 PR debug/39379
22042 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
22043 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
22044
6c6094f1
UB
220452009-03-05 Uros Bizjak <ubizjak@gmail.com>
22046
22047 * config/i386/i386.md (R8_REG, R9_REG): New constants.
22048 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
22049 constants instead of magic numbers.
22050 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
22051 (QI_REG_P): Ditto.
22052 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
22053 (x86_64_ms_abi_int_parameter_registers): Ditto.
22054 (x86_64_int_return_registers): Ditto.
09f8a8d3 22055 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
22056 (ix86_expand_call): Ditto for clobbered_registers array.
22057 (ix86_hard_regno_mode_ok): Ditto.
22058 (x86_extended_QIreg_mentioned_p): Ditto.
22059
b267bd41
R
220602009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
22061
6c6094f1 22062 PR tree-optimization/39349
1f3ad3f0
R
22063 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
22064
b267bd41
R
22065 * combine.c (gen_lowpart_for_combine): Use omode when generating
22066 clobber.
22067
1242bc9d
R
220682009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
22069
6c6094f1 22070 PR rtl-optimization/39235
1242bc9d
R
22071 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
22072
48f03606
ZD
220732009-03-04 Zdenek Dvorak <ook@ucw.cz>
22074
22075 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
22076
b505e785
RG
220772009-03-04 Richard Guenther <rguenther@suse.de>
22078
22079 PR tree-optimization/39362
22080 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
22081 that occur in abnormal PHIs should be varying.
22082
f017bf5e
ZD
220832009-03-04 Zdenek Dvorak <ook@ucw.cz>
22084
22085 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
22086 Extend comments.
22087 (simple_iv): Take loop as an argument instead of statement.
22088 * tree-scalar-evolution.h (simple_iv): Declaration changed.
22089 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
22090 to simple_iv.
22091 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
22092 Ditto.
22093 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
22094 * matrix-reorg.c (analyze_transpose): Ditto.
22095 * tree-data-ref.c (dr_analyze_innermost): Ditto.
22096 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
22097 * tree-predcom.c (ref_at_iteration): Ditto.
22098 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
22099
6a66f28e
RG
221002009-03-04 Richard Guenther <rguenther@suse.de>
22101
22102 PR tree-optimization/39358
22103 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
22104 escaped_id and callused_id.
22105 (solve_graph): Likewise.
22106
57e454ee
RG
221072009-03-04 Richard Guenther <rguenther@suse.de>
22108
22109 PR tree-optimization/39339
22110 * tree-sra.c (try_instantiate_multiple_fields): Make it
22111 no longer ICE on the above.
22112
a6fe9ed4
JM
221132009-03-03 Joseph Myers <joseph@codesourcery.com>
22114
22115 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
22116 that fits within Pmode.
22117
dc672951
SE
221182009-03-03 Steve Ellcey <sje@cup.hp.com>
22119
22120 PR middle-end/10109
22121 * tm.texi (LIBCALL_VALUE): Update description.
22122
8b9d598f
SE
221232009-03-03 Steve Ellcey <sje@cup.hp.com>
22124
22125 PR middle-end/34443
22126 * doc/extend.texi (section): Update description.
22127
13e4e36e
L
221282009-03-03 H.J. Lu <hongjiu.lu@intel.com>
22129
22130 PR middle-end/39345
22131 * tree-inline.c (remapped_type): New.
22132 (can_be_nonlocal): Call remapped_type instead of remap_type.
22133
067dd3c9
JJ
221342009-03-03 Jakub Jelinek <jakub@redhat.com>
22135
22136 PR fortran/39354
22137 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
22138 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
22139
9bd9f738
RG
221402009-03-03 Richard Guenther <rguenther@suse.de>
22141
22142 PR middle-end/39272
22143 * tree.c (tree_nonartificial_location): New function.
22144 * tree.h (tree_nonartificial_location): Declare.
22145 * builtins.c (expand_builtin_memory_chk): Provide location
22146 of the call location for artificial function pieces.
22147 (maybe_emit_chk_warning): Likewise.
22148 (maybe_emit_sprintf_chk_warning): Likewise.
22149 (maybe_emit_free_warning): Likewise.
22150 * expr.c (expand_expr_real_1): Likewise.
22151
f07049c8
JJ
221522009-03-03 Jakub Jelinek <jakub@redhat.com>
22153
22154 PR tree-optimization/39343
22155 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
22156 COMPONENT_REF t has ARRAY_TYPE.
22157
7d4fba4a
SP
221582009-03-02 Sebastian Pop <sebastian.pop@amd.com>
22159
22160 PR middle-end/39335
22161 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
22162 when the type precision of the induction variable should be
22163 larger than the type precision of nit.
22164 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
22165 * graphite.c (graphite_loop_normal_form): Same.
22166 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
22167
78168632
UB
221682009-03-02 Uros Bizjak <ubizjak@gmail.com>
22169
22170 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
22171 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 22172 numbers to describe clobbered registers.
78168632 22173 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
22174 * config/i386/mmx.md (mmx_emms): Ditto.
22175 (mmx_femms): Ditto.
78168632 22176
63553059
RS
221772009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
22178
22179 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
22180 of ABI_64.
22181
500a1f85
UW
221822009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22183
22184 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
22185 (spu_section_type_flags): New function.
22186
962aae34
UB
221872009-03-02 Uros Bizjak <ubizjak@gmail.com>
22188
22189 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
22190 reg_class_contents of FLOAT_REGS into a temporary.
22191
6dfb529c 221922009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 22193 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
22194
22195 PR tree-optimization/39318
22196 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
22197 information to the vectorized statement.
22198
6b5629db
UB
221992009-03-01 Uros Bizjak <ubizjak@gmail.com>
22200
434426d2
UB
22201 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
22202 variable. Use defined names instead of magic constants for REX SSE
22203 registers.
6b5629db 22204
14e5b285
RG
222052009-03-01 Richard Guenther <rguenther@suse.de>
22206
22207 PR tree-optimization/39331
22208 * omp-low.c (lower_send_shared_vars): Do not receive new
22209 values for the reference of DECL_BY_REFERENCE parms or results.
22210
526d73ab
JH
222112009-03-01 Jan Hubicka <jh@suse.cz>
22212
22213 PR debug/39267
22214 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
22215 BLOCK_NONLOCALIZED_VAR): New macros.
22216 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
22217 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
22218 gen_decl_die): Add origin argument. Allow generation of die with
22219 origin at hand only.
526d73ab 22220 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
22221 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
22222 of gen_*.
526d73ab
JH
22223 (gen_block_die): Fix checking for unused blocks.
22224 (process_scope_var): Break out from .... ; work with origins only.
22225 (decls_for_scope) ... here; process nonlocalized list.
22226 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
22227 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
22228 vars.
526d73ab
JH
22229 (dump_scope_block): Dump them.
22230 * tree-inline.c (remap_decls): Handle nonlocalized vars.
22231 (remap_block): Likewise.
22232 (can_be_nonlocal): New predicate.
22233 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
22234
7a9d3fe8
RW
222352009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22236
22237 * configure: Regenerate.
22238
b3cdf3cb
RW
222392009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22240
a16d1645 22241 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 22242 Reuse help texts for duplicate options which do not have any.
a16d1645 22243
1156c176
RW
22244 * gcc.c (display_help): Document --version.
22245
033505fc
RW
22246 * gcc.c (main): If print_help_list and verbose_flag, ensure
22247 driver output comes before subprocess output.
22248
4d077054
RW
22249 * optc-gen.awk: Assign all remaining fields to help string,
22250 space-separated, for multi-line help in *.opt.
22251
a072f1cf
RW
22252 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
22253 -Wno-pedantic-ms-format is for MinGW targets only.
22254
b3cdf3cb
RW
22255 * doc/options.texi (Option file format): Fix bad indentation,
22256 restoring dropped sentence.
22257
a3aadcc5
JH
222582009-02-28 Jan Hubicka <jh@suse.cz>
22259
22260 * tree-inline.c (tree_function_versioning): Output debug info.
22261
1cf5abb3
JH
222622009-02-28 Jan Hubicka <jh@suse.cz>
22263
22264 PR debug/39267
22265 * tree-inline.c (setup_one_parameter): Do not copy propagate
22266 arguments when not optimizing.
22267
c4d3f42f
L
222682009-02-28 H.J. Lu <hongjiu.lu@intel.com>
22269
22270 PR target/39327
22271 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
22272 (avx_addsubv4df3): Likewise.
22273 (*avx_addsubv4sf3): Likewise.
22274 (sse3_addsubv4sf3): Likewise.
22275 (*avx_addsubv2df3): Likewise.
22276 (sse3_addsubv2df3): Likewise.
22277 (avx_unpckhps256): Correct item selectors.
22278 (avx_unpcklps256): Likewise.
22279 (avx_unpckhpd256): Likewise.
22280 (avx_unpcklpd256): Likewise.
22281
eb50f5f4
JH
222822009-02-28 Jan Hubicka <jh@suse.cz>
22283
22284 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
22285 static vars.
22286 (copy_arguments_for_versioning): If var is declared don't declare it.
22287 (tree_function_versioning): First setup substitutions and then copy
22288 args.
22289
26140130
JH
222902009-02-27 Jan Hubicka <jh@suse.cz>
22291
22292 PR debug/39267
22293 * cgraph.h (varpool_output_debug_info): Remove.
22294 * cgraphunit.c (varpool_output_debug_info): Remove.
22295 * dwarf2out.c (deferred_locations_struct): New struct
22296 (deferred_locations): New type.
22297 (deferred_locations_list): New static var.
22298 (deffer_location): New function.
22299 (gen_variable_die): Use it.
22300 (decls_for_scope): Output info on local static vars.
22301 (dwarf2out_finish): Process deferred locations.
22302 * varpool.c (varpool_output_debug_info): Remove.
22303
cff7525f
JH
223042009-02-27 Jan Hubicka <jh@suse.cz>
22305
22306 PR debug/39267
22307 * tree.h (TREE_PROTECTED): Fix comment.
22308 (BLOCK_HANDLER_BLOCK): Remove.
22309 (struct tree_block): Remove handler_block add body_block.
22310 (inlined_function_outer_scope_p): New.
22311 (is_body_block): Remove.
22312 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
22313 * dwarf2out.c (is_inlined_entry_point): Remove.
22314 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
22315 (gen_block_die): Use is_inlined_entry_point check. Remove body block
22316 code.
cff7525f
JH
22317 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
22318 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
22319 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
22320 block with multiple subblocks.
cff7525f
JH
22321 (dump_scope_block): Prettier output; dump more flags and info.
22322 (dump_scope_blocks): New.
22323 (remove_unused_locals): Use dump_scope_blocks.
22324 * tree-flow.h (dump_scope_blocks): Declare.
22325 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
22326 * stmt.c (is_body_block): Remove.
22327 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
22328 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
22329
c20993b9
SP
223302009-02-27 Sebastian Pop <sebastian.pop@amd.com>
22331
22332 PR middle-end/39308
2ba9daa7 22333 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
22334 number_of_iterations_exit from a gcc_assert.
22335
e3cba5e5
AK
223362009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22337
60839f5d 22338 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
22339 jumps if COND is NULL.
22340 (find_cond_jump): New function.
22341 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 22342 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 22343
9dadeeb8
UB
223442009-02-26 Uros Bizjak <ubizjak@gmail.com>
22345
22346 * config/alpha/alpha.h (alpha_expand_mov): Return false if
22347 force_const_mem returns NULL_RTX.
22348
625d3251
EB
223492009-02-26 Jan Hubicka <jh@suse.cz>
22350
22351 PR debug/39267
22352 * cgraph.h (varpool_output_debug_info): Remove.
22353 * cgraphunit.c (varpool_output_debug_info): Remove.
22354 * dwarf2out.c (deferred_locations_struct): New struct
22355 (deferred_locations): New type.
22356 (deferred_locations_list): New static var.
22357 (deffer_location): New function.
22358 (gen_variable_die): Use it.
22359 (decls_for_scope): Output info on local static vars.
22360 (dwarf2out_finish): Process deferred locations.
22361 * varpool.c (varpool_output_debug_info): Remove.
22362
38432148 223632009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
22364
22365 PR rtl-optimization/39241
22366 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
22367 to subreg_offset_representable_p.
22368
62d049cf
PB
223692009-02-25 Paolo Bonzini <bonzini@gnu.org>
22370
22371 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
22372 execute function prototype. Get f and nregs from max_reg_num
22373 and get_insns. Remove the first backward pass as it's dead,
22374 guard the forward pass by flag_expensive_optimizations.
22375 (rest_of_handle_regmove): Delete.
22376 (pass_regmove): Replace it with regmove_optimize.
22377
f618d33e
MJ
223782009-02-25 Martin Jambor <mjambor@suse.cz>
22379
22380 PR tree-optimization/39259
22381 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 22382 calls_alloca function flags.
f618d33e
MJ
22383 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
22384 calls are detected.
22385
c8a05f7c
PB
223862009-02-25 Paolo Bonzini <bonzini@gnu.org>
22387
22388 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
22389 flags_set_1_rtx, flags_set_1_set): Delete.
22390 (regmove_optimize): Do not call mark_flags_life_zones.
22391
6d2538f5
JB
223922009-02-24 Julian Brown <julian@codesourcery.com>
22393
22394 PR target/35965
22395 * config/arm/arm.c (require_pic_register): Only set
22396 cfun->machine->pic_reg once per function.
22397
a2fa6772
SL
223982009-02-24 Sandra Loosemore <sandra@codesourcery.com>
22399
22400 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 22401 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 22402
5472de36
SE
224032009-02-24 Steve Ellcey <sje@cup.hp.com>
22404
22405 PR target/33785
22406 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
22407
844216f3
RG
224082009-02-24 Richard Guenther <rguenther@suse.de>
22409
22410 PR debug/39285
22411 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
22412
71adbef3 224132009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 22414 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
22415
22416 PR tree-optimization/39233
22417 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
22418 from converting them to a generic type.
22419
f1a558e0
SP
224202009-02-23 Sebastian Pop <sebastian.pop@amd.com>
22421
22422 PR tree-optimization/39260
22423 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
22424 contains a condition with a real type.
22425 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
22426
d8028f2c
JM
224272009-02-23 Jason Merrill <jason@redhat.com>
22428
22429 PR c++/38880
22430 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
22431 narrowing_initializer_constant_valid_p.
2ba9daa7 22432 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
22433 null_pointer_node for adding a pointer to itself.
22434
9283b513
JH
224352009-02-23 Jan Hubicka <jh@suse.cz>
22436
22437 PR c/12245
9dadeeb8
UB
22438 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
22439 resizing.
9283b513 22440
61e04322
JH
224412009-02-23 Jan Hubicka <jh@suse.cz>
22442
9dadeeb8
UB
22443 PR tree-optimization/37709
22444 * tree.c (block_ultimate_origin): Move here from dwarf2out.
22445 * tree.h (block_ultimate_origin): Declare.
22446 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
22447 * tree-ssa-live.c (remove_unused_scope_block_p):
22448 Eliminate blocks containig no instructions nor live variables nor
22449 nested blocks.
22450 (dump_scope_block): New function.
22451 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 22452 enable dumping at TDF_DETAILS.
61e04322 22453
38432148 224542009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
22455
22456 * config/i386/i386.c (classify_argument): Don't allow COImode
22457 and OImode.
22458 (function_arg_advance_32): Don't allow OImode.
22459 (function_arg_32): Likewise.
22460 (function_value_32): Likewise.
22461 (return_in_memory_32): Likewise.
22462 (function_arg_64): Remove OImode comment.
22463
38432148 224642009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
22465
22466 PR target/39261
22467 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
22468 ix86_expand_vector_set for V4DImode in 64bit mode only.
22469 (ix86_expand_vector_init_one_var): Likewise.
22470
dcd739a6
SP
224712009-02-21 Sebastian Pop <sebastian.pop@amd.com>
22472
22473 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
22474
6c3b938d
RS
224752009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
22476
8e361f23 22477 PR bootstrap/39257
6c3b938d
RS
22478 * loop-iv.c: Revert last change.
22479 * emit-rtl.c: Likewise.
22480
38432148 224812009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
22482
22483 PR target/39256
22484 * config/i386/i386.c (type_natural_mode): Remove an extra
22485 space in the warning message.
22486 (function_value_32): Handle 32-byte vector modes.
22487 (return_in_memory_32): Likewise.
22488
2ec62529
RS
224892009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
22490
22491 * loop-iv.c (truncate_value): New function.
22492 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
22493 of lowpart_subreg.
22494 (lowpart_subreg): Move to...
22495 * emit-rtl.c: ...here.
22496
ecb8c3cc 224972009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 22498
ecb8c3cc
DS
22499 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
22500 accidental and undocumented change at revision 140860.
22501
ae46a823
JM
225022009-02-21 Joseph Myers <joseph@codesourcery.com>
22503
22504 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
22505 take gimple_seq * arguments.
22506 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
22507 types_compatible_p langhook.
22508
07d8efe3 225092009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 22510 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
22511
22512 * config/arm/arm.c (arm_builtin_va_list): New function.
22513 (arm_expand_builtin_va_start): Likewise.
22514 (arm_gimplify_va_arg_expr): Likewise.
22515 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
22516 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
22517 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
22518 (va_list_type): New variable.
22519 (arm_mangle_type): Mangle va_list_type appropriately.
22520
b1fb9f56
JJ
225212009-02-20 Jakub Jelinek <jakub@redhat.com>
22522
22523 PR middle-end/39157
22524 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
22525 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
22526 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
22527 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
22528 parameter to 1000 for -O1 by default.
22529 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
22530 parameter.
22531 * loop-invariant.c: Include params.h.
22532 (move_loop_invariants): Don't call move_single_loop_invariants on
22533 very large loops.
22534
5bc0807c
JM
225352009-02-20 Jaka Mocnik <jaka@xlab.si>
22536
22537 * calls.c (emit_library_call_value_1): Use slot_offset instead of
22538 offset when calculating bounds for indexing stack_usage_map. Fixes
22539 a buffer overflow with certain target setups.
22540
c69cd1f5
JJ
225412009-02-20 Jakub Jelinek <jakub@redhat.com>
22542
22543 PR target/39240
22544 * calls.c (expand_call): Clear try_tail_call if caller and callee
22545 disagree in promotion of function return value.
22546
09812622
JJ
225472009-02-19 Jakub Jelinek <jakub@redhat.com>
22548
22549 PR target/39175
22550 * c-common.c (c_determine_visibility): If visibility changed and
22551 DECL_RTL has been already set, call make_decl_rtl to update symbol
22552 flags.
22553
68017cb4
L
225542009-02-19 H.J. Lu <hongjiu.lu@intel.com>
22555
22556 PR c++/39188
22557 * varasm.c (assemble_variable): Don't check DECL_NAME when
22558 globalizing a variable.
22559
ab4194da
JM
225602009-02-19 Joseph Myers <joseph@codesourcery.com>
22561
22562 PR c/38483
22563 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
22564 expression before any __builtin_trap call.
22565 * c-typeck.c (build_function_call): Convert and check function
22566 arguments before generating a call to a trap. Evaluate the
22567 function arguments before the trap.
22568
6b67572e
UB
225692009-02-19 Uros Bizjak <ubizjak@gmail.com>
22570
22571 PR target/39228
22572 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
22573 (UNSPEC_FXAM_MEM): New unspec.
22574 (fxam<mode>2_i387_with_temp): New insn and split pattern.
22575 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
22576 memory using fxam<mode>2_i387_with_temp to remove excess precision.
22577
9e39dba6
RG
225782009-02-19 Richard Guenther <rguenther@suse.de>
22579
22580 PR tree-optimization/39207
22581 PR tree-optimization/39074
22582 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
22583 storedanything_tree): New.
22584 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 22585 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
22586 (build_succ_graph): Add edges from STOREDANYTHING to all
22587 non-direct nodes.
22588 (init_base_vars): Initialize STOREDANYTHING.
22589 (compute_points_to_sets): Free substitution info after
22590 building the succ graph.
22591 (ipa_pta_execute): Likewise.
22592
22593 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
22594 field.
22595 (do_ds_constraint): Do not add to special var or non-pointer
22596 field solutions.
22597 (type_could_have_pointers): Split out from ...
22598 (could_have_pointers): ... here. For arrays use the element type.
22599 (create_variable_info_for): Initialize may_have_pointers.
22600 (new_var_info): Likewise.
22601 (handle_lhs_call): Make the HEAP variable unknown-sized.
22602 (intra_create_variable_infos): Use a type with pointers for
22603 PARM_NOALIAS, make it unknown-sized.
22604
fd7b2603
L
226052009-02-18 H.J. Lu <hongjiu.lu@intel.com>
22606
22607 PR target/39224
6b67572e 22608 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 22609
98b80692
JM
226102009-02-18 Jason Merrill <jason@redhat.com>
22611
22612 PR target/39179
22613 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
22614 value if DECL_EXTERNAL.
22615 * tree-sra.c (sra_walk_gimple_assign): Likewise.
22616 * target.h (gcc_target::binds_local_p): Clarify "module".
22617 * tree.h (TREE_PUBLIC): Clarify "module".
22618
0705d3f4
L
226192009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
22620
22621 PR target/38891
22622 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
22623 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
22624
bce08d50
L
226252009-02-17 H.J. Lu <hongjiu.lu@intel.com>
22626
22627 PR target/39082
22628 * c.opt (Wabi): Support C and ObjC.
22629 (Wpsabi): New.
22630
22631 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
22632
22633 * config/i386/i386.c (classify_argument): Warn once about the ABI
22634 change when passing union with long double.
22635
22636 * doc/invoke.texi: Update -Wabi for warning psABI changes.
22637
5600f233
JM
226382009-02-18 Joseph Myers <joseph@codesourcery.com>
22639
22640 PR c/35447
22641 * c-parser.c (c_parser_compound_statement): Always enter and leave
22642 a scope.
22643
8cd01fe6
JDA
226442009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22645
22646 PR target/34587
22647 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
22648
418df9d7
JJ
226492009-02-18 Jakub Jelinek <jakub@redhat.com>
22650
22651 PR tree-optimization/36922
22652 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
22653 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
22654 Likewise.
22655
082d2ebb
RS
226562009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
22657
22658 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
22659 to 0 for EABI64.
22660
17de576c
RS
226612009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
22662
22663 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
22664
6d8d5435
RS
226652009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
22666
22667 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
22668 tree sharing.
22669
e69ff910
RB
226702009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
22671 Richard Sandiford <rdsandiford@googlemail.com>
22672
22673 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
22674 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
22675 (loongson_biadd): ...this.
22676
6b24ee26
RG
226772009-02-17 Richard Guenther <rguenther@suse.de>
22678
22679 PR tree-optimization/39202
22680 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
22681 a var make sure to follow existing collapses.
22682
91ab2c86
RG
226832009-02-17 Richard Guenther <rguenther@suse.de>
22684
22685 PR middle-end/39214
22686 * langhooks.c (lhd_print_error_function): Check for NULL block.
22687
73a63870
RG
226882009-02-17 Richard Guenther <rguenther@suse.de>
22689
22690 PR tree-optimization/39204
22691 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
22692 of the PHI arg.
22693
0e08f686
UB
226942009-02-17 Uros Bizjak <ubizjak@gmail.com>
22695
22696 * config/soft-fp/double.h: Update from glibc CVS.
22697
a60b7ddb
RG
226982009-02-17 Richard Guenther <rguenther@suse.de>
22699
22700 PR tree-optimization/39207
22701 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
22702 strict-aliasing warnings for pointers pointing to NULL.
22703
a47e20fd
JM
227042009-02-16 Joseph Myers <joseph@codesourcery.com>
22705
22706 PR c/35446
22707 * c-parser.c (c_parser_braced_init): Call pop_init_level when
22708 skipping until next close brace.
22709
50aab7dc
L
227102009-02-16 H.J. Lu <hongjiu.lu@intel.com>
22711
22712 PR target/37049
22713 * config/i386/i386.c (ix86_expand_push): Set memory alignment
22714 to function argument boundary.
22715
68e53db0
HS
227162009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
22717
22718 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
22719 in the lea_add. Reload eventually constraints it properly.
0d50d55a 22720 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
22721 "b", since it is not needed anymore.
22722
09e361bb
JJ
227232009-02-16 Jakub Jelinek <jakub@redhat.com>
22724
22725 * gthr-dce.h: Uglify function parameter and local variable names.
22726 * gthr-gnat.h: Likewise.
22727 * gthr-mipssde.h: Likewise.
22728 * gthr-nks.h: Likewise.
22729 * gthr-posix95.h: Likewise.
22730 * gthr-posix.h: Likewise.
22731 * gthr-rtems.h: Likewise.
22732 * gthr-single.h: Likewise.
22733 * gthr-solaris.h: Likewise.
22734 * gthr-tpf.h: Likewise.
22735 * gthr-vxworks.h: Likewise.
22736 * gthr-win32.h: Likewise.
22737
47f5a48f
L
227382009-02-15 H.J. Lu <hongjiu.lu@intel.com>
22739
22740 PR target/39196
22741 * config/i386/i386.md: Restrict the new peephole2 to move
22742 between MMX/SSE registers.
22743
68c9ab45
RG
227442009-02-15 Richard Guenther <rguenther@suse.de>
22745
22746 Revert
22747 2009-02-13 Richard Guenther <rguenther@suse.de>
22748
22749 * configure.ac: Enable LFS.
22750 * configure: Re-generate.
22751 * config.in: Likewise.
22752
d7815554
UW
227532009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22754
22755 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
22756 spu_srqwbyte, spu_srqwbytebc): Define.
22757 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
22758 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
22759 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
22760 "shrqby_<mode>"): New insn-and-split patterns.
22761 * config/spu/spu.c (expand_builtin_args): Determine and return
22762 number of operands using spu_builtin_description data.
22763 (spu_expand_builtin_1): Use it.
22764
c208436c
SE
227652009-02-13 Steve Ellcey <sje@cup.hp.com>
22766
22767 PR target/38056
22768 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
22769 TARGET_CONST_GP.
22770
c2e7ba7e
L
227712009-02-13 H.J. Lu <hongjiu.lu@intel.com>
22772
22773 PR target/39149
22774 * config/i386/i386.c (override_options): Correct warning
6c6094f1 22775 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 22776
72f4e3a7
L
227772009-02-13 H.J. Lu <hongjiu.lu@intel.com>
22778
22779 PR target/39152
22780 * config/i386/i386.md: Restrict the new peephole2 to move
22781 between the general purpose registers.
22782
53f648e2
L
227832009-02-13 H.J. Lu <hongjiu.lu@intel.com>
22784
22785 PR target/39162
22786 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 22787 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
22788 (function_arg_advance): Updated.
22789 (function_arg): Likewise.
22790 (ix86_function_value): Likewise.
22791 (ix86_return_in_memory): Likewise.
22792 (ix86_sol10_return_in_memory): Likewise.
22793 (ix86_gimplify_va_arg): Likewise.
22794 (function_arg_32): Don't warn ABX ABI change here.
22795 (function_arg_64): Likewise.
22796
38432148 227972009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
22798
22799 * loop-iv.c (implies_p): In the final case, test that operands 0
22800 of the two comparisons match.
22801
dd2139e7
BS
22802 * config/bfin/bfin.c (find_prev_insn_start): New function.
22803 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
22804 (find_next_insn_start): Move.
22805
601b3e1a
RG
228062009-02-13 Richard Guenther <rguenther@suse.de>
22807
22808 * configure.ac: Enable LFS.
22809 * configure: Re-generate.
22810 * config.in: Likewise.
22811
f007042e
JM
228122009-02-13 Joseph Myers <joseph@codesourcery.com>
22813
22814 PR c/35444
22815 * c-parser.c (c_parser_parms_list_declarator): Discard pending
22816 sizes on syntax error after some arguments have been parsed.
22817
3f238e8b
JJ
228182009-02-12 Jakub Jelinek <jakub@redhat.com>
22819
22820 * doc/invoke.texi (-fira): Remove.
22821
328e13b7
L
228222009-02-12 H.J. Lu <hongjiu.lu@intel.com>
22823
22824 * caller-save.c: Replace regclass.c with reginfo.c in comments.
22825 * recog.c: Likewise.
22826 * rtl.h: Likewise.
22827
c252db20
L
228282009-02-12 Uros Bizjak <ubizjak@gmail.com>
22829
22830 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
22831 (umul_ppmm): Likewise.
22832 (count_leading_zeros): Likewise.
22833 (count_trailing_zeros): Likewise.
22834 (UMUL_TIME): Likewise.
22835
228362009-02-12 H.J. Lu <hongjiu.lu@intel.com>
22837
ba181049
UB
22838 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
22839 soft-fp/t-softfp to tmake_file.
c252db20
L
22840
22841 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
22842 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
22843 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
22844 IA64_BUILTIN_INFQ]: New.
c252db20
L
22845 (ia64_init_builtins): Initialize __builtin_infq,
22846 __builtin_fabsq and __builtin_copysignq if not HPUX.
22847 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
22848 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
22849
22850 * config/ia64/lib1funcs.asm (__divtf3): Define only if
22851 SHARED is defined.
22852 (__fixtfti): Likewise.
22853 (__fixunstfti): Likewise.
22854 (__floattitf): Likewise.
22855
22856 * config/ia64/libgcc-glibc.ver: New.
22857 * config/ia64/t-fprules-softfp: Likewise.
22858 * config/ia64/sfp-machine.h: Likewise.
22859
22860 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
22861 (LIBGCC2_TF_CEXT): Likewise.
22862 (TF_SIZE): Likewise.
22863 (TARGET_INIT_LIBFUNCS): Likewise.
22864
ba181049 22865 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 22866 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 22867
f13eae6a
L
228682009-02-12 H.J. Lu <hongjiu.lu@intel.com>
22869
22870 * config/i386/i386.c (construct_container): Rewrite processing
22871 BLKmode with X86_64_SSE_CLASS.
22872
12019aec
L
228732009-02-12 Paolo Bonzini <bonzini@gnu.org>
22874
22875 PR target/39152
22876 * config/i386/i386.md: Replace simplify_replace_rtx with
22877 replace_rtx in the new peephole2.
22878
28c11eb3
NS
228792009-02-12 Nathan Sidwell <nathan@codesourcery.com>
22880
22881 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
22882 loop unrolling do not happen at -O2.
22883
c7b94907
MM
228842009-02-12 Michael Matz <matz@suse.de>
22885
22886 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
22887
61e98967
JJ
228882009-02-12 Jakub Jelinek <jakub@redhat.com>
22889
22890 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
22891 for -g3.
22892
a2a237b5
BE
228932009-02-12 Ben Elliston <bje@au.ibm.com>
22894
22895 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
22896 patterns when updating the back chain. Missed in the 2009-02-10
22897 change.
22898
853eda8d
JJ
228992009-02-11 Janis Johnson <janis187@us.ibm.com>
22900
22901 * doc/extend.texi (Decimal Floating Types): Update identifier of
22902 draft TR and list of missing support.
22903
3ad6b266
JJ
229042009-02-11 Jakub Jelinek <jakub@redhat.com>
22905
22906 PR middle-end/39154
22907 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
22908 bit to variable length decl's flags, add it also to its
22909 pointer replacement variable.
22910
b058b753
UB
229112009-02-11 Uros Bizjak <ubizjak@gmail.com>
22912 Jakub Jelinek <jakub@redhat.com>
22913
22914 PR target/39118
22915 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
22916 (memory_blockage): New expander.
22917 (*memory_blockage): New insn pattern.
22918 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
22919 instead of general blockage at the end of function prologue when
22920 frame pointer is used to access red zone area. Do not emit blockage
22921 when profiling, it is emitted in generic code.
22922 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
22923 function epilogue when frame pointer is used to access red zone area.
22924
bab64f23
PB
229252009-02-11 Paolo Bonzini <bonzini@gnu.org>
22926
0ce6dcfa 22927 PR target/38824
bab64f23
PB
22928 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
22929 by arithmetic with memory operands.
22930 * config/i386/predicates.md (commutative_operator): New.
22931
8fd94bda
JJ
229322009-02-10 Janis Johnson <janis187@us.ibm.com>
22933
22934 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
22935 bulleted lists.
22936
794511d2
EB
229372009-02-10 Eric Botcazou <ebotcazou@adacore.com>
22938
22939 * alias.h (record_alias_subset): Declare.
22940 * alias.c (record_alias_subset): Make global.
22941
6da7fc87
NC
229422009-02-10 Nick Clifton <nickc@redhat.com>
22943
22944 * tree-parloops.c: Change license to GPLv3.
22945 * ipa-struct-reorg.c: Change license to GPLv3.
22946 * ipa-struct-reorg.h: Change license to GPLv3.
22947
a03813c8
SE
229482009-02-10 Steve Ellcey <sje@cup.hp.com>
22949
22950 PR c/39084
22951 * c-decl.c (start_struct): Return NULL on error.
22952
fc3103e7
JJ
229532009-02-10 Jakub Jelinek <jakub@redhat.com>
22954
9b43d37b
JJ
22955 PR middle-end/39124
22956 * cfgloopmanip.c (remove_path): Call remove_bbs after
22957 cancel_loop_tree, not before it.
22958
fc3103e7 22959 PR target/39139
b058b753 22960 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
22961 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
22962 VAR_DECLs were seen.
22963 * tree-ssa-live.c (remove_unused_locals): Recompute
22964 cfun->has_local_explicit_reg_vars.
22965 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
22966 copies or clearings if cfun->has_local_explicit_reg_vars.
22967
dbf9ee15
UB
229682009-02-10 Uros Bizjak <ubizjak@gmail.com>
22969
22970 PR target/39118
22971 * config/i386/i386.c (expand_prologue): Emit blockage at the end
22972 of function prologue when frame pointer is used to access
22973 red zone area.
22974
bdec4dc7
RG
229752009-02-10 Richard Guenther <rguenther@suse.de>
22976
22977 PR middle-end/39127
22978 * gimplify.c (gimple_regimplify_operands): Always look if
22979 we need to create a temporary.
22980
7cae94fc
RG
229812009-02-10 Richard Guenther <rguenther@suse.de>
22982
22983 PR tree-optimization/39132
22984 * tree-loop-distribution.c (todo): New global var.
22985 (generate_memset_zero): Trigger TODO_rebuild_alias.
22986 (tree_loop_distribution): Return todo.
22987
a8800687
L
229882009-02-10 H.J. Lu <hongjiu.lu@intel.com>
22989
22990 PR target/39119
22991 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
22992 (x86_64_reg_class_name): Removed.
22993 (classify_argument): Return 0 if bytes > 32. Return 0 if the
22994 first one isn't X86_64_SSE_CLASS or any other ones aren't
22995 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
22996 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
22997 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
22998 and 3 X86_64_SSEUP_CLASS.
22999 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
23000 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
23001
d4bacef0
BE
230022009-02-10 Ben Elliston <bje@au.ibm.com>
23003
23004 * config/rs6000/rs6000.md (allocate_stack): Always use an update
23005 form instruction to update the stack back chain word, even if the
23006 user has disabled the generation of update instructions.
23007 (movdi_<mode>_update_stack): New.
23008 (movsi_update_stack): Likewise.
23009 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
23010 always use an update form instruction to update the stack back
23011 chain word.
23012
01d7d2f3
SP
230132009-02-09 Sebastian Pop <sebastian.pop@amd.com>
23014
23015 PR middle-end/38953
b058b753
UB
23016 * graphite.c (if_region_set_false_region): After moving a region in
23017 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
23018 (gloog): Remove wrong fix for PR38953.
23019
e41e2ab4
UW
230202009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23021
23022 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
23023 generation due to implicit sign extension.
23024
4bb07c5d
EB
230252009-02-09 Eric Botcazou <ebotcazou@adacore.com>
23026
23027 PR middle-end/38981
23028 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
23029 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
23030
f060a261
RG
230312009-02-09 Richard Guenther <rguenther@suse.de>
23032
23033 PR middle-end/35202
23034 * convert.c (convert_to_real): Disable (float)fn((double)x)
23035 to fnf(x) conversion if errno differences may occur and
23036 -fmath-errno is set.
23037
5a7e237c
AS
230382009-02-07 Anatoly Sokolov <aesok@post.ru>
23039
23040 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
23041 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
23042 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
23043
feab5a67
JM
230442009-02-06 Joseph Myers <joseph@codesourcery.com>
23045
23046 PR c/35434
23047 * c-common.c (handle_alias_attribute): Disallow attribute for
23048 anything not a FUNCTION_DECL or VAR_DECL.
23049
90ef2296
JJ
230502009-02-06 Janis Johnson <janis187@us.ibm.com>
23051
23052 PR c/39035
23053 * real.c (do_compare): Special-case compare of zero against
23054 decimal float value.
23055
1de2c900
JM
230562009-02-06 Joseph Myers <joseph@codesourcery.com>
23057
23058 PR c/36432
23059 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
23060 as indicating flexible array members unless the field itself is
23061 being declarared as the incomplete array.
23062
e901811a
JH
230632009-02-06 Jan Hubicka <jh@suse.cz>
23064
23065 PR tree-optimization/38844
23066 * ipa-inline.c (try_inline): Stop inlining recursion when edge
23067 is already inlined.
23068
3cfa762b
RG
230692009-02-06 Richard Guenther <rguenther@suse.de>
23070
23071 PR middle-end/38977
23072 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
23073 fork because we may expand it as __gcov_fork.
23074
8506528c
NC
230752009-02-06 Nick Clifton <nickc@redhat.com>
23076
dbf9ee15 23077 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 23078
85169114
PB
230792009-02-06 Paolo Bonzini <bonzini@gnu.org>
23080
23081 PR tree-optimization/35659
23082 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
23083 vn_phi_eq): Shortcut if hashcode does not match.
23084 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
23085 NULL operands.
23086 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
23087 and avoid iterative_hash_expr.
23088 (FOR_EACH_VALUE_ID_IN_SET): New.
23089 (value_id_compare): Remove.
23090 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
23091 sort expressions by value id.
23092
6d39673d
KK
230932009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
23094
23095 PR target/38991
23096 * config/sh/predicates.md (general_movsrc_operand): Don't check
23097 the subreg of system registers here.
23098
e6e1c050
JJ
230992009-02-05 Jakub Jelinek <jakub@redhat.com>
23100
23101 PR c++/39106
23102 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
23103 on the copied decl.
23104
65a74b5d
PB
231052009-02-05 Paolo Bonzini <bonzini@gnu.org>
23106
23107 PR rtl-optimization/39110
23108 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
23109 addresses, not aligned ones.
23110
08e14b2a
DB
231112009-02-05 Daniel Berlin <dberlin@dberlin.org>
23112 Richard Guenther <rguenther@suse.de>
23113
23114 PR tree-optimization/39100
23115 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
23116 comment says and add edges.
23117
5006381c
JM
231182009-02-05 Joseph Myers <joseph@codesourcery.com>
23119
23120 PR c/35435
23121 * c-common.c (handle_tls_model_attribute): Ignore attribute for
23122 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
23123
2ba9daa7 231242009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
23125
23126 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
23127 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
23128 register_bb_in_sese, new_sese, free_sese): Moved.
23129 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
23130 outermost_loop_in_scop, build_scop_iteration_domain,
23131 expand_scalar_variables_ssa_name, get_vdef_before_scop,
23132 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
23133 Use loop_in_sese_p instead of loop_in_scop_p.
23134 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
23135 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
23136 (scopdet_basic_block_info): Fix bug in scop detection.
23137 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
23138 eq_loop_to_cloog_loop): Remove.
23139 (nb_loops_around_loop_in_scop, nb_loop
23140 ref_nb_loops): Moved here...
23141 * graphite.h (ref_nb_loops): ... from here.
23142 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
23143 (loop_domain_dim, loop_iteration_vector_dim): Remove.
23144 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
23145 * testsuite/gcc.dg/graphite/scop-19.c: New
23146
48e8382e
PB
231472009-02-04 Paolo Bonzini <bonzini@gnu.org>
23148 Hans-Peter Nilsson <hp@axis.com>
23149
23150 PR rtl-optimization/37889
23151 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
23152 Move offset handling from PLUS to before the switch. Use new
23153 arguments when considering SYMBOL_REFs too.
23154 (rtx_addr_can_trap_p): Pass dummy offset and size.
23155 (enum may_trap_p_flags): Remove.
23156 (may_trap_p_1): Pass size from MEM_SIZE.
23157
23158 PR rtl-optimization/38921
23159 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
23160 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
23161 * rtlanal.c (may_trap_after_code_motion_p): Delete.
23162 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
23163
69349ea5
L
231642009-02-04 H.J. Lu <hongjiu.lu@intel.com>
23165
23166 AVX Programming Reference (January, 2009)
23167 * config/i386/sse.md (*vpclmulqdq): New.
23168
b545e411
JJ
231692009-02-04 Jakub Jelinek <jakub@redhat.com>
23170
23171 PR tree-optimization/38977
23172 PR gcov-profile/38292
bf9b2cc9 23173 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 23174
5b43bf05
HS
231752009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
23176
23177 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
23178 non-indexable addresses even before reload.
23179
062c4bb3
JM
231802009-02-03 Joseph Myers <joseph@codesourcery.com>
23181
23182 PR c/29129
23183 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
23184 as having variable size. Do not give an error for unnamed
23185 parameters with [*] declarators. Give a warning for type names
23186 with [*] declarators and mark them as variable size.
23187 * c-parser.c (c_parser_sizeof_expression): Do not give an error
23188 for sizeof applied to [*] type names.
23189
6175f578
AP
231902009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
23191
23192 PR C++/36607
23193 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
23194
d4f4bc84
JJ
231952009-02-03 Jakub Jelinek <jakub@redhat.com>
23196
23197 * gcc.c (process_command): Update copyright notice dates.
23198 * gcov.c (print_version): Likewise.
23199 * gcov-dump.c (print_version): Likewise.
23200 * mips-tfile.c (main): Likewise.
23201 * mips-tdump.c (main): Likewise.
23202
f6294de7
JM
232032009-02-03 Joseph Myers <joseph@codesourcery.com>
23204
23205 PR c/35433
23206 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
23207 for composite type involving a zero-length array type.
23208
754ccf7c
JJ
232092009-02-03 Jakub Jelinek <jakub@redhat.com>
23210
70f16287
JJ
23211 PR target/35318
23212 * function.c (match_asm_constraints_1): Skip over
23213 initial optional % in the constraint.
23214
754ccf7c
JJ
23215 PR inline-asm/39059
23216 * c-parser.c (c_parser_postfix_expression): If fixed point is not
23217 supported, don't accept FIXED_CSTs.
23218 * c-decl.c (finish_declspecs): Error if fixed point is not supported
23219 and _Sat is used without _Fract/_Accum. Set specs->type to
23220 integer_type_node for cts_fract/cts_accum if fixed point is not
23221 supported.
23222
965fdadf
CM
232232009-02-02 Catherine Moore <clm@codesourcery.com>
23224
dbf9ee15 23225 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 23226
2e8a796f
RS
232272009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
23228
23229 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
23230 (ABI_HAS_64BIT_SYMBOLS): Use it.
23231 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
23232
e0079468
PB
232332009-02-02 Paul Brook <paul@codesourcery.com>
23234
23235 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
23236
eca72963
JJ
232372009-02-02 Jakub Jelinek <jakub@redhat.com>
23238
23239 PR inline-asm/39058
23240 * recog.h (asm_operand_ok): Add constraints argument.
23241 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
23242 recurse on matching constraint.
23243 (check_asm_operands): Pass constraints as 3rd argument to
23244 asm_operand_ok. Don't look up matching constraint here.
23245 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
23246 to asm_operand_ok.
23247
b5bde9ff
BE
232482009-02-02 Ben Elliston <bje@au.ibm.com>
23249
23250 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
23251 TARGET_NARROW_VOLATILE_BITFIELD macro names.
23252
30f3e427
JDA
232532009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23254
be7659ba
JDA
23255 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
23256 information. Remove some obsolete information. Reorganize.
23257
30f3e427
JDA
23258 * config/pa/fptr.c: Revert license to GPL 2.
23259 * config/pa/milli64.S: Likewise.
23260
3cbfaf98
DK
232612009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
23262
23263 PR target/38904
23264 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
23265 LIBRARY name in, instead of hard-coding it.
23266 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
23267 extra target make frag to tmake_files according to EH model.
23268 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23269 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
23270 frags that define makefile variable EH_MODEL appropriately.
23271 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
23272 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
23273 to "-sjlj" according to type of EH configured.
23274 (LIBGCC_SONAME): Concatenate it to shared library base name.
23275 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
23276 to "_sjlj" according to type of EH configured.
23277 (LIBGCC_SONAME): Concatenate it to shared library base name.
23278 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
23279 (SHLIB_LINK): Add missing semicolon to if-else construct.
23280 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
23281 string value of "pe_dll" command-line option.
23282 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
23283 (SHLIB_SONAME): Use it when overriding t-cygming default.
23284 (SHLIB_IMPLIB): Override t-cygming default.
23285 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
23286 string value of "pe_dll" command-line option.
23287
8d0b6068
DK
232882009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
23289
23290 PR target/38952
23291 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 23292 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 23293
14c28276
RG
232942009-01-31 Richard Guenther <rguenther@suse.de>
23295
23296 PR tree-optimization/38937
23297 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
23298 computing the transitive closure.
23299
5f4d82c2
RG
233002009-01-30 Richard Guenther <rguenther@suse.de>
23301
23302 PR tree-optimization/39041
23303 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
23304 Propagate variable indices only if the types match for this stmt.
23305
d0728ae0
JJ
233062009-01-30 Jakub Jelinek <jakub@redhat.com>
23307
23308 PR target/39013
23309 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
23310 inline but never defined.
23311
6b67572e 233122009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
23313
23314 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
23315 (*insv_h_di_reg_extimm): New insn.
23316 (*insv_l<mode>_reg_extimm): New insn.
23317
233182009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
23319
23320 * config/picochip/picochip.c (flag_conserve_stack): set
23321 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
23322 fconserve-stack. Reduce call-overhead used by inliner.
23323
9fec758d 233242009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
23325
23326 PR/38157
23327 * common.opt (flag_conserve_stack): Initialised to zero.
23328
7f1c539c
KT
233292009-01-30 Kai Tietz <kai.tietz@onevision.com>
23330
23331 PR/39002
23332 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
23333 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
23334 method.
23335
3631be48
L
233362009-01-29 H.J. Lu <hongjiu.lu@intel.com>
23337
23338 * ira-color.c (allocno_reload_assign): Update comments.
23339 * regmove.c (regmove_optimize): Likewise.
23340
23341 * ra.h: Removed.
23342
416ac4d4
RM
233432009-01-29 Robert Millan <rmh@aybabtu.com>
23344
60839f5d
EB
23345 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
23346 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 23347 `MD_UNWIND_SUPPORT'.
60839f5d 23348 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 23349
d5e54bc1
KH
233502009-01-29 Kazu Hirata <kazu@codesourcery.com>
23351
23352 PR tree-optimization/39007
23353 * tree-loop-distribution.c (generate_builtin): Use
23354 recompute_dominator to compute the immediate dominator of the
23355 basic block just after the loop.
23356
38432148 233572009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
23358
23359 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
23360 (ASM_OUTPUT_DWARF_PCREL): Define.
23361
38432148 233622009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
23363
23364 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
23365 * doc/passes.texi: Remove entries about regclass, local-alloc, and
23366 global. Modify entries about regmove and IRA.
23367
23368 * ra-conflict.c: Remove the file.
23369
23370 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
23371
23372 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
23373 (pass_regclass_init): Rename to pass_reginfo_init.
23374
23375 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
23376
23377 * toplev.h (flag_ira): Remove.
23378
23379 * caller-save.c (setup_save_areas): Remove flag_ira.
23380
bf9b2cc9 23381 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
23382
23383 * global.c: Remove the file.
23384
ba20e309 23385 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
23386
23387 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
23388
23389 * regmove.c: Modify file description.
23390 (find_use_as_address, try_auto_increment): Define them only if
23391 AUTO_INC_DEC is defined.
23392 (replacement_quality, replace_in_call_usage, fixup_match_1,
23393 stable_and_no_regs_but_for_p): Remove.
23394 (reg_set_in_bb): Make it static.
23395 (regmove_optimize): Remove flag_ira and code which worked for
23396 !flag_ira.
23397
23398 * local-alloc.c: Remove the file.
23399
23400 * common.opt (fira): Remove.
23401
23402 * ira.c: Include except.h.
23403 (eliminable_regset): Move from global.c.
23404 (mark_elimination): Ditto. Remove flag_ira.
23405 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
23406 equiv_mem_modified, validate_equiv_mem_from_store,
23407 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
23408 contains_replace_regs, memref_referenced_p, memref_used_between_p,
23409 no_equiv, recorded_label_ref): Move from local-alloc.c.
23410 (update_equiv_regs): Ditto. Make it static.
23411 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 23412 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
23413 (build_insn_chain): Ditto. Make it static.
23414 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
23415 Rename to init_live_subregs.
23416 (gate_ira): Remove flag_ira.
23417
23418 * regclass.c: Rename reginfo.c. Change file description.
23419 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 23420 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
23421 (init_reg_sets_1): Remove code for evaluation of
23422 reg_class_superclasses and losing_caller_save_reg_set.
23423 (init_regs): Remove init_reg_autoinc.
23424 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
23425 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 23426 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
23427 (pass_regclass_init): Rename to pass_reginfo_init. Modify
23428 corresponding entries.
23429 (dump_regclass, record_operand_costs, scan_one_insn,
23430 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
23431 record_address_regs, auto_inc_dec_reg_p): Remove.
23432 (gt-regclass.h): Rename to gt-reginfo.h.
23433
23434 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 23435 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
23436
23437 * Makefile.in (RA_H): Remove.
23438 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
23439 Rename regclass.o to reginfo.o.
23440 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
23441 gt-reginfo.h.
23442 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
23443 (GTFILES): Rename regclass.c to reginfo.c.
23444
23445 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 23446 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
23447
23448 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
23449 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
23450 Remove flag_ira.
6b67572e 23451 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 23452
c95b2534 234532009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
23454
23455 PR middle-end/35854
23456 * doc/invoke.texi (rtl debug options): Complete rewrite.
23457 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
23458 to auto_inc_dec".
23459 * mode-switching.c (pass_mode_switching): Rename pass from
23460 "mode-sw" to "mode_sw".
23461 * except.c (pass_convert_to_eh_ranges): Rename pass from
23462 "eh-ranges" to "eh_ranges".
23463 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
23464 to "subreg1".
2ba9daa7
AS
23465
23466
72a54528
AM
234672009-01-29 Andrey Belevantsev <abel@ispras.ru>
23468 Alexander Monakov <amonakov@ispras.ru>
23469
23470 PR middle-end/38857
23471 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
23472 register.
23473 (move_exprs_to_boundary): Change return type and pass through
23474 should_move from move_op. Relax assert. Update usage ...
23475 (schedule_expr_on_boundary): ... here. Use should_move instead of
23476 cant_move.
23477 (move_op_orig_expr_found): Indicate that insn was disconnected from
23478 stream.
23479 (code_motion_process_successors): Do not call after_merge_succs
23480 callback if original expression was not found when traversing any of
23481 the branches.
23482 (code_motion_path_driver): Change return type. Update prototype.
23483 (move_op): Update comment. Add a new parameter (should_move). Update
23484 prototype. Set *should_move based on indication provided by
23485 move_op_orig_expr_found.
23486
001b9eb6
PH
234872009-01-28 Pat Haugen <pthaugen@us.ibm.com>
23488
23489 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
23490 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
23491 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
23492 * config/rs6000/rs6000.c (rs6000_override_options): Default
23493 avoid-indexed-addresses on for Power6, off for everything else.
23494 (avoiding_indexed_address_p): New function.
23495 (rs6000_legitimize_address): Use it.
23496 (rs6000_legitimate_address): Likewise.
23497 * config/rs6000/rs6000.md (movXX_updateX): Likewise
23498
59dc4898
KH
234992009-01-28 Kazu Hirata <kazu@codesourcery.com>
23500
23501 PR tree-optimization/38997
23502 * tree-loop-distribution.c (generate_memset_zero): Use
23503 POINTER_PLUS_EXPR for a pointer addition.
23504
07da44ab
AK
235052009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
23506
23507 * config/s390/s390.md (bswap<mode>2): New pattern added.
23508
cdc15d23
WG
235092009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
23510
23511 * config/s390/s390.md (*tls_load_31): Added type attribute.
23512
d46f24b6
WG
235132009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
23514
23515 * config/s390/s390.md: Fix a few comments.
23516
729e750f
WG
235172009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
23518
23519 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
23520 (*tm<mode>_full): Fixed z10prop attribute.
23521 (*tst<mode>_extimm): Fixed z10prop attribute.
23522 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
23523 (*tstqiCCT_cconly): Fixed z10prop attribute.
23524 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
23525 (*movsi_larl): Fixed z10prop attribute.
23526 (*movsi_zarch): Fixed z10prop attribute.
23527 (*movsi_eas): Fixed z10prop attribute.
23528 (*movhi): Fixed z10prop attribute.
23529 (*movqi): Fixed z10prop attribute.
23530 (*movstrictqi): Fixed z10prop attribute.
23531 (*mov<mode>): Fixed z10prop attribute.
23532 (*movcc): Fixed z10prop attribute.
23533 (*sethighpartdi_64): Fixed z10prop attribute.
23534 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
23535 (*negdi2_sign_cc): Fixed z10prop attribute.
23536 (*negdi2_sign): Fixed z10prop attribute.
23537 (*absdi2_sign_cc): Fixed z10prop attribute.
23538 (*absdi2_sign): Fixed z10prop attribute.
23539 (*negabsdi2_sign_cc): Fixed z10prop attribute.
23540 (*negabsdi2_sign): Fixed z10prop attribute.
23541 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
23542 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
23543 (doloop_si64): Fixed z10prop attribute.
23544 (doloop_si31): Fixed z10prop attribute.
23545 (doloop_long): Fixed z10prop attribute.
23546 (indirect_jump): Fixed z10prop attribute.
23547 (nop): Fixed z10prop attribute.
23548 (main_base_64): Fixed z10prop attribute.
23549 (reload_base_64): Fixed z10prop attribute.
23550
c7789bfb
JJ
235512009-01-28 Jakub Jelinek <jakub@redhat.com>
23552
23553 PR rtl-optimization/38740
6b67572e
UB
23554 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
23555 if !optimize.
c7789bfb
JJ
23556 * config/mips/mips.c (mips_reorg): Likewise.
23557
de081cfd
RG
235582009-01-28 Richard Guenther <rguenther@suse.de>
23559
23560 PR tree-optimization/38926
23561 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
23562 with the correct value id to a value.
23563 (do_regular_insertion): Use the value number of edoubleprime
23564 for the value number of the expr.
23565
23566 Revert
23567 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 23568
d748c406
UB
23569 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
23570 a PHI ask VN if it is already available.
23571 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
23572 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 23573
a9d386a1
JJ
235742009-01-28 Jakub Jelinek <jakub@redhat.com>
23575
23576 PR middle-end/38934
23577 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
23578 set to varying whenever max has TREE_OVERFLOW set, similarly
23579 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
23580
97a170cd
RG
235812009-01-28 Richard Guenther <rguenther@suse.de>
23582
23583 PR middle-end/38908
23584 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
23585 uninitialized aggregate uses in call arguments.
23586
89ebafc6
PB
235872009-01-28 Paolo Bonzini <bonzini@gnu.org>
23588
23589 PR tree-optimization/38984
23590 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
23591 the nothing_id variable if -fno-delete-null-pointer-checks.
23592
bef3c57b
UB
235932009-01-28 Uros Bizjak <ubizjak@gmail.com>
23594
23595 PR target/38988
23596 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
23597 (set_got_offset_rex64): Ditto.
23598
0c6390fa
L
235992009-01-27 H.J. Lu <hongjiu.lu@intel.com>
23600
23601 PR target/38941
23602 * doc/extend.texi: Improve local variable with asm reg.
23603
bee6fa6d
AN
236042009-01-27 Adam Nemet <anemet@caviumnetworks.com>
23605
23606 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
23607 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
23608 was not supplied then set warn_packed_bitfield_compat to the
23609 default value of 1.
23610 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
23611 against 1.
23612
b5c3dfbb
RG
236132009-01-27 Richard Guenther <rguenther@suse.de>
23614
23615 PR tree-optimization/38503
23616 * cfgexpand.c (expand_gimple_basic_block): Ignore
23617 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
23618 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
23619 variables that cannot have TBAA applied.
23620 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
23621 statements.
23622
d748c406 236232009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
23624
23625 PR middle-end/38969
23626 * calls.c (initialize_argument_information): Do not wrap complex
23627 arguments in SAVE_EXPR.
23628
9112bb38
AT
236292009-01-26 Andreas Tobler <a.tobler@schweiz.org>
23630
23631 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 23632 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 23633
4757704f
RG
236342009-01-26 Richard Guenther <rguenther@suse.de>
23635
23636 PR tree-optimization/38745
23637 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
23638 from special handling.
23639
e3e6cff4
RG
236402009-01-26 Richard Guenther <rguenther@suse.de>
23641
23642 PR tree-optimization/38745
23643 * tree-ssa.c (execute_update_addresses_taken): Do not include
23644 variables that cannot possibly be a register in not_reg_needs.
23645 Do not clear TREE_ADDRESSABLE on vars that may not become
23646 registers.
23647 * tree-ssa.c (update_alias_info_1): Include those in the set
23648 of addressable vars.
23649
dc874b53
RG
236502009-01-26 Richard Guenther <rguenther@suse.de>
23651
23652 PR middle-end/38851
23653 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
23654 * tree-ssa-dse.c: Include langhooks.h
23655 (execute_simple_dse): Remove stores with zero size.
23656
849421a3
JJ
236572009-01-24 Jakub Jelinek <jakub@redhat.com>
23658
23659 PR c/38957
23660 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
23661 as PLUS_EXPR.
23662
82f70421
JB
236632009-01-24 Julian Brown <julian@codesourcery.com>
23664
23665 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
23666 config/arm/linux-atomic.c.
23667 * config/arm/linux-atomic.c: New.
23668
863412d6
EB
236692009-01-24 Eric Botcazou <ebotcazou@adacore.com>
23670
23671 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
23672 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
23673 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
23674
8c684300
L
236752009-01-24 H.J. Lu <hongjiu.lu@intel.com>
23676
23677 PR c/38938
93f1527a 23678 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
23679 properly.
23680
b840fb02
SP
236812009-01-24 Sebastian Pop <sebastian.pop@amd.com>
23682
23683 PR tree-optimization/38953
23684 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
23685 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
23686 (gloog): Split the exit of the scop when the scop exit is a loop exit.
23687 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
23688 changed the CFG.
23689
ecee559f
PB
236902009-01-24 Paul Brook <paul@codesourcery.com>
23691
23692 * config/arm/neon.md (neon_type): Move to arm.md.
23693 (neon_mov<VSTRUCT>): Add neon_type attribute.
23694 * config/arm/arm.md (neon_type): Move to here.
23695 (conds): Add "unconditioal" and use as default for NEON insns.
23696
61ad0914
BE
236972009-01-24 Ben Elliston <bje@au.ibm.com>
23698
23699 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
23700 void *' warning from -Wc++-compat.
23701 * Makefile.in (dominance.o-warn): Remove.
23702
38432148 237032009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
23704
23705 PR tree-optimization/38932
23706 * fold-const.c (fold_unary_ignore_overflow): New.
23707 * tree.h (fold_unary_ignore_overflow): Declare.
23708 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
23709 * tree-ssa-sccvn.c (visit_reference_op_load,
23710 simplify_unary_expression): Likewise.
23711
2cd36c22
AN
237122009-01-22 Adam Nemet <anemet@caviumnetworks.com>
23713
23714 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
23715 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
23716 regardless of their type.
23717 * c-common.c (handle_packed_attribute): Don't ignore packed on
23718 bitfields.
23719 * c.opt (Wpacked-bitfield-compat): New warning option.
23720 * stor-layout.c (place_field): Warn if offset of a field changed.
23721 * doc/extend.texi (packed): Mention the ABI change.
23722 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
23723 (Warning Options): Add it to the list.
23724
e4e624ab
L
237252009-01-22 H.J. Lu <hongjiu.lu@intel.com>
23726
23727 * c-opts.c (c_common_post_options): Fix a typo in comments.
23728
d0ea0759
SE
237292009-01-22 Steve Ellcey <sje@cup.hp.com>
23730
23731 PR middle-end/38615
23732 * gimplify.c (gimplify_init_constructor): Fix promotion of const
23733 variables to static.
23734 * doc/invoke.texi (-fmerge-all-constants): Update description.
23735
87673f84
UB
237362009-01-22 Uros Bizjak <ubizjak@gmail.com>
23737
23738 PR target/38931
23739 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
23740 (*movdi_1_rex64): Use type "mmx" for alternative 5.
23741
96339268
RE
237422009-01-22 Richard Earnshaw <rearnsha@arm.com>
23743
23744 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
23745 a word boundary.
23746 (LOCAL_ALIGNMENT): Similarly.
23747
442dc742 237482009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 23749 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
23750
23751 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
23752 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
23753 * config/arm/arm-tune.md: Regenerate.
23754 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
23755 -march=iwmmxt2.
23756
9b34732e
MS
237572009-01-22 Mark Shinwell <shinwell@codesourcery.com>
23758
23759 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
23760 version number to five.
23761
03c2a308
DS
237622009-01-22 Dodji Seketeli <dodji@redhat.com>
23763
23764 PR c++/38930
ba20e309 23765 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
23766 * c-common.c (set_underlying_type): Likewise.
23767 (is_typedef_decl ): Likewise
23768 * tree.h: Likewise
23769 (set_underlying_type): Likewise.
23770 (is_typedef_type): Likewise.
23771
1240d76e
VM
237722009-01-21 Vladimir Makarov <vmakarov@redhat.com>
23773
23774 PR middle-end/38587
23775 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
23776 crossing setjmps.
23777
b8a1087d
DK
237782009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
23779
23780 PR bootstrap/37660
23781 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
23782 (LIBGCC_SPEC): Don't define.
23783 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
23784
435da628
UB
237852009-01-21 Uros Bizjak <ubizjak@gmail.com>
23786
23787 PR rtl-optimization/38879
23788 * alias.c (base_alias_check): Unaligned access via AND address can
23789 alias all surrounding object types except those with sizes equal
23790 or wider than the size of unaligned access.
23791
d597b3ce
DS
237922009-01-21 Dodji Seketeli <dodji@redhat.com>
23793
23794 PR c++/26693
ba20e309 23795 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 23796 * c-common.c (set_underlying_type): ... here.
435da628 23797 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
23798 the newly created typedef variant type.
23799 (is_typedef_decl ): New entry point.
23800 * tree.h: Added a new member member_types_needing_access_check to
23801 struct tree_decl_non_common.
23802 (set_underlying_type): New entry point.
23803 (is_typedef_type): Likewise.
23804
71a6fe66
BM
238052009-01-21 Bingfeng Mei <bmei@broadcom.com>
23806
23807 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
23808 Check whether two instructions have memory references that
23809 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
23810 are helper functions for traversing.
23811 * alias.h (insn_alias_sets_confilict_p): New prototypes.
23812 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
23813 not to draw dependency edge for instructions with non-conflicting
23814 alias sets.
23815
5a248274
JM
238162009-01-20 Joseph Myers <joseph@codesourcery.com>
23817
23818 PR other/38758
6b67572e
UB
23819 * longlong.h: Update copyright years. Use soft-fp license notice.
23820 Sync __clz_tab declaration with glibc.
5a248274 23821
4b84f3de
SE
238222009-01-20 Steve Ellcey <sje@cup.hp.com>
23823
23824 PR target/30687
23825 * doc/extend.texi (syscall_linkage): New.
23826 (version_id): Modify.
23827
37348bf1 238282009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 23829 Richard Guenther <rguenther@suse.de>
37348bf1
AP
23830
23831 PR tree-optimization/38747
23832 PR tree-optimization/38748
23833 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
23834 conversion if the base address is an indirect reference and the
23835 aliasing sets could cause issues.
23836
d0a58904
SP
238372009-01-20 Sebastian Pop <sebastian.pop@amd.com>
23838
2ba9daa7 23839 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
23840 explaining why these options are not documented.
23841
71e7afb2
SP
238422009-01-20 Sebastian Pop <sebastian.pop@amd.com>
23843
23844 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
23845 gimple_call_lhs is NULL.
23846
38432148 238472009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
23848
23849 PR target/38868
23850 * emit-rtl.c (adjust_address_1): Make sure memref is never
23851 overwritten.
23852
cbb8dee3
BE
238532009-01-20 Ben Elliston <bje@au.ibm.com>
23854
23855 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 23856 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
23857 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
23858 const qualifier from arg 2.
23859
72c66596
IS
238602009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
23861
435da628 23862 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 23863
f68211cd
VM
238642009-01-19 Vladimir Makarov <vmakarov@redhat.com>
23865
23866 PR c/38869
23867 * rtl.h (reinit_regs): New prototype.
23868 * regclass.c: Include ira.h.
23869 (reinit_regs): New.
23870 * Makefile.in (regclass.o): Add ira.h.
23871 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
23872
6e4f1168
L
238732009-01-18 H.J. Lu <hongjiu.lu@intel.com>
23874
23875 PR target/38736
23876 * c-common.c (handle_aligned_attribute): Use
23877 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
23878 default alignment value.
23879
23880 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
23881
23882 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
23883 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
23884
23885 * doc/extend.texi: Update __attribute__ ((aligned)). Document
23886 __BIGGEST_ALIGNMENT__.
23887
23888 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
23889
890065bf
RG
238902009-01-18 Richard Guenther <rguenther@suse.de>
23891
23892 PR tree-optimization/38819
23893 * tree-flow.h (operation_could_trap_helper_p): Declare.
23894 * tree-eh.c (operation_could_trap_helper_p): Export.
23895 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
23896 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
23897 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
23898 are about to insert a possibly trapping instruction and fail
23899 in this case.
23900
a729d731
AS
239012009-01-18 Andreas Schwab <schwab@suse.de>
23902
23903 * doc/install.texi (Configuration): Remove obsolete paragraph
23904 about use of --with-gnu-ld with --with-gnu-as.
23905
a640c13b
KH
239062009-01-18 Kazu Hirata <kazu@codesourcery.com>
23907
23908 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
23909 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
23910 Follow spelling conventions.
23911
dba2cc0c
BE
239122009-01-18 Ben Elliston <bje@au.ibm.com>
23913
23914 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
23915 C++ warning about implicit conversion from void * to struct
23916 bitmap_head_def *.
23917 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 23918 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 23919
2207a498
DK
239202009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
23921
23922 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
23923
8137e465
SP
239242009-01-17 Sebastian Pop <sebastian.pop@amd.com>
23925 Tobias Grosser <tobi.grosser@amd.com>
23926
23927 * graphite.c (graphite_trans_scop_block): Do not block single
23928 nested loops.
23929
5be1c58c
AO
239302009-01-16 Alexandre Oliva <aoliva@redhat.com>
23931
23932 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
23933 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
23934 test with assertion.
23935
786ce82d
RG
239362009-01-16 Richard Guenther <rguenther@suse.de>
23937
23938 PR tree-optimization/38835
23939 PR middle-end/36227
23940 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
23941 and INT + PTR -> (INT)(PTR p+ INT) folding.
23942 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
23943
c1cb09ad
AN
239442009-01-16 Adam Nemet <anemet@caviumnetworks.com>
23945
23946 PR target/38554
23947 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
23948 the subreg from a lowpart subreg if it is also casting the value.
23949
bcab4e19
SP
239502009-01-16 Sebastian Pop <sebastian.pop@amd.com>
23951 Tobias Grosser <tobi.grosser@amd.com>
23952
23953 * graphite.c (compare_prefix_loops): New.
23954 (build_scop_canonical_schedules): Rewritten.
23955 (graphite_transform_loops): Move build_scop_canonical_schedules
23956 after build_scop_iteration_domain.
23957
0b040072
SP
239582009-01-16 Sebastian Pop <sebastian.pop@amd.com>
23959 Tobias Grosser <tobi.grosser@amd.com>
23960
2ba9daa7 23961 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
23962 the dimension of the iteration domain. Do copy the domain
23963 only when it exists.
23964 (build_scop_conditions_1): Do not call add_conditions_to_domain.
23965 (add_conditions_to_constraints): New.
23966 (can_generate_code_stmt, can_generate_code): Removed.
23967 (gloog): Do not call can_generate_code.
23968 (graphite_transform_loops): Call add_conditions_to_constraints
23969 after building the iteration domain.
23970
56c6a499
JJ
239712009-01-16 Jakub Jelinek <jakub@redhat.com>
23972
23973 PR tree-optimization/38789
23974 * tree-ssa-threadedge.c
23975 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
23976 __builtin_constant_p.
23977
c95b2534 239782009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
23979
23980 * dce.c (delete_unmarked_insns): Reversed the order that insns are
23981 examined before deleting them.
2ba9daa7 23982
c433cb14
RE
239832009-01-16 Richard Earnshaw <rearnsha@arm.com>
23984
23985 * function.c (aggregate_value_p): Correctly extract the function
23986 type from CALL_EXPR_FN lookup.
23987
c95b2534 239882009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
23989
23990 * config/picochip/picochip.c (picochip_override_options): Revert
23991 CFI asm flag disable commited previously.
23992
c77bb78f
SP
239932009-01-15 Sebastian Pop <sebastian.pop@amd.com>
23994 Tobias Grosser <tobi.grosser@amd.com>
23995 Jan Sjodin <jan.sjodin@amd.com>
23996
23997 * graphite.c (scan_tree_for_params): On substractions negate
23998 all the coefficients of the term.
23999 (clast_to_gcc_expression_red): New. Handle reduction expressions
24000 of more than two operands.
24001 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
24002 (get_vdef_before_scop): Handle also the case of default definitions.
24003
574af2d6
RS
240042009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
24005
24006 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
24007 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
24008 Also use them when walking CALL_INSN_FUNCTION_USAGE.
24009
e939805b
L
240102009-01-15 H.J. Lu <hongjiu.lu@intel.com>
24011 Joey Ye <joey.ye@intel.com>
24012
24013 PR middle-end/37843
24014 * cfgexpand.c (expand_stack_alignment): Don't update stack
24015 boundary nor check incoming stack boundary here.
24016 (gimple_expand_cfg): Update stack boundary and check incoming
24017 stack boundary here.
24018
c95b2534 240192009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 24020
435da628 24021 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 24022
0196c95e
JJ
240232009-01-14 Jakub Jelinek <jakub@redhat.com>
24024
24025 PR rtl-optimization/38245
24026 * calls.c (expand_call): Add stack arguments to
24027 CALL_INSN_FUNCTION_USAGE even for pure calls (when
24028 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
24029 in regs and partially in memory or BLKmode arguments.
24030 (emit_library_call_value_1): Add stack arguments to
24031 CALL_INSN_FUNCTION_USAGE even for pure calls (when
24032 ACCUMULATE_OUTGOING_ARGS).
24033 * dce.c: Include tm_p.h.
24034 (find_call_stack_args): New function.
24035 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
24036 argument.
24037 (mark_insn): Call find_call_stack_args for CALL_Ps.
24038 (prescan_insns_for_dce): Walk insns backwards in bb rather than
24039 forwards. Allocate and free arg_stores bitmap if needed, pass it
24040 down to deletable_insn_p, don't mark stores set in arg_stores
24041 bitmap, clear the bitmap at the beginning of each bb.
24042 * Makefile.in (dce.o): Depend on $(TM_P_H).
24043
6df6bcfa
MM
240442009-01-14 Michael Meissner <gnu@the-meissners.org>
24045
24046 PR target/22599
435da628
UB
24047 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
24048 to make sure the insn is a conditional test (bug 22599). Reformat a
24049 few long lines.
6df6bcfa 24050
765ec70c
SP
240512009-01-14 Sebastian Pop <sebastian.pop@amd.com>
24052
24053 PR middle-end/38431
24054 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
24055 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
24056 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 24057 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
24058 scops have been code generated.
24059
7de2b688
BS
240602009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
24061 * doc/gty.texi (Invoking the garbage collector): Added new node
24062 and section documenting ggc_collect.
24063
10bd6c5c
RG
240642009-01-14 Richard Guenther <rguenther@suse.de>
24065
24066 PR tree-optimization/38826
24067 PR middle-end/38477
24068 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
24069 initialization notes only if we actually emitted a warning.
24070 (intra_create_variable_infos): Add constraints for a result decl
24071 that is passed by hidden reference.
24072 (build_pred_graph): Mark all related variables non-direct on
24073 address-taking.
24074
9c7c70ee
NC
240752009-01-14 Nick Clifton <nickc@redhat.com>
24076
24077 * ira-conflicts.c: Include addresses.h for the definition of
24078 base_reg_class.
435da628
UB
24079 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
24080 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 24081
cf0c2a60
VM
240822009-01-13 Vladimir Makarov <vmakarov@redhat.com>
24083
24084 PR target/38811
24085 * Makefile.in (ira-lives.o): Add except.h.
24086
24087 * ira-lives.c: Include except.h.
24088 (process_bb_node_lives): Process can_throw_internal.
24089
d3302fd3
JJ
240902009-01-13 Jakub Jelinek <jakub@redhat.com>
24091
24092 PR rtl-optimization/38774
24093 * combine.c (simplify_set): When undoing cc_use change, don't do
24094 PUT_CODE on the newly created comparison, but instead put back the
24095 old comparison.
24096
7ab23fd0
JM
240972009-01-13 Joseph Myers <joseph@codesourcery.com>
24098
24099 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
24100 values. Remove duplicate arm8 entry.
24101
f9344488
SP
241022009-01-13 Sebastian Pop <sebastian.pop@amd.com>
24103
24104 PR tree-optimization/38786
24105 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
24106 the SSA_NAME case of expand_scalar_variables_expr.
24107 Set the type of an expression to the type of its assign statement.
24108 (expand_scalar_variables_expr): Also gather the scalar computation
24109 used to index the memory access. Do not pass loop_p.
24110 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
24111 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
24112 the gimple_stmt_iterator where it inserts new code.
24113 Do not pass loop_p.
f9344488
SP
24114 (copy_bb_and_scalar_dependences): Do not pass loop_p.
24115 (translate_clast): Update call to copy_bb_and_scalar_dependences.
24116
2d8bb84d
SP
241172009-01-13 Sebastian Pop <sebastian.pop@amd.com>
24118
24119 * graphite.h (debug_value): Removed.
24120 * graphite.c (debug_value): Removed.
24121
ff128632
RE
241222009-01-13 Richard Earnshaw <rearnsha@arm.com>
24123
435da628
UB
24124 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
24125 ldrd/strd with two 32-bit instructions.
ff128632 24126
d5a0a47b
RE
241272009-01-13 Richard Earnshaw <rearnsha@arm.com>
24128
435da628
UB
24129 * config/arm/arm.c (struct processors): Pass for speed down into
24130 cost helper functions.
d5a0a47b
RE
24131 (const_ok_for_op): Handle COMPARE and inequality nodes.
24132 (arm_rtx_costs_1): Rewrite.
24133 (arm_size_rtx_costs): Update prototype.
24134 (arm_rtx_costs): Pass speed down to helper functions.
24135 (arm_slowmul_rtx_costs): Rework cost calculations.
24136 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
24137 (arm_9e_rtx_costs): Likewise.
24138
26d5bf5b
UB
241392009-01-13 Uros Bizjak <ubizjak@gmail.com>
24140
24141 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 24142 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
24143 (alpha_legitimize_address): Do not split local symbols wider than
24144 UNITS_PER_WORD into HIGH/LO_SUM parts.
24145
5d14e3d5
DS
241462009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
24147
24148 PR bootstrap/38580
24149 * gcc.c (process_command): Replace call to execvp with calls
24150 to pex_one and exit.
24151
33faafca
AS
241522009-01-03 Anatoly Sokolov <aesok@post.ru>
24153
24154 PR target/29141
24155 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
24156 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
24157 variant for devices with 3-byte PC.
ba20e309 24158 (__tablejump_elpm__): New.
33faafca 24159
634b5df5
JJ
241602009-01-12 Jakub Jelinek <jakub@redhat.com>
24161
24162 PR c/32041
24163 * c-parser.c (c_parser_postfix_expression): Allow `->' in
24164 offsetof member-designator, handle it as `[0].'.
24165
2842bb86
JDA
241662009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24167
24168 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
24169 function when not using named sections on targets with named sections
24170 if branch distance is less than 262132.
24171
76ee70f6
RE
241722009-01-12 Richard Earnshaw <rearnsha@arm.com>
24173
24174 * combine.c (combine_instructions): Recompute
24175 optimize_this_for_speed_p for each BB in the main combine loop.
24176
f56e675d
TB
241772009-01-12 Tomas Bily <tbily@suse.cz>
24178
24179 PR middlend/38385
26d5bf5b
UB
24180 * tree-loop-distribution.c (prop_phis): New function.
24181 (generate_builtin): Call prop_phis.
24182 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 24183
c2152239
JJ
241842009-01-12 Jakub Jelinek <jakub@redhat.com>
24185
24186 PR tree-optimization/38807
24187 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
24188 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
24189
0e510b3e
AN
241902009-01-11 Adam Nemet <anemet@caviumnetworks.com>
24191
24192 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
24193 subreg of op0 to the original op0.
24194
c95b2534 241952009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
24196
24197 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 24198
53a7ff9a
MS
241992009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
24200
24201 PR debug/7055
60839f5d 24202 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
24203 starting with digits.
24204
b3a796bc
JJ
242052009-01-10 Jakub Jelinek <jakub@redhat.com>
24206
24207 PR target/38695
24208 * config/arm/arm.c (arm_is_long_call_p): Don't call
24209 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
24210
b21b850e
SB
242112009-01-09 Steven Bosscher <steven@gcc.gnu.org>
24212
24213 * regrename.c (regrename_optimize): Fix dumping.
24214 (find_oldest_value_reg): Preserve REG_POINTER.
24215 (copy_hardreg_forward_1): Likewise.
24216
e0e10d3a
DN
242172009-01-09 Diego Novillo <dnovillo@google.com>
24218
bf9b2cc9 24219 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
24220 the restrictions on its use.
24221 (gimple_uid): Tidy.
24222 (gimple_set_uid): Tidy.
24223
c9da2ae8
JJ
242242009-01-09 Jakub Jelinek <jakub@redhat.com>
24225
24226 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
24227 zero guard even if align_bytes != 0 and count is smaller than
24228 size_needed.
24229
38432148 242302009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
24231
24232 PR rtl-optimization/38495
26d5bf5b 24233 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
24234 (add_range_and_copies_from_move_list): Print all added ranges.
24235 Add ranges to memory optimized destination.
24236
260fda3d
JJ
242372009-01-09 Jakub Jelinek <jakub@redhat.com>
24238
6f6278ad
JJ
24239 PR target/38686
24240 PR target/38708
24241 * config/i386/i386.c (override_options): Reject
24242 -mstringop-strategy=rep_8byte with -m32.
24243 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
24244 to 1. Do count comparison against epilogue_size_needed at compile
24245 time even when count_exp was constant forced into register. For
24246 size_needed don't jump to epilogue, instead just avoid aligning
24247 and invoke the body algorithm. If need_zero_guard, add zero guard
24248 even if count is non-zero, but smaller than size_needed + number of
24249 bytes that could be stored for alignment.
24250 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
24251 to 1. If need_zero_guard, add zero guard even if count is non-zero,
24252 but smaller than size_needed + number of bytes that could be stored
24253 for alignment. Compare size_needed with epilogue_size_needed instead
24254 of desired_align - align, don't adjust size_needed, pass
24255 epilogue_size_needed to the epilogue expanders.
24256
260fda3d 24257 PR c/35742
26d5bf5b 24258 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 24259
67b846fa
JDA
242602009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24261
24262 * pa.c (last_address): Change to unsigned.
24263 (update_total_code_bytes): Change argument to unsigned. Don't
24264 check if insn addresses are set.
24265 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
24266 addresses are not set.
24267 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
24268
91c82473
NC
242692009-01-09 Nick Clifton <nickc@redhat.com>
24270
24271 * config/sh/symbian.c: Replace uses of DECL_INLINE with
24272 DECL_DECLARED_INLINE_P.
24273
4017e262
JJ
242742009-01-09 Jakub Jelinek <jakub@redhat.com>
24275
0a49e5c2
JJ
24276 PR middle-end/38347
24277 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
24278 GET_MODE (op0) in operand_subword_force calls.
24279
4017e262
JJ
24280 PR middle-end/38771
24281 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
24282 fold_convert arg0 operands to TREE_TYPE (op0) first.
24283
7cd06356
VM
242842009-01-08 Vladimir Makarov <vmakarov@redhat.com>
24285
24286 * params.def (ira-max-conflict-table-size): Decrease default value
24287 to 1000.
24288
96867bbd
JJ
242892009-01-08 Jakub Jelinek <jakub@redhat.com>
24290
24291 PR tree-optimization/37031
24292 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
24293 on parameter_set.
24294 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
24295 allocate it using gc instead of heap, use VEC_quick_push instead of
24296 VEC_safe_push.
24297 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
24298 instead of heap, use VEC_quick_push instead of VEC_safe_push.
24299 * tree-data-ref.h (struct access_matrix): Change matrix to gc
24300 allocated vector from heap allocated.
24301 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
24302 * tree-loop-linear.c (linear_transform_loops): Allocate nest
24303 vector only after perfect_loop_nest_depth call.
24304
68f61c3d
SP
243052009-01-08 Sebastian Pop <sebastian.pop@amd.com>
24306 Jan Sjodin <jan.sjodin@amd.com>
24307
24308 PR tree-optimization/38559
24309 * graphite.c (debug_value, copy_constraint,
24310 swap_constraint_variables, scale_constraint_variable, ): New.
24311 (get_lower_bound, get_upper_bound): Removed.
24312 (graphite_trans_bb_strip_mine): Clean up this code that works
24313 only for constant number of iterations. Fully copy upper and
24314 lower bound constraints, not only the constant part of them.
24315 * graphite.h (debug_value): Declared.
24316
82567e33
IR
243172009-01-08 Ira Rosen <irar@il.ibm.com>
24318
24319 PR tree-optimization/37194
24320 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 24321 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
24322 outside cost in case of known number of iterations.
24323
7da13f1d
NF
243242009-01-07 Nathan Froyd <froydnj@codesourcery.com>
24325 Alan Modra <amodra@bigpond.net.au>
24326
24327 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
24328 non-word-aligned REG+CONST addressing.
24329
c0f64575
UB
243302009-01-07 Uros Bizjak <ubizjak@gmail.com>
24331
24332 PR target/38706
24333 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
24334 free_after_compilation when outputting a thunk.
24335 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
24336 Do not call free_after_compilation here.
24337
301b6a4e
UB
243382009-01-07 Uros Bizjak <ubizjak@gmail.com>
24339
24340 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
24341 (ix86_valid_target_attribute_inner_p): Ditto.
24342
6a114766
JS
243432009-01-07 Jan Sjodin <jan.sjodin@amd.com>
24344
24345 PR tree-optimization/38492
24346 PR tree-optimization/38498
24347 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
24348 * tree-chrec.h (scev_is_linear_expression): Declared.
24349 * graphite.c (graphite_cannot_represent_loop_niter): New.
24350 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
24351 (graphite_loop_normal_form): Use gcc_assert.
24352 (scan_tree_for_params): Use CASE_CONVERT.
24353 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
24354 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
24355 Use gcc_assert. Discard scops that contain unhandled cases.
24356 (build_scop_conditions): Return a boolean status for unhandled cases.
24357 (strip_mine_profitable_p): Print the loop number, not its depth.
24358 (is_interchange_valid): Pass the depth of the loop nest, don't
24359 recompute it wrongly.
24360 (graphite_trans_bb_block): Same.
24361 (graphite_trans_bb_block): Print tentative of loop blocking.
24362 (graphite_trans_scop_block): Do not print that the loop has been
24363 blocked.
24364 (graphite_transform_loops): Do not handle scops that contain condition
24365 scalar phi nodes.
24366
65b82caa
L
243672009-01-07 H.J. Lu <hongjiu.lu@intel.com>
24368
24369 AVX Programming Reference (December, 2008)
24370 * config/i386/avxintrin.h (_mm256_stream_si256): New.
24371 (_mm256_stream_pd): Likewise.
24372 (_mm256_stream_ps): Likewise.
24373
24374 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
24375 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
24376 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
24377 (bdesc_special_args): Add __builtin_ia32_movntdq256,
24378 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
24379 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
24380 (ix86_expand_special_args_builtin): Likewise.
24381
24382 * config/i386/sse.md (AVXMODEDI): New.
24383 (avx_movnt<mode>): Likewise.
24384 (avx_movnt<mode>): Likewise.
24385 (<sse>_movnt<mode>): Remove AVX support.
24386 (sse2_movntv2di): Likewise.
24387
cef158f9
RG
243882009-01-07 Richard Guenther <rguenther@suse.de>
24389
24390 PR middle-end/38751
24391 * fold-const.c (extract_muldiv): Remove obsolete comment.
24392 (fold_plusminus_mult_expr): Undo MINUS_EXPR
24393 to PLUS_EXPR canonicalization for the canonicalization.
24394
246cb5be
GP
243952009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
24396
24397 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
24398 hosted cross-compilers generating less efficient code.
24399
84b9b872
RS
244002009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
24401
24402 * function.h (rtl_data): Add a dbr_scheduled_p field.
24403 * reorg.c (dbr_schedule): Set it.
24404 (gate_handle_delay_slots): Check it.
24405 * config/mips/mips.c (mips_base_delayed_branch): Delete.
24406 (mips_reorg): Check flag_delayed_branch instead of
24407 mips_base_delayed_branch.
24408 (mips_override_options): Don't set mips_base_delayed_branch
24409 or flag_delayed_branch.
24410
ace984c8
RS
244112009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
24412
24413 PR rtl-optimization/38426.
24414 * ira.c (ira): Set current_function_is_leaf earlier.
24415
7ad7809b
JJ
244162009-01-06 Jakub Jelinek <jakub@redhat.com>
24417
24418 PR rtl-optimization/38722
24419 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
24420 too early, only set a flag and modify after last possible
24421 undo_all point.
24422
c52ec948
JJ
244232009-01-06 Janis Johnson <janis187@us.ibm.com>
24424
24425 PR c/34252
24426 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
24427 * real.c (decimal_single_format): Correct values of emin and emax.
24428 (decimal_double_format): Ditto.
24429 (decimal_quad_format): Ditto.
24430 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
24431 computation of DECnn_MIN and DECnn_MAX for corrected values of
24432 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
24433 __DECnn_MIN__, and adjust its computation for the corrected value
24434 of emin.
24435
300240e1
JH
244362009-01-06 Jan Hubicka <jh@suse.cz>
24437
24438 PR target/38744
435da628 24439 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 24440
271c069e
GP
244412009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
24442
24443 * doc/contrib.texi (Contributors): Slightly adjust the end note.
24444 Add Robert Clark to the list of testers.
24445
64e4c301 244462009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 24447 Kai Tietz <kai.tietz@onevision.com>
64e4c301 24448
435da628
UB
24449 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
24450 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 24451
7650b83e 244522009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 24453 Kai Tietz <kai.tietz@onevision.com>
7650b83e 24454
435da628
UB
24455 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
24456 for w64 ABI.
24457 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
24458 (ix86_nsaved_regs): Count only general purpose regs.
24459 (ix86_nsaved_sseregs): New.
24460 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
24461 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
24462 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
24463 general purpose regs.
7650b83e
JH
24464 (ix86_emit_save_sse_regs_using_mov): New.
24465 (ix86_expand_prologue): Save SSE regs if needed.
24466 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
24467 (ix86_emit_restore_sse_regs_using_mov): New.
24468 (ix86_expand_epilogue): Save SSE regs if needed.
24469
9aa5c1b2 244702009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 24471 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 24472
435da628
UB
24473 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
24474 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
24475 functions when accumulate outgoing args is off.
9aa5c1b2 24476
f7556aae
L
244772009-01-06 H.J. Lu <hongjiu.lu@intel.com>
24478
24479 PR bootstrap/38742
24480 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
24481 before using pseudos_have_intersected_live_ranges_p.
24482
24483 * ira-int.h (ira_assert): Always define.
24484
e47b7d04
L
244852009-01-06 H.J. Lu <hongjiu.lu@intel.com>
24486
24487 AVX Programming Reference (December, 2008)
24488 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
24489 (_mm256_permute2_pd): Likewise.
24490 (_mm_permute2_ps): Likewise.
24491 (_mm256_permute2_ps): Likewise.
24492 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
24493 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
24494
24495 * config/i386/i386.c (ix86_builtins): Remove
24496 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
24497 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
24498 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
24499 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
24500 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
24501 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
24502 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
24503 __builtin_ia32_vpermil2ps256.
24504 (ix86_init_mmx_sse_builtins): Updated.
24505 (ix86_expand_args_builtin): Likewise.
24506
44b86471
JDA
245072009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24508
e47b7d04
L
24509 * pa.c (output_call): Relocate non-jump insns in the delay slot of
24510 long absolute calls when generating PA 2.0 code.
44b86471 24511
311aab06
VM
245122009-01-05 Vladimir Makarov <vmakarov@redhat.com>
24513
24514 PR rtl-optimization/38583
24515 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
24516
24517 * params.def (ira-max-conflict-table-size): New.
24518
24519 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 24520
311aab06 24521 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 24522
311aab06
VM
24523 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
24524 table. Report this. Return result of building.
24525 (ira_build_conflicts): Use ira_conflicts_p. Check result of
24526 building conflict table.
24527
301b6a4e 24528 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 24529 (ira_color): Use ira_conflicts_p.
2ba9daa7 24530
311aab06
VM
24531 * global.c: Include ira.h.
24532 (pseudo_for_reload_consideration_p, build_insn_chain): Use
24533 ira_conflicts_p.
24534
24535 * Makefile.in (global.o): Add ira.h.
2ba9daa7 24536
311aab06
VM
24537 * ira-build.c (mark_all_loops_for_removal,
24538 propagate_some_info_from_allocno): New.
24539 (remove_unnecessary_allocnos): Call
24540 propagate_some_info_from_allocno.
24541 (remove_low_level_allocnos): New.
24542 (remove_unnecessary_regions): Add parameter. Call
24543 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
24544 parameter to remove_unnecessary_regions.
24545 (ira_build): Remove all regions but root if the conflict table was
24546 not built. Update conflict hard regs for allocnos crossing calls.
24547
24548 * ira.c (ira_conflicts_p): New global.
24549 (ira): Define and use ira_conflicts_p.
24550
24551 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
24552 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 24553 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 24554
5641785f
BE
245552009-01-06 Ben Elliston <bje@au.ibm.com>
24556
24557 * gengtype-lex.l (YY_NO_INPUT): Define.
24558
e4e5261f
AP
245592009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
24560
24561 PR c/34911
5641785f
BE
24562 * c-common.c (handle_vector_size_attribute): Also reject
24563 BOOLEAN_TYPE types.
e4e5261f 24564
7b10257f
SP
245652009-01-05 Sebastian Pop <sebastian.pop@amd.com>
24566
24567 PR tree-optimization/38492
24568 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
24569 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
24570 rename_map_elt_info, eq_rename_map_elts,
24571 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
24572 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
24573 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
24574 (sese_build_livein_liveouts): New.
24575 (new_sese, free_sese): New.
24576 (new_scop): Call new_sese.
24577 (free_scop): Call free_sese.
24578 (rename_variables_from_edge, rename_phis_end_scop): Removed.
24579 (register_old_new_names): Renamed register_old_and_new_names.
24580 (register_scop_liveout_renames, add_loop_exit_phis,
24581 insert_loop_close_phis, struct igp,
24582 default_liveout_before_guard, add_guard_exit_phis,
24583 insert_guard_phis, copy_renames): New.
24584 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
24585 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
24586 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
24587 (scop_adjust_phis_for_liveouts): New.
24588 (gloog): Call scop_adjust_phis_for_liveouts.
24589
24590 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 24591 num_ver and livein.
7b10257f
SP
24592 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
24593 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
24594 (struct scop): Added field liveout_renames.
24595 (SCOP_LIVEOUT_RENAMES): New.
24596
9761fcc7
HJ
245972009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
24598
24599 PR tree-optimization/38510
24600 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
24601 (translate_clast): Call recompute_all_dominators before
24602 graphite_verify.
24603 (gloog): Call recompute_all_dominators before graphite_verify.
24604
246052009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 24606 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
24607
24608 PR tree-optimization/38500
24609 * graphite.c (create_sese_edges): Call fix_loop_structure after
24610 splitting blocks.
24611
c95b2534 246122009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
24613
24614 * config.gcc: Add m32r*-*-rtems*.
24615 * config/m32r/rtems.h: New file.
24616
fc0cd180
BE
246172009-01-05 Ben Elliston <bje@au.ibm.com>
24618
24619 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
24620 (.po.pox): Likewise.
24621 (po/gcc.pot): Likewise.
24622
3106d8e5
DM
246232009-01-04 David S. Miller <davem@davemloft.net>
24624
24625 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
24626 (STARTING_FRAME_OFFSET): Always set to zero.
24627
0009b473
RS
246282009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
24629
24630 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
24631 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
24632 fixed-point types, and vectors of the same.
24633
4f24c6d6
RS
246342009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
24635
24636 * config/mips/sync.md (*mb_barrier): Rename to...
24637 (*memory_barrier): ...this.
24638
1df48f5c
JW
246392009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
24640
24641 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 24642 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
24643 and put in alphabetical order. Fix 'target' name and put in order.
24644 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
24645 typos.
24646
1a8c13b3
UB
246472009-01-04 Uros Bizjak <ubizjak@gmail.com>
24648
24649 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
24650 (memory_barrier): Expand as unspec instead of unspec_volatile.
24651 Remove mem:BLK from insn operands. Use Pmode scratch register.
24652 (*memory_barrier): Define as unspec instead of unspec_volatile.
24653 Use (match_dup 0) as input operand.
24654
24655 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
24656 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
24657 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
24658 scratch register. Remove operand 1.
24659 (*stbar): Define as unspec instead of unspec_volatile.
24660 Use (match_dup 0) as input operand, remove (const_int 8).
24661 (*membar): Define as unspec instead of unspec_volatile.
24662 Use (match_dup 0) as input operand, remove input operand 2.
24663
24664 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
24665 (memory_barrier): Expand as unspec instead of unspec_volatile.
24666 Remove mem:BLK from insn operands. Use Pmode scratch register.
24667 (*memory_barrier): Define as unspec instead of unspec_volatile.
24668 Use (match_dup 0) as input operand.
24669
24670 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
24671 Remove mem:BLK from insn operands. Use Pmode scratch register.
24672 Set volatile flag on operand 0.
24673 (*memory_barrier): New insn pattern.
24674
24675 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
24676 insn operands.
24677 (*memory_barrier): Use (match_dup 0) as input operand.
24678
24679 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
24680 Remove mem:BLK from insn operands. Use Pmode scratch register.
24681 Set volatile flag on operand 0.
301b6a4e 24682 (*mb_internal): New insn pattern.
1a8c13b3
UB
24683
24684 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
24685
fb0703f7
SB
246862009-01-04 Steven Bosscher <steven@gcc.gnu.org>
24687
24688 PR middle-end/38586
24689 * function.c (struct temp_slot): Move to the section of the file
24690 that deals with temp slots. Remove field 'address'.
24691 (temp_slot_address_table): New hash table of address -> temp slot.
24692 (struct temp_slot_address_entry): New struct, items for the table.
24693 (temp_slot_address_compute_hash, temp_slot_address_hash,
24694 temp_slot_address_eq, insert_temp_slot_address): Support functions
24695 for the new table.
24696 (find_temp_slot_from_address): Rewrite to use the new hash table.
24697 (remove_unused_temp_slot_addresses): Remove addresses of temp
24698 slots that have been made available.
24699 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
24700 worker function for remove_unused_temp_slot_addresses.
24701 (assign_stack_temp_for_type): Don't clear the temp slot address list.
24702 Add the temp slot address to the address -> temp slot map.
24703 (update_temp_slot_address): Update via insert_temp_slot_address.
24704 (free_temp_slots): Call remove_unused_temp_slot_addresses.
24705 (pop_temp_slots): Likewise.
24706 (init_temp_slots): Allocate the address -> temp slot map, or empty
24707 the map if it is already allocated.
24708 (prepare_function_start): Initialize temp slot processing.
24709
b5a430f3
SB
247102009-01-04 Steven Bosscher <steven@gcc.gnu.org>
24711
24712 PR middle-end/38584
24713 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
24714 Calculate the size of all stack vars assuming no packing of stack
24715 vars will happen, replacing a quadratic algorithm with a linear one.
24716
5d560619
JJ
247172009-01-03 Jakub Jelinek <jakub@redhat.com>
24718
24719 PR target/38707
24720 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
24721 can't be used.
24722
953a7caa
DN
247232009-01-03 Diego Novillo <dnovillo@google.com>
24724
24725 * doc/contrib.texi: Update contributions.
24726
5f26a230
JJ
247272009-01-03 Jakub Jelinek <jakub@redhat.com>
24728
493aa551
JJ
24729 PR c++/38705
24730 * builtins.c (fold_builtin_memory_op): Give up if either operand
24731 is volatile. Set srctype or desttype to non-qualified version
24732 of the other type.
24733
5f26a230
JJ
24734 PR c/38700
24735 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
24736 and FUNCTION_DECLs.
24737
c95b2534 247382009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
24739
24740 PR rtl-optimization/35805
24741 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
24742 problem if fast dce is able to remove any instructions.
24743 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 24744
0b355794
MM
247452009-01-02 Mark Mitchell <mark@codesourcery.com>
24746
24747 PR 33649
24748 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
24749
0cf0d02b
JJ
247502009-01-02 Jakub Jelinek <jakub@redhat.com>
24751
24752 PR middle-end/38690
24753 * tree-flow.h (op_code_prio, op_prio): New prototypes.
24754 * tree-pretty-print.c (op_code_prio): New function.
24755 (op_prio): No longer static. Use op_code_prio.
24756 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
24757 Use op_prio and op_code_prio to determine if () should be
24758 printed around operand(s) or not.
24759
24760 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
24761 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
24762 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
24763 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
24764 pp_character instead of pp_string for single letter printing.
24765
e3606f3b
RS
247662009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
24767
24768 * doc/extend.texi: Fix '#pragma GCC option' typo.
24769
c95b2534 247702009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 24771
a5f061dc
RG
24772 * doc/install.texi (--enable-checking): Mention different
24773 default for stage1.
24774 (--enable-stage1-checking): Document.
00f39bd5 24775
26de0bcb
AP
247762009-01-01 Andrew Pinski <pinskia@gmail.com>
24777
24778 PR middle-end/30142
24779 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
24780 case to be an error.
24781
7a7d8fab
BE
247822009-01-02 Ben Elliston <bje@au.ibm.com>
24783
24784 * config/fp-bit.h (pack_d): Constify argument.
24785 * config/fp-bit.c (makenan): Constify return type. Remove casts.
24786 (isnan): Constify argument.
24787 (isinf): Likewise.
24788 (iszero): Likewise.
24789 (pack_d): Likewise.
24790 (_fpadd_parts): Constify return type.
24791 (_fpmul_parts): Likewise.
24792 (_fpdiv_parts): Likewise.
24793
b295aee2
JJ
247942009-01-01 Jakub Jelinek <jakub@redhat.com>
24795
24796 PR c/36489
24797 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
24798 warn about overwriting initializer with side-effects or
24799 -Woverride-init if !IMPLICIT.
24800 (output_init_element): Likewise. Pass IMPLICIT down to
24801 add_pending_init.
24802 (process_init_element): Add IMPLICIT argument. Pass it down
24803 to output_init_element.
24804 (push_init_element, pop_init_level, set_designator): Adjust
24805 process_init_element callers.
24806 (set_nonincremental_init, set_nonincremental_init_from_string):
24807 Adjust add_pending_init callers.
24808 (output_pending_init_elements): Adjust output_init_element callers.
24809 * c-tree.h (process_init_element): Adjust prototype.
24810 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
24811 process_init_element callers.
ad41bd84
JM
24812
24813\f
24814Copyright (C) 2009 Free Software Foundation, Inc.
24815
24816Copying and distribution of this file, with or without modification,
24817are permitted in any medium without royalty provided the copyright
24818notice and this notice are preserved.