]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Check in support for Xilinx MicroBlaze processor.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
80920132
ME
12010-09-30 Michael Eager <eager@eagercon.com>
2
3 * extend.texi (interrupt_handler): Add MicroBlaze to list.
4 (save_volatiles): Describe option for MicroBlaze.
5 * invoke.texi: Add MicroBlaze Options.
6 * contrib.texi: Add acknowledgment.
7 * md.texi: Add MicroBlaze d and z constraints.
8 * install.texi: Add microblaze-*-elf.
9 * configure.ac: Add microblaze-*-* to target list.
10 * configure: Regenerate.
11 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
12 * config/microblaze/microblaze-protos.h: New.
13 * config/microblaze/crti.s: New.
14 * config/microblaze/predicates.md: New.
15 * config/microblaze/linux.h: New.
16 * config/microblaze/microblaze.md: New.
17 * config/microblaze/constraints.md: New.
18 * config/microblaze/crtn.s: New.
19 * config/microblaze/microblaze.opt: New.
20 * config/microblaze/microblaze-c.c: New.
21 * config/microblaze/t-microblaze: New.
22 * config/microblaze/microblaze.c: New.
23 * config/microblaze/microblaze.h: New.
24
92902b1b
IS
252010-09-30 Iain Sandoe <iains@gcc.gnu.org>
26
27 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
28 parse @optional/@required and set the flags as appropriate.
29
ca01d012
NF
302010-09-30 Nathan Froyd <froydnj@codesourcery.com>
31
32 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
33
46625112
JM
342010-09-30 Joseph Myers <joseph@codesourcery.com>
35
36 * opt-functions.awk (static_var): Update comment.
37 (var_ref): Return offsetof expression or -1, not variable address.
38 * optc-gen.awk: Generate structure field initializers instead of
39 static variables. Expect -1 for missing variables instead of null
40 pointer. Add gcc_options parameters to generated functions.
41 * opth-gen.awk: Generate structure fields for static variables.
42 Add gcc_options parameters to generated functions.
43 * common.opt (optimize, optimize_size): Add variables.
44 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
45 &global_options to cl_target_option_restore.
46 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
47 &global_options to cl_optimization_restore, cl_target_option_save
48 and cl_target_option_restore.
49 (ix86_set_current_function): Pass &global_options to
50 cl_target_option_restore.
51 * config/pdp11/pdp11.h (optimize): Remove.
52 * config/rs6000/rs6000.h (optimize): Remove.
53 * config/sh/sh.h (optimize): Remove.
54 * config/xtensa/xtensa.h (optimize): Remove.
55 * coretypes.h (struct gcc_options): Declare.
56 * diagnostic.c (diagnostic_initialize): Initialize
57 context->option_state.
58 (diagnostic_report_diagnostic): Pass option_state to
59 option_enabled hook.
60 * diagnostic.h (diagnostic_context.option_enabled): Add void *
61 parameter.
62 (diagnostic_context.option_state): New field.
63 * final.c (final_start_function, final, final_scan_insn): Rename
64 optimize parameter to optimize_p.
65 * flags.h (optimize, optimize_size): Remove.
66 * function.c (invoke_set_current_function_hook): Pass
67 &global_options to cl_optimization_restore.
68 * gcc.c (driver_handle_option): Take gcc_options parameter.
69 Assert that it is &global_options.
70 (process_command): Pass &global_options to read_cmdline_option.
71 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
72 option_enabled.
73 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
74 &global_options to set_option.
75 * opts-common.c (handle_option, handle_generated_option,
76 read_cmdline_option, set_option): Take explicit gcc_options
77 parameters. Use option_flag_var.
78 (option_flag_var): New.
79 * opts.c (common_handle_option, lang_handle_option,
80 target_handle_option): Take gcc_options parameter. Assert that it
81 is &global_options.
82 (read_cmdline_options): Pass &global_options to
83 read_cmdline_option.
84 (print_filtered_help): Use option_flag_var. Pass &global_options
85 to option_enabled.
86 (common_handle_option): Use option_flag_var.
87 (option_enabled): Take opts parameter. Use option_flag_var.
88 (get_option_state): Take gcc_options parameter. Use
89 option_flag_var. Pass gcc_options parameter to option_enabled.
90 (enable_warning_as_error): Pass &global_options to
91 handle_generated_option.
92 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
93 (cl_option_handler_func.handler): Take gcc_options parameter.
94 (option_enabled, get_option_state, set_option, handle_option,
95 handle_generated_option, read_cmdline_option): Take gcc_options
96 parameters.
97 * toplev.c (optimize, optimize_size): Remove.
98 (print_switch_values): Pass &global_options to option_enabled.
99 (option_affects_pch_p): Use option_flag_var. Pass &global_options
100 to get_option_state.
101 (general_init): Initialize global_dc->option_state.
102 * tree.c (build_optimization_node): Pass &global_options to
103 cl_optimization_save.
104 (build_target_option_node): Pass &global_options to
105 cl_target_option_save.
106
37ccfc46
MJ
1072010-09-30 Martin Jambor <mjambor@suse.cz>
108
109 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
110 zero sized bit-fields.
111
49b91f05
NP
1122010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
113
114 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
115 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
116 (c_parser_external_declaration): Use RID_AT_CLASS
117 instead of RID_CLASS.
118 (c_parser_objc_class_declaration): Same change.
119 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
120 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
121 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
122 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
123 and RID_AT_PUBLIC instead of RID_PUBLIC.
124 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
125 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
126
58735e03
TC
1272010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
128
129 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
130 Add links to current providers of packages for Solaris and IRIX.
131
a6341d57
NP
1322010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
133
134 Merge from 'apple/trunk' branch on FSF servers.
135 * c-parser.c: Applied change originally in c-parse.in.
136
137 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
138
139 Radar 4281748
140 * c-decl.c (start_decl): Check for redeclaration of class name.
141 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
142
b14446e2
SE
1432010-09-29 Steve Ellcey <sje@cup.hp.com>
144
145 * config/ia64/ia64.c (ia64_builtin_decl): New.
146 (TARGET_BUILTIN_DECL): Define.
147 (ia64_builtins): New.
148 (ia64_init_builtins): Save decls in ia64_builtins.
149
22939744
BS
1502010-09-29 Bernd Schmidt <bernds@codesourcery.com>
151
152 PR target/40457
153 * postreload.c (move2add_use_add2_insn): Use full_costs for
154 comparison.
155 (move2add_use_add3_insn): Likewise.
156 (reload_cse_move2add): Likewise.
157 * rtlanal.c (get_full_rtx_cost): New function.
158 * rtl.h (struct full_rtx_costs): New.
159 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
160 costs_add_n_insns): New inline functions.
161 (get_full_rtx_cost): Declare.
162
907c53bb
BS
163 PR c/45054
164 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
165 invariants. Check for reg_equiv_invariant.
166 (reload): Assert that spilled_pseudos is empty when returning.
167
0f23bc16
KT
1682010-09-29 Kai Tietz <kai.tietz@onevision.com>
169
170 * config/i386/mingw32.h (TARGET_64BIT): replaced by
171 TARGET_64BIT_DEFAULT in #if check.
172
a0c6102d
JH
1732010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
174
175 * varasm.c (assemble_alias): Add error message for
176 unsupported ifunc.
177
48b3f0a0
MS
1782010-09-29 Mike Stump <mikestump@comcast.net>
179
180 * config/darwin.h (flag_mkernel): Remove.
181 (flag_apple_kext): Likewise.
182
006097f4
JM
1832010-09-29 Joseph Myers <joseph@codesourcery.com>
184 Jack Howarth <howarth@bromo.med.uc.edu>
185
186 * config/darwin.opt (undefined): Add.
187
f6c5fbfd
NS
1882010-09-29 Nathan Sidwell <nathan@codesourcery.com>
189
190 * configure.ac: Add --enable-indirect-function option.
191 * config.gcc: Add default_gnu_indirect_function.
192 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
193 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
194 * varasm.c (do_assemble_alias): Adjust for macto name change.
195 * configure: Rebuilt.
196 * doc/install.texi: Document --enable-indirect-function.
197
f0036cca
JM
1982010-09-29 Joseph Myers <joseph@codesourcery.com>
199
200 * doc/options.texi (Variable, Var, Init): Update documentation
201 without reference to VarExists.
202 (VarExists): Remove.
203 * common.opt, config/i386/i386.opt, config/linux.opt,
204 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
205 Don't use VarExists.
206
e3339d0f
JM
2072010-09-29 Joseph Myers <joseph@codesourcery.com>
208
209 * optc-gen.awk: Generate global_options initializer instead of
210 individual variables. Add x_ prefix to names of structure
211 members.
212 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
213 names of structure members.
214 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
215 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
216 * doc/tm.texi: Regenerate.
217 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
218 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
219 * c-parser.c (disable_extension_diagnostics,
220 restore_extension_diagnostics): Update names of cpp_options
221 members.
222 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
223 * common.opt (fcompare-debug-second): Don't use Var.
224 * config/alpha/alpha.h (target_flags): Remove.
225 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
226 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
227 * config/bfin/bfin.h (target_flags): Remove.
228 * config/cris/cris.h (target_flags): Remove.
229 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
230 cl_target_option members.
231 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
232 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
233 ix86_can_inline_p): Update names of cl_target_option members.
234 * config/i386/i386.h (ix86_isa_flags): Remove.
235 * config/lm32/lm32.h (target_flags): Remove.
236 * config/mcore/mcore.h (mcore_stack_increment): Remove.
237 * config/mcore/mcore.md (addsi3): Remove extern declaration of
238 flag_omit_frame_pointer.
239 * config/mep/mep.h (target_flags): Remove.
240 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
241 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
242 * config/mmix/mmix.h (target_flags): Remove.
243 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
244 flag_expensive_optimizations): Remove.
245 * config/s390/s390.h (flag_pic): Remove.
246 * config/score/score-conv.h (target_flags): Remove.
247 * config/sh/sh.h (sh_fixed_range_str): Remove.
248 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
249 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
250 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
251 * diagnostic.c (diagnostic_initialize): Update names of
252 diagnostic_context members.
253 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
254 warn_system_headers.
255 (diagnostic_report_warnings_p): Update for new names.
256 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
257 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
258 HARD_FRAME_POINTER_IS_ARG_POINTER.
259 * flags.h (flag_compare_debug): Declare.
260 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
261 * opts.c (flag_compare_debug): Define.
262 (common_handle_option): Update names of diagnostic_context
263 members. Handle -fcompare-debug-second.
264 (fast_math_flags_struct_set_p): Update names of cl_optimization
265 members.
266 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
267 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
268 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
269 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
270 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
271 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
272 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
273 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
274 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
275
66dfc610
HS
2762010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
277
278 * config/picochip/picochip.c (picochip_output_internal_label):
279 This function can now be called for debug CFI labels, which can come in
280 the middle of a vliw instruction. Postpone until end of vliw.
281
725214ac
RG
2822010-09-29 Richard Guenther <rguenther@suse.de>
283
284 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
285 (DECL_FILE_SCOPE_P): Use it.
286 (TYPE_FILE_SCOPE_P): New macro.
287
1973201f
NP
2882010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
289
290 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
291 a CPP_NAME which is a reserved word, clearly separate cases for
292 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
293
a1ec5747
NP
2942010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
295
296 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
297 token->value with the canonical spelling. Do exactly like C and
298 C++ and leave it as it is.
299
fd930388
RH
3002010-09-28 Richard Henderson <rth@redhat.com>
301
302 * config/alpha/alpha.c (alpha_builtins): New.
303 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
304 (alpha_builtin_function): New.
305 (alpha_add_builtins, alpha_init_builtins): Use it.
306
6b79b1b7
NP
3072010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
308
309 * doc/standards.texi (Standards): Expanded the section on
310 Objective-C and Objective-C++.
311
146456c1
DD
3122010-09-28 DJ Delorie <dj@redhat.com>
313
314 PR target/45800
315 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
316 volatile MEMs.
317
f7e71da5
IS
3182010-09-28 Iain Sandoe <iains@gcc.gnu.org>
319
320 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
321 attributes on methods.
322 (c_parser_objc_method_definition): Handle attributes.
323 (c_parser_objc_methodproto): Likewise.
324 (c_parser_objc_maybe_method_attributes): New.
325 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
326 missing definition, similar to that in ObjC++.
327
f0a0390e
RH
3282010-09-28 Richard Henderson <rth@redhat.com>
329
330 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
331 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
332 (CONFIG_SJLJ_EXCEPTIONS): Remove.
333 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
334 (STACK_CHECK_PROTECT): Likewise.
335 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
336 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
337 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
338 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
339 (dwarf2out_assembly_start): Likewise.
340 * except.c (init_eh): Use targetm.except_unwind_info.
341 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
342 (output_one_function_exception_table): Likewise.
343 * final.c: Unconditionally include dwarf2out.h.
344 (final_start_function): Unconditionally call dwarf2out routines.
345 (final_end_function, final_scan_insn): Likewise.
346 * function.c (expand_function_end): Use targetm.except_unwind_info.
347 * opts.c (decode_options): Use targetm.except_unwind_info.
348 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
349 * target.def (debug_unwind_info, except_unwind_info): New.
350 * target.h (enum unwind_info_type): New.
351 * targhooks.c (default_debug_unwind_info): New.
352 (default_except_unwind_info): New.
353 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
354 * targhooks.h: Declare them.
355 * tree-tailcall.c: Include "target.h"
356 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
357 * Makefile.in (tree-tailcall.o): Update.
358 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
359 (lhd_gcc_personality): Likewise.
360
361 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
362 (TARGET_EXCEPT_UNWIND_INFO): New.
363 (DWARF2_UNWIND_INFO): Update.
364 (TARGET_DEBUG_UNWIND_INFO): New.
365 * doc/tm.texi: Rebuild.
366
367 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
368 targetm.except_unwind_info.
369
370 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
371 (arm_except_unwind_info): New.
372 (arm_compute_func_type): Use it.
373 (arm_expand_prologue, thumb_pushpop): Likewise.
374 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
375 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
376 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
377 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
378 (DWARF2_UNWIND_INFO): Remove.
379 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
380 (ARM_EABI_UNWIND_TABLES): Remove.
381
382 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
383 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
384 (ia64_except_unwind_info): New.
385 (ia64_output_function_prologue): Use it.
386 (ia64_add_bundle_selector_before): Likewise.
387 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
388 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
389 (TARGET_UNWIND_INFO): Remove.
390
391 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
f7e71da5 392
c165dca7
IS
3932010-09-28 Iain Sandoe <iains@gcc.gnu.org>
394
395 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
396 (c_parser_objc_protocol_definition): Likewise.
397 (c_parser_external_declaration): Provide dummy attribute arguments.
398 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
399 (c_parser_objc_class_definition): Handle attributes.
400 (c_parser_objc_protocol_definition): Likewise.
401
41804a5b
TB
4022010-09-28 Tobias Burnus <burnus@net-b.de>
403
404 PR fortran/40569
405 PR fortran/40568
406 * toplev.h (save_decoded_options, save_decoded_options_count):
407 New global variables.
408 * toplev.c (save_decoded_options, save_decoded_options_count):
409 export variables.
410
7647b127
ILT
4112010-09-28 Ian Lance Taylor <iant@google.com>
412
413 * config/i386/i386.c (ix86_supports_split_stack): Test
414 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than
415 dwarf2out_do_cfi_asm.
416
bb469872
ILT
4172010-09-28 Ian Lance Taylor <iant@google.com>
418
419 PR target/45815
420 * opts.c (decode_options): Don't test whether the target supports
421 split stack if flag_split_stack == 0.
422
0d6e14fd
JH
4232010-09-28 Jan Hubicka <jh@suse.cz>
424
425 * builtin-attrs.def (ATTR_LEAF): New attribute.
426 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
427 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
428 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
429 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
430 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
431 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
432 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
433 * sync-builtins.def: Annotate all builtins by leaf.
434 * omp-builtins.def: Annotate all builtins by leaf.
435 * builtins.def: Annotate relevant builtins with leaf attribute.
436 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
437 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
438 leaf.
439
697c3575
JH
4402010-09-28 Jan Hubicka <jh@suse.cz>
441
442 * tree-ssa-ccp.c (fold_ctor_reference): New function.
443 (fold_const_aggregate_ref): Use it.
444 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
445 into external static.
446
2770264a
RO
4472010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
448
449 PR target/44452
450 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
451 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
452 (ix86_solaris_return_in_memory): Remove.
453 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
454 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
455 (TARGET_SUBTARGET_DEFAULT): Redefine.
456 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
457 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
458 (TARGET_SUBTARGET_DEFAULT): Redefine.
459 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
460 -mvect8-ret-in-mem.
461 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
462
2268453b
AM
4632010-09-29 Alan Modra <amodra@gmail.com>
464
465 PR target/45807
466 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
467 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
468 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
469 Delete.
470 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
471 (rs6000_emit_prologue): Don't just create frame save info for r2,
472 actually save r2.
473
4d508d59
RH
4742010-09-28 Richard Henderson <rth@redhat.com>
475
476 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
477 when 8 bytes are requested.
478
247df3b6
TG
4792010-09-28 Tristan Gingold <gingold@adacore.com>
480
481 * config/avr/avr.c (expand_prologue): Set
482 current_function_static_stack_size.
483
d5ad88c0
TG
4842010-09-28 Tristan Gingold <gingold@adacore.com>
485
486 * config/alpha/alpha.md: Change the initial condition of the
487 probing loop.
488
4150f926
UB
4892010-09-28 Uros Bizjak <ubizjak@gmail.com>
490
491 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
492 Split from *avx_<maxmin:code><mode>3.
493 (*avx_<smaxmin:code><mode>3): Ditto.
494 * config/i386/i386.md (maxmin): Remove code iterator.
495
b6110d6d
ILT
4962010-09-27 Ian Lance Taylor <iant@google.com>
497
498 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
499 requires assembler support for CFI directives.
500
9b809695
RH
5012010-09-27 Richard Henderson <rth@redhat.com>
502
503 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
504
4f8344eb
HPN
5052010-09-27 Hans-Peter Nilsson <hp@axis.com>
506
507 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
508 that AFTER is not in the range FROM..TO, inclusive.
509
fdf0b018
HPN
5102010-09-27 Hans-Peter Nilsson <hp@axis.com>
511 Bernd Schmidt <bernds@codesourcery.com>
512
513 PR rtl-optimization/45792
514 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
515 If not all insns are to be merged, for each edge, stash the
516 next candidate after the to-be-merged insns before doing the
517 merge, and use them for the retry at the new insertion point.
518 Handle CC0 targets when retrying.
519
7458026b
ILT
5202010-09-27 Ian Lance Taylor <iant@google.com>
521
522 * common.opt (fsplit-stack): New option.
523 * opts.c (decode_options): Set flag_split_stack to final value.
524 * target.def (supports_split_stack): New hook.
525 * gcc.c (STACK_SPLIT_SPEC): Define.
526 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
527 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
528 (Code Gen Options): Document -fsplit-stack.
529 * doc/extend.texi (Function Attributes): Mention no_split_stack.
530 (Function Attributes): Document no_split_stack.
531 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
532 TARGET_SUPPORTS_SPLIT_STACK.
533 * doc/tm.texi: Rebuild.
534 * function.c (thread_prologue_and_epilogue_insns): If
535 flag_split_stack, add split stack prologue.
536 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
537 * varasm.c (saw_no_split_stack): New static variable.
538 (assemble_start_function): Set saw_no_split_stack if the function
539 has the no_split_stack attribute.
540 (file_end_indicate_split_stack): New function.
541 * output.h (file_end_indicate_split_stack): Declare.
542 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
543 and function.
544 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
545 routines.
546 * config/i386/i386.c (ix86_option_override_internal): Don't set
547 expand_builtin_va_start to NULL if -fsplit-stack.
548 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
549 -fsplit-stack.
550 (ix86_va_start): If -fsplit-stack, get overflow pointer from
551 scratch register set by prologue.
552 (ix86_code_end): If -fsplit-stack, call
553 file_end_indicate_split_stack.
554 (ix86_supports_split_stack): New static function.
555 (SPLIT_STACK_AVAILABLE): Define.
556 (split_stack_prologue_scratch_regno): New static function.
557 (split_stack_fn): New static variable.
558 (ix86_expand_split_stack_prologue): New function.
559 (ix86_live_on_entry): New static function.
560 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
561 (output_pic_addr_const): Likewise.
562 (i386_asm_output_addr_const_extra): Likewise.
563 (ix86_expand_call): Change return type to rtx. Return the new
564 call instruction.
565 (TARGET_SUPPORTS_SPLIT_STACK): Define.
566 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
567 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
568 (split_stack_prologue, split_stack_return): New insns.
569 (split_stack_space_check): New insn.
570 * config/i386/i386.h (struct machine_function): Add
571 split_stack_varargs_pointer field.
572 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
573 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
574 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
575 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
576 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
577 Declare.
578 (ix86_expand_call): Update declaration.
579
177b48f9
NP
5802010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
581
582 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
583 code. Added byref, which was missing in the list of codes.
584 Explain that enumeration values are encoded as the integer type
585 that the compiler uses to store them. Explain and make examples
586 of how 'const' interacts with pointers, and the complication of
587 the encoding of 'const char *'.
588 (Legacy type encoding): New subsection, explaining that GCC emits
589 incorrect type encodings for the NeXT runtime for compatibility
590 reasons.
591 (@@encode): New subsection, explaining @encode and particularly
592 that protocol qualifiers are not recognized inside an @encode()
593 expression.
594 (Method signatures): New subsection, explaining how method
595 signatures are encoded.
596
b581b85b
NP
5972010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
598
599 Merge from 'apple/trunk' branch on FSF servers. Removed small
600 change in build_conditional_expr that had been added when fixing
601 PR objc/27377 and which did the same check in a less complete way.
602
603 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
604
605 Radar 4229905
606 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
607 looking for objective-c common pointer types.
608
609 2005-06-22 Ziemowit Laski <zlaski@apple.com>
610
611 Radar 4154928
612 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
613 use their ObjC common type.
614
1787f59e
RG
6152010-09-27 Richard Guenther <rguenther@suse.de>
616
617 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
618
16892055
JZ
6192010-09-27 Jie Zhang <jie@codesourcery.com>
620
621 * print-tree.c (print_node): Print in-constant-pool.
622
63001560
UB
6232010-09-27 Uros Bizjak <ubizjak@gmail.com>
624
625 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
626 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
627 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
628 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
629
4470a3a3
UB
6302010-09-26 Uros Bizjak <ubizjak@gmail.com>
631
632 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
633 from pro_epilogue_adjust_stack_<mode>_{1,2}.
634 (pro_epilogue_adjust_stack_<mode>_add): Rename from
635 pro_epilogue_adjust_stack_<mode>_3.
636 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
637 renamed pro_epilogue_adjust_stack_{si,di}_add.
638 (ix86_expand_prologue): Use indirect functions. Update for renamed
639 pro_epilogue_adjust_stack_{si,di}_sub.
640
d355d5ea
UB
6412010-09-26 Uros Bizjak <ubizjak@gmail.com>
642
643 * config/i386/i386.md (movmsk_df): New insn.
644 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
645 sequence for TARGET_SSE_MATH.
646
7725086e
RS
6472010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
648
649 * config/mips/mips.c (mips_builtin_decls): Declare.
650 (mips_init_builtins): Store function declarations in
651 mips_builtin_decls.
652 (mips_builtin_decl): New function.
653 (TARGET_BUILTIN_DECL): Define.
654
174425ad
KT
6552010-09-25 Kai Tietz <kai.tietz@onevision.com>
656 Richard Henderson <rth@redhat.com>
657
658 * config/i386/cygwin.asm: Include auto-host.h.
659 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
660 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
661 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
662 alignment code from the 64-bit path. Use gas local labels.
663 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
664 from _di_2. Remove the useless constant integer argument.
665 (pro_epilogue_adjust_stack_<mode>_3): New.
666 (allocate_stack_worker_probe_<mode>): Macroize from
667 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
668 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
669 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
670 (__chkstk_ms): New function.
671 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
672 * gcc/config/i386/t-interix: Likewise.
673 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
674 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
675 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
676 * configure, config.in: Rebuild.
677
cf1bcf06
EB
6782010-09-25 Eric Botcazou <ebotcazou@adacore.com>
679
680 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
681 statements because of the return slot optimization.
682
c21136ee
AS
6832010-09-25 Anatoly Sokolov <aesok@post.ru>
684
685 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
686 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
687 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
688 (class_likely_spilled_p): Rename to...
689 (avr_class_likely_spilled_p): ...this. Make static. Change argument
690 type to reg_class_t.
691
051f8cc6
JH
6922010-09-24 Jan Hubicka <jh@suse.cz>
693
694 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
695 (lto_symtab_resolve_symbols): Set it.
696 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
697 store resolution field in cgraph/varpool.
698 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
699 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
700 (cgraph_dump_node): Drop used_from_object_file.
701 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
702 (cgraph_function_body_availability): Use decl_replaceable_p.
703 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
704 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
705 cgraph_used_from_object_file_p.
706 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
707 cgraph_used_from_object_file_p.
708 (resolution_used_from_other_file_p): New functoin.
709 (cgraph_used_from_object_file_p): New predicate.
710 * cgraph.h: Include plugin-api.h
711 (struct cgraph_local_info): Remove used_from_object_file.
712 (struct cgraph_node): Add resolution field.
713 (struct varpool_node): Likewise; remove used_from_object_file;
714 reove const_value_known.
715 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
716 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
717 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
718 varpool_used_from_object_file_p): Declare.
719 (varpool_get_node, varpool_extra_name_alias): Update prototype.
720 * tree.h (DECL_REPLACEABLE_P): Remove.
721 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
722 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
723 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
724 input_overwrite_node, input_node, input_varpool_node): Stream
725 resolution.
726 * expr.c (expand_expr_real_1): Use const_value_known_p
727 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
728 const_value_known.
729 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
730 (function_and_variable_visibility): Set resolution for local vars
d355d5ea 731 and functions; use varpool_used_from_object_file_p.
051f8cc6
JH
732 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
733 static functions.
734 (default_binds_local_p_1): Use resolutoin info.
735 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
736 * varpool.c (varpool_get_node): Constify.
737 (const_value_known_p): Do not use vnode->const_value_known;
738 use decl_replaceable_p.
739 (varpool_finalize_decl): Do not set const_value_known.
740 (cgraph_variable_initializer_availability): Use decl_replaceable_p
741 (varpool_extra_name_alias): Return new node.
742 (varpool_used_from_object_file_p): New function.
743
5c255b57
RH
7442010-09-24 Richard Henderson <rth@redhat.com>
745
746 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
747 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
748 (do_spill): Use REG_CFA_OFFSET.
749 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
750 as appropriate.
751 (ia64_expand_epilogue): Likewise.
752 (process_set): Split into ...
753 (process_cfa_adjust_cfa): this,
754 (process_cfa_register): this,
755 (process_cfa_offset): and this new function.
756 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
757 instead of REG_FRAME_RELATED_EXPR.
758
42d87712
OH
7592010-09-24 Olivier Hainque <hainque@adacore.com>
760
761 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
762
46a4da10
JH
7632010-09-24 Jan Hubicka <jh@suse.cz>
764
765 * doc/extend.texi: (attribute leaf): Document.
766 * tree.c (local_define_builtin): Handle ECF_LEAF.
767 (build_common_builtin_nodes): Set ECF_LEAF where needed.
768 * tree.h (ECF_LEAF): New.
d355d5ea
UB
769 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
770 overwrittable and unavailable functions.
46a4da10
JH
771 (ipa_init): Put all_module_statics into optimization_summary_obstack.
772 (copy_global_bitmap): Do not copy all_module_statics.
773 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
774 (propagate): Handle overwritable and unavailable leaf functions;
775 initialize global info for overwritable and unavailable leaf functions;
776 do not free all module statics.
74164603 777 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
d355d5ea 778 local statics.
46a4da10
JH
779 * calls.c (flags_from_decl_or_type): Handle leaf.
780 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
781 abnormal gotos.
e1b793e7
BS
782
7832010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
784
785 * gengtype.c: Reindented.
e1b793e7 786 * gengtype.h: Reindented.
e1b793e7
BS
787 * gengtype-parse.c: Reindented.
788
1d0804d4
JH
7892010-09-24 Jan Hubicka <jh@suse.cz>
790
791 PR tree-optimization/45738
792 PR tree-optimization/45741
793 * expr.c (string_constant): Allow CONST_DECL too;
794 check that DECL_INITIAL is set.
795 * varpool.c (const_value_known_p): Only look into VAR_DECL
796 and CONST_DECL.
797
5642f5d5
JM
7982010-09-24 Joseph Myers <joseph@codesourcery.com>
799
800 * common.opt (undef): New.
801
32990d5b
JJ
8022010-09-24 Jakub Jelinek <jakub@redhat.com>
803
804 PR middle-end/45234
805 * rtl.h (enum global_rtl_index): Add
806 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
807 (LAST_VIRTUAL_POINTER_REGISTER): Define.
808 (virtual_preferred_stack_boundary_rtx,
809 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
810 (LAST_VIRTUAL_REGISTER): Increase by one.
811 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
812 instead of LAST_VIRTUAL_REGISTER.
813 * function.c (instantiate_new_reg): Handle
814 virtual_preferred_stack_boundary_rtx.
815 * emit-rtl.c (init_virtual_regs): Handle
816 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
817 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
818 * explow.c (round_push): If crtl->preferred_stack_boundary
819 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
820 virtual_preferred_stack_boundary_rtx alignment instead of
821 crtl->preferred_stack_boundary alignment.
822 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
823 macros. Never decrease crtl->preferred_stack_boundary,
824 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
825 instead of PREFERRED_STACK_BOUNDARY. Don't modify
826 stack_pointer_delta in dynamic allocation, even when size
827 is constant.
828 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
829 macro.
830 * print-rtl.c (print_rtx): Handle
831 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
832 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
833 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
834 * config/frv/frv.c (frv_emit_movsi): Likewise.
835 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
836 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
837 Likewise.
838
839 Revert:
840 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
841
842 PR middle-end/45234
843 * calls.c (expand_call): Make sure that all variable sized
844 adjustments are multiple of preferred stack boundary after
845 stack alignment.
846
3d1b7f13
IS
8472010-09-24 Iain Sandoe <iains@gcc.gnu.org>
848 Dominique Dhumieres <dominiq@lps.ens.fr>
d355d5ea 849
3d1b7f13
IS
850 PR bootstrap/45751
851 * gcc/config/darwin-driver.c (darwin_default_min_version):
852 Adjust size passed to memcpy in two places.
d355d5ea 853
116f30c3
RG
8542010-09-24 Richard Guenther <rguenther@suse.de>
855
856 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
857 Make sure to not call set_type_context with error_mark_node.
858 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
859
de6ba7ae
RG
8602010-09-24 Richard Guenther <rguenther@suse.de>
861
862 * Makefile.in (OBJS-onestep): Remove.
863 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
864 (libbackend.a): Remove onestep support.
865 (libbackend.o): Remove.
866 * configure.ac (--enable-intermodule): Remove.
867 * configure: Regenerate.
868
662592e1
BS
8692010-09-24 Bernd Schmidt <bernds@codesourcery.com>
870
871 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
872 reaching the end of a block if it occurs at a DEBUG_INSN.
873
5501bdc1
TG
8742010-09-09 Tristan Gingold <gingold@adacore.com>
875
876 PR target/44242
877 * config/vms/vms-crt0-64.c: Removed.
878 * config/vms/vms-crt0.c: Removed.
879 * config/vms/vms-psxcrt0-64.c: Removed.
880 * config/vms/vms-psxcrt0.c: Removed.
881 * config/vms/vms-ucrt0.c: New file.
882 * config/vms/t-vms64: Removed.
883 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
884 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
885 * config.gcc (alpha-dec-vms): Use t-vms.
886
35e711d3
NP
8872010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
888
889 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
890 underfull hbox in DVI output.
891 (-fobjc-class-cxx-cdtors): Same change.
892 (-fobjc-exceptions): Tidied up documentation. Explain what the
893 option does, but moved the (lenghty) description of the exception
894 syntax into objc.texi.
895 (-fobjc-gc): Explain that the option is not useful with the GNU
896 runtime.
897 (-fzero-link): Explain that the GNU runtime always works in
898 "zero-link" mode.
899 * doc/objc.texi: All sections: simplified @node declarations
900 removing specification of next, previous, up node.
901 (Objective-C): Updated introduction.
902 (Garbage Collection): Updated. The bohem-gc library is now
903 included in gcc itself. Mention that this section only applies to
904 the GNU Objective-C runtime.
905 (compatibility_alias): Small tidy up.
906 (Exceptions): New section mostly containing text previously in the
907 description of the -fobjc-exception command-line option.
908 (Synchronization): Same.
5501bdc1 909
6fd71fde
UB
9102010-09-24 Uros Bizjak <ubizjak@gmail.com>
911
912 * config/i386/i386.md (ix86_code_end): Move the initialization of
913 xops array near the consumer. Use AX_REG and SP_REG instead of
914 numerical constants.
915
19dc6d01
NP
9162010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
917
6fd71fde
UB
918 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
919 method [methodname]' for an Objective-C method instead of the less
920 satisfactory 'too many arguments to function' (with no method name).
19dc6d01 921
f61c8291
EB
9222010-09-23 Eric Botcazou <ebotcazou@adacore.com>
923
452648a8 924 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
f61c8291 925 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
452648a8
EB
926 (execute_update_addresses_taken): Remove parameter. Execute the
927 optimization unconditionally.
928 * passes.c (execute_function_todo): Call execute_update_addresses_taken
929 unconditionally if TODO_rebuild_alias is set, else only when optimizing
930 if TODO_update_address_taken is set.
f61c8291 931
80920132 932>>>>>>> .r164755
ffda8a0d
AS
9332010-09-23 Anatoly Sokolov <aesok@post.ru>
934
935 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
936 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
937 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
938 (arm_output_addr_const_extra): Make static.
939
17eba947
UB
9402010-09-23 Uros Bizjak <ubizjak@gmail.com>
941
942 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
943 define as unspec_volatile.
944 ("nops"): Define as unspec_volatile. Use fputs to write to
945 asm_out_file directly. Output NOPs on separate lines using while loop.
946 * config/i386/i386.c (ix86_code_end): Use fputs to write to
947 asm_out_file directly. Output NOPs on separate lines using while loop.
948
3d113394
RG
9492010-09-23 Richard Guenther <rguenther@suse.de>
950
951 PR tree-optimization/45565
952 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
953 Make sure to adjust the fndecl before replacing the stmt.
954
dca26746
RG
9552010-09-23 Richard Guenther <rguenther@suse.de>
956
957 PR middle-end/45750
958 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
959 gimplifying MEM_REF.
960
9f2e34e1
AM
9612010-09-23 Alan Modra <amodra@gmail.com>
962
963 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
964 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
965
3c3bd471
BS
9662010-09-23 Bernd Schmidt <bernds@codesourcery.com>
967
968 PR rtl-optimization/44374
969 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
970 * df-core.c (df_set_bb_dirty): Set it.
971 * ifcvt.c (find_memory): Remove function.
972 (dead_or_predicable): Use can_move_insns_across.
973 * df.h (can_move_insns_across): Declare function.
974 * cfgcleanup.c (block_was_dirty): New static variable.
975 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
976 than df_get_bb_dirty.
977 (try_head_merge_bb): New static function.
978 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
979 is set.
980 * df-problems.c: Include "target.h"
981 (df_simulate_find_uses): New static function.
982 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
983 (find_memory, find_memory_store): New static functions.
984 (can_move_insns_across): New function.
985 * Makefile.in (df-problems.o): Update dependencies.
986
40ea67af
EB
9872010-09-22 Eric Botcazou <ebotcazou@adacore.com>
988
989 PR java/44095
990 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
991 is specified and the suffix of the file isn't ".c".
992 * config/sparc/linux64.h (ASM_SPEC): Likewise.
993
9942010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ab940b73 995
17eba947 996 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
ab940b73
RW
997 * doc/cppopts.texi: Fix markup of index entry.
998 * doc/extend.texi (Constructing Calls): Fix markup of
999 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
1000 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
1001 (Vague Linkage, C++ Attributes): Fix markup of index entries and
1002 keywords.
1003 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
1004 avoid long lines.
1005 (C Dialect Options, C++ Dialect Options, Warning Options)
1006 (Debugging Options, Spec Files, Darwin Options)
1007 (i386 and x86-64 Options, MIPS Options)
1008 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
1009 index entries, avoid abbreviations, allow URLs to wrap, avoid
1010 long lines, avoid overlong pages from long @itemx lists.
1011 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
1012 * doc/standards.texi (Standards): Likewise.
17eba947 1013 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
ab940b73 1014
60cf253a
JM
10152010-09-22 Joseph Myers <joseph@codesourcery.com>
1016
1017 * opts-common.c (prune_options): Make static. Work with decoded
1018 options.
1019 (decode_cmdline_options_to_array): Call prune_options. Don't
1020 resize option array here.
1021 * opts.h (prune_options): Remove prototype.
1022 * gcc.c (process_command): Take decoded options; don't call
17eba947 1023 decode_cmdline_options_to_array here. Use decoded options for argv[0].
60cf253a
JM
1024 (main): Call decode_cmdline_options_to_array here instead of
1025 prune_options. Update call to process_command.
1026 * config/darwin-driver.c: Include opts.h.
1027 (darwin_default_min_version): Work with decoded options. Don't
1028 handle -b or -V here.
1029 * config/darwin.h (darwin_default_min_version): Update prototype.
1030 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
1031 darwin_default_min_version.
1032 * config/i386/cygwin.h (mingw_scan): Update prototype.
1033 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1034 * config/i386/cygwin1.c: Include opts.h.
1035 (mingw_scan): Work with decoded options.
1036 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1037 * config/t-darwin (darwin-driver.o): Update dependencies.
1038
e200444e
JM
10392010-09-22 Joseph Myers <joseph@codesourcery.com>
1040
1041 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1042 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1043 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1044 -force-link, -force-link=, -language, -language=,
1045 -library-directory, -library-directory=, -no-canonical-prefixes,
1046 -no-standard-libraries, -no-warnings, -optimize, -output,
1047 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1048 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1049 -print-file-name=, -print-libgcc-file-name,
1050 -print-multi-directory, -print-multi-lib,
1051 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1052 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1053 -profile, -save-temps, -shared, -specs, -specs=, -static,
1054 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1055 symbolic): New.
1056 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1057 * gcc.c (A Short Introduction to Adding a Command-Line Option):
1058 Remove comment.
1059 (cc1_options): Correct specs for passing down --help,
1060 --target-help and --help=*. Add spec for passing down --version.
1061 (struct option_map, option_map, target_option_translations,
1062 translate_options): Remove.
1063 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1064 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1065 OPT_fhelp_ and OPT_ftarget_help.
1066 (process_command): Don't call translate_options. Call
1067 decode_cmdline_options_to_array before checking for
1068 -no-canonical-prefixes using decoded options.
1069 * opts-common.c (tm.h): Update comment on #include.
1070 (find_opt): Allow abbreviations of long options.
1071 (struct option_map, option_map): New.
1072 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1073 and -mno handling.
1074 (target_option_translations): New.
1075 (decode_cmdline_options_to_array): Handle
1076 TARGET_OPTION_TRANSLATE_TABLE in driver.
1077 * opts.c (common_handle_option): Don't handle OPT_fhelp,
1078 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1079
5d7b099c
RG
10802010-09-22 Richard Guenther <rguenther@suse.de>
1081
1082 * tree-inline.c (optimize_inline_calls): Schedule cleanups
1083 only if we inlined something. Block compaction and conditional
1084 folding are done by cfg cleanup. Schedule update-address-taken.
1085 (tree_function_versioning): Remove redundant call to number_blocks.
1086 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1087 folding is done by cfg cleanup.
1088 * passes.c (init_optimization_passes): Remove update-address-taken
1089 pass after IPA inlining.
1090
27d5e204
CLT
10912010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
1092
1093 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1094 to update conditions. Fix reg_mode[] check.
1095
17eba947 10962010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
be6388e1
HS
1097
1098 * config/picochip/picochip.md (movhicc): Use expand to check whether
1099 movhicc is available and split it after reload.
1100
736fe2d5
RG
11012010-09-22 Richard Guenther <rguenther@suse.de>
1102
1103 * tree-ssanames.c (release_dead_ssa_names): Do not remove
1104 callee edges here.
1105 * passes.c (init_optimization_passes): Remove early CFG cleanup.
1106 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1107 (pass_cleanup_cfg): Likewise.
1108 (execute_fixup_cfg): Cleanup.
1109 * tree-pass.h (pass_cleanup_cfg): Remove.
1110
23c1da7a
MJ
11112010-09-22 Martin Jambor <mjambor@suse.cz>
1112
1113 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1114 builtins if it is true.
1115 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1116 parameter.
1117
9271a43c
MJ
11182010-09-22 Martin Jambor <mjambor@suse.cz>
1119
1120 * tree-sra.c (struct access): New field grp_no_warning.
1121 (create_access_replacement): Set TREE_NO_WARNING according to
1122 grp_no_warning.
1123 (create_artificial_child_access): Use build_ref_for_model and set
1124 grp_no_warning if build_user_friendly_ref_for_offset fails.
1125 (propagate_subaccesses_across_link): Likewise.
1126
77167b6f
EB
11272010-09-22 Eric Botcazou <ebotcazou@adacore.com>
1128
1129 PR target/35664
1130 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1131 ('f'): Likewise.
1132
50842acb
TG
11332010-09-22 Tristan Gingold <gingold@adacore.com>
1134
1135 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1136
c69fa2d4
UB
11372010-09-22 Uros Bizjak <ubizjak@gmail.com>
1138
1139 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1140 * config/i386/i386.c (decide_alg): Update for rename.
1141
a82e045d
JJ
11422010-09-22 Jakub Jelinek <jakub@redhat.com>
1143
1144 PR rtl-optimization/45739
1145 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1146 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1147
5e68c77a
AS
11482010-09-21 Anatoly Sokolov <aesok@post.ru>
1149
1150 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1151 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1152 Remove.
c69fa2d4 1153 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5e68c77a
AS
1154 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1155
45547c7f
NP
11562010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1157
1158 PR objc/23710
45547c7f
NP
1159 * c-parser.c (c_parser_objc_method_definition): Check the return
1160 value of objc_start_method_definition and if false is returned,
1161 parse the method definition but emit no code.
50842acb 1162
c0c24aa4
NP
11632010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1164
1165 PR objc/25965
1166 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1167 call objc_get_interface_ivars ().
50842acb 1168
f997b875
KT
11692010-09-21 Kai Tietz <kai.tietz@onevision.com>
1170
1171 PR target/45694
1172 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1173 static chain-register is used for 64-bit.
1174
54394f4d
RG
11752010-09-21 Richard Guenther <rguenther@suse.de>
1176
1177 * dwarf2out.c (is_cu_die): New function.
1178 (add_pubtype): Use it.
1179 (gen_subprogram_die): Likewise.
1180 (gen_struct_or_union_type_die): Likewise.
1181 (dwarf2out_finish): Likewise.
1182 (comp_unit_die): Rename to ...
1183 (single_comp_unit_die): ... this.
1184 (comp_unit_die): New function lazily constructing and
1185 returning single_comp_unit_die.
1186 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
1187 base_type_die, subrange_type_die, modified_type_die,
1188 lower_bound_default, add_bound_info, add_prototyped_attribute,
1189 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
1190 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
1191 force_decl_die, gen_namespace_die, dwarf2out_decl,
1192 dwarf2out_start_source_file, dwarf2out_end_source_file,
1193 prune_unused_types, dwarf2out_finish): Use it.
1194 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
1195 the global list of translation-unit decls.
1196 (dwarf2out_init): Do not create single_comp_unit_die here.
1197 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
1198
9cad5fe7
RG
11992010-09-21 Richard Guenther <rguenther@suse.de>
1200
1201 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
1202 for bool for C++.
1203
c9cdcaa5
BS
12042010-09-21 Bernd Schmidt <bernds@codesourcery.com>
1205
1206 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
1207 (qhs_extenddi_cstr): Likewise.
1208 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
1209 them for the source operand.
1210
903c31ee
UB
12112010-09-21 Uros Bizjak <ubizjak@gmail.com>
1212
1213 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
1214 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
1215 (ix86_split_ashr): Ditto.
1216 (ix86_split_lshr): Ditto.
1217
ce2b1d68
RG
12182010-09-21 Richard Guenther <rguenther@suse.de>
1219
1220 PR tree-optimization/45580
1221 * tree-ssa-propagate.c (substitute_and_fold): Always replace
1222 regular uses.
1223 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
1224 virtuals fold the call into a regular indirect one.
1225
ad78b8a6
EB
12262010-09-20 Eric Botcazou <ebotcazou@adacore.com>
1227
1228 PR rtl-optimization/42775
1229 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
1230 scheduling is enabled.
1231
0a7a6af6
JJ
12322010-09-20 Jakub Jelinek <jakub@redhat.com>
1233
220c5f0c
JJ
1234 PR rtl-optimization/45728
1235 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
1236 gen_lowpart_common first and if that fails, force_reg first
1237 before calling gen_lowpart.
1238
0a7a6af6
JJ
1239 PR middle-end/45678
1240 * cfgexpand.c (expand_one_stack_var_at): Use
1241 crtl->max_used_stack_slot_alignment as max_align, instead
1242 of maximum of that and PREFERRED_STACK_BOUNDARY.
1243 Don't call update_stack_alignment.
1244
523e82a7
EB
12452010-09-20 Eric Botcazou <ebotcazou@adacore.com>
1246
1247 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
1248 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
1249 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
1250 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
1251 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
1252 (build_nonstandard_integer_type): Likewise.
1253 (build_range_type_1): New function, built from...
1254 (build_range_type): ...this. Call build_range_type_1.
1255 (build_nonshared_range_type): New function.
1256 (build_array_type_1): New function, built from...
1257 (build_array_type: ...this. Call build_array_type_1.
1258 (build_nonshared_array_type): New function.
1259 * tree.h (build_nonshared_range_type): Declare.
1260 (build_nonshared_array_type): Likewise.
1261
d163e655
AS
12622010-09-20 Anatoly Sokolov <aesok@post.ru>
1263
1264 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
1265 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1266 (arm_class_likely_spilled_p): New function.
1267
382eb33c
UB
12682010-09-20 Uros Bizjak <ubizjak@gmail.com>
1269
1270 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
1271 indirect functions.
1272 (ix86_split_ashl): Ditto.
1273 (ix86_split_ashr): Ditto.
1274 (ix86_split_lshr): Ditto.
1275 (ix86_adjust_counter): Ditto.
1276
abc88a08
NP
12772010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
1278
1279 * c-family/c-common.h (constant_string_class): Documented with
1280 comment identical to the one already in c-common.c.
1281
fbbe0995
JJ
12822010-09-20 Jakub Jelinek <jakub@redhat.com>
1283
9bedc09b
JJ
1284 * dwarf2out.c (any_cfis_emitted): New static variable.
1285 (add_fde_cfi): Set it.
1286 (dwarf2out_frame_debug): Clear it before processing,
1287 if it is set afterwards, flush any queued reg saves.
1288
fbbe0995
JJ
1289 PR debug/45124
1290 * dwarf2out.c (add_accessibility_attribute): Assume
1291 DW_ACCESS_private as the default for dwarf_version > 2
1292 and DW_TAG_class_type parent.
1293 (gen_inheritance_die): Assume DW_ACCESS_public as the default
1294 for dwarf_version > 2 and parent other than DW_TAG_class_type.
1295
382eb33c 12962010-09-20 Rafael Carre <rafael.carre@gmail.com>
cce470f9
RC
1297
1298 PR target/45726
1299 * arm.md (arm_movt): Only enable on machines with MOVT.
1300
47d8f18d
JZ
13012010-09-20 Jie Zhang <jie@codesourcery.com>
1302
1303 * config/arm/arm.c (arm_address_offset_is_imm): New.
1304 (arm_early_store_addr_dep): New.
1305 (arm_early_load_addr_dep): New.
1306 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
1307 (arm_early_load_addr_dep): Declare.
1308 (arm_address_offset_is_imm): Declare.
1309 * config/arm/cortex-m4.md: New file.
1310 * config/arm/cortex-m4-fpu.md: New file.
1311 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
1312 (attr generic_sched): Exclude cortexm4.
1313 (attr generic_vfp): Exclude cortexm4.
1314
06baaba3
RG
13152010-09-20 Richard Guenther <rguenther@suse.de>
1316
1317 PR middle-end/45704
1318 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
1319
64e0f5ff
JH
13202010-09-20 Jan Hubicka <jh@suse.cz>
1321
1322 PR tree-optimize/45605
1323 * cgraph.h (const_value_known_p): Declare.
1324 (varpool_decide_const_value_known): Remove.
1325 * tree-ssa-ccp.c (get_base_constructor): Use it.
1326 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
1327 * expr.c (string_constant): Likewise.
1328 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
1329 * ipa.c (ipa_discover_readonly_nonaddressable_var,
1330 function_and_variable_visibility): Likewise.
1331 * gimplify.c (gimplify_call_expr): Likewise.
1332 * gimple-fold.c (get_symbol_constant_value): Likewise.
1333 * varpool.c (varpool_decide_const_value_known): Replace by...
1334 (const_value_known_p): ... this one; handle other kinds of DECLs
1335 too and work for automatic vars.
1336 (varpool_finalize_decl): Use const_value_known_p.
1337
382eb33c 13382010-09-20 Rafael Carre <rafael.carre@gmail.com>
4ce9b2b2
RC
1339
1340 PR target/45726
1341 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
1342
565b8886
RG
13432010-09-20 Richard Guenther <rguenther@suse.de>
1344
1345 PR tree-optimization/45705
1346 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
1347
2960be83
JJ
13482010-09-20 Jakub Jelinek <jakub@redhat.com>
1349
1350 PR rtl-optimization/45695
1351 * combine.c (try_combine): When splitting a two set pattern,
1352 make sure the pattern which will be put into i2 doesn't use REGs
1353 or MEMs set by insns in between i2 and i3.
1354
d1f6261f
JH
13552010-09-19 Jan Hubicka <jh@suse.cz>
1356
1357 PR lto/44246
1358 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
1359 processing same node twice.
1360
0b182178
AS
13612010-09-19 Anatoly Sokolov <aesok@post.ru>
1362
1363 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
1364 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1365 (bfin_class_likely_spilled_p): New function
1366
039d9ea1
IR
13672010-09-19 Ira Rosen <irar@il.ibm.com>
1368
1369 PR tree-optimization/45714
1370 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
1371 created in vectorizable_call instead of the original statement in
1372 def stmt updates.
1373
b146446c
UB
13742010-09-19 Uros Bizjak <ubizjak@gmail.com>
1375
1376 * config/i386/i386-protos.h (split_double_mode): New prototype.
1377 (split_di, split_ti): Remove prototypes.
1378 * config/i386/i386.c (split_double_mode): New function.
1379 (split_di, split_ti): Remove.
1380 (ix86_expand_branch): Use split_double_mode.
1381 (ix86_split_to_parts): Ditto.
1382 (ix86_split_ashl): Ditto.
1383 (ix86_split_ashr): Ditto.
1384 (ix86_split_lshr): Ditto.
1385 (ix86_force_to_memory): Ditto.
1386 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
1387
9b389a5e
JH
13882010-09-18 Jan Hubicka <jh@suse.cz>
1389
1390 PR tree-optimization/45453
1391 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
1392 virtual functions are reachable.
1393 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
1394 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1395 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
1396 when modifying function.
1397
1389294c
JH
13982010-09-18 Jan Hubicka <jh@suse.cz>
1399
1400 PR tree-optimization/45605
1401 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
1402 * gimple-fold.c (static_object_in_other_unit_p): New function.
1403 (canonicalize_constructor_val): Use it.
1404 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
1405 returning NULL.
b146446c
UB
1406 (gimple_fold_obj_type_ref_known_binfo): Use
1407 static_object_in_other_unit_p.
1389294c 1408
6a78fd06
RG
14092010-09-18 Richard Guenther <rguenther@suse.de>
1410
1411 PR tree-optimization/45709
1412 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
1413 insertions until after all PHI nodes of the block are processed.
1414
17eba947 14152010-09-18 Tijl Coosemans <tijl@coosemans.org>
f52a39cd
TC
1416
1417 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
1418
b4b7e792
KT
14192010-09-18 Kai Tietz <kai.tietz@onevision.com>
1420
1421 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
1422
a9db10d4
RG
14232010-09-18 Richard Guenther <rguenther@suse.de>
1424
1425 PR tree-optimization/45709
b146446c 1426 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
a9db10d4 1427
1f424006
SP
14282010-09-17 Sebastian Pop <sebastian.pop@amd.com>
1429
1430 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
1431 (dot_deps_stmt): Same.
1432 * graphite-poly.c (dot_lst): Same.
1433 * graphite-scop-detection.c (dot_all_scops): Same.
1434 (dot_scop): Same.
1435
f3241b29
SP
14362010-09-17 Sebastian Pop <sebastian.pop@amd.com>
1437
b146446c
UB
1438 Revert:
1439 2009-12-16 Ben Elliston <bje@au.ibm.com>
1440
f3241b29
SP
1441 * tree-data-ref.c (dot_rdg_1): Added back.
1442 (dot_rdg): Same. Added "#if 0" around system call.
1443
e7ed95a2
L
14442010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1445 Richard Henderson <rth@redhat.com>
1446
1447 * config/i386/i386.c (initial_ix86_tune_features): Add
1448 X86_TUNE_PAD_SHORT_FUNCTION.
1449 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
1450 (ix86_count_insn): New.
1451 (ix86_pad_short_function): Likewise.
1452 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
1453
1454 * config/i386/i386.h (ix86_tune_indices): Add
1455 X86_TUNE_PAD_SHORT_FUNCTION.
1456 (TARGET_PAD_SHORT_FUNCTION): New.
1457
1458 * config/i386/i386.md (UNSPEC_NOPS): New.
1459 (nops): Likewise.
1460
2b3ded42
L
14612010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1462
1463 PR middle-end/45234
1464 * calls.c (expand_call): Make sure that all variable sized
1465 adjustments are multiple of preferred stack boundary after
1466 stack alignment.
1467
bf9afb7d
DD
14682010-09-17 DJ Delorie <dj@redhat.com>
1469
1470 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
1471 passed an invalid value, print an error instead of ICEing.
1472 (valid_psw_flag): New.
1473 (rx_expand_builtin): Call it for setpsw/clrpsw.
b146446c 1474 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
bf9afb7d
DD
1475
1476 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
1477 (bitclr_in_memory): Likewise.
1478 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
1479
765c3e8f
L
14802010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1481
1482 PR middle-end/45678
1483 * cfgexpand.c (update_stack_alignment): New.
1484 (get_decl_align_unit): Use it.
1485 (expand_one_stack_var_at): Call update_stack_alignment.
1486
0982fd64
RG
14872010-09-17 Richard Guenther <rguenther@suse.de>
1488
1489 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
1490 Properly copy the read string.
1491
e90afde6
JM
14922010-09-17 Joseph Myers <joseph@codesourcery.com>
1493
1494 * doc/options.texi (Variable): Document.
1495 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
1496 generate target_flags declarations explicitly. Don't define
1497 VarExists variables for the driver.
1498 * common.opt (target_flags): New Variable record.
1499 (flag_dump_unnumbered, flag_dump_unnumbered_links,
1500 flag_var_tracking, flag_var_tracking_assignments,
1501 flag_var_tracking_assignments_toggle): Don't mark variables with
1502 VarExists.
1503 * config/i386/i386.c (ix86_isa_flags): Don't define here.
1504 * config/i386/i386.opt (ix86_isa_flags): Define here.
1505 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
1506 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
1507 VarExists.
1508 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
1509 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
1510 Only define for generator programs.
1511 * rtlanal.c (target_flags): Remove.
1512 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
1513 flag_var_tracking_assignments_toggle): Remove.
1514
18ba3ce7
MM
15152010-09-17 Michael Matz <matz@suse.de>
1516
1517 PR tree-optimization/43432
1518 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1519 Accept backwards consecutive accesses.
1520 (vect_create_data_ref_ptr): If step is negative generate
1521 decreasing IVs.
1522 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
1523 (perm_mask_for_reverse, reverse_vec_elements): New functions.
1524 (vectorizable_load): Handle loads with negative steps when easily
1525 possible.
1526
4c588abf
JH
15272010-09-03 Jan Hubicka <jh@suse.cz>
1528
1529 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
1530
122603fa
N
15312010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
1532
1533 * config/v850/v850.c (v850_function_value_regno_p): Make static.
1534 Adjust comments. Declare.
1535 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1536 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
1537
c3224d6f
RG
15382010-09-17 Richard Guenther <rguenther@suse.de>
1539
1540 * common.opt (combine): Remove.
1541 * gcc.c (default_compilers): Remove specs testing combine.
1542 The C compilers no longer can combine.
1543 (option_map): Remove -combine.
1544 (display_help): Remove -combine.
1545 (driver_handle_option): Remove OPT_combine handling.
1546 (compile_input_file_p): Remove.
1547 (do_spec): Remove code concerning combine.
1548 (main): Likewise.
1549 * doc/invoke.texi: Remove traces of -combine.
b146446c 1550 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
c3224d6f 1551
dbad82f5
RG
15522010-09-17 Richard Guenther <rguenther@suse.de>
1553
1554 PR middle-end/45678
1555 * builtins.c (fold_builtin_memory_op): Always properly adjust
1556 alignment of memory accesses.
1557
52b3b3c7
JH
15582010-09-16 Jan Hubicka <jh@suse.cz>
1559
1560 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
1561 processing clone.
1562
26ec9308
L
15632010-09-16 H.J. Lu <hongjiu.lu@intel.com>
1564
1565 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
1566
1567 * config/i386/i386.c (predict_jump): Add prototype.
1568 (flag_opts): Add -m8bit-idiv.
1569 (ix86_split_idivmod): New.
1570
1571 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
1572 Add 2 splitters for SI/DI mode divide.
1573 (divmod<mode>4_1): New pattern.
1574 (udivmod<mode>4_1): Likewise.
1575 (testdi_ccno_1): Likewise.
1576
1577 * config/i386/i386.opt (m8bit-idiv): New.
1578
1579 * doc/invoke.texi: Document -m8bit-idiv.
1580
782d5172
RY
15812010-09-16 Reza Yazdani <reza.yazdani@amd.com>
1582
1583 PR bootstrap/45680
1584 * config/i386/i386.c (min_insn_size): Moved out of the
1585 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
1586
0cac82a0
JH
15872010-09-16 Jan Hubicka <jh@suse.cz>
1588
1589 * lto-cgraph.c (lto_output_node): Fix handling of clones.
1590 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
1591 unreachable clones with reachable clones.
1592 * tree-inline.c (copy_bb): Fix sanity checking when producing
1593 unreachable clone.
1594
40e2dfaa
AS
15952010-09-16 Anatoly Sokolov <aesok@post.ru>
1596
1597 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
1598 (TARGET_MEMORY_MOVE_COST): Define.
1599 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
1600
65592aad
AM
16012010-09-16 Alexander Monakov <amonakov@ispras.ru>
1602
1603 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
1604 maybe_tidy_empty_bb.
1605
1606 Revert:
1607 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
1608 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1609
fac0f722
JM
16102010-09-16 Joseph Myers <joseph@codesourcery.com>
1611
1612 * target.def (target_option.optimization): New hook.
1613 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
1614 TARGET_OPTION_OPTIMIZATION hook.
1615 * doc/tm.texi: Regenerate.
1616 * hooks.c (hook_void_int_int): New.
1617 * hooks.h (hook_void_int_int): Declare.
1618 * opts.c: Don't include tm_p.h.
1619 (decode_options): Use targetm.target_option.optimization instead
1620 of OPTIMIZATION_OPTIONS.
1621 * system.h (OPTIMIZATION_OPTIONS): Poison.
1622 * config/arm/arm-protos.h (arm_optimization_options): Remove.
1623 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
1624 (arm_optimization_options): Rename to arm_option_optimization.
1625 Make static.
1626 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
1627 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
1628 (cris_option_optimization): New.
1629 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
1630 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
1631 (crx_option_optimization): New.
1632 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
1633 * config/frv/frv-protos.h (frv_optimization_options): Remove.
1634 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
1635 (frv_optimization_options): Rename to frv_option_optimization.
1636 Make static.
1637 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
1638 * config/h8300/h8300.c (h8300_option_optimization): New.
1639 (TARGET_OPTION_OPTIMIZATION): Define.
1640 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
1641 * config/i386/i386-protos.h (optimization_options): Remove.
1642 * config/i386/i386.c (optimization_options): Rename to
1643 ix86_option_optimization. Make static.
1644 (TARGET_OPTION_OPTIMIZATION): Define.
1645 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
1646 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
1647 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
1648 (ia64_optimization_options): Rename to ia64_option_optimization.
1649 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
1650 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
1651 commented-out definition.
1652 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1653 instead of OPTIMIZATION_OPTIONS.
1654 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
1655 (m32r_option_optimization): New.
1656 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
1657 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
1658 Remove.
1659 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
1660 (mcore_option_optimization): New.
1661 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
1662 * config/mep/mep-protos.h (mep_optimization_options): Remove.
1663 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
1664 (mep_optimization_options): Rename to mep_option_optimization.
1665 Make static. Take unused level and size parameters.
1666 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
1667 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
1668 (mmix_option_optimization): New.
1669 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
1670 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
1671 (pdp11_option_optimization): New.
1672 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
1673 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
1674 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
1675 (optimization_options): Rename to rs6000_option_optimization.
1676 Make static.
1677 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
1678 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
1679 * config/rx/rx.c (rx_set_optimization_options): Rename to
1680 rx_option_optimization. Make static. Take unused level and size
1681 parameters.
1682 (TARGET_OPTION_OPTIMIZATION): Define.
1683 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
1684 * config/s390/s390-protos.h (optimization_options): Remove.
1685 * config/s390/s390.c (optimization_options): Rename to
1686 s390_option_optimization. Make static. Don't mark size parameter
1687 unused.
1688 (TARGET_OPTION_OPTIMIZATION): Define.
1689 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
1690 * config/sh/sh-protos.h (sh_optimization_options): Remove.
1691 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
1692 (sh_optimization_options): Rename to sh_option_optimization. Make
1693 static. Don't mark parameters unused.
1694 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
1695 * config/spu/spu-protos.h (spu_optimization_options): Remove.
1696 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
1697 (spu_optimization_options): Rename to spu_option_optimization.
1698 Make static.
1699 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
1700 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
1701 (v850_option_optimization): New.
1702 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
1703 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
1704 (xtensa_option_optimization): New.
1705 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
1706
c5387660
JM
17072010-09-16 Joseph Myers <joseph@codesourcery.com>
1708
1709 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
1710 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
1711 * doc/tm.texi: Regenerate.
1712 * system.h (OVERRIDE_OPTIONS): Poison.
1713 * target.def (override): Default to hook_void_void.
1714 * targhooks.c (default_target_option_override): Remove.
1715 * genmodes.c, machmode.def: Update comments mentioning
1716 OVERRIDE_OPTIONS.
1717 * config/alpha/alpha-modes.def: Update comment mentioning
1718 alpha_override_options.
1719 * config/alpha/alpha-protos.h (override_options): Remove.
1720 * config/alpha/alpha.c (override_options): Rename to
b146446c 1721 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
c5387660
JM
1722 (TARGET_OPTION_OVERRIDE): Define.
1723 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
1724 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
1725 of OVERRIDE_OPTIONS.
1726 * config/arc/arc-protos.h (arc_init): Remove.
1727 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
1728 (arc_init): Rename to arc_option_override. Make static.
1729 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
1730 (OVERRIDE_OPTIONS): Remove.
1731 * config/arm/arm-protos.h (arm_override_options): Remove.
1732 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
1733 (arm_override_options): Rename to arm_option_override. Make
1734 static. Call SUBTARGET_OVERRIDE_OPTIONS.
1735 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
b146446c 1736 * config/arm/arm.md: Update comment referring to arm_override_options.
c5387660
JM
1737 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1738 instead of OVERRIDE_OPTIONS.
1739 * config/avr/avr-protos.h (avr_override_options): Remove.
1740 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1741 (avr_override_options): Rename to avr_option_override. Make static.
c5387660
JM
1742 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
1743 * config/bfin/bfin-protos.h (override_options): Remove (twice).
1744 * config/bfin/bfin.c (override_options): Rename to
1745 bfin_option_override. Make static.
1746 (TARGET_OPTION_OVERRIDE): Define.
1747 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
1748 * config/cris/cris-protos.h (cris_override_options): Remove.
1749 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1750 (cris_override_options): Rename to cris_option_override. Make static.
c5387660
JM
1751 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
1752 * config/frv/frv-protos.h (frv_override_options): Remove.
1753 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1754 (frv_override_options): Rename to frv_option_override. Make static.
c5387660
JM
1755 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
1756 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
1757 * config/h8300/h8300.c (h8300_init_once): Rename to
1758 h8300_option_override. Make static.
1759 (TARGET_OPTION_OVERRIDE): Define.
1760 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
1761 * config/i386/i386-protos.h (override_options): Remove.
1762 * config/i386/i386.c (override_options): Rename to
1763 ix86_option_override_internal. Make static. Comments referring
1764 to this function and callers changed.
1765 (ix86_option_override): New.
1766 (TARGET_OPTION_OVERRIDE): Define.
1767 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
b146446c 1768 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
c5387660
JM
1769 * config/ia64/ia64.c (ia64_file_start): Update comment referring
1770 to ia64_override_options.
1771 * config/iq2000/iq2000-protos.h (override_options): Remove.
1772 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1773 (override_options): Rename to iq2000_option_override. Make static.
c5387660
JM
1774 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
1775 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
1776 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1777 (lm32_override_options): Rename to lm32_option_override. Make static.
c5387660
JM
1778 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
1779 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
1780 (m32r_option_override): New.
1781 (m32r_init): Update comment.
1782 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
b146446c 1783 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
c5387660
JM
1784 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
1785 (m68hc11_override_options): Rename to m68hc11_option_override.
1786 Make static. Return void.
1787 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
1788 * config/m68k/m68k-protos.h (override_options): Remove.
1789 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
1790 (override_options): Rename to m68k_option_override. Make static.
1791 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
1792 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
1793 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
1794 (mcore_override_options): Rename to mcore_option_override. Make
1795 static.
1796 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
1797 * config/mep/mep-protos.h (mep_override_options): Remove.
1798 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1799 (mep_override_options): Rename to mep_option_override. Make static.
c5387660
JM
1800 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
1801 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
1802 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1803 (mmix_override_options): Rename to mmix_option_override. Make static.
c5387660 1804 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
b146446c 1805 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
c5387660
JM
1806 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
1807 (mn10300_override_options): Rename to mn10300_option_override.
1808 Make static.
1809 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
1810 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
1811 * config/moxie/moxie.c (moxie_override_options): Rename to
1812 moxie_option_override. Make static.
1813 (TARGET_OPTION_OVERRIDE): Define.
1814 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
1815 * config/picochip/picochip-protos.h (picochip_override_options):
1816 Remove. Update comment referring to picochip_override_options.
1817 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
1818 (picochip_override_options): Rename to picochip_option_override.
1819 Make static. Update comment and definition of
1820 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
1821 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
b146446c
UB
1822 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1823 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1824 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1825 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1826 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
c5387660
JM
1827 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
1828 instead of OVERRIDE_OPTIONS.
1829 * config/rs6000/rs6000-modes.def: Update comment referring to
1830 rs6000_override_options.
1831 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
1832 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
1833 (rs6000_override_options): Rename to
1834 rs6000_option_override_internal. Make static. Commented
1835 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
1836 (rs6000_option_override): New.
1837 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
1838 instead of OVERRIDE_OPTIONS.
b146446c 1839 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
c5387660
JM
1840 * config/s390/s390-protos.h (override_options): Remove.
1841 * config/s390/s390.c (override_options): Rename to
1842 s390_option_override. Make static.
1843 (TARGET_OPTION_OVERRIDE): Define.
1844 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
1845 * config/score/score-protos.h (score_override_options): Remove.
1846 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
1847 (score_override_options): Rename to score_option_override. Make
1848 static.
1849 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
1850 Update comment referring to override_options.
1851 * config/score/score3.c (score3_override_options): Rename to
1852 score3_option_override.
1853 * config/score/score3.h (score3_override_options): Rename to
1854 score3_option_override.
1855 * config/score/score7.c (score7_override_options): Rename to
1856 score7_option_override.
1857 * config/score/score7.h (score7_override_options): Rename to
1858 score7_option_override.
1859 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
1860 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
1861 (sparc_override_options): Rename to sparc_option_override. Make
1862 static. Call SUBTARGET_OVERRIDE_OPTIONS.
1863 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
1864 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1865 instead of OVERRIDE_OPTIONS.
1866 * config/spu/spu-protos.h (spu_override_options): Remove.
1867 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
1868 (spu_override_options): Rename to spu_option_override. Make
1869 static.
1870 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
1871 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
1872 OVERRIDE_OPTIONS.
1873 * config/vax/vax-protos.h (override_options): Remove.
1874 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
1875 (override_options): Rename to vax_option_override. Make static.
1876 Call SUBTARGET_OVERRIDE_OPTIONS.
1877 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
1878 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
1879 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
1880 * config/xtensa/xtensa-protos.h (override_options): Remove.
1881 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 1882 (override_options): Rename to xtensa_option_override. Make static.
c5387660
JM
1883 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
1884
ed6c4831
RG
18852010-09-16 Richard Guenther <rguenther@suse.de>
1886
1887 PR tree-optimization/45623
1888 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
1889 (get_constraint_for_component_ref): If computing a constraint
1890 for the rhs handle type punning through unions.
1891 (get_constraint_for_address_of): Adjust.
1892 (get_constraint_for_1): Likewise.
1893 (get_constraint_for): Likewise.
1894 (get_constraint_for_rhs): New function.
1895 (do_structure_copy): Adjust.
1896 (make_constraint_to): Likewise.
1897 (handle_const_call): Likewise.
1898 (find_func_aliases): Likewise.
1899 (process_ipa_clobber): Likewise.
1900 (create_variable_info_for): Likewise.
1901
ff802fa1
IR
19022010-09-16 Ira Rosen <irar@il.ibm.com>
1903
1904 * tree-vectorizer.c: Fix documentation.
1905 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
1906 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
1907 is_pattern_stmt_p, is_loop_header_bb_p,
1908 stmt_vinfo_set_inside_of_loop_cost,
1909 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
1910 known_alignment_for_access_p): Likewise.
1911 * tree-vect-loop.c: Fix documentation.
1912 (vect_get_cost): Start function name from new line.
1913 * tree-vect-data-refs.c: Fix documentation.
1914 * tree-vect_stmts.c: Likewise.
1915 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
1916 (vectorizable_store): Free vec_oprnds if allocated.
1917 (vectorizable_condition): Initialize several variables to avoid
1918 warnings.
1919 * tree-vect-slp.c: Fix documentation.
1920
6be14c0e
RG
19212010-09-16 Richard Guenther <rguenther@suse.de>
1922
1923 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
1924 is TS_TRANSLATION_UNIT_DECL.
1925 (initialize_tree_contains_struct): Adjust.
1926 (all_translation_units): New global vector.
1927 (build_translation_unit_decl): New function.
1928 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
1929 (struct tree_translation_unit_decl): New.
1930 (all_translation_units): Declare.
1931 (union tree_node): Add translation_unit_decl member.
1932 (build_translation_unit_decl): Declare.
1933 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
1934 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
1935 New function.
1936 (pack_value_fields): Call it.
1937 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
1938 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
1939 (lto_output_tree_pointers): Call it.
1940 * lto-streamer-in.c (lto_input_tree_ref): Handle references
1941 to TRANSLATION_UNIT_DECL.
1942 (unpack_ts_translation_unit_decl_value_fields): New function.
1943 (unpack_value_fields): Call it.
1944 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
1945 (lto_input_tree_pointers): Call it.
1946 * lto-streamer.c (check_handled_ts_structures): Adjust.
1947 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
1948 * c-decl.c (all_translation_units): Remove.
1949 (pop_scope): Use build_translation_unit_decl.
1950 (collect_all_refs): Adjust.
1951 (for_each_global_decl): Likewise.
1952 (c_write_global_declarations): Likewise.
1953
0c3dbcf0
JJ
19542010-09-16 Jakub Jelinek <jakub@redhat.com>
1955
1956 PR bootstrap/45686
1957 * fold-const.c (fold_checksum_tree): Change slot from const void **
1958 to void **, use CONST_CAST_TREE to store into *slot.
1959
a427621f
UB
19602010-09-16 Uros Bizjak <ubizjak@gmail.com>
1961
1962 * config/i386/i386.md: Remove unneeded empty conditions and
1963 preparation statements from expanders.
1964 * config/i386/mmx.md: Ditto.
1965 * config/i386/sse.md: Ditto.
1966
8c2b2fae
UB
19672010-09-16 Uros Bizjak <ubizjak@gmail.com>
1968
1969 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
1970
9fa07b13
EB
19712010-09-15 Eric Botcazou <ebotcazou@adacore.com>
1972
1973 PR rtl-optimization/45593
1974 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
1975 insns that were in delay slots as stand-alone insns.
1976
46327e12
ILT
19772010-09-15 Ian Lance Taylor <iant@google.com>
1978
1979 * incpath.c (remove_duplicates): If name is not a directory, issue
1980 a warning rather than an error.
1981
1faab08d
MJ
19822010-09-15 Martin Jambor <mjambor@suse.cz>
1983
1984 PR middle-end/45644
1985 * tree-sra.c (create_access): Check for bit-fields directly.
1986
cc99c5fe
JJ
19872010-09-15 Jakub Jelinek <jakub@redhat.com>
1988
1989 PR tree-optimization/45633
1990 * tree-cfg.c (verify_gimple_assign_binary): Allow
1991 MINUS_EXPR with lhs and rhs1 pointer vector and
1992 rhs2 sizetype vector.
1993 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
1994 or vector pointer use TER to optimize pointer subtraction.
1995
7dd8ecf0
JZ
19962010-09-15 Jie Zhang <jie@codesourcery.com>
1997
1998 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
1999 fcmpd to fcmps.
2000
1f944e88
ILT
20012010-09-15 Ian Lance Taylor <iant@google.com>
2002
2003 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
2004
c1d9a70a
ILT
20052010-09-15 Ian Lance Taylor <iant@google.com>
2006
2007 * function.c (get_arg_pointer_save_area): Set
2008 arg_pointer_save_area_init to true.
2009
ea395a11
MJ
20102010-09-15 Martin Jambor <mjambor@suse.cz>
2011
2012 * tree-sra.c (generate_subtree_copies): Updated comment.
2013 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
2014 obtained from the statement iterator instead.
2015 (load_assign_lhs_subreplacements): Removed parameters lhs and
2016 right_offset, which is obtained from top_racc instead. Parameter lacc
2017 is now expected to be the root of the processed tree rather than root's
2018 first child. Updated all callers.
2019
6d96b48b
JM
20202010-09-15 Joseph Myers <joseph@codesourcery.com>
2021
2022 * config/pdp11/pdp11.c (register_move_cost): Rename to
2023 pdp11_register_move_cost.
2024 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
2025 pdp11_register_move_cost.
2026 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
2027 pdp11_register_move_cost instead of register_move_cost.
2028
0f38f229
TB
20292010-09-15 Tejas Belagod <tejas.belagod@arm.com>
2030
2031 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
17eba947 2032 pattern for vmovn. Expansion in case of non
0f38f229
TB
2033 -mvectorize-with-neon-quad.
2034 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2035 non- -mvectorize-with-neon-quad case.
2036 (move_lo_quad_<mode>): New expansion to vmov into low part.
2037 (move_hi_quad_<mode>): New expansion to vmov into high part.
2038 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2039 (move_lo_quad_v4sf): Likewise.
2040 (move_lo_quad_v8hi): Likewise.
2041 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2042 low part.
2043 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2044 high part.
2045 * config/arm/iterators.md (ANY128): New mode iterator.
2046 (V_narrow_pack): New mode attribute.
2047 (V_HALF): Add attribute.
2048 (V_DOUBLE): Add attribute.
2049 (V_mode_nunits): Add attribute.
2050
10937190
EB
20512010-09-15 Eric Botcazou <ebotcazou@adacore.com>
2052
2053 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2054 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2055
6c175675 20562010-09-15 Olivier Hainque <hainque@adacore.com>
8c2b2fae 2057 Jose Ruiz <ruiz@adacore.com>
6c175675
OH
2058
2059 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2060 * config/alpha/osf5-unwind.h: New file.
2061
2b7237bb
L
20622010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2063
2064 PR bootstrap/45672
8c2b2fae 2065 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2b7237bb
L
2066 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2067 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2068
969c37b7
LB
20692010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2070
2071 * c-lang.h (struct lang_type): Add variable_size GTY option.
2072
187c10dc
L
20732010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2074
2075 PR bootstrap/45672
2076 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2077
2c03791b
L
20782010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2079
2080 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2081 result isn't used in memory address.
2082
26983c22
L
20832010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2084
2085 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2086 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2087 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2088 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2089 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2090 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2091
2092 * target.def: Add units_per_simd_word to vectorize.
2093
2094 * targhooks.c (default_units_per_simd_word): New.
2095 * targhooks.h (default_units_per_simd_word): Likewise.
2096 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2097 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2098 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2099 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2100 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2101 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2102 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2103 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2104
2105 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2106 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2107
2108 * tree-vect-stmts.c: Don't include "tm_p.h".
2109 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2110 with targetm.vectorize.units_per_simd_word.
2111
2112 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2113
2114 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2115
8c2b2fae 2116 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
26983c22
L
2117 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2118
2119 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
2120 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2121
2122 * doc/tm.texi: Regenerated.
2123
4de264ab
L
21242010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2125
2126 * tree-vect-stmts.c: Include "tm_p.h".
2127
2128 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2129 out of RTX_CODE.
2130
e4b5cace
MJ
21312010-09-14 Martin Jambor <mjambor@suse.cz>
2132
2133 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
2134 location of generated statement. Changed all callers.
2135 (build_ref_for_model): New parameter loc which used to set location of
2136 all generated expressions. Changed all callers.
2137 (generate_subtree_copies): Likewise.
2138 (init_subtree_with_zero): Likewise.
2139 (sra_modify_expr): Set locations of all generated statements and
2140 expressions to the location the original statement.
2141 (handle_unscalarized_data_in_subtree): Likewise.
2142 (load_assign_lhs_subreplacements): Likewise.
2143 (sra_modify_constructor_assign): Likewise.
2144 (sra_modify_assign): Likewise.
2145
d191cd06
EB
21462010-09-14 Eric Botcazou <ebotcazou@adacore.com>
2147
2148 PR target/45277
2149 PR target/45363
2150 PR target/45407
2151 * doc/install.texi (sparc*-*-*): New section.
2152 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2153
4359dc2a
JJ
21542010-09-14 Jakub Jelinek <jakub@redhat.com>
2155
2156 PR middle-end/45567
2157 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2158 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2159 (expand_builtin): Adjust caller.
2160 (expand_builtin_unop): Only use subtarget if it has the right mode.
2161
515871c7
TG
21622010-09-14 Tristan Gingold <gingold@adacore.com>
2163
2164 * configure.ac (plugins): Fix typos.
2165 * configure: Regenerate.
2166
4a6e5cc8
JJ
21672010-09-14 Jakub Jelinek <jakub@redhat.com>
2168
2169 PR debug/45660
2170 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2171 gen_type_die for function/method return type.
2172
5a2c1986
IR
21732010-09-14 Ira Rosen <irar@il.ibm.com>
2174
2175 PR tree-optimization/45470
2176 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
2177 can throw an exception.
8c2b2fae 2178 * tree-vect-stmts.c (vectorizable_call): Likewise.
5a2c1986 2179
c28883e6
DD
21802010-09-14 DJ Delorie <dj@redhat.com>
2181
2182 PR target/44749
2183 * config/mep/mep-protos.h (mep_save_register_info,
2184 mep_reinit_regs, mep_init_regs): Declare.
2185
2186 * config/mep/mep.c: Move all target definitions to the end of the
2187 file to avoid the need for duplicate declarations.
2188 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
2189 (mep_reorg_erepeat): Remove unused variables.
2190 (mep_expand_builtin): Likewise.
2191
2192 * config/mep/mep-pragma.c: Don't include rtl.h.
2193 (INVALID_REGNUM): New.
2194 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
2195 functions.
2196 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
2197 Avoid enum/integer math.
2198
ce959463
JM
21992010-09-13 Joseph Myers <joseph@codesourcery.com>
2200
2201 PR target/44749
2202 * config/mep/t-mep (GTM_H): Add insn-constants.h.
2203 * config/mep/mep.c (mep_conditional_register_usage): Take no
2204 parameters.
2205 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
2206 prototype.
2207 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
2208 call to mep_conditional_register_usage.
2209
5c9bf752
EB
22102010-09-13 Eric Botcazou <ebotcazou@adacore.com>
2211
2212 PR debug/43937
2213 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
2214 the DECL as well.
2215
ef3be7da
JJ
22162010-09-13 Jakub Jelinek <jakub@redhat.com>
2217
2218 PR rtl-optimization/45617
2219 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
2220 even if low N bits of X aren't known to be zero.
2221
e72eba85
L
22222010-09-13 H.J. Lu <hongjiu.lu@intel.com>
2223
2224 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
2225
2226 * config/i386/i386.c (initial_ix86_tune_features): Add
2227 X86_TUNE_VECTORIZE_DOUBLE.
2228 (ix86_units_per_simd_word): New.
2229
2230 * config/i386/i386.h (ix86_tune_indices): Add
2231 X86_TUNE_VECTORIZE_DOUBLE.
2232 (TARGET_VECTORIZE_DOUBLE): New.
2233 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2234
2ea5ee06
PH
22352010-09-13 Pat Haugen <pthaugen@us.ibm.com>
2236
2237 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
2238 (new_temp_expr_table): Allocate call_cnt vector.
2239 (free_temp_expr_table): Free it.
2240 (process_replaceable): Add call_cnt parm and set in vector.
2241 (find_replaceable_in_bb): Skip replacement if def/use span a call.
2242 (debug_ter): Dump call_cnt value, remove stderr uses.
2243
e196b221
JH
22442010-09-13 Jan Hubicka <jh@suse.cz>
2245
2246 * tree.c (build_zero_cst): New.
2247 * tree.h (build_zero_cst): Declare.
2248 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
2249 (get_base_constructor): Break out from ...
2250 (fold_const_aggregate_ref): Here; handle empty constructors.
2251
e88290ac
MS
22522010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
2253
2254 * config/arm/arm.md: (define_attr "conds"): Update comment.
8c2b2fae 2255 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
e88290ac 2256 conds attribute to clob.
8c2b2fae 2257 (arm_sync_compare_and_swapsi): Likewise.
e88290ac
MS
2258 (arm_sync_compare_and_swap<mode>): Likewise.
2259 (arm_sync_lock_test_and_setsi): Likewise.
2260 (arm_sync_lock_test_and_set<mode>): Likewise.
2261 (arm_sync_new_<sync_optab>si): Likewise.
2262 (arm_sync_new_nandsi): Likewise.
2263 (arm_sync_new_<sync_optab><mode>): Likewise.
2264 (arm_sync_new_nand<mode>): Likewise.
2265 (arm_sync_old_<sync_optab>si): Likewise.
2266 (arm_sync_old_nandsi): Likewise.
2267 (arm_sync_old_<sync_optab><mode>): Likewise.
2268 (arm_sync_old_nand<mode>): Likewise.
2269
2f434b97
OH
22702010-09-13 Olivier Hainque <hainque@adacore.com>
2271
8c2b2fae 2272 * fwprop.c (forward_propagate_and_simplify): Only attach a
2f434b97 2273 REG_EQUAL note to an insn if the destination is a register.
8c2b2fae 2274 * gcse.c (try_replace_reg): Likewise.
2f434b97 2275
654a61fb
RG
22762010-09-13 Richard Guenther <rguenther@suse.de>
2277
2278 PR tree-optimization/45611
2279 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
2280 (copy_ref_info): Likewise.
2281
4e3a5f19
AO
22822010-09-13 Alexandre Oliva <aoliva@redhat.com>
2283
2284 PR debug/45604
2285 PR debug/45419
2286 PR debug/45408
2287 * tree-pretty-print.c (dump_generic_node): Disregard top-level
2288 types of MEM_REF pointer types to the same type.
2289
ddf68ab9
HPN
22902010-09-13 Hans-Peter Nilsson <hp@axis.com>
2291
2292 PR rtl-optimization/41087
2293 * ifcvt.c (noce_get_condition): Don't allow conditions with
2294 side-effects.
2295
33124e84
AS
22962010-09-12 Anatoly Sokolov <aesok@post.ru>
2297
2298 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2299 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
2300 * config/frv/frv.c (frv_register_move_cost): Make static. Change
2301 arguments type to reg_class_t. Add mode argument.
2302 (frv_memory_move_cost): New.
2303 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2304
2cea21dd
BS
23052010-09-12 Bernd Schmidt <bernds@codesourcery.com>
2306
2307 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
2308 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2309
1b0086cc
JH
23102010-09-10 Jan Hubicka <jh@suse.cz>
2311
2312 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2313
bedbdfcf
RG
23142010-09-10 Richard Guenther <rguenther@suse.de>
2315
2316 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2317 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
2318 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
2319 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
2320 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2321
cf6a4097
RG
23222010-09-10 Richard Guenther <rguenther@suse.de>
2323
2324 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
2325 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2326 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
2327 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2328
90966337
L
23292010-09-10 H.J. Lu <hongjiu.lu@intel.com>
2330
2331 PR middle-end/45634
2332 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
2333 of string folding is of integral type.
2334
2962b1bb
RM
23352010-09-10 Ryan Mansfield <rmansfield@qnx.com>
2336
2337 * doc/invoke.texi (-x): Fix typo.
2338
e836611d
RG
23392010-09-10 Richard Guenther <rguenther@suse.de>
2340
2341 PR debug/44115
2342 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
2343 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2344 Output DECL_DEBUG_EXPR.
2345 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
2346 Input DECL_DEBUG_EXPR.
2347
8c4353b7
RG
23482010-09-10 Richard Guenther <rguenther@suse.de>
2349
8c2b2fae 2350 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
8c4353b7
RG
2351 (build_index_type): Implement in terms of build_range_type.
2352 (build_range_type): Do not allow NULL_TREE type, improve
2353 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
2354 if we didn't hash.
2355 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
2356 create a distinct copy of the type.
2357
996b42ef
KT
23582010-09-10 Kai Tietz <kai.tietz@onevision.com>
2359
2360 * configure: Regenerated.
2361 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2362
a8c171c1
RR
23632010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2364
8c2b2fae
UB
2365 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
2366 * config/arm/cortex-a9-neon.md: New and partially generated.
2367 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
a8c171c1 2368
88df93ce
RG
23692010-09-10 Richard Guenther <rguenther@suse.de>
2370
2371 * tree.h (build_index_2_type): Remove.
2372 * tree.c (build_index_2_type): Remove.
2373
40ed057b
JJ
23742010-09-10 Jakub Jelinek <jakub@redhat.com>
2375
2376 PR bootstrap/45630
2377 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
2378 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
2379 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
2380
d242d063
MJ
23812010-09-10 Martin Jambor <mjambor@suse.cz>
2382
2383 PR tree-optimization/44972
2384 * tree-sra.c: Include toplev.h.
2385 (build_ref_for_offset): Entirely reimplemented.
2386 (build_ref_for_model): New function.
2387 (build_user_friendly_ref_for_offset): New function.
2388 (analyze_access_subtree): Removed build_ref_for_offset check.
2389 (propagate_subaccesses_across_link): Likewise.
2390 (create_artificial_child_access): Use
2391 build_user_friendly_ref_for_offset.
2392 (propagate_subaccesses_across_link): Likewise.
2393 (ref_expr_for_all_replacements_p): Removed.
2394 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
2395 (sra_modify_expr): Use build_ref_for_model.
2396 (load_assign_lhs_subreplacements): Likewise.
2397 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
2398 checks for return values of build_ref_for_offset.
2399 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
2400 build_ref_for_offset.
2401 * ipa-prop.h: Include gimple.h
2402 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
2403 (ipa_analyze_indirect_call_uses): Update comment.
2404 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
2405 (IPA_PROP_H): Likewise.
2406
fffe1e40
MJ
24072010-09-10 Martin Jambor <mjambor@suse.cz>
2408
2409 PR tree-optimization/44972
2410 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
2411 calling build_ref_for_offset.
2412
508371fe
RR
24132010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2414
2b74262b
UB
2415 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
2416 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
2417 * config/arm/arm-tune.md: Regenerate.
2418 * doc/invoke.texi (ARM Options): Document it.
508371fe 2419
7942e47e
RY
24202010-09-09 Reza Yazdani <reza.yazdani@amd.com>
2421
2422 * config/i386/i386.c: Include sched-int.h.
2423 (TARGET_SCHED_DISPATCH): Defined.
2424 (TARGET_SCHED_DISPATCH_DO): Defined.
2425 (DISPATCH_WINDOW_SIZE): Defined.
2426 (MAX_DISPATCH_WINDOWS): Defined.
2427 (MAX_INSN): Defined.
2428 (MAX_IMM): Defined.
2429 (MAX_IMM_SIZE): Defined.
2430 (MAX_IMM_32): Defined.
2431 (MAX_IMM_64): Defined.
2432 (MAX_LOAD): Defined.
2433 (MAX_STORE): Defined.
2434 (BIG): Defined.
2435 (dispatch_group): New.
2436 (num_allowable_groups): New.
2437 (group_name): New.
2438 (sched_insn_info_s): New.
2439 (dispatch_windows_s): New.
2440 (imm_info_s): New.
2441 (dispatch_window_list): New.
2442 (dispatch_window_list1): New.
2443 (get_mem_group): New.
2444 (is_cmp): New.
2445 (dispatch_violation): New.
2446 (is_branch): New.
2447 (is_prefetch): New.
2448 (init_window): New.
2449 (allocate_window): New.
2450 (init_dispatch_sched): New.
2451 (is_end_basic_block): New.
2452 (process_end_window): New.
2453 (allocate_next_window): New.
2454 (find_constant_1): New.
2455 (find_constant): New.
2456 (get_num_immediates): New.
2457 (has_immediate): New.
2458 (get_insn_path): New.
2459 (get_insn_group): New.
2460 (count_num_restricted): New.
2461 (fits_dispatch_window): New.
2462 (add_insn_window): New.
2463 (add_to_dispatch_window): New.
2464 (debug_dispatch_window_file): New.
2465 (debug_dispatch_window): New.
2466 (debug_insn_dispatch_info_file): New.
2467 (debug_ready_dispatch): New.
2468 (do_dispatch): New.
2469 (has_dispatch): New.
2470 * config/i386/i386.h (debug_ready_dispatch): Declared.
2471 (debug_dispatch_window): Declared.
2472 * config/i386/i386.opt (mdispatch-scheduler): New flag.
2473 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
2474 (TARGET_SCHED_DISPATCH_DO): New.
2475 * doc/tm.texi: Regererated.
2476 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
2477 ready_remove_first_dispatch
2478 (schedule_block): Call targetm.sched.dispatch and
2479 targetm.sched.dispatch_do.
2480 (sched_init): Call targetm.sched.dispatch and
2481 targetm.sched.dispatch_do.
2482 (ready_remove_first_dispatch): New.
2483 (number_in_ready): New.
2484 (get_ready_element): New.
2485 * hooks.c (hook_bool_rtx_int_false): New.
2486 (hook_void_rtx_int): New.
2487 * hooks.h (hook_bool_rtx_int_false): Declared.
2488 (hook_void_rtx_int): Declared.
2489 * sched-int.h (IS_DISPATCH_ON): Defined.
2490 (IS_CMP): Defined.
2491 (DISPATCH_VIOLATION): Defined.
2492 (FITS_DISPATCH_WINDOW): Defined.
2493 (DISPATCH_INIT): Defined.
2494 (ADD_TO_DISPATCH_WINDOW): Defined.
2495 (get_ready_element): Declared.
2496 (number_in_ready): Declared.
2497 * target.def (dispatch): Defined.
2498 (dispatch_do): Defined.
2499
82916e7e
VM
25002010-09-09 Vladimir Makarov <vmakarov@redhat.com>
2501
2502 PR middle-end/45312
2503 * reload1.c (merge_assigned_reloads): Remove.
2504 (reload_as_needed): Don't call it.
2505
b9be2842
AS
25062010-09-09 Anatoly Sokolov <aesok@post.ru>
2507
2508 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
2509 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2510 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2511
709e26f0
MK
25122010-09-09 Matthias Klose <doko@ubuntu.com>
2513
2514 PR bootstrap/43847
2515 * configure.ac (--enable-plugin): Enhance for cross builds.
2516 * configure: Regenerate.
2517
54e34c35
JH
25182010-09-09 Jan Hubicka <jh@suse.cz>
2519
2520 PR tree-optimization/45598
2521 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
2522 string folding is of integral type.
2523
ba885ec5
NS
25242010-09-09 Nathan Sidwell <nathan@codesourcery.com>
2525
2526 * configure.ac (gnu_indirect_function): New test.
2527 * configure: Rebuilt.
2528 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
2529 * defaults.h (IFUNC_ASM_TYPE): Provide default.
2530
2531 * doc/extend.texi (Function Attributes): Document ifunc.
2532 * varasm.c (do_assemble_alias): Deal with ifuncs too.
2533
74164603 25342010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
5582cb29
HS
2535
2536 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
2537 epilogue instruction move.
2538
ed2222c8
JH
25392010-09-09 Jan Hubicka <jh@suse.cz>
2540
2541 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
2542 command line to allow more partitions than input files.
2543
de8e52f0
VM
25442010-09-09 Vladimir Makarov <vmakarov@redhat.com>
2545
2546 PR middle-end/44554
2547 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
2548
b100151b
VM
25492010-09-09 Vladimir Makarov <vmakarov@redhat.com>
2550
2551 PR middle-end/40386
2552 * ira.c (pseudo_for_reload_consideration_p): Don't use
2553 flag_ira_share_spill_slots.
2554
45e5214c
UW
25552010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2556
2557 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
2558 point zero operands that fit into a single GPR.
2559 (s390_preferred_reload_class): Ensure we only return general-purpose
2560 register classes.
2561 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
2562 floating-point zero operands into GPRs.
2563 ("*mov<mode>_64"): Likewise.
2564 ("mov<mode>"): Likewise using lhi.
2565
98635b04
UW
25662010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2567
2568 * config/s390/s390.c (s390_symref_operand_p): Return false for
2569 literal pool references.
2570 (s390_check_qrst_address): Update caller.
2571
d2795d58
UB
25722010-09-09 Uros Bizjak <ubizjak@gmail.com>
2573
2574 * config/i386/predicates.md (ext_register_operand): Check that
2575 SUBREG_REG is really a register before looking for REGNO.
2576 (reg_not_xmm0_operand): Handle SUBREGs correctly.
2577 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
2578
c8a27c40
JJ
25792010-09-09 Jakub Jelinek <jakub@redhat.com>
2580
2581 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
2582 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
2583 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
2584 * print-rtl.c (print_rtx): Likewise.
2585 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
2586 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
2587 for ADDR_EXPR with non-addressable object.
2588 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
2589 (struct dw_val_struct): Add v.val_decl_ref.
2590 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
2591 Handle DW_OP_GNU_implicit_pointer.
2592 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
2593 (get_ref_die_offset_label): New function.
2594 (implicit_ptr_descriptor): New function.
2595 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
2596 (loc_descriptor): Likewise.
2597 (gen_variable_die): Put even definitions into decl_die_table.
2598 (resolve_addr_in_expr): Resolve still unresolved
2599 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
2600 return false.
2601 (dwarf2out_finish): Call output_location_lists after outputting
2602 .debug_info and .debug_abbrev instead of before.
2603
26042010-09-09 Roland McGrath <roland@redhat.com>
2605
2606 * dwarf2out.c (DWARF_REF_SIZE): Define.
2607 (size_of_loc_descr): Use it for DW_OP_call_ref.
2608
5a79bcc4
AM
26092010-09-09 Alan Modra <amodra@gmail.com>
2610
2611 * doc/invoke.text: Reinstate mcmodel=medium.
2612 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2613 CMODEL_MEDIUM as default.
2614 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
2615 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
2616 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
2617 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
2618
bc707992
JDA
26192010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2620
2621 PR target/45250
2622 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
2623 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
2624 (builtin_longjmp): Likewise.
2625 (allocate_stack): Use hard_frame_pointer_rtx instead of
2626 frame_pointer_rtx.
2627 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
2628 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
2629 (pa_can_eliminate): Likewise.
2630 (TARGET_INTERNAL_ARG_POINTER): Define.
2631 (TARGET_CAN_ELIMINATE): Define.
2632 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
2633 pointer.
2634 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
2635 (pa_internal_arg_pointer, pa_can_eliminate,
2636 pa_initial_elimination_offset): New.
2637 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
2638 (HARD_FRAME_POINTER_REGNUM): Set to register three.
2639 (INITIAL_FRAME_POINTER_OFFSET): Delete.
2640 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
2641 Define.
2642 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
2643 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
2644 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
2645 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
2646 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
2647 new soft frame pointer.
2648 * config/pa/pa64-regs.h: Likewise.
2649
2824d6e5
UB
26502010-09-08 Uros Bizjak <ubizjak@gmail.com>
2651
2652 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
2653 numerical constant.
2654 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
2655
c485684d
AO
26562010-09-08 Alexandre Oliva <aoliva@redhat.com>
2657
2658 PR debug/45531
2659 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
2660
359bea1d
AO
26612010-09-08 Alexandre Oliva <aoliva@redhat.com>
2662
2663 PR debug/45419
2664 PR debug/45408
2665 * tree-pretty-print.c (dump_generic_node): Disregard top-level
2666 qualifiers in otherwise equal MEM_REF pointer types.
2667 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
2668 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
2669
0a7822a3
RR
26702010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2671
2672 PR target/44392
2673 * config/arm/arm.md (bswapsi2): Handle condition correctly
2674 for armv6 and optimize_size.
2675
2bfef1ad
FXC
26762010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2677
2678 PR other/18555
2824d6e5 2679 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2bfef1ad 2680
19ed9d7b
UB
26812010-09-08 Uros Bizjak <ubizjak@gmail.com>
2682
2683 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
2684 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
2685 ix86_expand_strlen, legitimate_pic_address_disp_p,
2686 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
2687 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
2688 ix86_check_movabs, ix86_secondary_memory_needed): Change function
2689 prototype to bool.
2690 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
2691 return_in_memory_ms_64, ix86_check_movabs,
2692 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
2693 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
2694 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
2695 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
2696 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
2697 ix86_secondary_memory_needed): Change to bool. Return
2698 "true" and "false" values.
2699 * config/i386/i386.md: Return "true" and "false" values.
2700
0fa3d594
RO
27012010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2702
2703 * doc/sourcebuild.texi (Effective-Target Keywords): Document
2704 run_expensive_tests.
2705
86923f6e
RO
27062010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2707
19ed9d7b 2708 * toplev.c (output_stack_usage): Use lbasename instead of basename.
86923f6e 2709
da1cc2e4
MJ
27102010-09-08 Martin Jambor <mjambor@suse.cz>
2711
2712 PR other/45443
2713 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
2714 at -O3.
2715
0f443ad0
RG
27162010-09-08 Richard Guenther <rguenther@suse.de>
2717
2718 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
2719 (visit): Adjust.
2720 (iterative_hash_gimple_type): Likewise.
2721 (gimple_type_hash): Likewise.
2722 (gimple_register_type): Likewise.
2723 (print_gimple_types_stats): Likewise.
2724 (free_gimple_type_tables): Likewise.
2725
a855b1b1
MM
27262010-09-08 Michael Matz <matz@suse.de>
2727
2728 PR tree-optimization/43430
2729 * tree-vect-stmts.c (vectorizable_condition): Support multiple
2730 copies for conditional statements if it's not part of a reduction.
2731
3834917d
MM
27322010-09-08 Michael Matz <matz@suse.de>
2733
2734 PR tree-optimization/33244
2735 * tree-ssa-sink.c (statement_sink_location): Don't sink into
2736 empty loop latches.
2737
b5c878a5
RG
27382010-09-08 Richard Guenther <rguenther@suse.de>
2739
2740 PR tree-optimization/45578
2741 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
2742 Be more careful when transfering alignment information to
2743 the new induction variable.
2744 (copy_ref_info): Likewise.
2745
1814522d
RG
27462010-09-08 Richard Guenther <rguenther@suse.de>
2747
2748 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
19ed9d7b 2749 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1814522d 2750
7370e0da
AC
27512010-09-08 Arnaud Charlet <charlet@adacore.com>
2752
2753 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
2754 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
2755
74164603 27562010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
19ed9d7b 2757
e0d4c0b3
KZ
2758 PR doc/45587
2759 * doc/md.texi: Fixed modes on several standard pattern names.
2760
59bdeecb
MX
27612010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
2762
2763 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
2764 (ashl<mode>3): ...this.
2765 (loongson_psra<V_suffix>): Rename to...
2766 (ashr<mode>3): ...this.
2767 (loongson_psrl<V_suffix>): Rename to...
2768 (lshr<mode>3): ...this.
2769 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
2770 (CODE_FOR_loongson_psllw): Define.
2771 (CODE_FOR_loongson_psrlh): Define.
2772 (CODE_FOR_loongson_psrlw): Define.
2773 (CODE_FOR_loongson_psrah): Define.
2774 (CODE_FOR_loongson_psraw): Define.
2775
237e9c04
RH
27762010-09-07 Richard Henderson <rth@redhat.com>
2777
2778 * tree-vect-data-refs.c: Include tm_p.h.
2779 * Makefile.in (tree-vect-data-refs.o): Update deps.
2780 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
2781 Move delarations outside #ifdef RTX_CODE.
2782
182a0c11
RH
27832010-09-07 Richard Henderson <rth@redhat.com>
2784
19ed9d7b 2785 * final.c (rest_of_handle_final): Unconditionally do
182a0c11
RH
2786 output_function_exception_table before assemble_end_function.
2787
f27e50db
JH
27882010-09-07 Jan Hubicka <jh@suse.cz>
2789
19ed9d7b
UB
2790 * tree-inline.c (tree_inlinable_function_p): Do not test
2791 DECL_REPLACEABLE_P.
2792 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
2793 update_callee_keys, cgraph_decide_inlining): Test function availability.
f27e50db
JH
2794 * cif-code.def (OVERWRITABLE): New code.
2795
a0766cdb 27962010-09-07 H.J. Lu <hjl.tools@gmail.com>
74164603 2797 Jack Howarth <howarth@bromo.med.uc.edu>
a0766cdb
L
2798
2799 PR target/36502
2800 PR target/42313
2801 PR target/44651
eed023cc 2802 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
a0766cdb
L
2803 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
2804 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
2805 MAX macro.
2806
4e751772
L
28072010-09-07 H.J. Lu <hongjiu.lu@intel.com>
2808
2809 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
2810 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
2811
274eec6c
L
28122010-09-07 H.J. Lu <hongjiu.lu@intel.com>
2813
2814 * config.gcc: Don't append t-android for Android targets.
2815
2816 * config/t-android: Removed.
2817
a68b5e52
RH
28182010-09-07 Richard Henderson <rth@redhat.com>
2819
2820 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
2821 * doc/tm.texi.in: Add doc marker.
2822 * doc/tm.texi: Rebuild.
2823 * except.c (switch_to_exception_section): Always build.
2824 (output_one_function_exception_table): Move section switch,
2825 personality output, and label output ...
2826 (output_function_exception_table): ... here. Use the new
2827 personality hook.
2828
2829 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
2830 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
2831 TARGET_ASM_INIT_SECTIONS): New.
2832 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
2833 make static.
2834 (TARGET_ASM_UNWIND_EMIT): Update to match.
2835 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
2836
2837 * config/arm/arm.c (arm_asm_emit_except_personality): New.
2838 (arm_asm_init_sections): New.
2839 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
2840
9b3a7a26
RR
28412010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2842
2843 * config/arm/arm.md: Remove unused variable.
2844
7149f02c
AS
28452010-09-07 Anatoly Sokolov <aesok@post.ru>
2846
2847 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2848 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
2849 (m32r_memory_move_cost): New function.
2850
c811b2a5
L
28512010-09-07 H.J. Lu <hongjiu.lu@intel.com>
2852
2853 * config.gcc: Append t-android for Android targets.
2854
2855 * config/t-android: New.
2856
3bc6b3e6
RH
28572010-09-07 Richard Henderson <rth@redhat.com>
2858
2859 * target.def (unwind_emit_before_insn): New hook.
2860 * doc/tm.texi.in: Add @hook marker for it.
2861 * doc/tm.texi: Rebuild.
2862 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
2863
aa229804
MJ
28642010-09-07 Martin Jambor <mjambor@suse.cz>
2865
2866 PR fortran/43665
2867 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
2868 are any type attributes.
2869
9c4ce18d
JH
28702010-09-07 Jan Hubicka <jh@suse.cz>
2871
3bc6b3e6
RH
2872 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
2873 array_ref_low_bound in string access folding.
9c4ce18d 2874
d341a5d0
UB
28752010-09-07 Uros Bizjak <ubizjak@gmail.com>
2876
2877 PR target/45206
2878 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
2879 eh_return fixup sequence.
2880
8683f051
JH
28812010-09-07 Jan Hubicka <jh@suse.cz>
2882
9c4ce18d 2883 * gimple-fold.c (maybe_fold_reference): Verify that operand is
8683f051
JH
2884 gimple_min_invariant.
2885
f5e5b46c
RG
28862010-09-07 Richard Guenther <rguenther@suse.de>
2887
2888 PR middle-end/45569
2889 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
2890 nor CONSTRUCTOR can trap.
2891 * tree-complex.c (update_complex_assignment): Update EH info.
2892
c9d6130e
RG
28932010-09-07 Richard Guenther <rguenther@suse.de>
2894
2895 PR middle-end/45569
2896 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
2897 * passes.c (execute_function_todo): Do not verify anything if
2898 we saw errors.
2899
d7806def
RG
29002010-09-07 Richard Guenther <rguenther@suse.de>
2901
d341a5d0 2902 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
d7806def 2903
da0a441d
BS
29042010-09-07 Bernd Schmidt <bernds@codesourcery.com>
2905
2906 PR target/43137
2907 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
2908 New define_mode_attrs.
2909 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
2910 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
2911 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
2912 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
2913 Remove pool_range attribute.
2914 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
2915 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
2916 pool_range and neg_pool_range attributes.
2917 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
2918 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
2919 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
2920
4e18507b
L
29212010-09-06 H.J. Lu <hongjiu.lu@intel.com>
2922
2923 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
2924 check glibc.
2925
61ec1123
UB
29262010-09-06 Uros Bizjak <ubizjak@gmail.com>
2927
2928 PR target/22152
2929 * config/i386/mmx.md (*mov<mode>_internal_rex64,
2930 *mov<mode>_internal_avx, *mov<mode>_internal,
2931 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
2932 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
2933
c5ee1358
MM
29342010-09-06 Mark Mitchell <mark@codesourcery.com>
2935
2936 * c-typeck.c (do_warn_double_promotion): Remove.
2937 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
2938 Objective-C++ too.
2939
c28350ab
AS
29402010-09-06 Anatoly Sokolov <aesok@post.ru>
2941
2942 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
2943 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
2944 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
2945 argument type to reg_class_t. Change result type to bool.
2946 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2947
708e07fb
NP
29482010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
2949
2950 PR libobjc/19850
2951 * gthr-posix.h (__gthread_objc_thread_detach): Use
2952 _objc_thread_attribs when detaching a thread.
2953 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
2954
cc0ae0ca
L
29552010-09-06 H.J. Lu <hongjiu.lu@intel.com>
2956
2957 PR target/45524
61ec1123 2958 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
cc0ae0ca
L
2959 * configure: Regenerated.
2960
c18605cc
AK
29612010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2962
2963 * combine.c (try_combine): Set subst_low_luid to i0.
2964
be1ac4ec
RG
29652010-09-06 Richard Guenther <rguenther@suse.de>
2966
2967 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
2968 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
2969 (build_aligned_type): Declare.
2970 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
2971 (check_aligned_type): New function.
2972 (build_aligned_type): Likewise.
2973 * expr.c (expand_assignment): Handle misaligned stores via
2974 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
2975 (expand_expr_real_1): Likewise.
2976 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
2977 * tree-vect-stmts.c (vectorizable_store): Do not build
2978 MISALIGNED_INDIRECT_REF but initialize alignment information.
2979 (vectorizable_load): Likewise.
2980 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
2981 handling.
2982 * cfgexpand.c (expand_debug_expr): Likewise.
2983 * dwarf2out.c (loc_list_from_tree): Likewise.
2984 * fold-const.c (maybe_lvalue_p): Likewise.
2985 (operand_equal_p): Likewise.
2986 (build_fold_addr_expr_with_type_loc): Likewise.
2987 * gimplify.c (gimplify_addr_expr): Likewise.
2988 (gimplify_expr): Likewise.
2989 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
2990 (verify_gimple_assign_single): Likewise.
2991 * tree-dump.c (dequeue_and_dump): Likewise.
2992 (tree_could_trap_p): Likewise.
2993 * tree-predcom.c (ref_at_iteration): Likewise.
2994 * tree-pretty-print.c (dump_generic_node): Likewise.
2995 (op_code_prio): Likewise.
2996 (op_symbol_code): Likewise.
2997 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2998 * tree-ssa-loop-im.c (for_each_index): Likewise.
2999 (gen_lsm_tmp_name): Likewise.
3000 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
3001 (find_interesting_uses_address): Likewise.
3002 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3003 * tree-ssa-operands.c (get_expr_operands): Likewise.
3004 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3005 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3006 (ao_ref_init_from_vn_reference): Likewise.
3007 * tree.c (staticp): Likewise.
3008 (build1_stat): Likewise.
3009 (reference_alias_ptr_type): Likewise.
3010 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3011 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
3012 MISALIGNED_INDIRECT_REF handling.
3013
863a7578
RB
30142010-09-06 Richard Guenther <rguenther@suse.de>
3015
3016 PR tree-optimization/45534
3017 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
3018 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
3019 on the target.
3020 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
3021 valid on the target.
3022
84f47d20
AS
30232010-09-06 Andreas Schwab <schwab@redhat.com>
3024
3025 * configure.ac: Quote argument of AC_MSG_WARN.
3026 * configure: Regenerate.
3027
e5cb031f
AM
30282010-09-06 Alexander Monakov <amonakov@ispras.ru>
3029
863a7578
RB
3030 * sel-sched.c (move_cond_jump): Correct arguments to
3031 maybe_tidy_empty_bb.
e5cb031f
AM
3032 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3033
324d3f45
AM
30342010-09-06 Andrey Belevantsev <abel@ispras.ru>
3035
3036 PR rtl-optimization/44919
3037 * sel-sched.c (move_cond_jump): Remove assert, check that
3038 the several blocks case can only happen with mutually exclusive
3039 insns instead. Rewrite the movement code to support moving through
3040 several basic blocks.
3041
d1e74401
UB
30422010-09-06 Uros Bizjak <ubizjak@gmail.com>
3043
3044 * config/i386/i386.md (iptrsize): New mode attribute.
3045 (tp_seg): Ditto.
3046 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3047 mode iterator.
3048 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3049 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3050 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3051 (stack_tls_protect_set_<mode>): Ditto from
3052 stack_tls_protect_set_{si,di}. Use %@ to output segment register
3053 of thread base pointer load.
3054 (stack_tls_protect_test_<mode>): Ditto from
3055 stack_tls_protect_test_{si,di}. Use %@ to output segment register
3056 of thread base pointer load.
3057 (stack_protect_set): Rewrite using indirect functions.
3058 (stack_protect_test): Ditto.
3059 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3060 (ix86_print_operand): Handle '@'.
3061
68fce4ed
GS
30622010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
3063
3064 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3065 MINUS_EXPR.
3066
0a0b3574
MM
30672010-09-05 Mark Mitchell <mark@codesourcery.com>
3068
3069 * doc/invoke.texi: Document -Wdouble-promotion.
3070 * c-typeck.c (convert_arguments): Check for implicit conversions
3071 from float to double.
3072 (do_warn_double_promotion): New function.
3073 (build_conditional_expr): Use it.
3074 (build_binary_op): Likewise.
3075
f38fb2c4
RG
30762010-09-05 Richard Guenther <rguenther@suse.de>
3077
3078 PR tree-optimization/45535
3079 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3080 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
3081 dereferencing it.
3082 (indirect_refs_may_alias_p): Likewise.
3083
e7a8f681
N
30842010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
3085
3086 * config/sh/sh.c (sh_option_override): Make static.
3087 Adjust comments. Declare.
68fce4ed 3088 (sh_function_value_regno_p): Likewise.
e7a8f681
N
3089 (sh_register_move_cost): Modify the arguments, make static.
3090 Adjust comments. Declare.
3091 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3092 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3093 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3094 REGISTER_MOVE_COST): Delete.
3095 * config/sh/sh-protos.h (sh_override_options): Delete.
3096 (sh_register_move_cost): Delete.
3097 (sh_function_value_regno_p): Delete.
3098
8c9cb6e6
AS
30992010-09-04 Anatoly Sokolov <aesok@post.ru>
3100
3101 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3102 m32r_function_value_regno_p): New functions.
3103 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3104 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3105 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3106 FUNCTION_VALUE_REGNO_P): Remove.
3107
17f39a39
JH
31082010-09-04 Jan Hubicka <jh@suse.cz>
3109
3110 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3111 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3112 fold_read_from_constant_string.
3113
3114 * gimple.h (canonicalize_constructor_val): Declare.
3115 * gimple-fold.c (canonicalize_constructor_val): New function.
3116 (get_symbol_constant_value):Use it.
3117 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3118
5f7ae6b6
JH
31192010-09-04 Jan Hubicka <jh@suse.cz>
3120
3121 * tree-switch-conversion.c (build_one_array): Set constructor to be
3122 static.
3123 * varpool.c (varpool_finalize_decl): Compute const_value_known.
3124
bcf71673
RG
31252010-09-04 Richard Guenther <rguenther@suse.de>
3126
3127 PR bootstrap/45519
3128 * tree-flow.h (force_gimple_operand_1): Declare.
3129 (force_gimple_operand_gsi_1): Likewise.
3130 * gimplify.c (force_gimple_operand_1): New worker taking a
3131 gimple predicate for ...
3132 (force_gimple_operand): ... which now wraps it.
3133 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3134 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3135 last change.
3136 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3137 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3138 (create_mem_ref): Likewise.
3139
770b37b9
UB
31402010-09-04 Uros Bizjak <ubizjak@gmail.com>
3141
3142 * config/i386/predicates.md (sse_reg_operand): New predicate.
3143 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3144 predicate for operand 1.
3145 (XFmode push splitter): Use fp_register_operand predicate
3146 for operand 1.
3147 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3148 (SF-DF float_extend push splitter): Add reload_completed insn
3149 predicate.
3150 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3151 MODEF mode macro. Add reload_completed insn predicate.
3152
502ef838
PB
31532010-09-04 Paolo Bonzini <bonzini@gnu.org>
3154
3155 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3156 (struct df_extract_ref): Remove.
3157 (union df_ref_d): Remove extract_ref member.
3158 (df_ref_create): Remove last three arguments.
3159 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3160 * df-scan.c (df_ref_record): Remove last three arguments, do not
3161 pass them to df_ref_create_structure.
3162 (df_uses_record): Remove first and last three arguments. Replace
3163 first argument with DF_REF_REGULAR, adjust calls to remove the
3164 width, offset and mode. Always call recursively on the second
3165 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3166 (df_ref_create_structure): Remove first argument.
3167 (struct df_scan_problem_data): Remove ref_extract_pool.
3168 (df_scan_free_internal): Do not free it.
3169 (df_scan_alloc): Do not allocate it.
3170 (df_ref_create): Remove last three arguments, do not pass them to
3171 df_ref_create_structure.
3172 (df_free_ref): Remove DF_REF_EXTRACT case.
3173 (df_notes_rescan): Adjust call to df_uses_record.
3174 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3175 Remove DF_REF_EXTRACT case.
3176 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
3177 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
3178 and SUBREG definitions.
3179 (df_get_conditional_uses): Remove references to width/offset/mode,
3180 adjust call to df_ref_create_structure.
3181 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3182 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
3183 calls to df_uses_record and df_ref_record.
3184 * fwprop.c (update_df): Remove references to width/offset/mode,
3185 adjust call to df_ref_create.
3186
48c24aca
JH
31872010-09-03 Jan Hubicka <jh@suse.cz>
3188
3189 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
3190 (build_cdtor_fns): Update use of build_cdtor.
3191
d1583032
JM
31922010-09-03 Joseph Myers <joseph@codesourcery.com>
3193
3194 * doc/options.texi (SeparateAlias): Document.
3195 * opt-functions.awk (switch_flags): Handle SeparateAlias.
3196 * opth-gen.awk: Generate enumeration names for options marked
3197 SeparateAlias, but not for those marked Ignore.
3198 * opts-common.c (generate_canonical_option): Don't output separate
3199 argument for options marked CL_SEPARATE_ALIAS.
3200 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
3201 * opts.h (CL_SEPARATE_ALIAS): New.
3202 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3203 CL_COMMON): Adjust definitions.
3204 * config/i386/darwin.opt, config/mips/sde.opt: New.
3205 * common.opt (fdump-final-insns): New.
3206 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3207 i386/darwin.opt.
3208 (mips*-sde-elf*): Add mips/sde.opt.
3209 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
3210 -mno-data-in-code and -mcode-xonly here.
3211 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
3212 * gcc.c (option_map): Add "j" to --dump entry.
770b37b9 3213 (translate_options): Don't translate -d to -foutput-class-dir= here.
d1583032 3214
b0af49c4
SP
32152010-09-03 Sebastian Pop <sebastian.pop@amd.com>
3216
3217 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
3218 DR_IS_WRITE.
3219 (compute_all_dependences): Same.
3220 (create_rdg_edge_for_ddr): Same.
3221 * tree-data-ref.h (DR_IS_WRITE): New.
3222 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
3223 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
3224 (write_memrefs_written_at_least_once): Same.
3225 * tree-predcom.c (suitable_component_p): Same.
3226 (determine_roots_comp): Same.
3227 (execute_load_motion): Same.
3228 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
3229 (vect_enhance_data_refs_alignment): Same.
3230 (vect_analyze_group_access): Same.
3231
de3f621b
JR
32322010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
3233
3234 PR testsuite/42843
3235 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
3236 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
3237
4d8ff563
MB
32382010-09-03 Marcin Baczynski <marbacz@gmail.com>
3239
3240 * dwarf2out.c (file scope): Remove #if0'd code.
3241 (gen_subprogram_die): Same.
3242
87df9ea5
JJ
32432010-09-03 Jakub Jelinek <jakub@redhat.com>
3244
3245 PR middle-end/45484
3246 * dwarf2out.c (flush_queued_reg_saves): Rename to...
3247 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
3248 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
3249 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
3250 * config/i386/i386.c (output_set_got): Call it.
3251
15a54c10
MM
32522010-09-03 Michael Matz <matz@suse.de>
3253
3254 PR middle-end/45415
3255 * tree-sra.c (sra_modify_assign): If we modify the statement,
3256 say so.
3257
3258 * tree-ssa.c (verify_ssa): Check number of operands and links
3259 per statement to agree.
3260
0df8fcc8
UB
32612010-09-03 Uros Bizjak <ubizjak@gmail.com>
3262 Iain Sandoe <iains@gcc.gnu.org>
3263
3264 PR target/45476
3265 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
3266 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
3267 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3268
ac364a48
RG
32692010-09-03 Richard Guenther <rguenther@suse.de>
3270
3271 * lto-streamer-out.c (output_function): Output function
3272 start and end loci.
3273 * lto-streamer-in.c (input_function): Input function start
3274 and end loci.
3275
3c39bca6
AK
32762010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3277
3278 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
3279 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
3280 * configure: Regenerate.
3281 * aclocal.m4: Regenerate.
3282
1c7b11d2
JH
32832010-09-03 Jan Hubicka <jh@suse.cz>
3284
3285 PR lto/44812
3286 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
3287 on functions/variables in other partition.
3288
155c92a7
JH
32892010-09-03 Jan Hubicka <jh@suse.cz>
3290
3291 * cgraph.h (struct varpool_node): Add const_value_known.
3292 (varpool_decide_const_value_known): Declare.
3293 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
3294 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
3295 (input_varpool_node): Restore const_value_known.
3296 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
3297 initializer folding.
3298 * ipa.c (ipa_discover_readonly_nonaddressable_var,
3299 function_and_variable_visibility): Compute const_value_known.
0df8fcc8
UB
3300 * gimple-fold.c (get_symbol_constant_value): Use varpool for
3301 initializer folding.
155c92a7
JH
3302 * varpool.c (varpool_decide_const_value_known): New function.
3303
cb1b497e
UB
33042010-09-03 Uros Bizjak <ubizjak@gmail.com>
3305
0df8fcc8 3306 * config/i386/i386.md: Remove empty preparation statements
cb1b497e
UB
3307 from splitters.
3308
a482b1f5
JH
33092010-09-03 Jan Hubicka <jh@suse.cz>
3310
cb1b497e
UB
3311 * passes.c (rest_of_decl_compilation): Do not add local vars into
3312 varpool.
a482b1f5
JH
3313 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
3314 static or extern vars are in varpool.
cb1b497e
UB
3315 (varpool_finalize_decl): Sanity check that only static vars are
3316 finalized.
a482b1f5 3317
2f757e4a
JJ
33182010-09-03 Jakub Jelinek <jakub@redhat.com>
3319
3320 PR debug/45500
3321 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
3322 not just generic vectors with BLKmode.
3323
4d948885
RG
33242010-09-03 Richard Guenther <rguenther@suse.de>
3325
3326 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
3327 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
3328 * tree.h (TMR_SYMBOL): Remove.
3329 (TMR_BASE, TMR_OFFSET): Adjust.
3330 (TMR_INDEX2): New.
3331 * alias.c (ao_ref_from_mem): Use TMR_BASE.
3332 * builtins.c (get_object_alignment): Merge TMR_BASE and
3333 TMR_SYMBOL handling.
3334 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
3335 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
3336 handling. Also allow TARGET_MEM_REF as base address.
3337 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
3338 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
3339 base. Gimplify TMR_INDEX2.
3340 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
3341 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3342 (get_addr_base_and_unit_offset): Likewise.
3343 * tree-eh.c (tree_could_trap_p): Likewise.
3344 * tree-pretty-print.c (dump_generic_node): Likewise.
cb1b497e 3345 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
4d948885
RG
3346 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
3347 base to index2.
3348 (get_address_description): Reconstruct addres description
3349 from merged TMR_BASE and TMR_INDEX2.
3350 (maybe_fold_tmr): Fold propagated addresses.
3351 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
3352 MEM_REF and TARGET_MEM_REF paths.
3353 (indirect_refs_may_alias_p): Likewise.
3354 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
3355 instead of TMR_SYMBOL.
3356 * tree-ssa-operands.c (get_tmr_operands): Simplify.
3357 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
3358 according to changes ...
3359 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
3360 Split TARGET_MEM_REF into two fields plus the base.
3361 * tree.c (mem_ref_offset): Simplify.
3362 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
3363 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3364 Strip NOPs when folding MEM_REF addresses.
3365 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
3366 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
3367 (fold_gimple_assign): ... not here.
3368
49042313
MX
33692010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
3370
3371 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
3372 * config/mips/mips.c (mips_shift_truncation_mask): New function.
3373 (TARGET_SHIFT_TRUNCATION_MASK): Define.
3374
92053f38
RH
33752010-09-02 Richard Henderson <rth@redhat.com>
3376
3377 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
3378 instead of readelf in the test.
3379 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
3380 in the .debug_frame section for coff targets.
3381 * configure: Rebuild.
3382
184866c5
AS
33832010-09-02 Anatoly Sokolov <aesok@post.ru>
3384
3385 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
3386 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
3387 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3388 (m32c_class_likely_spilled_p): Make static. Change argument type to
3389 reg_class_t. Change result type to bool.
3390
688e4919
MM
33912010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3392
3393 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
3394 to convert (double)(long) into a single FRIZ instruction or not
3395 when -ffast-math is used.
3396
3397 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
3398 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
3399 or FRIZ instruction if -ffast-math.
3400 * config/rs6000/rs6000.md (friz): Ditto.
3401
3402 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
3403
398da2ac
JM
34042010-09-02 Joseph Myers <joseph@codesourcery.com>
3405
3406 * opth-gen.awk (quote, comma): Remove unused variables.
3407
fe7645b9
RM
34082010-09-02 Ryan Mansfield <rmansfield@qnx.com>
3409
3410 * arm.c (arm_override_options): Correct fall-back code to use
3411 SUBTARGET_CPU_DEFAULT.
3412
5bfc5baa
JB
34132010-09-02 Julian Brown <julian@codesourcery.com>
3414
3415 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
3416 unspecs.
3417 (vcond<mode>, vcondu<mode>): New expanders.
3418 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
3419 comparisons with zero.
3420 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
3421 * config/arm/constraints.md (Dz): New constraint.
3422
07b8f0a8
AS
34232010-09-02 Anatoly Sokolov <aesok@post.ru>
3424
3425 * target.def (class_likely_spilled_p): New hook.
3426 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
3427 * doc/tm.texi: Regenerate.
3428 * targhooks.c (default_class_likely_spilled_p): New function.
3429 * targhooks.h (default_class_likely_spilled_p): Declare.
3430 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
cb1b497e 3431 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
07b8f0a8
AS
3432 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
3433 Use fixed_reg_set instead of fixed_regs.
3434 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3435 * calls.c (avoid_likely_spilled_reg): Ditto.
cb1b497e 3436 * ira-conflicts.c (ira_build_conflicts): Ditto.
07b8f0a8
AS
3437 * ira.c (update_equiv_regs): Ditto.
3438 * mode-switching.c (create_pre_exit): Ditto.
3439 * regmove.c (find_matches): Ditto.
cb1b497e 3440 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
07b8f0a8
AS
3441 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
3442 (small_register_class_p): New inline function.
3443 (push_secondary_reload, find_reusable_reload, find_reloads): Use
3444 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
3445
3446 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
3447 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
3448 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3449
6b8c9df8
RG
34502010-09-02 Richard Guenther <rguenther@suse.de>
3451
3452 PR tree-optimization/44937
3453 PR tree-optimization/45412
3454 * ipa-split.c (split_function): Properly remove PHI nodes.
3455
2d2bd949
JM
34562010-09-02 Joseph Myers <joseph@codesourcery.com>
3457
3458 * opts.h (struct cl_option): Add warn_message field.
3459 (struct cl_decoded_option): Add warn_message field.
3460 * doc/options.texi (Ignore, Warn): Document.
3461 * opt-functions.awk (needs_state_p): Don't consider aliases or
3462 ignored options to need state saved.
3463 * optc-gen.awk: Handle Warn and Ignore.
3464 * opth-gen.awk: Output OPT_SPECIAL_ignore.
3465 * opts-common.c (decode_cmdline_option): Set warn_message field.
3466 Handle ignored options.
3467 (decode_cmdline_options_to_array, generate_option,
3468 generate_option_input_file): Set warn_message field.
3469 (read_cmdline_option): Generate warnings from warn_message field.
3470 Handle ignored options.
3471 * common.opt (Wunreachable-code, fargument-alias,
3472 fargument-noalias, fargument-noalias-global,
3473 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
3474 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
3475 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
3476 ftree-salias): Mark Ignore.
3477 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
3478 -mintel-syntax and -mno-intel-syntax here.
3479 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
3480 using Warn.
3481 * opts.c (common_handle_option): Don't handle options marked as
3482 ignored.
3483 (enable_warning_as_error): Handle ignored options.
3484
5de8299c
JM
34852010-09-02 Joseph Myers <joseph@codesourcery.com>
3486
3487 PR driver/44076
3488 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
3489 alias_target fields.
3490 * opt-functions.awk (opt_sanitized_name): Don't handle
3491 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
3492 * optc-gen.awk: Generate alias fields.
3493 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
3494 Don't generate such constants for aliases.
3495 * opts-common.c (generate_canonical_option): New.
3496 (decode_cmdline_option): Handle aliases. Use
3497 generate_canonical_option for known options instead of copying the
3498 input option text.
3499 * doc/options.texi (Alias): Document.
3500 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
3501 fstack-check, specs): Mark as aliases.
3502 * gcc.c (driver_handle_option): Canonicalize -L options to joined
3503 arguments.
3504 (driver_handle_option): Don't handle OPT_specs.
3505 * opts.c (common_handle_option): Don't handle options marked as
3506 aliases.
3507 (enable_warning_as_error): Handle aliases.
3508 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
3509 OPT_Wlarger_than_eq.
3510 * tree-optimize.c (tree_rest_of_compilation): Use
3511 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
3512
cfc20f00
UB
35132010-09-02 Uros Bizjak <ubizjak@gmail.com>
3514
3515 * config/i386/i386.md (nonmemory_operand): New mode attribute.
3516 (push memory peephole2): Macroize peepholes using SWI mode iterator.
3517 (move immediate to memory peephole2): Macroize peepholes using
3518 SWI124 mode iterator.
3519 (non-pairable NOT peephole2): Macroize peepholes using SWI124
3520 mode iterator.
3521 (simple lea add peephole2): Macroize peepholes using SWI48
3522 mode iterator.
3523 (simple lea mult peephole2): Ditto.
3524 (imul by 3,5,9 to lea peephole2): Ditto.
3525 (mov $-1, reg peephole2): Macroize peepholes using SWI248
3526 mode iterator.
3527 (imul $32bit_imm,mem,reg peephole2): Ditto.
3528 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
3529
bae077dc
IB
35302010-09-02 Ian Bolton <ian.bolton@arm.com>
3531
3532 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
3533
71af27d2
OH
35342010-09-02 Olivier Hainque <hainque@adacore.com>
3535
815248b1 3536 PR middle-end/44763
71af27d2
OH
3537 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
3538 (allocno_priority_compare_func): Use it instead of a straight
3539 difference computation over priorities.
3540
e10909ce
AK
35412010-09-02 Andi Kleen <ak@linux.intel.com>
3542
3543 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
3544
e4a707c4
IR
35452010-09-02 Ira Rosen <irar@il.ibm.com>
3546
3547 * tree-vectorizer.h (get_later_stmt): New function.
3548 (vect_analyze_data_ref_dependences): Add argument.
3549 * tree-vect-loop.c (vect_analyze_loop): Update call to
3550 vect_analyze_data_ref_dependences.
3551 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
3552 New function.
3553 (vect_analyze_data_ref_dependence): Add argument for basic block
3554 dependencies. Check dependencies in basic block vectorization.
3555 (vect_analyze_data_ref_dependences): Add argument and update call to
3556 vect_analyze_data_ref_dependences.
3557 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
3558 (vect_bb_vectorizable_with_dependencies): New.
3559 (vect_slp_analyze_bb): Check dependencies in basic block.
3560 (vect_schedule_slp_instance): Insert stores before the last store in
3561 SLP instance.
3562
282ac51f
UB
35632010-09-02 Uros Bizjak <ubizjak@gmail.com>
3564
3565 PR target/45476
3566 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
3567 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3568
596aa3f0
JJ
35692010-09-01 Jakub Jelinek <jakub@redhat.com>
3570
3571 PR middle-end/45458
3572 * bb-reorder.c (add_labels_and_missing_jumps): Treat
3573 bbs ending with throwing insns like blocks ending with a call.
3574 (fix_up_fall_thru_edges): Likewise.
3575
cd34bbe8
NF
35762010-09-01 Nathan Froyd <froydnj@codesourcery.com>
3577
3578 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
3579 (m32c_function_arg_advance): Delete.
3580 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3581 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
3582 comments. Take a const_tree and a bool. Declare.
3583 (m32c_function_arg_advance): Likewise.
3584 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3585
cecab05b
UB
35862010-09-01 Uros Bizjak <ubizjak@gmail.com>
3587
cb1b497e
UB
3588 PR target/45476
3589 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
cecab05b 3590 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
cb1b497e 3591 * config/i386/mingw32.h: ... here.
cecab05b 3592
427eb57d
AK
35932010-09-01 Andi Kleen <ak@linux.intel.com>
3594
cecab05b
UB
3595 PR lto/45475
3596 * lto-streamer-in.c (lto_input_ts_target_option): Add.
3597 (lto_input_tree_pointers): Call lto_input_ts_target_option.
cb1b497e 3598 * lto-streamer-out (lto_output_ts_target_option): Add.
cecab05b 3599 (lto_output_tree_pointers): Call lto_output_ts_target_option.
427eb57d 3600
d323f47e
KT
36012010-09-01 Kai Tietz <kai.tietz@onevision.com>
3602
3603 PR/target 45452
3604 * config/i386/cygwin.h: Change order of specified import libraries.
3605 * config/i386/mingw32.h: Likewise.
3606 * config/i386/t-cygwin: Likewise.
3607 * config/i386/t-mingw32: Likewise.
3608 * config/i386/t-mingw-w32: Likewise.
3609 * config/i386/t-mingw-w64: Likewise.
3610
4600a8d1
RR
36112010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3612
3613 * config/arm/neon-schedgen.ml (core): New type.
3614 (allCores): List of supported cores.
3615 (availability_table): Add supported cores.
3616 (collate_bypasses): Accept core as a parameter.
282ac51f
UB
3617 (worst_case_latencies_and_bypasses): Accept core as a parameter.
3618 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
3619 and coreStr to get tune attribute and prefix for functional units.
4600a8d1
RR
3620 (emit_bypasses): Accept core name and use it.
3621 (calculate_per_core_availability_table): New.
3622 (filter_core): New.
3623 (calculate_core_availability_table): New.
3624 (main): Use calculate_core_availablity_table.
3625 * config/arm/cortex-a8-neon.md: Update copyright year.
3626 Regenerated from ml file and merged in.
3627 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
3628 cortex_a8_neon_mrc.
3629
f6857310
IB
36302010-09-01 Ian Bolton <ian.bolton@arm.com>
3631
3632 * Makefile.in (tree-switch-conversion.o): Update dependencies.
3633
23a534a1
RG
36342010-09-01 Richard Guenther <rguenther@suse.de>
3635
3636 * alias.c (ao_ref_from_mem): Adjust.
3637 * builtins.c (get_object_alignment): Likewise.
3638 * cfgexpand.c (expand_debug_expr): Likewise.
3639 * gimple.c (get_base_address): Likewise.
3640 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3641 (get_addr_base_and_unit_offset): Likewise. Fix for
3642 both TMR_SYMBOL and TMR_BASE being set.
3643 * tree-eh.c (tree_could_trap_p): Likewise.
3644 * gimplify.c (gimplify_expr): Do not attempt to gimplify
3645 TMR_SYMBOL. Always gimplify TMR_BASE.
3646 * tree-cfg.c (verify_types_in_gimple_reference): Verify
3647 TMR_BASE if there is a TMR_SYMBOL.
3648 * tree-pretty-print.c (dump_generic_node): Adjust.
3649 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
3650 (tree_mem_ref_addr): Likewise.
3651 (create_mem_ref_raw): Likewise.
3652 (move_fixed_address_to_symbol): Likewise.
3653 (create_mem_ref): Likewise.
3654 (dump_mem_address): Likewise.
3655 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
3656 Fix for both TMR_SYMBOL and TMR_BASE being set.
3657 (indirect_refs_may_alias_p): Likewise.
3658 * tree-ssa-operands.c (get_tmr_operands): Adjust.
3659 * tree.def (TARGET_MEM_REF): Adjust documentation.
3660
d8b08ecd
UB
36612010-09-01 Uros Bizjak <ubizjak@gmail.com>
3662
3663 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
3664 Rename from X86_TUNE_ADD_ESP_4.
3665 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
3666 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
3667 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
3668 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
3669 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
3670 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
3671 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
3672 * config/i386/i386.c (initial_ix86_tune_features)
3673 <X86_TUNE_SINGLE_POP>: Invert members.
3674 <X86_TUNE_DOUBLE_POP>: Ditto.
3675 <X86_TUNE_SINGLE_PUSH>: Ditto.
3676 <X86_TUNE_DOUBLE_PUSH>: Ditto.
3677 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
3678 No longer exported.
3679 (push peephole2 patterns): Macroize peepholes using P mode iterator.
3680 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
3681 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
3682 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
3683
558af7ca
EB
36842010-09-01 Eric Botcazou <ebotcazou@adacore.com>
3685
3686 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
3687 a volatile LHS if the constructor has only one element.
3688
6e0833db
MP
36892010-09-01 Mikael Pettersson <mikpe@it.uu.se>
3690
558af7ca
EB
3691 PR bootstrap/45321
3692 * tree.c (stdarg_p): Make fntype parameter const.
3693 * tree.h (stdarg_p): Likewise.
3694 (function_args_iterator): Remove unused fntype field.
3695 (function_args_iter_init): Do not initialize fntype
d8b08ecd 3696 field. Make fntype parameter const.
6e0833db 3697
e3488283
RG
36982010-09-01 Richard Guenther <rguenther@suse.de>
3699
3700 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
3701 estimate.
d8b08ecd 3702 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
e3488283
RG
3703 (execute_vrp): Compute number of iteration estimates.
3704 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
3705 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
3706 * tree-data-ref.c (estimated_loop_iterations): Adjust.
3707 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
d8b08ecd 3708 Infer loop bounds from undefined behavior based on a new parameter.
e3488283
RG
3709 (estimate_numbers_of_iterations): Likewise.
3710 (scev_probably_wraps_p): Adjust.
3711 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
3712
a21eaf5e
NC
37132010-09-01 Nick Clifton <nickc@redhat.com>
3714
3715 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
3716 where appropriate.
3717 (xstormy16_legitimate_address_p): Use true and false instead of 1
3718 and 0.
3719 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
3720 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
3721 magic constant 2.
3722 (xstormy16_expand_call): Fix comment at start of function.
3723
e14ca1ce
NC
37242010-09-01 Nick Clifton <nickc@redhat.com>
3725
3726 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
3727 when pushing accumulator register.
3728 (rx_get_stack_layout): Always save call clobbered registers inside
3729 interrupt handlers.
3730 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
3731
d78552bd
UB
37322010-09-01 Uros Bizjak <ubizjak@gmail.com>
3733
3734 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
3735 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
3736
3737 * libgcc-std.ver (GCC_4.6.0): Define version.
3738
0c1bebc4
EB
37392010-08-31 Eric Botcazou <ebotcazou@adacore.com>
3740
3741 * tree-nested.c (convert_all_function_calls): Iterate until after the
3742 sum of static chains in the nest doesn't change.
3743
0e607518
AS
37442010-08-31 Anatoly Sokolov <aesok@post.ru>
3745
3746 * config/m32c/m32c.c (classes_intersect): Remove.
3747 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
3748 reg_classes_intersect_p instead of classes_intersect.
3749 (class_can_hold_mode): Change arguments type from enum reg_class to
3750 reg_class_t. Use reg_class_contents instead of class_contents.
3751 (m32c_register_move_cost): Make static. Change arguments type from
3752 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
3753 classes_intersect. Use reg_class_contents instead of class_contents.
3754 (m32c_memory_move_cost): Make static. Change arguments type from
3755 enum reg_class to reg_class_t.
3756 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3757 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3758 * config/m32c/m32c-protos.h (m32c_register_move_cost,
3759 m32c_memory_move_cost): Remove.
3760
9c6a2bee
NF
37612010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3762
3763 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
3764 (arm_function_arg): Delete.
3765 (arm_needs_doubleword_align): Take a const_tree.
3766 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3767 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
3768 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
3769 (arm_function_arg): Make static. Take a const_tree and a bool.
3770 (arm_function_arg_advance): Likewise.
3771 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3772
d78552bd 37732010-08-31 Andi Kleen <ak@linux.intel.com>
a478ffff
AK
3774
3775 * common.opt (fwhopr=): Update for -fwhopr=jobserver
3776 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
3777 * lto-wrapper.c (run_gcc): Add jobserver mode.
3778 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
3779 argument.
3780
7d2c38c0
UB
37812010-08-31 Uros Bizjak <ubizjak@gmail.com>
3782
3783 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
3784 (popsi1): Ditto.
3785 (*popdi1_epilogue): Ditto.
3786 (*popsi1_epilogue): Ditto.
3787 (popsi, popdi peephole2 patterns): Update peepholes for changed
3788 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
3789
3790 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
3791 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
3792
3793 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
3794 (override_options): Do not initialize removed ix86_gen_pop1.
3795 (gen_pop): New static function.
3796 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
3797 (release_scratch_register_on_entry): Ditto.
3798 (ix86_restore_reg_using_pop): Ditto.
3799 (ix86_expand_epilogue): Ditto.
3800
0f643366
JJ
38012010-08-31 Jakub Jelinek <jakub@redhat.com>
3802
3803 PR middle-end/45461
3804 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
3805
08350106
NF
38062010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3807
3808 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
3809 semicolons.
3810
6cea734d
FXC
38112010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3812
3813 * doc/extend.texi: Fix documentation of the return value of
3814 __builtin_choose_expr.
3815
74a3d2c3
NF
38162010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3817
3818 * config/v850/v850-protos.h (function_arg): Delete.
3819 * config/v850/v850.h (FUNCTION_ARG): Delete.
3820 (FUNCTION_ARG_ADVANCE): Move code to...
3821 * config/v850/v850.c (v850_function_arg_advance): ...here.
3822 (v850_function_arg): Make static. Take a const_tree and a bool.
3823 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3824
6fadd9bb
NF
38252010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3826
3827 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
3828 these...
3829 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3830 ...and these...
3831 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
3832 ..to here..
3833 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3834 ...and here.
3835 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3836
3968a1c0
NF
38372010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3838
3839 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
3840 Delete.
3841 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3842 * config/rx/rx.c (rx_function_arg_size): Make static.
3843 (rx_function_arg): Likewise.
3844 (rx_function_arg_advance): New function.
3845 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3846
4546a2ef
JT
38472010-08-31 John Tytgat <John.Tytgat@aaug.net>
3848
3849 * config/arm/arm.c (arm_override_options): Remove superfluous test.
3850 Fix indentation.
3851
658af27d
EB
38522010-08-31 Eric Botcazou <ebotcazou@adacore.com>
3853
3854 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
3855 (dwarf2out_decl) <CONST_DECL>: Likewise.
3856
d3c12306
EB
38572010-08-30 Eric Botcazou <ebotcazou@adacore.com>
3858
3859 Stack usage support
3860 * common.opt (-fstack-usage): New option.
3861 * doc/invoke.texi (Debugging options): Document it.
3862 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
3863 allocate_dynamic_stack_space.
3864 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
3865 and propagate it to allocate_dynamic_stack_space.
3866 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
3867 * calls.c (initialize_argument_information): Pass TRUE as 4th
3868 argument to allocate_dynamic_stack_space.
3869 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
3870 to 1 when pushing a variable-sized argument onto the stack. Pass
3871 TRUE as 4th argument to allocate_dynamic_stack_space.
3872 Update current_function_pushed_stack_size.
3873 (emit_library_call_value_1): Likewise.
3874 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
3875 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
3876 attempt to find an upper bound. Remove redundant code for the
3877 SETJMP_VIA_SAVE_AREA case.
3878 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
3879 * function.h (struct stack_usage): New structure.
3880 (current_function_static_stack_size): New macro.
3881 (current_function_dynamic_stack_size): Likewise.
3882 (current_function_pushed_stack_size): Likewise.
3883 (current_function_dynamic_alloc_count): Likewise.
3884 (current_function_has_unbounded_dynamic_stack_size): Likewise.
3885 (current_function_allocates_dynamic_stack_space): Likewise.
3886 (struct function): Add new field 'su'.
3887 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
3888 add the value of the dynamic offset to the dynamic stack usage.
3889 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
3890 for variable-sized objects.
3891 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
3892 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
3893 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
3894 BUILT_IN_ALLOCA for variable-sized objects.
3895 * output.h (output_stack_usage): Declare.
3896 * toplev.c (stack_usage_file): New file pointer.
3897 (output_stack_usage): New function.
3898 (open_auxiliary_file): Likewise.
3899 (lang_dependent_init): Open file if flag_stack_usage is set.
3900 (finalize): Close file if stack_usage_file is not null.
3901 * tree.h (ALLOCA_FOR_VAR_P): New macro.
3902 * config/alpha/alpha.c (compute_frame_size): New function.
3903 (alpha_expand_prologue): Use it.
3904 (alpha_start_function): Likewise.
3905 (alpha_expand_epilogue): Likewise. Set stack usage info.
3906 * config/i386/i386.c (ix86_expand_prologue): Likewise.
3907 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3908 * config/mips/mips.c (mips_expand_prologue): Likewise.
3909 * config/pa/pa.c (hppa_expand_prologue): Likewise.
3910 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3911 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3912
1987baa3
ZD
39132010-08-30 Zdenek Dvorak <ook@ucw.cz>
3914
3915 PR tree-optimization/45427
3916 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
3917 Handle the case that the exit is never taken correctly.
3918 (number_of_iterations_ne): Pass exit_must_be_taken to
3919 number_of_iterations_ne_max.
3920
d3c12306 39212010-08-30 Catherine Moore <clm@codesourcery.com>
037f9973
CM
3922
3923 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
3924 Infer -mdspr2 for the the 74K.
3925
f2b11865
JJ
39262010-08-30 Jakub Jelinek <jakub@redhat.com>
3927
b0268cc0
JJ
3928 PR debug/45419
3929 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
3930
f2b11865
JJ
3931 PR middle-end/45423
3932 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
3933 and TRUTH_{AND,OR,XOR}_EXPR.
3934 * c-parser.c (c_parser_omp_atomic): Handle boolean
3935 {PRE,POST}_{INC,DEC}REMENT.
3936
626a4b31
NF
39372010-08-30 Nathan Froyd <froydnj@codesourcery.com>
3938
3939 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
3940 (function_arg): Delete.
3941 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3942 (FUNCTION_INCOMING_ARG): Delete.
3943 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
d78552bd 3944 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
626a4b31
NF
3945 and a bool.
3946 (function_arg): Rename to...
3947 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
3948 a bool.
3949 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
3950 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3951 (TARGET_FUNCTION_INCOMING_ARG): Define.
3952
2e481a2f
RG
39532010-08-30 Richard Guenther <rguenther@suse.de>
3954
3955 PR tree-optimization/21602
3956 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
3957 using points-to information.
3958
a95054c1
L
39592010-08-30 H.J. Lu <hongjiu.lu@intel.com>
3960
3961 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
3962
525fb35c
RG
39632010-08-30 Richard Guenther <rguenther@suse.de>
3964
3965 PR tree-optimization/45449
3966 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
3967 variables.
3968
184eb658
JM
39692010-08-30 Joseph Myers <joseph@codesourcery.com>
3970
3971 * opts.h (CL_ERR_NEGATIVE): Define.
3972 * opts.c (unknown_option_callback): Don't postpone warnings for
3973 options marked with CL_ERR_NEGATIVE.
3974 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
3975 for negative versions of CL_REJECT_NEGATIVE options.
3976
9552aca7
UB
39772010-08-30 Uros Bizjak <ubizjak@gmail.com>
3978
3979 * config/i386/i386.md (zero_extendsidi2_1): Rename from
3980 zero_extendsidi2_32.
3981 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
3982 using SWI12 mode iterator.
3983 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
3984 to define_insn_and_split pattern.
3985 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
3986 using SWI24 mode iterator.
3987 (*zero_extendqi<mode>2_and): Macroize insn from
3988 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
3989 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
3990 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
3991 SWI24 mode iterator.
3992 (*zero_extendqi<mode>2_movzbl): Ditto from
3993 *zero_extendqi{hi,si}2_movzbl.
3994 (extendsidi2_1): Rename from extendsidi2_32.
3995 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
3996 SWI12 mode iterator.
3997
33620355
EB
39982010-08-29 Eric Botcazou <ebotcazou@adacore.com>
3999
4000 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
4001 general purpose registers.
4002 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
4003 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
4004 with general purpose registers and memory operands. Add associated
4005 CCImode post-reload splitter.
4006 * config/ia64/div.md: Change BImode to CCImode throughout.
4007
bf321310
EB
40082010-08-28 Eric Botcazou <ebotcazou@adacore.com>
4009
4010 * config/ia64/ia64.md (cstorebi4): Fix thinko.
4011
74164603 40122010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
179ba6b8
HS
4013
4014 * config/picochip/picochip.c (reorder_var_tracking_notes): This
4015 function was dropping debug insns which caused PR45299.
ee9dd92e 4016
179ba6b8 40172010-08-28 Uros Bizjak <ubizjak@gmail.com>
bf321310 4018
ee9dd92e
UB
4019 * config/i386/sse.md (extsuffix): New code attribute.
4020 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
4021 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
4022 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
4023 and sse4_1_zero_extendv4qiv4si2.
4024 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
4025 and sse4_1_zero_extendv2qiv2di2.
4026 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
4027 and sse4_1_zero_extendv4hiv4si2.
4028 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
4029 and sse4_1_zero_extendv2hiv2di2.
4030 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
4031 and sse4_1_zero_extendv2siv2di2
4032
4033 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
4034 using any_extend code iterator.
4035 (*avx_<s>mulv8hi3_highpart): Macroize insn from
4036 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
4037 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
4038
4039 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
4040 gen_sse4_1_sign_extend* functions.
4041 (struct builtin_description bdesc_args): Ditto.
4042
f06e400f
XDL
40432010-08-27 Xinliang David Li <davidxl@google.com>
4044
4045 PR/45422
4046 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
4047 (iv_ca_set_no_cp): Update used inv expr count.
4048 (iv_ca_set_cp): Ditto.
4049 (iv_ca_new): Initialize new member.
4050 (iv_ca_free): Free memory.
4051
b64336b8
NF
40522010-08-27 Nathan Froyd <froydnj@codesourcery.com>
4053
4054 * config/sh/sh-protos.h (sh_function_arg): Delete.
4055 (sh_function_arg_advance): Delete.
4056 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4057 (PASS_IN_REG_P): Eliminate cast.
4058 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
4059 const_tree and a bool.
4060 (sh_function_arg): Likewise.
4061 (sh_output_mi_thunk): Call sh_function_arg_advance) and
4062 sh_function_arg.
4063 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4064
91a19652
N
40652010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
4066 Kaz Kojima <kkojima@gcc.gnu.org>
4067
4068 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
4069 when possible.
4070 (sh_expand_epilogue): Likewise.
4071 * config/sh/sh.md (movml_push_banked): New insn.
4072 (movml_pop_banked): Likewise.
4073
c1cb371a
BS
40742010-08-28 Bernd Schmidt <bernds@codesourcery.com>
4075
4076 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
4077 gen_regexp_oneof, gen_regexp_sequence): Use the string found
4078 in vector element 0 rather than the original string when there's
4079 only one element.
4080 (gen_regexp): Remove extra semicolon.
4081
f8045c41
BS
4082 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
4083 thumb2_movsf_vfp): Set attribute "insn".
4084 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
4085 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
4086 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
4087 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
4088 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
4089 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
4090 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
4091 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
4092 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
4093 if_not_arith, if_arith_not, cond_move_not): Likewise.
4094
7042fe5e
MM
40952010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4096
4097 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
4098 New declaration.
4099 (rs6000_allocate_stack_temp): Ditto.
4100 (rs6000_expand_convert_si_to_sfdf): Ditto.
4101
4102 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
4103 line. Update the options set if power6 or power7 server/embedded
4104 type options are used. If we give a warning for no vsx under
4105 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
4106 (rs6000_allocate_stack_temp): New function to allocate a stack
4107 tempoary and adjust the address so it meets either REG+OFFSET or
4108 REG+REG addressing requirements.
4109 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
4110 that they can be used with the LFIWAX/LFIWZX instrucitons.
4111 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
4112 converting signed/unsigned SImode to either SFmode/DFmode.
4113
4114 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
4115 whether certain instructions can be generated.
4116 (TARGET_FCTIDZ): Ditto.
4117 (TARGET_STFIWX): Ditto.
4118 (TARGET_LFIWAX): Ditto.
4119 (TARGET_LFIWZX): Ditto.
4120 (TARGET_FCFIDS): Ditto.
4121 (TARGET_FCFIDU): Ditto.
4122 (TARGET_FCFIDUS): Ditto.
4123 (TARGET_FCTIDUZ): Ditto.
4124 (TARGET_FCTIWUZ): Ditto.
4125
4126 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
4127 (UNSPEC_FCTID): Ditto.
4128 (UNSPEC_LFIWAX): Ditto.
4129 (UNSPEC_LFIWZX): Ditto.
4130 (UNSPEC_FCTIWUZ): Ditto.
4131 (rreg): Use correct constraints.
4132 (SI_CONVERT_FP): New mode attribute for floating point conversion
4133 tests.
4134 (E500_CONVERT): Ditto.
4135 (lfiwax): New insns for converting from integer to floating point
4136 utilizing newer instructions. Attempt to optimize conversions
4137 that come from memory so that we don't load the value into a GPR,
4138 spill it to the stack and reload it into a FPR.
4139 (floatsi<mode>2_lfiwax): Ditto.
4140 (floatsi<mode>2_lfiwax_mem): Ditto.
4141 (floatsi<mode>2_lfiwax_mem2): Ditto.
4142 (lfiwzx): Ditto.
4143 (floatunssi<mode>2_lfiwzx): Ditto.
4144 (floatunssi<mode>2_lfiwzx_mem): Ditto.
4145 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4146 (floatdidf2_mem): Ditto.
4147 (floatunsdidf2_fcfidu): Ditto.
4148 (floatunsdidf2_mem): Ditto.
4149 (floatunsdisf2): Ditto.
4150 (floatunsdisf2_fcfidus): Ditto.
4151 (floatunsdisf2_mem): Ditto.
4152 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
4153 Use FCFID on 32-bit hosts that support it.
4154 (floatsidf2_internal): Ditto.
4155 (floatunssisf2): Ditto.
4156 (floatunssidf2): Ditto.
4157 (floatunssidf2_internal): Ditto.
4158 (floatsisf2): Ditto.
4159 (floatdidf2): Ditto.
4160 (floatdidf2_fpr): Ditto.
4161 (floatunsdidf2): Ditto.
4162 (floatdisf2): Ditto.
4163 (floatdisf2_fcfids): Ditto.
4164 (floatdisf2_internal1): Ditto.
4165 (fixuns_truncsfsi2): Delete, merge into common pattern for both
4166 SF/DF. Add power7 support.
4167 (fix_truncsfsi2): Ditto.
4168 (fixuns_truncdfsi2): Ditto.
4169 (fixuns_truncdfdi2): Ditto.
4170 (fix_truncdfsi2): Ditto.
4171 (fix_truncdfsi2_internal): Ditto.
4172 (fix_truncdfsi2_internal_gfxopt): Ditto.
4173 (fix_truncdfsi2_mfpgpr): Ditto.
4174 (fctiwz): Ditto.
4175 (btruncdf2): Ditto.
4176 (btruncdf2_fpr): Ditto.
4177 (btructsf2): Ditto.
4178 (ceildf2): Ditto.
4179 (ceildf2_fpr): Ditto.
4180 (ceilsf2): Ditto.
4181 (floordf2): Ditto.
4182 (floordf2_fpr): Ditto.
4183 (floorsf2): Ditto.
4184 (rounddf2): Ditto.
4185 (rounddf2_fpr): Ditto.
4186 (roundsf2): Ditto.
4187 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
4188 (fix_trunc<mode>di2): Ditto.
4189 (fixuns_trunc<mode>si2): Ditto.
4190 (fixuns_trunc<mode>di2): Ditto.
4191 (fctiwz_<mode>): Ditto.
4192 (btrunc<mode>2): Ditto.
4193 (btrunc<mode>2_fpr): Ditto.
4194 (ceil<mode>2): Ditto.
4195 (ceil<mode>2_fpr): Ditto.
4196 (floor<mode>2): Ditto.
4197 (float<mode>2_fpr): Ditto.
4198 (round<mode>2): Ditto.
4199 (round<mode>2_fpr): Ditto.
4200 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
4201 (fixuns_trunc<mode>si2_stfiwx): Ditto.
4202 (fix_truncdfsi2_internal): Ditto.
4203 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
4204 converted value on stack, loaded into GPR, and then stored into
4205 the final destination.
4206 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
4207 FCTIDZ.
4208 (lrint<mode>di2): New insn, provide the lrint builtin functions.
4209 (ftruncdf2): Delete, unused.
4210 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
4211
4212 * config/rs6000/vsx.md (toplevel): Update copyright year.
4213 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
4214 (VSr3): Ditto.
6ba2db5e
BS
4215
42162010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
7d2c38c0 4217 Jeremie Salvucci <jeremie.salvucci@free.fr>
6ba2db5e 4218
7d2c38c0 4219 * gengtype.c (output_type_enum): Test the right union member.
6ba2db5e 4220
83d58961
UB
42212010-08-27 Uros Bizjak <ubizjak@gmail.com>
4222
4223 PR target/41484
4224 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
4225 operands for operand 1.
4226 (sse4_1_extendv4qiv4si2): Ditto.
4227 (sse4_1_extendv2qiv2di2): Ditto.
4228 (sse4_1_extendv4hiv4si2): Ditto.
4229 (sse4_1_extendv2hiv2di2): Ditto.
4230 (sse4_1_extendv2siv2di2): Ditto.
4231 (sse4_1_zero_extendv8qiv8hi2): Ditto.
4232 (sse4_1_zero_extendv4qiv4si2): Ditto.
4233 (sse4_1_zero_extendv2qiv2di2): Ditto.
4234 (sse4_1_zero_extendv4hiv4si2): Ditto.
4235 (sse4_1_zero_extendv2hiv2di2): Ditto.
4236 (sse4_1_zero_extendv2siv2di2): Ditto.
4237 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
4238 (*sse4_1_extendv4qiv4si2): Ditto.
4239 (*sse4_1_extendv2qiv2di2): Ditto.
4240 (*sse4_1_extendv4hiv4si2): Ditto.
4241 (*sse4_1_extendv2hiv2di2): Ditto.
4242 (*sse4_1_extendv2siv2di2): Ditto.
4243 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
4244 (*sse4_1_zero_extendv4qiv4si2): Ditto.
4245 (*sse4_1_zero_extendv2qiv2di2): Ditto.
4246 (*sse4_1_zero_extendv4hiv4si2): Ditto.
4247 (*sse4_1_zero_extendv2hiv2di2): Ditto.
4248 (*sse4_1_zero_extendv2siv2di2): Ditto.
4249
c8717ea3
NF
42502010-08-27 Nathan Froyd <froydnj@codesourcery.com>
4251
4252 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
4253 (mips_function_arg): Delete.
4254 (mips_function_arg_boundary): Take a const_tree.
4255 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
4256 (mips_arg_info): Likewise.
4257 (mips_setup_incoming_varargs): Call mips_function_arg_advance
4258 instead of FUNCTION_ARG_ADVANCE.
4259 (mips_function_arg_advance): Adjust prototype. Make static.
4260 (mips_function_arg): Likewise.
4261 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4262 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
4263
7c8232a2
NF
42642010-08-27 Nathan Froyd <froydnj@codesourcery.com>
4265
4266 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4267 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
4268 (function_arg): Delete.
4269 (function_arg_boundary): Take a const_tree.
4270 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
4271 (rs6000_spe_function_arg): Likewise.
4272 (rs6000_parm_start): Likewise.
4273 (rs6000_arg_size): Likewise.
4274 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
83d58961 4275 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
7c8232a2
NF
4276 (rs6000_mixed_function_arg): Likewise.
4277 (function_arg): Rename to...
4278 (rs6000_function_arg): ...this.
4279 (function_arg_advance): Rename to...
4280 (rs6000_function_arg_advance_1): ...this
4281 (rs6000_function_arg_advance): New function. Call it.
4282 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
4283 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
4284 (rs6000_function_value): Likewise.
4285 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4286
da787dec
RR
42872010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4288
4289 * config/arm/arm.md (enabled): Test the value of arch_enabled
ee9dd92e 4290 rather than just using it.
da787dec 4291
d32f725a 42922010-08-27 Olivier Hainque <hainque@adacore.com>
ee9dd92e 4293 Eric Botcazou <ebotcazou@adacore.com>
d32f725a
OH
4294
4295 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
4296 cover all the possible offsets from this base.
4297 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
4298
9e3920e9
JJ
42992010-08-26 Jakub Jelinek <jakub@redhat.com>
4300
4301 PR tree-optimization/44485
4302 * calls.c (flags_from_decl_or_type): For const or pure
4303 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
4304 together with ECF_CONST resp. ECF_PURE.
4305 * builtins.c (expand_builtin): Use flags_from_decl_or_type
4306 instead of querying flags directly.
4307 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
4308 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
4309
4be4cd6d
RG
43102010-08-26 Richard Guenther <rguenther@suse.de>
4311
4312 PR tree-optimization/45255
83d58961
UB
4313 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
4314 and externals are also invariant.
4be4cd6d 4315
932c9bff
JJ
43162010-08-25 Jakub Jelinek <jakub@redhat.com>
4317
ea9f1d6f
JJ
4318 PR rtl-optimization/44858
4319 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
4320 newi2pat, make sure they don't affect newpat.
4321
932c9bff
JJ
4322 PR rtl-optimization/45400
4323 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
4324 SUBREG_REG if both modes are of MODE_INT class.
4325
d8099dd8
JB
43262010-08-25 Julian Brown <julian@codesourcery.com>
4327
4328 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
4329 * config/arm/arm.md (generic_sched): No for Cortex-A5.
4330 (generic_vfp): Likewise.
4331 (cortex-a5.md): Include.
4332 * config/arm/cortex-a5.md: New.
4333
0ceb0201
RG
43342010-08-25 Richard Guenther <rguenther@suse.de>
4335
83d58961 4336 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
0ceb0201
RG
4337 * gimple.c (gimple_get_alias_set): Remove special handling
4338 for pointers.
4339
4942fc56
BS
43402010-08-25 Bernd Schmidt <bernds@codesourcery.com>
4341
4342 PR middle-end/45355
4343 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
4344 dead_or_set_p when computing i0_feeds_i2_n.
4345
0cdf7b49
BS
4346 * combine.c (find_split_point): Undo canonicalization of multiply-add
4347 to (minus x (mult)) when it seems likely that this will increase the
4348 chances of a split.
4349
1cf01301
RG
43502010-08-25 Richard Guenther <rguenther@suse.de>
4351
4352 PR lto/44562
4353 * lto-streamer.c (lto_record_common_node): Do not mess with
4354 TYPE_CANONICAL when not in lto.
4355 * gimple.c (gimple_register_type): Likewise.
4356
a2c0ed2e
RG
43572010-08-25 Richard Guenther <rguenther@suse.de>
4358
4359 PR tree-optimization/45316
4360 * tree-ssa-pre.c (eliminate): Properly clean EH info.
4361
90bc1cb8
RG
43622010-08-25 Richard Guenther <rguenther@suse.de>
4363
4364 PR tree-optimization/45393
4365 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
4366 and clean EH info. Avoid SSA update.
4367 (execute_cse_sincos): Cleanup the CFG if it has changed.
4368
9407f6bc
RG
43692010-08-25 Richard Guenther <rguenther@suse.de>
4370
4371 PR middle-end/45379
4372 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
4373 TARGET_MEM_REF in alignment computation.
4374
ca046f7f
JJ
43752010-08-25 Jakub Jelinek <jakub@redhat.com>
4376
4377 PR tree-optimization/45059
4378 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
4379 type conversions from newop{1,2}. Assert t is a comparison and
4380 newop{1,2} after the stripping are gimple vals.
4381
46b57af1
TB
43822010-08-25 Tejas Belagod <tejas.belagod@arm.com>
4383
4384 * config/arm/iterators.md (VU, SE, V_widen_l): New.
4385 (V_unpack, US): New.
83d58961 4386 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
46b57af1
TB
4387 (vec_unpack<US>_lo_<mode>): Likewise.
4388 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
4389 (neon_vec_unpack<US>_lo_<mode>): Likewise.
4390 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
4391 (vec_widen_<US>mult_hi_<mode>): Likewise.
4392 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
4393 (neon_vec_<US>mult_hi_<mode>"): Likewise.
4394 (neon_unpack<US>_<mode>): Widening move intermediate step for
4395 vectorizing without -mvectorize-with-neon-quad.
4396 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
4397 for vectorizing without -mvectorize-with-neon-quad.
4398 * config/arm/predicates.md (vect_par_constant_high): Check for
4399 high-half lanes of a vector.
4400 (vect_par_constant_low): Check for low-half lanes of a vector.
4401
4b9c23ea
SP
44022010-08-24 Sebastian Pop <sebastian.pop@amd.com>
4403
4404 * tree-if-conv.c (struct ifc_dr): New.
4405 (IFC_DR): New.
4406 (DR_WRITTEN_AT_LEAST_ONCE): New.
4407 (DR_RW_UNCONDITIONALLY): New.
4408 (memref_read_or_written_unconditionally): Use the cached values
4409 when possible.
4410 (write_memref_written_at_least_once): Same.
4411 (if_convertible_loop_p): Initialize and free DR->aux fields.
4412
e1fd038a
SP
44132010-08-24 Sebastian Pop <sebastian.pop@amd.com>
4414
4415 * gimple.c (gimple_could_trap_p_1): Not static anymore.
4416 Pass an extra bool parameter include_mem.
4417 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
4418 (gimple_assign_rhs_could_trap_p): Same.
4419 * gimple.h (gimple_could_trap_p_1): Declared.
4420 * tree-data-ref.h (same_data_refs_base_objects): New.
4421 (same_data_refs): New.
4422 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
4423 (write_memrefs_written_at_least_once): New.
4424 (ifcvt_memrefs_wont_trap): New.
4425 (operations_could_trap): New.
4426 (ifcvt_could_trap_p): New.
4427 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
4428 Gets a vector of data refs.
4429 (if_convertible_stmt_p): Same.
4430 (if_convertible_loop_p_1): New.
4431 (if_convertible_loop_p): Call if_convertible_loop_p_1.
4432
bd544141
SP
44332010-08-24 Sebastian Pop <sebastian.pop@amd.com>
4434
4435 * common.opt (ftree-loop-if-convert-stores): New flag.
4436 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
4437 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
4438 the created statement before GSI.
4439 (if_convertible_phi_p): Allow virtual phi nodes when
4440 flag_loop_if_convert_stores is set.
4441 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
4442 Do not handle types that do not match is_gimple_reg_type.
4443 Remove loop and bb parameters. Call gimple_could_trap_p instead of
4444 when flag_loop_if_convert_stores is set, as LHS can contain
4445 memory refs.
4446 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
4447 to if_convertible_gimple_assign_stmt_p.
4448 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
4449 (replace_phi_with_cond_gimple_assign_stmt): Renamed
4450 predicate_scalar_phi. Do not handle virtual phi nodes.
4451 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
4452 Call predicate_scalar_phi.
4453 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
4454 just after the labels for flag_loop_if_convert_stores, otherwise
4455 insert the predicate in the end of the BB.
4456 (predicate_mem_writes): New.
4457 (combine_blocks): Call predicate_all_scalar_phis. When
4458 flag_loop_if_convert_stores is set, call predicate_mem_writes.
4459 (tree_if_conversion): Call mark_sym_for_renaming when
4460 flag_loop_if_convert_stores is set.
4461 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
4462 flag_loop_if_convert_stores is set.
4463
8a5b8538
AS
44642010-08-24 Anatoly Sokolov <aesok@post.ru>
4465
4466 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
4467 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
4468 (pa_function_value): Make static.
4469 (override_options): Rename to...
4470 (pa_option_override): ...this. Make static.
4471 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
4472 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
4473 TARGET_OPTION_OVERRIDE): Define.
4474 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
4475 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
4476 Remove.
4477 * config/pa/pa-protos.h (override_options): Remove.
4478
d15adbeb
RG
44792010-08-24 Richard Guenther <rguenther@suse.de>
4480
4481 PR middle-end/45379
4482 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
4483 if addr->index is NULL or zero.
4484 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
4485 TARGET_MEM_REF more properly.
4486 (indirect_ref_may_alias_decl_p): Likewise.
4487 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
83d58961 4488 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
d15adbeb 4489
f28f2337
AS
44902010-08-23 Anatoly Sokolov <aesok@post.ru>
4491
4492 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
4493 (m32c_override_options): Rename to...
4494 (m32c_option_override): ...this. Make static.
4495 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
4496 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
4497 Remove.
4498 * config/m32c/m32c-protos.h (m32c_override_options,
4499 m32c_function_value_regno_p): Remove.
4500
756f50ce
CF
45012010-08-23 Changpeng Fang <changpeng.fang@amd.com>
4502
4503 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
4504 Fix a typo in a previous commit.
4505
0b3f0088
KT
45062010-08-23 Kai Tietz <kai.tietz@onevision.com>
4507
4508 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
4509 Pre-initialize innerloop_iters to one.
4510
bc068a23
CF
45112010-08-23 Changpeng Fang <changpeng.fang@amd.com>
4512
4513 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
4514 existing static function global.
4515
83d58961 4516 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
bc068a23
CF
4517 is changed to global.
4518
83d58961 4519 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
bc068a23
CF
4520 may_be_nonaddressable_p on base, and don't collect this reference
4521 if the address of the base could not be taken.
4522
8bcc0304
MM
45232010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4524
b36cf9d2
MM
4525 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
4526 enable the compiler to autovectorize mathmetical functions for
4527 power7 using the Mathematical Acceleration Subsystem library.
8bcc0304 4528
b36cf9d2
MM
4529 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
4530 handle which vector math library we have.
4531 (rs6000_override_options): Add -mveclibabi=mass support.
4532 (rs6000_builtin_vectorized_libmass): New function to handle auto
4533 vectorizing math functions that are in the MASS library.
8bcc0304
MM
4534 (rs6000_builtin_vectorized_function): Call it.
4535
b36cf9d2
MM
4536 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4537 -mveclibabi=mass.
8bcc0304 4538
8c157f90
JDA
45392010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4540
4541 PR boehm-gc/34544
4542 * gthr-posix.h (__gthread_active_init): Delete.
4543 (__gthread_active_p): Do activity check here.
4544 Don't include errno.h on hppa-hpux. Update comment.
4545 * gthr-posix95.h (__gthread_active_init): Delete.
4546 (__gthread_active_p): Do activity check here.
4547 Don't include errno.h on hppa-hpux. Update comment.
4548 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
4549 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
4550 add -lpthread when -mt or -pthread is specified.
4551 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
4552 (LINK_GCC_C_SEQUENCE_SPEC): Define.
4553 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
4554 (stublib.c, pthread_default_stacksize_np-stub.o,
4555 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
4556 $(T)libgcc_stub.a): Add methods.
4557 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
4558 (stublib.c, pthread_default_stacksize_np-stub.o,
4559 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
4560 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4561 pthread_mutex_unlock): New stubs.
4562
d9d16a19
JM
45632010-08-22 Joseph Myers <joseph@codesourcery.com>
4564
4565 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
4566 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
4567 options.
4568 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
4569 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
4570 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
4571 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
4572 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
4573 "-l".
4574 * cppspec.c: Include opts.h.
4575 (lang_specific_driver): Use cl_decoded_option structures.
4576 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
4577 * doc/tm.texi: Regenerate.
4578 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
4579 (driver_handle_option): Allow driver options needing no special
4580 processing.
4581 (process_command): Decode options before call to
4582 lang_specific_driver. Pass decoded options to
4583 lang_specific_driver.
4584 * gcc.h (lang_specific_driver): Update prototype.
4585 * gccspec.c: Include opts.h.
4586 (lang_specific_driver): Use cl_decoded_option structures.
4587 * opts-common.c (option_ok_for_language, generate_option,
4588 generate_option_input_file): New.
4589 (decode_cmdline_option): Use option_ok_for_language.
4590 (decode_cmdline_options_to_array): Use generate_option_input_file.
4591 (handle_generated_option): Use generate_option.
4592 * opts.h (generate_option, generate_option_input_file): Declare.
4593
525c561d
AS
45942010-08-22 Anatoly Sokolov <aesok@post.ru>
4595
4596 * config/mips/mips.c (mips_override_options): Rename to...
4597 (mips_option_override): ...this. Make static.
4598 (TARGET_OPTION_OVERRIDE): Define.
4599 (mips_in_small_data_p): Update comment.
4600 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
4601 (FIXED_REGISTERS): Update comment.
4602 * config/mips/mips-protos.h (mips_override_options): Remove.
4603
65f1047a
OH
46042010-08-21 Olivier Hainque <hainque@adacore.com>
4605
4606 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
4607
b3552548
OH
46082010-08-21 Olivier Hainque <hainque@adacore.com>
4609
74025114 4610 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
b3552548
OH
4611 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
4612
9e97ff61
JH
46132010-08-20 Jan Hubicka <jh@suse.cz>
4614
4615 * tree-pass.h (pass_ipa_cdtor_merge): New function.
4616 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
4617 heap allocated.
4618 (record_cdtor_fn): Move to ipa.c; do not test for
4619 have_ctors_dtors.
4620 (build_cdtor): Move to ipa.c; add code avoiding construction
4621 when target have ctors/dtors and there is only one ctor/dtor at given
4622 priority.
757fc8ed
EB
4623 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
4624 sort; reverse order of constructors.
83d58961 4625 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
9e97ff61
JH
4626 (cgraph_finalize_function): Do not call record_cdtor_fn.
4627 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
4628 (cgraph_build_static_cdtor): Move to ipa.c.
4629 * ipa.c: Include target.h and tree-iterator.h.
4630 (cgraph_build_static_cdtor, static_ctors, static_dtors,
4631 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
4632 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
4633 pass_ipa_cdtor_merge): New.
4634 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
757fc8ed
EB
4635 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
4636 bounds access.
9e97ff61 4637
508e4757
JH
46382010-08-20 Jan Hubicka <jh@suse.cz>
4639
4640 PR c++/45307
4641 PR c++/17736
4642 * cgraph.h (cgraph_only_called_directly_p,
4643 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
4644 static cdtors.
4645 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
4646 are not needed.
4647 (cgraph_finalize_function): Static cdtors are reachable.
4648 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
4649
f1395d4a
JH
46502010-08-20 Jan Hubicka <jh@suse.cz>
4651
757fc8ed
EB
4652 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
4653 flag_wpa.
f1395d4a 4654 * lto-streamer-out.c (lto_output): Likewise.
83d58961
UB
4655 * passes.c (ipa_write_optimization_summaries): Initialize statement
4656 uids.
f1395d4a 4657
b4d456ff
OH
46582010-08-20 Olivier Hainque <hainque@adacore.com>
4659
4660 * tree.h (alias_diag_flags): New enum.
4661 (alias_pair): Add an 'emitted_diags' field.
4662 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
4663 (assemble_alias): Initialize emitted_diags of new pairs.
4664
39acb18f
EB
46652010-08-20 Eric Botcazou <ebotcazou@adacore.com>
4666
4667 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
4668 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4669 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4670 (STACK_CHECK_PROTECT): Define.
4671 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
4672 (output_probe_stack_range): Likewise.
4673 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
4674 builtin stack checking is enabled.
4675 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
4676 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
4677 (probe_stack_range): New insn.
4678
410841c6
L
46792010-08-20 H.J. Lu <hongjiu.lu@intel.com>
4680
4681 PR target/45336
4682 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
4683 short first.
4684
4685 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
4686 char first.
4687
50d724a7
JJ
46882010-08-20 Jakub Jelinek <jakub@redhat.com>
4689
4690 PR target/45336
4691 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
4692 to cover zero extension into 64-bit register.
4693 (*sse2_pextrw): Likewise.
4694 (*sse4_1_pextrd_zext): New insn.
4695
c6d8116a
IS
46962010-08-20 Iain Sandoe <iains@gcc.gnu.org>
4697
4698 revert r163410, partially revert r163267.
4699 * config/rs6000/darwin.h (LIB_SPEC): Remove.
83d58961 4700 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
c6d8116a 4701 Darwin versions.
83d58961 4702
994fc9ab
JJ
47032010-08-20 Jakub Jelinek <jakub@redhat.com>
4704
4705 PR middle-end/44974
4706 * builtins.c (expand_builtin): Don't optimize away
4707 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
4708
6c334090
UB
47092010-08-20 Uros Bizjak <ubizjak@gmail.com>
4710
83d58961 4711 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
6c334090
UB
4712 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
4713 alternative 1 of operand 2.
4714
561da6bc
JJ
47152010-08-20 Jakub Jelinek <jakub@redhat.com>
4716 Paolo Bonzini <bonzini@gnu.org>
4717
4718 * simplify-rtx.c (simplify_unary_operation_1): Optimize
6c334090 4719 (sign_extend (zero_extend (...)) and
561da6bc
JJ
4720 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
4721
89ad0f25
JJ
47222010-08-20 Jakub Jelinek <jakub@redhat.com>
4723
4724 PR rtl-optimization/45353
4725 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
4726 after bb_note is a BARRIER.
4727
bf794e41
IS
47282010-08-20 Iain Sandoe <iains@gcc.gnu.org>
4729
6c334090 4730 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
bf794e41 4731 linking libgcc.a.
6c334090 4732
521fdcda
JJ
47332010-08-20 Jakub Jelinek <jakub@redhat.com>
4734 Michael Matz <matz@suse.de>
4735
6c334090 4736 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
521fdcda 4737
71bb2d86
NF
47382010-08-20 Nathan Froyd <froydnj@codesourcery.com>
4739
4740 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
4741 (ggc_mark_roots): ...here.
4742
ac47786e
NF
47432010-08-20 Nathan Froyd <froydnj@codesourcery.com>
4744
4745 * vec.h (FOR_EACH_VEC_ELT): Define.
4746 * c-decl.c: Use it.
4747 * cfgloop.c: Likewise.
4748 * cfgloopmanip.c: Likewise.
4749 * cgraph.c: Likewise.
4750 * cgraphunit.c: Likewise.
4751 * combine.c: Likewise.
4752 * config/bfin/bfin.c: Likewise.
4753 * config/mips/mips.c: Likewise.
4754 * config/rs6000/rs6000.c: Likewise.
4755 * dbxout.c: Likewise.
4756 * df-scan.c: Likewise.
4757 * dominance.c: Likewise.
4758 * dse.c: Likewise.
4759 * dwarf2out.c: Likewise.
4760 * except.c: Likewise.
4761 * expr.c: Likewise.
4762 * function.c: Likewise.
4763 * gcse.c: Likewise.
4764 * genattr.c: Likewise.
4765 * ggc-common.c: Likewise.
4766 * gimplify.c: Likewise.
4767 * graphite-blocking.c: Likewise.
4768 * graphite-clast-to-gimple.c: Likewise.
4769 * graphite-dependences.c: Likewise.
4770 * graphite-interchange.c: Likewise.
4771 * graphite-poly.c: Likewise.
4772 * graphite-scop-detection.c: Likewise.
4773 * graphite-sese-to-poly.c: Likewise.
4774 * graphite.c: Likewise.
4775 * haifa-sched.c: Likewise.
4776 * ifcvt.c: Likewise.
4777 * implicit-zee.c: Likewise.
4778 * ipa-prop.c: Likewise.
4779 * ipa-struct-reorg.c: Likewise.
4780 * ipa.c: Likewise.
4781 * ira-build.c: Likewise.
4782 * ira-color.c: Likewise.
4783 * ira-emit.c: Likewise.
4784 * lambda-code.c: Likewise.
4785 * loop-invariant.c: Likewise.
4786 * loop-unroll.c: Likewise.
4787 * lower-subreg.c: Likewise.
4788 * lto-cgraph.c: Likewise.
4789 * lto-opts.c: Likewise.
4790 * lto-streamer-in.c: Likewise.
4791 * lto-streamer-out.c: Likewise.
4792 * lto-streamer.c: Likewise.
4793 * lto-symtab.c: Likewise.
4794 * matrix-reorg.c: Likewise.
4795 * opts.c: Likewise.
4796 * predict.c: Likewise.
4797 * print-tree.c: Likewise.
4798 * sdbout.c: Likewise.
4799 * sel-sched-dump.c: Likewise.
4800 * sel-sched-ir.c: Likewise.
4801 * sel-sched.c: Likewise.
4802 * sese.c: Likewise.
4803 * stor-layout.c: Likewise.
4804 * tree-cfg.c: Likewise.
4805 * tree-cfgcleanup.c: Likewise.
4806 * tree-chrec.c: Likewise.
4807 * tree-data-ref.c: Likewise.
4808 * tree-emutls.c: Likewise.
4809 * tree-inline.c: Likewise.
4810 * tree-into-ssa.c: Likewise.
4811 * tree-loop-distribution.c: Likewise.
4812 * tree-loop-linear.c: Likewise.
4813 * tree-mudflap.c: Likewise.
4814 * tree-outof-ssa.c: Likewise.
4815 * tree-parloops.c: Likewise.
4816 * tree-predcom.c: Likewise.
4817 * tree-pretty-print.c: Likewise.
4818 * tree-scalar-evolution.c: Likewise.
4819 * tree-ssa-live.c: Likewise.
4820 * tree-ssa-loop-im.c: Likewise.
4821 * tree-ssa-loop-ivcanon.c: Likewise.
4822 * tree-ssa-loop-ivopts.c: Likewise.
4823 * tree-ssa-loop-manip.c: Likewise.
4824 * tree-ssa-loop-niter.c: Likewise.
4825 * tree-ssa-loop-prefetch.c: Likewise.
4826 * tree-ssa-phiprop.c: Likewise.
4827 * tree-ssa-pre.c: Likewise.
4828 * tree-ssa-reassoc.c: Likewise.
4829 * tree-ssa-sccvn.c: Likewise.
4830 * tree-ssa-structalias.c: Likewise.
4831 * tree-ssa.c: Likewise.
4832 * tree-vect-data-refs.c: Likewise.
4833 * tree-vect-loop-manip.c: Likewise.
4834 * tree-vect-loop.c: Likewise.
4835 * tree-vect-patterns.c: Likewise.
4836 * tree-vect-slp.c: Likewise.
4837 * tree-vect-stmts.c: Likewise.
4838 * tree-vrp.c: Likewise.
4839 * tree.c: Likewise.
4840 * value-prof.c: Likewise.
4841 * var-tracking.c: Likewise.
4842 * varasm.c: Likewise.
4843 * vmsdbgout.c: Likewise.
4844
1f5a46fe
NS
48452010-08-19 Nathan Sidwell <nathan@codesourcery.com>
4846 Richard Guenther <richard.guenther@gmail.com>
4847
4848 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
4849 copy the src value and return a copy.
4850 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
4851 (C++ Volatiles): Adjust to describe C++ semantics only.
4852
f8fe0a4a
JM
48532010-08-20 Joseph Myers <joseph@codesourcery.com>
4854
4855 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
4856 be zero or nonzero.
4857 * doc/tm.texi: Regenerate.
4858 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
4859 * df-scan.c (df_get_exit_block_use_set), reginfo.c
4860 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
4861 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
4862 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
4863 to 1.
4864
891aa2ec
OH
48652010-08-20 Olivier Hainque <hainque@adacore.com>
4866
4867 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
4868 an extra nop past a sibling call at the very end.
4869
b98425da
BS
48702010-08-19 Bernd Schmidt <bernds@codesourcery.com>
4871
4872 PR bootstrap/45350
4873 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
4874 a comment.
4875
29e88142
NF
48762010-08-19 Nathan Froyd <froydnj@codesourcery.com>
4877
4878 * target.def (function_arg, function_incoming_arg): Remove const
4879 qualifier on CUMULATIVE_ARGS parameter.
4880 * targhooks.h (default_function_arg, default_function_incoming_arg):
4881 Likewise.
4882 * targhooks.c (default_function_arg, default_function_incoming_arg):
4883 Likewise.
4884 * config/i386/i386.c (ix86_function_arg): Likewise.
4885
a5d8253f
JJ
48862010-08-19 Jakub Jelinek <jakub@redhat.com>
4887
4888 PR target/45336
4889 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
4890 SIGN_EXTENDs or ZERO_EXTENDs.
4891
0524d2d6
BS
48922010-08-19 Bernd Schmidt <bernds@codesourcery.com>
4893
4894 PR target/42172
4895 * combine.c (combine_validate_cost): New arg I0. All callers changed.
4896 Take its cost into account if nonnull.
4897 (insn_a_feeds_b): New static function.
4898 (combine_instructions): Look for four-insn combinations.
4899 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
4900 them into account when computing all_adjacent and looking for other
4901 uses.
4902 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
4903 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
4904 (try_combine): New arg I0. Handle four-insn combinations.
4905 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
4906 like ELIM_I1.
4907
ce3beba3
JM
49082010-08-19 Jason Merrill <jason@redhat.com>
4909
4910 PR c++/45307
4911 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
4912 if ctor is empty.
4913 (gimplify_modify_expr_rhs): Adjust.
4914
fcaa4ca4
NF
49152010-08-19 Nathan Froyd <froydnj@codesourcery.com>
4916
4917 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
4918 bitmap_bit_p.
4919 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
4920 * dominance.c (iterate_fix_dominators): Likewise.
4921 * dse.c (set_usage_bits): Likewise.
4922 (set_position_unneeded, record_store): Likewise.
4923 * gimple-fold.c (get_maxval_strlen): Likewise.
4924 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
4925 * ipa-inline.c (update_caller_keys): Likewise.
4926 * ipa-split.c (verify_non_ssa_vars): Likewise.
4927 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
4928 (close_type_exposed_parameter, close_type_full_escape): Likewise.
4929 (close_addressof_down): Likewise.
4930 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
4931 (setup_allocno_left_conflicts_size): Likewise.
4932 (ira_reassign_conflict_allocnos): Likewise.
4933 (ira_reassign_pseudos): Likewise.
4934 * ira-emit.c (change_loop): Likewise.
4935 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
4936 * lto-streamer-out.c (write_symbol): Likewise.
4937 * predict.c (expr_expected_value_1): Likewise.
4938 * regstat.c (regstat_bb_compute_ri): Likewise.
4939 * sel-sched.c (create_block_for_bookkeeping): Likewise.
4940 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
4941 * stmt.c (expand_case): Likewise.
4942 * tree-eh.c (emit_eh_dispatch): Likewise.
4943 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
4944 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
4945 Likewise.
4946 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
4947 (rdg_build_components): Likewise.
4948 * tree-object-size.c (collect_object_sizes_for): Likewise.
4949 * tree-sra.c (convert_callers): Likewise.
4950 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
4951 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
4952 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
4953
f1b62c9f
UB
49542010-08-19 Uros Bizjak <ubizjak@gmail.com>
4955
4956 * config/i386/i386.md (*lea_1): Use P mode iterator.
4957 (lea add splitter): Also handle DImode operands.
4958 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
4959 predicate. Do not use ix86_lea_for_add_ok.
4960 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
4961 (lea ashift splitter): Also handle DImode operands.
4962 (DImode lea ashift splitter): Remove splitter.
4963
49642010-08-19 Uros Bizjak <ubizjak@gmail.com>
4965
4966 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
4967 ix86_binary_operator_ok.
4968
5e841c82
AB
49692010-08-19 Andrey Belevantsev <abel@ispras.ru>
4970
4971 PR rtl-optimization/44691
4972 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
f1b62c9f 4973 is not a register.
5e841c82 4974
c92f1823
IB
49752010-08-19 Ian Bolton <ian.bolton@arm.com>
4976
4977 PR target/45070
4978 * config/arm/arm.c (arm_output_epilogue): Ensure that return
4979 value of size 1-3 is handled correctly.
4980
f096c02a
IB
49812010-08-19 Ian Bolton <ian.bolton@arm.com>
4982
4983 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
4984 type for the conditional has wide enough range.
4985
0fb2f9b1
UB
49862010-08-18 Uros Bizjak <ubizjak@gmail.com>
4987
4988 PR target/45327
4989 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
4990 ix86_binary_operator_ok.
4991
21667997
UB
49922010-08-18 Uros Bizjak <ubizjak@gmail.com>
4993
4994 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
4995 <default>: Swap operands 1 and 2 for alternative 2 to use existing
4996 code to output insn mnemonic. Fix comment.
4997 (*addsi_1_zext): Add r-r-0 alternative 1.
4998 <TYPE_LEA>: Split insn to lea.
4999 <default>: Handle alternative 1.
5000 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
5001 multi-level if_then_else RTX to set "type" attribute.
5002 <default>: Handle alternative 2.
5003 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
5004 Use cond RTX instead of multi-level if_then_else RTX to set
5005 "type" attribute.
5006 <default>: Handle alternatives 2 and 4.
5007 (lea splitters): Update calls to ix86_lea_for_add_ok.
5008
5009 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
5010 argument.
5011 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
5012
480161b5
RG
50132010-08-18 Richard Guenther <rguenther@suse.de>
5014
5015 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
5016 use operand helpers.
5017
e5f5fa2d
PB
50182010-08-18 Paolo Bonzini <bonzini@gnu.org>
5019
5020 PR middle-end/45292
5021 * optabs.c (expand_bool_compare_and_swap): Expand pending
5022 pops before trying the optab.
5023
8019fcfb
YQ
50242010-08-18 Yao Qi <yao@codesourcery.com>
5025
5026 PR target/45094
21667997 5027 * config/arm/arm.c (output_move_double): Fix typo generating
8019fcfb
YQ
5028 instructions ('ldr'->'str').
5029
c701e857
MK
50302010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
5031
5032 PR rtl-optimization/42575
5033 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
5034 live ranges.
5035
029e79eb
MS
50362010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
5037
5038 * config/arm/arm-protos.h (arm_expand_sync): New.
5039 (arm_output_memory_barrier, arm_output_sync_insn): New.
5040 (arm_sync_loop_insns): New.
5041 * config/arm/arm.c (FL_ARCH7): New.
5042 (FL_FOR_ARCH7): Include FL_ARCH7.
5043 (arm_arch7): New.
5044 (arm_print_operand): Support %C markup.
5045 (arm_legitimize_sync_memory): New.
5046 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
5047 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
5048 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
5049 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
5050 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
5051 (arm_process_output_sync_insn, arm_output_sync_insn): New.
5052 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
5053 * config/arm/arm.h (struct arm_sync_generator): New.
5054 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
5055 (TARGET_HAVE_MEMORY_BARRIER): New.
5056 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
5057 * config/arm/arm.md: Include sync.md.
5058 (UNSPEC_MEMORY_BARRIER): New.
5059 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
5060 (VUNSPEC_SYNC_OP):New.
5061 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
5062 (sync_result, sync_memory, sync_required_value): New attributes.
5063 (sync_new_value, sync_t1, sync_t2): Likewise.
5064 (sync_release_barrier, sync_op): Likewise.
5065 (length): Add logic to length attribute defintion to call
5066 arm_sync_loop_insns when appropriate.
5067 * config/arm/sync.md: New file.
5068
a085a55a
JJ
50692010-08-17 Jakub Jelinek <jakub@redhat.com>
5070
5071 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
5072 ENABLE_TREE_CHECKING.
5073 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
5074 and GCC >= 4.3.
5075
1c111d0a
L
50762010-08-17 H.J. Lu <hongjiu.lu@intel.com>
5077
5078 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
5079 or optimizing for size, always avoid lea if possible.
5080
21667997 5081 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
1c111d0a 5082
e2a1fcf0
IS
50832010-08-17 Iain Sandoe <iains@gcc.gnu.org>
5084
5085 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
21667997 5086 Dunmmy function with NULL return unless the target is
e2a1fcf0 5087 OSX >= 10.6 (Darwin10).
21667997 5088
74164603 50892010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
2642f659
JH
5090
5091 * gcc.c (spec_function): Add remove-outfile.
5092 (remove_outfile_spec_function): New function.
21667997 5093 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2642f659
JH
5094 * invoke.texi (replace-outfile): Document.
5095
2c65142a
UB
50962010-08-17 Uros Bizjak <ubizjak@gmail.com>
5097
5098 PR target/45296
5099 * reginfo.c (globalize_reg): Reject stack registers.
5100
fd4a760e
RG
51012010-08-17 Richard Guenther <rguenther@suse.de>
5102
5103 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
5104 list of conditional equivalences.
5105 (free_all_edge_infos): Adjust.
5106 (record_equivalences_from_incoming_edge): Likewise.
5107 (record_cond): Likewise.
5108 (build_and_record_new_cond): Likewise.
5109 (record_conditions): Likewise.
5110 (dom_opt_leave_block): Likewise.
5111
b17b584f
KT
51122010-08-17 Kai Tietz <kai.tietz@onevision.com>
5113
5114 * doc/invoke.texi (ms-extension): Add documentation.
5115
743ad76e
RG
51162010-08-17 Richard Guenther <rguenther@suse.de>
5117
21667997 5118 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
743ad76e 5119
51f4ec66
SZ
51202010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
5121
5122 PR c/40563
5123 * c-decl.c (diagnose_uninitialized_cst_member): New function.
5124 (finish_decl): Use it to issue a -Wc++-compat warning about
5125 uninitialized const field in struct or union.
2c65142a 5126
51f4ec66
SZ
5127 (finish_struct): Use strip_array_types.
5128
3373692b
JJ
51292010-08-17 Jakub Jelinek <jakub@redhat.com>
5130
5131 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
5132 functions.
5133 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
5134 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
5135 call block_nreverse here.
5136 (blocks_nreverse): Rename decl temporary to block.
5137
c29e2982
BS
51382010-08-16 Bernd Schmidt <bernds@codesourcery.com>
5139
5140 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
5141 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
5142 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
5143 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
5144 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
5145 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
5146 thumb2_iorsi3): Delete.
5147 (orsi_notsi_si): No longer a named pattern.
5148 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
5149 * config/arm/predicates.md (shift_amount_operand): New.
5150 (mult_operator): New.
5151 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
5152 attr enabled): New.
5153 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
5154 arch matches t2.
5155 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
5156 (not_shiftsi_compare0): Likewise, renamed from
5157 arm_notsi_shiftsi_compare0.
5158 (not_shiftsi_compare0_scratch): Likweise, renamed from
5159 arm_notsi_shiftsi_compare0_scratch.
5160 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
5161 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
5162 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
5163 so that the register alternative is disabled when the shift_operator
5164 is MULT. Use "M" as the constraint for constants.
5165 (arith_shiftsi splitter): Enable for TARGET_32BIT.
5166 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
5167 constraint for constants.
5168 (arith_shiftsi_compare0_scratch): Likewise.
5169 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
5170 Handle Thumb2 alternative.
5171
c878765b
JM
51722010-08-16 Joseph Myers <joseph@codesourcery.com>
5173
5174 * doc/options.texi (NoDriverArg): Document.
5175 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
5176 -MDX and -MMDX.
5177 * opt-functions.awk (switch_flags): Handle NoDriverArg.
5178 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
5179 marking for CL_NO_DRIVER_ARG options when in the driver.
5180 * opts.h (CL_NO_DRIVER_ARG): Define.
5181 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5182 CL_COMMON): Update values.
5183
603349bf
JM
51842010-08-16 Joseph Myers <joseph@codesourcery.com>
5185
5186 * common.opt: Add driver options.
5187 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
5188 * doc/options.texi (Driver, RejectDriver): Document.
5189 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
5190 print_prog_name, print_multi_directory, print_sysroot,
5191 print_multi_os_directory, print_multi_lib,
5192 print_sysroot_headers_suffix, report_times, combine_flag,
5193 use_pipes, wrapper_string): Remove.
5194 (save_switch, driver_unknown_option_callback,
5195 driver_wrong_lang_callback, driver_post_handling_callback,
5196 driver_handle_option): New.
5197 (spec_lang, last_language_n_infiles): Make file-scope static
5198 instead of local to process_command.
5199 (process_command): Use decode_cmdline_options_to_array and
5200 read_cmdline_option for option processing. Compute have_c in
5201 prescan of decoded options.
5202 * opt-functions.awk (switch_flags): Handle Driver and
5203 RejectDriver.
5204 (var_type, var_type_struct): Handle Separate options as generating
5205 const char * variables.
5206 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
5207 CL_TARGET to be passed by caller if required.
5208 (decode_cmdline_options_to_array): Update comment.
5209 * opts.c (complain_wrong_lang): Handle options only valid for the
5210 driver.
5211 (decode_options): Update call to decode_cmdline_options_to_array.
5212 (print_filtered_help): Ignore driver-only options.
5213 (print_specific_help): Ignore CL_DRIVER.
2c65142a 5214 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
603349bf
JM
5215 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
5216 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
5217 Update values.
5218
4b228e61
RG
52192010-08-16 Richard Guenther <rguenther@suse.de>
5220
5221 * tree-cfg.c (verify_types_in_gimple_reference): Verify
5222 TARGET_MEM_REF a bit.
5223 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
5224 (create_mem_ref_raw): Always create TMR_OFFSET, store the
5225 alias pointer type via it.
5226 (copy_mem_ref_info): Adjust.
5227 (maybe_fold_tmr): Likewise.
5228 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
5229 (reference_alias_ptr_type): Likewise.
5230 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
5231 adjust documentation of TMR_OFFSET operand.
5232 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
5233 use the alias pointer type.
5234 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
5235 initialize mem attrs but the TMR itself.
5236 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
5237 similar to MEM_REF.
5238 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
5239 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
5240 (unshare_and_remove_ssa_names): Likewise.
5241 (copy_ref_info): Adjust.
5242 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
5243 TARGET_MEM_REF case.
5244 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
5245 at TMR_ORIGINAL.
5246 * tree.h (TMR_ORIGINAL): Remove.
5247 * gimple.c (get_base_address): For TARGET_MEM_REF with a
5248 symbol return that.
5249 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
5250 with a symbol.
5251 (get_addr_base_and_unit_offset): Likewise.
5252 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
5253 TARGET_MEM_REFs.
5254 (indirect_ref_may_alias_decl_p): Likewise.
5255 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
5256
ef7e0035
UB
52572010-08-15 Uros Bizjak <ubizjak@gmail.com>
5258
5259 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
5260 with GCC version 4.6, the default setting (when not optimizing
5261 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
5262 been changed to -fomit-frame-pointer.
5263
5fc265c1
IS
52642010-08-15 Iain Sandoe <iains@gcc.gnu.org>
5265
ef7e0035 5266 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
5fc265c1
IS
5267 Darwin10. Do not link libgcc.a for Darwin >= 9.
5268
09ccff9f
GP
52692010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
5270
5271 * doc/invoke.texi (Warning Options): Fix terminology and markup
5272 in the description of how unknown warning options are handled.
5273
69f11a13
IR
52742010-08-15 Ira Rosen <irar@il.ibm.com>
5275
5276 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
5277 in basic blocks.
5278 (vect_supportable_dr_alignment): Check alignment for basic blocks.
ef7e0035 5279 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
69f11a13
IR
5280 data references.
5281 (vect_bb_vectorization_profitable_p): New function.
5282 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
5283 check if it's worthwhile to vectorize the basic block.
5284
faa832a7
AS
52852010-08-14 Anatoly Sokolov <aesok@post.ru>
5286
5287 * reload.h (register_move_cost, memory_move_secondary_cost,
5288 secondary_reload_class): Adjust prototype.
5289 * rtl.h (reg_class_subset_p): Adjust prototype.
5290 * reload.c (secondary_reload_class): Change arguments type from
5291 enum reg_class to reg_class_t. Change result type to reg_class_t.
5292 * reginfo.c (register_move_cost, reg_class_subset_p): Change
5293 arguments type from enum reg_class to reg_class_t.
5294 (memory_move_secondary_cost): Change arguments type from
5295 enum reg_class to reg_class_t. Change type of saved_flags to
5296 reg_class_t.
5297
ef7e0035 5298 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
faa832a7
AS
5299 Remove macros.
5300 (mips_cost): Remove.
5301 (struct mips_rtx_cost_data): Moved to mips.c.
5302 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
5303 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
5304 (mips_cost): Make static.
5305 (mips_canonicalize_move_class): Change argument type to reg_class_t.
5306 Change result type to reg_class_t.
5307 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
5308 type from enum reg_class to reg_class_t.
5309 (mips_register_move_cost): Make static. Change arguments
5310 type from enum reg_class to reg_class_t.
5311 (mips_memory_move_cost): New function.
5312 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5313
6d1e1a26
RS
53142010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
5315
5316 PR rtl-optimization/43358
5317 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
5318 of a single hard register, using simplify_subreg_regno to decide
5319 what that register should be.
5320
a44ecea1
MX
53212010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
5322
5323 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
5324 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
5325 (loongson_pmull<V_suffix>): Rename to...
5326 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
5327
74164603 53282010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
1b2d4118 5329
eed023cc 5330 * configure.ac: Enable -fomit-frame-pointer on darwin
1b2d4118
JH
5331 which support dwarf2.
5332 * config/i386/i386.c (override_options): Same.
5333
9b821a09
JZ
53342010-08-13 Jie Zhang <jie@codesourcery.com>
5335
ef7e0035 5336 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9b821a09 5337
644fa7ac
JM
53382010-08-12 Joseph Myers <joseph@codesourcery.com>
5339
5340 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
5341 -MMD.
5342
3cb35c12
CF
53432010-08-12 Changpeng Fang <changpeng.fang@amd.com>
5344
5345 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
5346 up dot_prod pattern searching if a stmt is outside the loop.
5347
d79389af
L
53482010-08-12 H.J. Lu <hongjiu.lu@intel.com>
5349 Uros Bizjak <ubizjak@gmail.com>
5350
5351 * config.gcc: Handle --enable-frame-pointer.
5352
5353 * configure.ac: Add --enable-frame-pointer.
5354 * configure: Regenerated.
5355
5356 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
5357 (override_options): If not configured with --enable-frame-pointer,
5358 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
5359 optimizing for size), -fasynchronous-unwind-tables and
5360 -maccumulate-outgoing-args by default.
5361
d2be8071
JJ
53622010-08-12 Jakub Jelinek <jakub@redhat.com>
5363
ef7e0035 5364 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
d2be8071 5365
a8c56818
JJ
5366 PR middle-end/45262
5367 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
5368 -a overflows. Normalize the range.
5369
2d698d3b
RG
53702010-08-12 Richard Guenther <rguenther@suse.de>
5371
5372 PR tree-optimization/45232
5373 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
5374 for types with undefined overflow.
5375 (reassociate_bb): Allow re-associating of bit and min/max
5376 operations for types with undefined overflow.
5377 * tree-ssa-forwprop.c (associate_plusminus): New function.
5378 (tree_ssa_forward_propagate_single_use_vars): Call it.
5379
1be38ccb
RG
53802010-08-12 Richard Guenther <rguenther@suse.de>
5381
5382 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
5383 * tree-ssa-alias.c (get_ptr_info): Move ...
5384 * tree-ssanames.c (get_ptr_info): ... here. Initialize
5385 align and misalign fields conservatively.
5386 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
5387 derive alignment information.
5388 (evaluate_stmt): Derive alignment information from memory
5389 allocation functions.
5390 * tree.h (get_pointer_alignment): Make unsigned.
5391 * builtins.c (get_object_alignment): Use alignment information we
5392 have computed for pointers.
5393 (get_pointer_alignment): Likewise. Make conservative, return
5394 and unsigned value.
5395 (expand_builtin_strlen): Adjust.
5396 (expand_builtin_memcmp): Likewise.
5397 (expand_builtin_strcmp): Likewise.
5398 (expand_builtin_strncmp): Likewise.
5399 (get_builtin_sync_mem): Use at least mode alignment.
5400 (fold_builtin_memset): Adjust.
5401 (fold_builtin_memory_op): Likewise.
5402 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
5403 information also dump pointer alignment knowledge.
5404 (dump_gimple_stmt): Likewise.
5405
a96ad348
UB
54062010-08-12 Uros Bizjak <ubizjak@gmail.com>
5407
5408 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
5409 (EMPTY_FIELD_BOUNDARY): Remove.
5410 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
5411
49b48605
JJ
54122010-08-12 Jakub Jelinek <jakub@redhat.com>
5413
5414 PR debug/45259
5415 * caller-save.c (save_call_clobbered_regs): Only swap notes with
5416 DEBUG_INSNs if n_regs_saved.
5417
3565ffed
WG
54182010-08-12 Wei Guozhi <carrot@google.com>
5419
5420 PR target/44999
5421 * config/arm/arm.md (andsi3): Change to zero extension if possible.
5422 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
5423
183c87cd
VM
54242010-08-11 Vladimir Makarov <vmakarov@redhat.com>
5425
5426 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
5427
5428 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
5429
cb5da135 54302010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9707eeb0
SP
5431
5432 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
5433 the case removed in the previous patch, when the only phi argument
5434 is defined in the same loop as the phi node itself. Handle it
5435 separately from the invariant case by both propagating it outside
5436 the region and replacing the phi node with an assign.
5437
cb5da135 54382010-08-11 Sebastian Pop <sebastian.pop@amd.com>
974335d6
SP
5439
5440 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
5441 constant phi nodes with one argument are is_gimple_min_invariant
5442 and SSA_NAME_IS_DEFAULT_DEF.
5443
cb5da135 54442010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
85437633
AS
5445
5446 * graphite-cloog-util.c (oppose_constraint):
5447 Extend loop counter's value range (CLOOG_ORG).
5448 (cloog_matrix_to_ppl_constraint): Same.
5449 (new_Constraint_System_from_Cloog_matrix): Same.
5450 * graphite-cloog-compat.h (matrix_num_type): New.
5451
cb5da135 54522010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
85437633
AS
5453
5454 * graphite.c (graphite_initialize): Do not initialize
5455 CLooG and initialize the Parma Polyhedra Library
5456 manually when using CLOOG_ORG.
5457 (graphite_finalize): Do not finalize CLooG and finalize
5458 the Parma Polyhedra Library manually when using CLOOG_ORG.
5459 * graphite-cloog-compat.h (cloog_initialize): Hide function
5460 when using CLOOG_ORG.
5461 (cloog_finalize): Same.
5462
cb5da135 54632010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
1461761b
AS
5464
5465 * graphite-clast-to-gimple.c (free_scattering): Change
5466 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
5467 (CLOOG_ORG).
5468 (build_cloog_prog): Same.
5469 * graphite-cloog-compat.h (cloog_domain): Removed.
5470 (cloog_scattering): New.
5471 (cloog_set_domain): Removed.
5472 (cloog_set_scattering): New.
5473 (cloog_next_domain): Removed.
5474 (cloog_next_scattering): New.
5475 (cloog_set_next_domain): Removed.
5476 (cloog_set_next_scattering): New.
5477 (CloogScatteringList): New.
5478 (CloogScattering): New.
5479 (cloog_scattering_free): New.
5480 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
5481 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
5482 New.
5483
cb5da135 54842010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
60f87855
AS
5485
5486 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
5487 CloogState.
5488 (set_cloog_options): Same.
5489 (print_clast_stmt): Same.
5490 (scop_to_clast): Same.
5491 (print_generated_program): Same.
5492 (gloog): Same.
5493 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
5494 (scop_to_clast): Extend with CloogState.
5495 * graphite-cloog-util.c: Include graphite-cloog-compat.h
5496 (new_Cloog_Domain_from_ppl_Polyhedron):
5497 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
5498 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
5499 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5500 * graphite-cloog-util.h (build_cloog_prog): Same.
5501 * graphite-cloog-copat.h (build_cloog_prog): New.
5502 (CloogState): New.
5503 (cloog_state_malloc): New.
5504 (cloog_state_free): New.
5505 (cloog_loop_malloc): New.
5506 (cloog_options_malloc): New.
5507 (cloog_statement_alloc): New.
5508 (cloog_domain_from_cloog_matrix): New.
5509 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
5510 (new_Cloog_Domain_from_ppl_Polyhedron): New.
5511
cb5da135 55122010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4431102b
AS
5513
5514 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
5515 type of NAME now depends on used CLooG version.
5516 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
5517 (gcc_type_for_clast_expr): Same.
5518 (print_clast_stmt): Replace pprint with clast_pprint.
5519 * graphite-cloog-compat.h: Provide compatibility macros for
5520 CLooG Legacy.
5521 (clast_name_p): New.
5522 (clast_expr_term): New.
5523 (clast_expr_red): New.
5524 (clast_expr_bin): New.
5525 (clast_pprint): New.
5526
cb5da135 55272010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
ac3b070a
AS
5528
5529 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
5530 compatible to newer CLooG releases (CLOOG_ORG).
5531 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
5532 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
5533 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
5534 (build_cloog_prog) : New.
5535 (cloog_program_extract_scalars): New.
5536 (cloog_program_scatter): New.
5537
cb5da135 55382010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2bbb190a
AS
5539
5540 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
5541 conditionally (CLOOG_ORG).
5542 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
5543 (cloog_statement_usr): New.
5544 (cloog_domain): Same.
5545 (cloog_set_domain): Same.
5546 (cloog_next_domain): Same.
5547 (cloog_set_next_domain): Same.
5548 (cloog_program_nb_scattdims): Same.
5549 (cloog_program_set_nb_scattdims): Same.
5550 (cloog_program_names): Same.
5551 (cloog_program_set_names): Same.
5552 (cloog_program_set_context): Same.
5553 (cloog_program_set_loop): Same.
5554 (cloog_program_blocklist): Same.
5555 (cloog_program_set_blocklist): Same.
5556 (cloog_program_scaldims): Same.
5557 (cloog_program_set_scaldims): Same.
5558 (cloog_names_nb_parameters): Same.
5559 (cloog_names_set_nb_parameters): Same.
5560 (cloog_names_parameters): Same.
5561 (cloog_names_set_parameters): Same.
5562 (cloog_names_set_nb_iterators): Same.
5563 (cloog_names_set_iterators): Same.
5564 (cloog_names_set_nb_scattering): Same.
5565 (cloog_names_set_scattering): Same.
5566 (cloog_statement_set_usr): Same.
5567 (cloog_loop_set_next): Same.
5568 (cloog_loop_set_domain): Same.
5569 (cloog_loop_set_block): Same.
5570 (cloog_block_list_next): Same.
5571 (cloog_block_list_set_next):
5572 (cloog_block_list_set_block): Same.
5573
cb5da135 55742010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5d737345
SP
5575
5576 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
5577 a bool.
5578 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
5579 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
5580 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
5581 when something has been changed.
5582 (rewrite_commutative_reductions_out_of_ssa): Same.
5583
cb5da135 55842010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4ee23fa8 5585
ab756588
SP
5586 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
5587 handle the case when def is in the sese region.
5588 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
5589 for invariant expressions.
5590 (rewrite_cross_bb_phi_deps): Removed.
5591 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
5592 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
cb5da135 5593 rewrite_cross_bb_phi_deps.
ab756588 5594
cb5da135 55952010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ab756588 5596
4ee23fa8
SP
5597 * graphite-sese-to-poly.c
5598 (rewrite_commutative_reductions_out_of_ssa_loop): Call
5599 scev_analyzable_p only on is_gimple_reg
5600
cb5da135 56012010-08-11 Sebastian Pop <sebastian.pop@amd.com>
1c2a7491
SP
5602
5603 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
5604 (rewrite_close_phi_out_of_ssa): Propagate constant values or
5605 parametric expressions outside the scop region.
5606 (rewrite_cross_bb_scalar_deps): Same.
5607 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
5608
cb5da135 56092010-08-11 Sebastian Pop <sebastian.pop@amd.com>
320532a8
SP
5610
5611 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
5612 SSA_NAME_DEF_STMT only on SSA_NAMEs.
5613
cb5da135 56142010-08-11 Sebastian Pop <sebastian.pop@amd.com>
2847388e
SP
5615
5616 * tree-scalar-evolution.c (instantiate_scev_name): Do not
5617 instantiate default definitions.
5618
cb5da135 56192010-08-11 Vladimir Kargov <kargov@gmail.com>
f4ce375d
VK
5620 Sebastian Pop <sebastian.pop@amd.com>
5621
5622 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
5623 (loop_exits_from_bb_p): New.
5624 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
5625 (loop_exits_from_bb_p): Declared.
5626 * graphite-scop-detection.c (scopdet_basic_block_info): Call
5627 loop_exits_to_bb_p.
5628
cb5da135 56292010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a7d00e71
SP
5630
5631 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
5632 extra parameter for the region. Call scev_analyzable_p.
5633 (rewrite_reductions_out_of_ssa): Update call to
5634 rewrite_close_phi_out_of_ssa.
5635 (rewrite_cross_bb_phi_deps): Same.
5636 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
5637 parameter for the region. Call scev_analyzable_p.
5638 (rewrite_commutative_reductions_out_of_ssa): Update call to
5639 rewrite_commutative_reductions_out_of_ssa_loop.
5640
cb5da135 56412010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6f23dd91
SP
5642
5643 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
5644
cb5da135 56452010-08-11 Sebastian Pop <sebastian.pop@amd.com>
87b28340
SP
5646
5647 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
5648 SSA scalar phi nodes that can be scev_analyzable_p.
5649
cb5da135 56502010-08-11 Sebastian Pop <sebastian.pop@amd.com>
3dd2dd57
SP
5651
5652 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
5653 handle SSA_NAME_IS_DEFAULT_DEF.
5654
cb5da135 56552010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a0dd1502
SP
5656
5657 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
5658
cb5da135 56592010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8af6d9cd
SP
5660
5661 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
5662 case non close-phi nodes with one argument.
5663
cb5da135 56642010-08-11 Sebastian Pop <sebastian.pop@amd.com>
f36fc876
SP
5665
5666 * sese.h (scev_analyzable_p): Scevs could be expressions without
5667 chrecs and still be scev_analyzable_p.
5668
cb5da135 56692010-08-11 Sebastian Pop <sebastian.pop@amd.com>
57fe3c87
SP
5670
5671 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
5672
cb5da135 56732010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a0d1afb3
SP
5674
5675 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
5676 * cfgloop.h (struct loop): Remove single_iv field.
5677 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
5678 (scop_canonicalize_loops): Removed.
5679 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
5680 over all the loop phi nodes in loop->header.
5681 (build_poly_scop): Remove use of scop_canonicalize_loops.
5682
cb5da135 56832010-08-11 Sebastian Pop <sebastian.pop@amd.com>
dba9acfa
SP
5684
5685 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
5686 handle GIMPLE_CALL.
5687
cb5da135 56882010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8b059232
SP
5689
5690 * tree-chrec.c (chrec_apply): Should only apply to the specified
5691 variable. Also handle multivariate chains of recurrences that
5692 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
5693
cb5da135 56942010-08-11 Sebastian Pop <sebastian.pop@amd.com>
2e286fd2
SP
5695
5696 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
5697 (debug_clast_name_indexes_1): Removed.
5698 (debug_clast_name_indexes): Removed.
5699 (pbb_to_depth_to_oldiv): Removed.
5700 (build_iv_mapping): Replace the use of rename_map with iv_map.
5701 (translate_clast_user): Remove uses of rename_map. Allocate and
5702 free iv_map.
5703 (translate_clast_for_loop): Remove uses of rename_map.
5704 (translate_clast_for): Same.
5705 (translate_clast_guard): Same.
5706 (translate_clast): Same.
5707 (gloog): Same.
5708 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
5709 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
5710 * sese.c (set_rename): Now static.
5711 (rename_variables_in_stmt): Removed.
5712 (rename_uses): New.
5713 (is_parameter): Removed.
5714 (is_iv): Removed.
5715 (expand_scalar_variables_call): Removed.
5716 (expand_scalar_variables_ssa_name): Removed.
5717 (expand_scalar_variables_expr): Removed.
5718 (expand_scalar_variables_stmt): Removed.
5719 (expand_scalar_variables): Removed.
5720 (rename_variables): Removed.
5721 (remove_condition): Removed.
5722 (get_true_edge_from_guard_bb): Removed.
5723 (get_false_edge_from_guard_bb): Removed.
5724 (struct igp): Removed.
5725 (default_before_guard): Removed.
5726 (convert_for_phi_arg): Removed.
5727 (add_guard_exit_phis): Removed.
5728 (insert_guard_phis): Removed.
5729 (graphite_copy_stmts_from_block): Now also uses iv_map and a
5730 region. Do not copy conditions. Do not copy induction variables.
5731 Call rename_uses.
5732 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
5733 the translated statement. Use the iv_map for the induction
5734 variable renaming.
5735 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
5736 (set_rename): Removed declaration.
5737 (scev_analyzable_p): ...here.
5738 * tree-chrec.c (chrec_apply_map): New.
5739 * tree-chrec.h (chrec_apply_map): Declared.
5740
cb5da135 57412010-08-11 Sebastian Pop <sebastian.pop@amd.com>
e11d25e0
SP
5742
5743 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
5744 insert_loop_close_phis.
5745 * sese.c (name_defined_in_loop_p): Removed.
5746 (expr_defined_in_loop_p): Removed.
5747 (alive_after_loop): Removed.
5748 (close_phi_not_yet_inserted_p): Removed.
5749 (struct alep): Removed.
5750 (add_loop_exit_phis): Removed.
5751 (insert_loop_close_phis): Removed.
5752
cb5da135 57532010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
61298f69
AS
5754
5755 * graphite-cloog-util.c
5756 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
5757 * graphite-poly.c
5758 (psct_scattering_dim_for_loop_depth): Same.
5759
cb5da135 57602010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
a9c2ba8f
AS
5761
5762 * graphite-cloog-util.h: Added cloog.h.
5763 * graphite-blocking.c: Removed cloog.h.
5764 * graphite-dependences.c: Same.
5765 * graphite-interchange.c: Same.
5766 * graphite-poly.c: Same.
5767 * graphite-ppl.c: Same.
5768 * graphite-scop-detection.c: Same.
5769 * graphite-sese-to-poly.c:
5770 Removed cloog.h.
5771 Removed graphite-clast-to-gimple.h.
5772 (check_poly_representation): Removed (unused).
5773 * graphite-sese-to-poly.h
5774 (check_poly_representation): Removed (unused).
5775
cb5da135 57762010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
0647324a
AS
5777
5778 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
5779 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
5780 (graphite-cloog-util.o): New.
5781 (graphite-ppl.o): Added graphite-cloog-util.h.
5782 * graphite-clast-to-gimple.c:
5783 Added graphite-cloog-util.h to include statements.
5784 * graphite-cloog-util.c: New.
5785 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
5786 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5787 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5788 (new_C_Polyhedron_from_Cloog_Matrix): Same.
5789 (insert_constraint_into_matrix): Same.
5790 (ppl_Constrain_System_number_of_constraints): Same.
5791 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
5792 (oppose_constraint): Same.
5793 (cloog_matrix_to_ppl_constraint): Same.
5794 (new_Constraint_System_from_Cloog_Matrix): Same.
5795 * graphite-cloog-util.h: New.
5796 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
5797 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5798 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5799 (new_C_Polyhedron_from_Cloog_Matrix): Same.
5800 (insert_constraint_into_matrix): Same.
5801 * graphite-ppl.c:
5802 Added graphite-cloog-util.h to include statements.
5803 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
5804 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5805 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5806 (new_C_Polyhedron_from_Cloog_Matrix): Same.
5807 (insert_constraint_into_matrix): Same.
5808 (ppl_Constrain_System_number_of_constraints): Same.
5809 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
5810 (oppose_constraint): Same.
5811 (cloog_matrix_to_ppl_constraint): Same.
5812 (new_Constraint_System_from_Cloog_Matrix): Same.
5813 * graphite-ppl.h:
5814 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
5815 graphite-cloog-util.h.
5816 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5817 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5818 (new_C_Polyhedron_from_Cloog_Matrix): Same.
5819 (insert_constraint_into_matrix): Same.
5820
cb5da135 58212010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
589ac63c
AS
5822
5823 * graphite-clast-to-gimple.c
5824 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
5825 (precision_for_interval): Same.
5826 (gcc_type_for_interval): Same.
5827 (compute_type_for_level): Same.
5828 * graphite-interchange.c
5829 (lst_interchange_profitable_p): Same.
5830 * graphite-poly.c
5831 (psct_scattering_dim_for_loop_depth): Same.
5832 * graphite-ppl.c
5833 (ppl_max_for_le_pointset): Same.
5834 (ppl_min_for_le_pointset): Same.
5835
cb5da135 58362010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d3e7b889
SP
5837
5838 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
5839 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
5840
cb5da135 58412010-08-11 Sebastian Pop <sebastian.pop@amd.com>
aedede66
SP
5842
5843 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
5844 rewrite_close_phi_out_of_ssa.
5845
cb5da135 58462010-08-11 Sebastian Pop <sebastian.pop@amd.com>
f2c51113
SP
5847
5848 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
5849
cb5da135 58502010-08-11 Sebastian Pop <sebastian.pop@amd.com>
32e68db9
SP
5851
5852 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
5853 rename_map.
5854 * sese.c (debug_rename_map): Same.
5855 (get_rename): Same.
5856 (set_rename): Same.
5857 (rename_variables_in_stmt): Same.
5858 (expand_scalar_variables_call): Same.
5859 (expand_scalar_variables_ssa_name): Same.
5860 (expand_scalar_variables_expr): Same.
5861 (expand_scalar_variables_stmt): Same.
5862 (expand_scalar_variables): Same.
5863 (rename_variables): Same.
5864 (graphite_copy_stmts_from_block): Same.
5865 (copy_bb_and_scalar_dependences): Same.
5866
cb5da135 58672010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8b164754
SP
5868
5869 * graphite-clast-to-gimple.c (copy_renames): Removed.
5870 (translate_clast_for): Do not call copy_renames.
5871 (translate_clast_guard): Same.
5872
cb5da135 58732010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9773d730
SP
5874
5875 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
5876 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
5877 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
5878 before rewrite_cross_bb_scalar_deps.
5879
cb5da135 58802010-08-11 Sebastian Pop <sebastian.pop@amd.com>
cc588970
SP
5881
5882 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
5883 Early return in when flag_associative_math is not set.
5884
cb5da135 58852010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4aa9a167
SP
5886
5887 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
5888 of SSA copies on edges except for loop->latch.
5889
cb5da135 58902010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ee646fc6
SP
5891
5892 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
5893 Split out of rewrite_reductions_out_of_ssa.
5894 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
5895 Declared.
5896 * graphite.c (graphite_transform_loops): Call it.
5897
cb5da135 58982010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6a7441f5
SP
5899
5900 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
5901
cb5da135 59022010-08-11 Alexander Monakov <amonakov@ispras.ru>
6a7441f5
SP
5903
5904 * dbgcnt.def (graphite_scop): New counter.
5905 * graphite.c: Include dbgcnt.h.
5906 (graphite_transform_loops): Use new counter to limit transformations.
5907 * Makefile.in (graphite.o): Depend on DBGCNT_H.
5908
cb5da135 59092010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d4332d00
SP
5910
5911 * passes.c (init_optimization_passes): Add pass_graphite.
5912 Schedule a pass_copy_prop before pass_graphite_transforms.
5913 * timevar.def (TV_GRAPHITE): Declared.
5914 * tree-pass.h (pass_graphite): Declared.
5915 * tree-ssa-loop.c (pass_graphite): New.
5916
cb5da135 59172010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14d0e129
SP
5918
5919 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
5920 Remove calls to rename_nb_iterations and rename_sese_parameters.
5921 * graphite-clast-to-gimple.h (gloog): Update declaration.
5922 * graphite.c (graphite_transform_loops): Update call to gloog.
5923 * sese.c (rename_variables_in_expr): Removed.
5924 (rename_nb_iterations): Removed.
5925 (rename_sese_parameters): Removed.
5926 * sese.h (rename_nb_iterations): Removed.
5927 (rename_sese_parameters): Removed.
5928
cb5da135 59292010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d1ba0721
SP
5930
5931 * graphite-clast-to-gimple.c (gloog): Remove call to
5932 sese_adjust_liveout_phis.
5933 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
5934 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
5935 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
5936 rewrite_phi_out_of_ssa.
5937 * sese.c (get_vdef_before_sese): Removed.
5938 (sese_adjust_vphi): Removed.
5939 (sese_adjust_liveout_phis): Removed.
5940 * sese.h (sese_adjust_liveout_phis): Removed.
5941
cb5da135 59422010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5fed5769
SP
5943
5944 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
5945 argument for the place after which to insert the out of SSA copy.
5946 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
5947 (rewrite_phi_out_of_ssa): Same.
5948 (rewrite_cross_bb_scalar_deps): Same.
5949 (insert_copyout): Removed.
5950 (insert_copyin): Removed.
5951 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
5952 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
5953 insert_copyin.
5954
cb5da135 59552010-08-11 Sebastian Pop <sebastian.pop@amd.com>
3a7086cc
SP
5956
5957 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
5958 (rewrite_reductions_out_of_ssa): Same.
5959 (rewrite_commutative_reductions_out_of_ssa): Same.
5960 (build_poly_scop): Do not call these functions.
5961 * graphite-sese-to-poly.h (build_poly_scop): Declared.
5962 (rewrite_reductions_out_of_ssa): Declared.
5963 (rewrite_commutative_reductions_out_of_ssa): Declared.
5964 * graphite.c (graphite_transform_loops): Call on every scop
5965 rewrite_commutative_reductions_out_of_ssa before calling
5966 rewrite_reductions_out_of_ssa and build_scop_bbs.
5967
cb5da135 59682010-08-11 Sebastian Pop <sebastian.pop@amd.com>
61ca46ce
SP
5969
5970 * graphite-dependences.c (dot_deps): Make system call to dotty run
5971 in background.
5972 (dot_deps_stmt): Same.
5973 * graphite-poly.c (dot_lst): Same.
5974
cb5da135 59752010-08-11 Sebastian Pop <sebastian.pop@amd.com>
159e4616
SP
5976
5977 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
5978 phi_arg_in_outermost_loop.
5979 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
5980 (remove_invariant_phi): Same.
5981
6cbd8875
AS
59822010-08-11 Anatoly Sokolov <aesok@post.ru>
5983
5984 * target.def (output_addr_const_extra): New hook.
5985 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
5986 * doc/tm.texi: Regenerate.
5987 * targhooks.c (default_asm_output_addr_const_extra): New function.
5988 * targhooks.h (default_asm_output_addr_const_extra): Declare.
cb1b497e 5989 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6cbd8875
AS
5990 target hook.
5991
5992 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5993 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
5994 * config/i386/i386.h (output_addr_const_extra): Rename to...
5995 (i386_asm_output_addr_const_extra): ...this. Make static.
5996 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5997
51ba747a
RH
59982010-08-11 Richard Henderson <rth@redhat.com>
5999
6000 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
6001
bfd71bc1
NC
60022010-08-11 Nick Clifton <nickc@redhat.com>
6003
6004 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
6005 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
6006 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6007 stormy16-lib2-cmpsi.c.
6008
6009 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
6010 -O2.
6011
481e1176
JM
60122010-08-11 Joseph Myers <joseph@codesourcery.com>
6013
6014 * opts.h (struct cl_option_handler_func): Make handler take
6015 cl_decoded_option structure as parameter, not individual elements.
6016 (struct cl_option_handlers): Make callbacks take cl_decoded_option
6017 structure as parameter, not individual elements.
6018 (handle_option): Take cl_decoded_option structure as parameter,
6019 not individual elements.
6020 (handle_generated_option): Declare.
6021 * opts-common.c (handle_option): Take cl_decoded_option structure
6022 as parameter, not individual elements. Update calls to callback
6023 and handler functions.
6024 (handle_generated_option): New.
6025 (read_cmdline_option): Update calls to callback functions and
6026 handle_option.
6027 * opts.c (common_handle_option, complain_wrong_lang,
6028 unknown_option_callback, post_handling_callback,
6029 lang_handle_option, target_handle_option): Take cl_decoded_option
6030 structure as parameter, not individual elements.
6031 (lang_handle_option, target_handle_option, common_handle_option):
6032 Assert option has at most one argument.
6033 (enable_warning_as_error): Call handle_generated_option instead of
6034 handle_option. Do not pass -Werror argument as argument of
6035 generated option.
6036
e5fbc9bf
JDA
60372010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6038
6039 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6040 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6041 (SUBWORD_BOOL_CAS): Likewise.
6042 (SUBWORD_SYNC_OP): Likewise.
6043 (SUBWORD_TEST_AND_SET): Likewise.
6044 (FETCH_AND_OP_WORD): Parenthesise INF_OP
6045 (SUBWORD_SYNC_OP): Likewise.
6046 (OP_AND_FETCH_WORD): Likewise.
6047
d6fa2d17
XDL
60482010-08-10 Xinliang David Li <davidxl@google.com>
6049
6050 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
6051 compute max/min offset in address.
6052
9995f209
VM
60532010-08-10 Vladimir Makarov <vmakarov@redhat.com>
6054
6055 * ira-live.c: Include sbitmap.h.
6056 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
6057 Compress live ranges even more.
6058
175a62b7
NF
60592010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6060
6061 * coverage.c (ctr_labels): Delete.
6062
8f4c6e28
BS
60632010-08-10 Bernd Schmidt <bernds@codesourcery.com>
6064
6065 PR bootstrap/45177
6066 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
6067 test here from arm_gen_load_multiple_1.
6068 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
6069 multiple_operation_profitable_p.
6070
a72ae88a
NF
60712010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6072
009c04bf 6073 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
a72ae88a
NF
6074 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
6075
35b15a46
RH
60762010-08-10 Richard Henderson <rth@redhat.com>
6077
6078 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
6079 after saving registers. Assert that SSE registers are only saved
6080 with a sufficiently aligned frame.
6081 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
6082 remove stack_realign_fp handling.
6083 (ix86_expand_prologue): Save int registers before stack_realign_fp,
6084 and do not mark the stack alignment as frame related.
6085 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
6086
6087 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
6088 saves when re-aligning the stack.
6089
a398224a
NF
60902010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6091
6092 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
6093 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
6094 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
6095
774038e6
NF
60962010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6097
6098 * dwarf2out.c (struct die_struct): Move die_tag to the end.
6099
ceddf62c
SN
61002010-08-09 Sofiane Naci <sofiane.naci@arm.com>
6101
f6aa1e0f
RR
6102 * config/arm/iterators.md: New file.
6103 * config/arm/arm.md: Include iterators.md.
6104 (QHSI): Move to new file.
6105 (LTUGEU, cnb, optab, ior_xor): Likewise.
6106 * config/arm/iwmmxt.md (VMMX): Move to new file.
6107 (VSHFT, MMX_char): Likewise.
6108 * config/arm/neon.md (VD): Move to new file.
6109 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
6110 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
6111 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
6112 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
6113 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
6114 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
6115 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
6116 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
6117 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
6118 (Is_d_reg, V_mode_nunits): Likewise.
6119 * config/arm/vec-common.md (VALL): Move to new file.
6120 (VALLW, VINT, VINTW): Likewise.
ceddf62c 6121
5466d63d
BS
61222010-08-10 Bernd Schmidt <bernds@codesourcery.com>
6123
6124 PR middle-end/45182
6125 * combine.c (make_compound_operation): Don't try to convert
6126 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
6127
e80c2726
RG
61282010-08-10 Richard Guenther <rguenther@suse.de>
6129
6130 * tree.h (get_object_alignment): Adjust prototype.
6131 * builtins.c (get_object_alignment): Return unsigned int,
6132 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
6133 and TARGET_MEM_REF properly.
6134 (get_pointer_alignment): Adjust.
6135 * emit-rtl.c (get_mem_align_offset): Adjust comment.
6136 (set_mem_attributes_minus_bitpos): Adjust.
6137 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
6138
a024390f
RG
61392010-08-10 Richard Guenther <rguenther@suse.de>
6140
6141 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
6142 (copy_prop_visit_assignment): Simplify.
6143 (copy_prop_visit_stmt): Also visit assignments from
6144 constants.
6145 (copy_prop_visit_phi_node): Use operand_equal_p.
6146
ff61e417
NF
61472010-08-09 Nathan Froyd <froydnj@codesourcery.com>
6148
6149 * ipa-split.c (find_split_points): Free stack.
6150
5a351c3c
NF
61512010-08-09 Nathan Froyd <froydnj@codesourcery.com>
6152
6153 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
6154 * tree.c (tree_node_kind): Delete corresponding entries.
6155
0c9510ab
L
61562010-08-09 H.J. Lu <hongjiu.lu@intel.com>
6157
6158 * alias.c (may_alias_p): Remove unused ret.
6159
c6ea834c
BM
61602010-08-09 Bingfeng Mei <bmei@broadcom.com>
6161
6162 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
6163 alias_sets_conflict_p.
6164 (walk_mems_1): Moved from alias.c.
6165 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
a96ad348 6166 in alias.c.
ef7e0035
UB
6167 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
6168 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
6169 * alias.c (walk_mems_2): Moved to ddg.c.
c6ea834c
BM
6170 (walk_mems_1): Ditto.
6171 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
6172 to ddg.c.
6173 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
6174 disambiguation.
6175 *(may_alias_p): New function to check whether two memory expression
6176 may alias or not. Currently used in buidling inter-iteration memory
6177 dependence.
6178 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
6179 (insn_alias_sets_conflict_p): Removed
6180 *rtl.h (may_alias_p): New function prototype.
a96ad348 6181
72ac05b0
NF
61822010-08-09 Nathan Froyd <froydnj@codesourcery.com>
6183
6184 * tree.c (nreverse): Assert that we don't have a BLOCK.
6185
f38958e8
NF
61862010-08-09 Nathan Froyd <froydnj@codesourcery.com>
6187
6188 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
6189 * config/arm/arm.c (arm_get_pcs_model): Likewise.
6190 * config/avr/avr.c (init_cumulative_args): Likewise.
6191 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6192 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6193 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
6194 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
6195 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
6196 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6197 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
6198 * dwarf2out.c (gen_subprogram_die): Likewise.
6199 * function.c (allocate_struct_function): Likewise.
6200 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
6201 (deserves_ellipsis): Delete.
6202
ec64af64
RG
62032010-08-09 Richard Guenther <rguenther@suse.de>
6204
6205 * tree-ssa-copy.c (cached_last_copy_of): Remove.
6206 (valueize_val): New function.
6207 (get_last_copy_of): Remove.
6208 (set_copy_of_val): Simplify.
6209 (dump_copy_of): Likewise.
6210 (copy_prop_visit_cond_stmt): Use valueize_val.
6211 (copy_prop_visit_phi_node): Properly handle unvisited names.
6212 Drop code managing copy-of chains.
6213 (init_copy_prop): Adjust.
6214 (fini_copy_prop): Likewise.
6215 (execute_copy_prop): Remove obsolete comment.
6216
37609bf0
RG
62172010-08-09 Richard Guenther <rguenther@suse.de>
6218
6219 PR middle-end/44632
6220 * function.c (gimplify_parameters): Do not clear addressable
6221 bit of the original parameter.
6222
3e32c761
RG
62232010-08-09 Richard Guenther <rguenther@suse.de>
6224
6225 PR middle-end/45212
6226 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
6227 alignment from MEM_REF offset only if we took it from the
6228 base object.
6229
74164603 62302010-08-09 Eric Fisher <joefoxreal@gmail.com>
cee00e22
EF
6231
6232 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
6233
b3399d18
NF
62342010-08-08 Nathan Froyd <froydnj@codesourcery.com>
6235
6236 * c-tree.h (build_arg_info): Declare.
6237 * c-decl.c (build_arg_info): Define.
6238 (get_parm_info): Call it. Delete initialization code.
6239 * c-parser.c (c_parser_parms_declarator): Likewise.
6240 (c_parser_parms_list_declaractor): Likewise.
6241
e60bf9d4
NF
62422010-08-08 Nathan Froyd <froydnj@codesourcery.com>
6243
6244 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
6245 (struct c_arg_info): Change type of tags field.
6246 * c-decl.c (grokdeclarator): Update for changed type of tags field.
6247 (get_parm_info): Likewise.
6248 (store_parm_decls_newstyle): Likewise.
6249
e7c64c7d
NF
62502010-08-08 Nathan Froyd <froydnj@codesourcery.com>
6251
6252 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
6253 (branch_island_list): Delete.
6254 (branch_islands): Declare.
6255 (add_compiler_branch_island): Adjust for branch_islands instead of
6256 branch_island_list.
6257 (macho_branch_islands): Likewise.
6258 (no_previous_def): Likewise.
6259 (get_prev_label): Likewise.
6260
cf00499e
JDA
62612010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6262
6263 PR boehm-gc/34544
6264 * gthr-posix.h (__gthread_start): Delete.
6265 (__gthread_active_init): Use pthread_default_stacksize_np instead of
6266 pthread_create to determine if hpux pthreads are active.
6267 * gthr-posix95.h (__gthread_start): Delete.
6268 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
6269
1159da44
KT
62702010-08-08 Kai Tietz <kai.tietz@onevision.com>
6271
6272 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
6273 _WIN64 not expanded.
6274
f6ddf131
UB
62752010-08-07 Uros Bizjak <ubizjak@gmail.com>
6276 H.J. Lu <hongjiu.lu@intel.com>
6277
6278 PR target/45213
6279 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
6280 to output 32bit SFmode immediate as 8 byte sign extended value.
6281
17fec01d
MS
62822010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
6283
6284 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6285 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6286 (SUBWORD_BOOL_CAS): Likewise.
6287 (SUBWORD_SYNC_OP): Likewise.
6288 (SUBWORD_TEST_AND_SET): Likewise.
6289 (FETCH_AND_OP_WORD): Parenthesise INF_OP
6290 (SUBWORD_SYNC_OP): Likewise.
6291 (OP_AND_FETCH_WORD): Likewise.
6292
b0c13111
RR
62932010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6294
f6ddf131
UB
6295 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
6296 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
6297 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
6298 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
6299 generic part.
6300 (cortex_a9_sched_adjust_cost): New function.
6301 (xscale_sched_adjust_cost): New function.
6302 * config/arm/arm-protos.h (struct tune_params): New field
6303 sched_adjust_cost.
6304 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
b0c13111 6305
e0c7ff23
EB
63062010-08-06 Eric Botcazou <ebotcazou@adacore.com>
6307
6308 PR target/44942
6309 * config/sparc/sparc.c (function_arg_advance): Always take into account
6310 the padding, if any.
6311
0b4b14ac
RG
63122010-08-06 Richard Guenther <rguenther@suse.de>
6313
6314 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
6315 (dump_lattice_value): Dump it.
6316 (get_default_value): Adjust.
6317 (get_constant_value): Likewise.
6318 (set_value_varying): Likewise.
6319 (set_lattice_value): Make sure to not go up the lattice
6320 with bitwise constant values.
6321 (get_value_for_expr): Handle ADDR_EXPRs.
6322 (value_to_double_int): New function.
6323 (get_value_from_alignment): Likewise.
6324 (do_dbg_cnt): Adjust.
6325 (ccp_lattice_meet): Handle partially constant values.
6326 (bit_value_unop_1): New function.
6327 (bit_value_binop_1): Likewise.
6328 (bit_value_unop): Likewise.
6329 (bit_value_binop): Likewise.
6330 (evaluate_stmt): Track partially constant values if
6331 flag_tree_bit_ccp is set.
6332 (ccp_fold_stmt): Dump if we folded a predicate.
6333 (ccp_visit_stmt): Adjust.
6334 * common.opt (ftree-bit-ccp): New flag.
6335 * doc/invoke.texi (ftree-bit-ccp): Document.
6336 * opts.c (decode_options): Enable bit-CCP at -O1.
6337
4942323e
AM
63382010-08-06 Alan Modra <amodra@gmail.com>
6339
6340 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
6341 and -mrelocatable-lib description.
6342
5444da31
BS
63432010-08-05 Bernd Schmidt <bernds@codesourcery.com>
6344
6345 From Martin Thuresson <martint@google.com>
6346 * postreload.c (reload_cse_simplify_operands): Use
6347 SET_REGNO_RAW instead of SET_REGNO.
6348 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
6349 SET_REGNO.
6350 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
6351 instead of SET_REGNO.
6352 * rtl.h (SET_REGNO_RAW): New macro.
6353
c04fc4f0
EB
63542010-08-05 Eric Botcazou <ebotcazou@adacore.com>
6355
6356 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
6357 computations. Fix formatting issues.
6358 (num_sign_bit_copies1): Likewise.
6359 (canonicalize_condition): Likewise.
6360
bd95721f
RH
63612010-08-05 Richard Henderson <rth@redhat.com>
6362
6363 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
6364 (floor_log2): Use clz_hwi.
6365 (exact_log2): Use ctz_hwi.
6366 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
6367 * builtins.c (fold_builtin_bitop): Use them.
6368 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6369 * combine.c (get_pos_from_mask): Use ctz_hwi.
6370 * double-int.c (double_int_ctz): Likewise.
6371 * explow.c (force_reg): Likewise.
6372 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
6373
55b324a6
RH
63742010-08-05 Richard Henderson <rth@redhat.com>
6375
6376 PR target/45189
6377 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
6378 the alignment constant is properly sign-extended.
6379
29e9efdf
RG
63802010-08-05 Richard Guenther <rguenther@suse.de>
6381
6382 * expr.c (store_expr): Use emit_block_move only if both
6383 source and target are MEMs. Use store_bit_field if only
6384 the target is a MEM.
6385
c3576fa7
RH
63862010-08-05 Richard Henderson <rth@redhat.com>
6387
55b324a6 6388 PR debug/45188
c3576fa7
RH
6389 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
6390 (INCOMING_RETURN_ADDR_RTX): Likewise.
6391 (dwarf2out_do_frame): Remove conditional compilation.
6392 (dwarf2out_frame_init): Likewise.
6393
acdb4da7
NS
63942010-08-05 Nicolas Setton <setton@adacore.com>
6395
6396 * gcov.c (flag_display_progress): New static variable.
6397 (main): Display progress info on standard output if requested.
6398 (options): Add -d/--display-progress.
6399 (print_usage): Print them.
6400 (process_args): Handle them.
6401 * doc/gcov.texi: Document them.
6402
3e66255c
MJ
64032010-08-05 Martin Jambor <mjambor@suse.cz>
6404
6405 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
6406 (ipcp_insert_stage): Redirect only edges not flagged with
6407 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
6408 discovered constants.
6409
3949c4a7
MJ
64102010-08-05 Martin Jambor <mjambor@suse.cz>
6411
6412 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
6413 (struct ipa_param_descriptor): New fields types and
6414 cannot_devirtualize.
6415 (ipa_param_cannot_devirtualize_p): New function.
6416 (ipa_param_types_vec_empty): Likewise.
6417 (ipa_make_edge_direct_to_target): Declare.
6418 * ipa-cp.c: Fixed first stage driver name in initial comment,
6419 described devirtualization there too.
6420 (ipcp_analyze_node): Call ipa_analyze_params_uses.
6421 (ipcp_print_all_lattices): Print devirtualization info.
6422 (ipa_set_param_cannot_devirtualize): New function.
6423 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
6424 lattice to BOTTOM.
6425 (ipcp_init_stage): Merged into...
6426 (ipcp_generate_summary): ...its caller.
6427 (ipcp_change_tops_to_bottom): Also process type lists.
6428 (ipcp_add_param_type): New function.
6429 (ipcp_copy_types): Likewise.
6430 (ipcp_propagate_types): Likewise.
6431 (ipcp_propagate_stage): Also propagate types.
6432 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
6433 Also return true if propagated types require it.
6434 (ipcp_update_callgraph): Dump redirection info.
6435 (ipcp_process_devirtualization_opportunities): New function.
6436 (ipcp_const_param_count): Include known type information.
6437 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
6438 on new node. Fixed formatting.
6439 * ipa-prop.c (make_edge_direct_to_target): Renamed to
6440 ipa_make_edge_direct_to_target and changed all callers. Made
6441 externally visible.
6442 (ipa_node_duplication_hook): Duplicate types vector.
6443 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
6444 redirect outgoing calls for which we can't get a decl from the
6445 statement. Check that we can get a decl from the call statement.
6446 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6447 ipa_analyze_params_uses only when ipa-cp is disabled.
6448 * tree-inline.c (get_indirect_callee_fndecl): Removed.
6449 (expand_call_inline): Do not call get_indirect_callee_fndecl.
6450 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
6451 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
6452
4caa21a1
UB
64532010-08-05 Uros Bizjak <ubizjak@gmail.com>
6454
6455 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
6456 temporary. Emit move from temporary to accum, so REG_EQUAL note will
6457 be attached to this insn in correct mode.
6458
a5b2e0ef
UB
64592010-08-05 Uros Bizjak <ubizjak@gmail.com>
6460
6461 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
6462 using REGNO of base_reg directly.
6463
36b86f4a
JZ
64642010-08-05 Jie Zhang <jie@codesourcery.com>
6465
6466 PR tree-optimization/45144
6467 * tree-sra.c (type_consists_of_records_p): Return false
6468 if the record contains bit-field.
6469
9bf40564
RH
64702010-08-04 Richard Henderson <rth@redhat.com>
6471
106c3c10
RH
6472 * config/i386/i386.c (struct ix86_frame): Remove padding and
6473 to_allocate members.
6474 (ix86_compute_frame_layout): Don't store them.
6475 (ix86_can_use_return_insn_p): Use a more direct and more obviously
6476 correct condition for the position of the stack pointer.
6477 (ix86_expand_prologue): Compute remaining stack allocation based
6478 on the ultimate stack pointer offset.
6479 (ix86_expand_epilogue): Use more obvious expressions testing for
6480 the stack pointer already pointing to the saved registers.
6481
87ec2632
RH
6482 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
6483 duplication deconstructing the frame pointer. Simplify
6484 deallocation of the local stack frame.
6485
c9f4c451
RH
6486 * reg-notes.def (CFA_EXPRESSION): New.
6487 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6488 (dwarf2out_frame_debug_cfa_expression): New.
6489 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
6490
6491 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
6492 * config/i386/i386.c (ix86_expand_prologue): Set it.
6493 (ix86_expand_epilogue): Clear it.
6494 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
6495 context, add REG_CFA_EXPRESSION notes.
6496
ec7ded37
RH
6497 * config/i386/i386.h (struct machine_frame_state): Rename from
6498 machine_cfa_state. Add members tracking SP and FP regardless
a5b2e0ef 6499 of the current CFA register.
ec7ded37
RH
6500 (ix86_cfa_state): Remove.
6501 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
6502 and sse_reg_save_offset members.
6503 (ix86_compute_frame_layout): Set them.
6504 (gen_push): Increment sp_offset too.
6505 (choose_baseaddr_len, choose_baseaddr): New.
6506 (ix86_emit_save_reg_using_mov): New.
6507 (ix86_emit_save_regs_using_mov): Use it.
6508 (ix86_emit_save_sse_regs_using_mov): Likewise.
6509 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
6510 compare vs the saved red_zone_offset.
6511 (pro_epilogue_adjust_stack): Adjust sp_offset.
6512 (ix86_adjust_stack_and_probe): Likewise.
6513 (ix86_expand_prologue): Set up, use, and validate the new
6514 frame_state_info members. Use gen_frame_mem.
6515 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
6516 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
6517 new frame_state_info members.
6518 (ix86_emit_leave): Likewise.
6519 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
6520 out-of-range stack pointer offsets here.
6521 (ix86_emit_restore_sse_regs_using_mov): Likewise.
6522 (ix86_expand_epilogue): Use and validate the new frame_state_info
6523 members. Break up and simplify the logic selecting the
6524 restore_regs_via_mov code path. Ensure that there will be no
6525 out-of-range stack pointer offsets.
6526
17959958
RH
6527 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
6528
e8dc4658
RH
6529 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
6530 argument name to reflect the expected tree; fix indentation.
6531 (ix86_asm_output_function_label): Output the entire 32-bit
6532 ms_hook here as bytes ...
6533 (ix86_expand_prologue): ... not here as insns. Attach the
6534 unwind info for the ms_hook to a blockage insn.
6535 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
6536 (ix86_ms_bitfield_layout_p): Fix indentation.
6537 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
6538
25502041
RH
6539 * config/i386/i386.c (ix86_using_red_zone): New.
6540 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
6541 ix86_expand_prologue, ix86_force_to_memory): Use it.
6542
cdcb5f26
RH
6543 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
6544 saving the int registers.
6545
9bf40564
RH
6546 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
6547 and DWARF2_UNWIND_INFO conditional compilation.
6548
e78f1a3f
RH
65492010-08-04 Richard Henderson <rth@redhat.com>
6550
6551 PR debug/45171
6552 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
6553 an is_naming_typedef_decl.
6554
fde157f2
BS
65552010-08-04 Bernd Schmidt <bernds@codesourcery.com>
6556
6557 PR rtl-optimization/45162
6558 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
6559 * dce.c (word_dce_process_block): Likewise.
6560
33974673
SE
65612010-08-04 Steve Ellcey <sje@cup.hp.com>
6562
6563 PR target/44583
6564 * config/ia64/constraints.md (Z): New.
6565 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
6566 (xfreg_or_signed_fp01_operand): New.
6567 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
6568 with fr_reg_or_signed_fp01_operand and constraint G with Z.
6569 (subsf3): Ditto.
6570 (*maddsf4): Ditto.
6571 (*msubsf4): Ditto.
6572 (adddf3): Ditto.
6573 (adddf3_trunc): Ditto.
6574 (subdf3): Ditto.
6575 (*subdf3_trunc): Ditto.
6576 (*madddf4): Ditto.
6577 (*madddf4_trunc): Ditto.
6578 (*msubdf4): Ditto.
6579 (*msubdf4_trunc): Ditto.
6580 (addxf3): Replace xfreg_or_fp01_operand with
6581 xfreg_or_signed_fp01_operand and constraint G with Z.
6582 (*addxf3_truncsf): Ditto.
6583 (*addxf3_truncdf): Ditto.
6584 (subxf3): Ditto.
6585 (*subxf3_truncsf): Ditto.
6586 (*subxf3_truncdf): Ditto.
6587 (*maddxf4): Ditto.
6588 (*maddxf4_truncsf): Ditto.
6589 (*maddxf4_truncdf): Ditto.
6590 (*msubxf4): Ditto.
6591 (*msubxf4_truncsf): Ditto.
6592 (*msubxf4_truncdf): Ditto.
6593
55e3bc4c
RG
65942010-08-04 Richard Guenther <rguenther@suse.de>
6595
6596 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
6597 if either alias-set is zero.
6598
455e6d5b
RG
65992010-08-04 Richard Guenther <rguenther@suse.de>
6600
6601 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
6602 * tree-ssa-ccp.c: ... here.
6603 * tree-ssa-copy.c: ... and here.
a5b2e0ef 6604 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
455e6d5b
RG
6605 value_range_t): Move ...
6606 * tree-vrp.c: ... here.
6607 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
6608 (substitute_and_fold): Adjust prototype.
6609 * tree-ssa-propagate.c (replace_uses_in): Adjust.
6610 (replace_phi_args_in): Likewise.
6611 (substitute_and_fold): Take callback to query lattice instead
6612 of pointer to lattice. Replace SSA name defs with lattice
6613 values first.
6614 * tree-ssa-ccp.c (ccp_finalize): Adjust.
6615 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
6616 (get_value): New function.
6617 (fini_copy_prop): Adjust.
6618 * tree-vrp.c (vrp_finalize): Adjust.
6619
48176d81
RG
66202010-08-04 Richard Guenther <rguenther@suse.de>
6621
6622 PR middle-end/45176
6623 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
6624 points-to set for original MEM_REF.
6625
84d77ca6
RG
66262010-08-04 Richard Guenther <rguenther@suse.de>
6627
6628 * tree-ssa-ccp.c (get_constant_value): New function.
6629 (get_rhs_assign_op_for_ccp): Remove.
6630 (valueize_op): New function.
6631 (ccp_fold): Use get_constant_value and valueize_op.
6632 (fold_const_aggregate_ref): Likewise.
6633 (ccp_fold_stmt): Likewise.
6634 (visit_assignment): Simplify.
6635
552cbe64
RG
66362010-08-04 Richard Guenther <rguenther@suse.de>
6637
6638 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
6639 * double-int.h (double_int_ctz): Declare.
6640 * double-int.c (double_int_ctz): New function.
6641
74164603 66422010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
31af8367
HS
6643
6644 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
6645 Define.
6646 picochip_expand_movmemhi : Expand movmem pattern.
6647 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
6648 Declare.
6649 * config/picochip/picochip.md (movmemhi) : New pattern.
6650
f39cd38b
UB
66512010-08-03 Uros Bizjak <ubizjak@gmail.com>
6652
6653 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
6654
29b40d79
BS
66552010-08-03 Bernd Schmidt <bernds@codesourcery.com>
6656
6657 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
6658 NEG as operand of a MULT by merging it with the other operand.
6659 * combine.c (make_compound_operation): Use trunc_int_for_mode when
6660 generating a MULT with constant. Canonicalize PLUS and MINUS involving
6661 MULT.
6662 * config/arm/constraints.md (M): Examine only 32 bits of a
6663 HOST_WIDE_INT.
6664 * config/arm/predicates.md (power_of_two_operand): Likewise.
6665
051de0eb
UW
66662010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6667
6668 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
6669 non-NOTE insns.
6670
241a2b9e
JH
66712010-08-03 Jan Hubicka <jh@suse.cz>
6672
6673 * ipa-split.c (struct split_point): Add split_part_set_retval.
6674 (find_retval): Forward declare.
6675 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
6676 (consider_split): Compute current->split_part_set_retval.
6677 (visit_bb): Do not look into return value.
6678 (split_function): Handle !split_part_set_retval
6679
fc734382
MJ
66802010-08-03 Martin Jambor <mjambor@suse.cz>
6681
6682 * tree-sra.c (completely_scalarize_record): New parameter REF, create
6683 its own access->expr intead of using build_ref_for_offset.
6684
1890bccc
JM
66852010-08-03 Joseph Myers <joseph@codesourcery.com>
6686
6687 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
6688 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
f39cd38b 6689 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
1890bccc
JM
6690 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
6691 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
6692 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
6693 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
6694 DEFAULT_SWITCH_TAKES_ARG.
6695 * config/rx/rx.opt (-patch=): Remove option.
6696 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
6697 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
6698 * doc/invoke.texi (RX Options): Remove -patch=.
6699 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
6700 (option_map): Remove --profile-blocks, --quiet and --silent.
6701
dc91d892
UB
67022010-08-03 Uros Bizjak <ubizjak@gmail.com>
6703
6704 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
6705 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
6706 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
6707 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
6708 Update calls to ix86_expand_compare and ix86_expand_branch.
6709 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
6710 ix86_expand_compare.
6711 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
6712 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
6713 Make static.
6714 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
6715 and ix86_compare_op1. Update calls to ix86_expand_compare.
6716 (ix86_expand_int_movcc): Ditto.
6717 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
6718 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
6719 (ix86_expand_setcc): Ditto.
6720 (ix86_expand_compare): Remove prototype.
6721 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
6722 ix86_compare_op0 and ix86_compare_op1. Update calls
6723 to ix86_expand_branch to directly pass operands[1] and operands[2].
6724 (cbranchxf4): Ditto.
6725 (cbranch<MODEF:mode>4): Ditto.
6726 (cbranchcc4): Ditto.
6727 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
6728 Update calls to ix86_expand_setcc to directly pass operands[2] and
6729 operands[3].
6730 (cstorexf4): Ditto.
6731 (cstore<MODEF:mode>4): Ditto.
6732 (cstorecc4): Ditto.
6733
14292418
BS
67342010-08-02 Bernd Schmidt <bernds@codesourcery.com>
6735
6736 PR target/45063
6737 * caller-save.c (save_call_clobbered_regs): Remove regs from
6738 hard_regs_saved when they are set.
6739
fea8c257
UB
67402010-08-02 Uros Bizjak <ubizjak@gmail.com>
6741
6742 PR target/41089
6743 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
6744 as volatile.
6745
20769d5e
SP
67462010-08-02 Sebastian Pop <sebastian.pop@amd.com>
6747
6748 * common.opt (ftree-loop-distribute-patterns): New.
6749 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
6750 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
6751 at -O3.
6752 * tree-data-ref.c (stores_zero_from_loop): New.
6753 * tree-data-ref.h (stores_zero_from_loop): Declared.
6754 * tree-loop-distribution.c (tree_loop_distribution): Call
6755 stores_zero_from_loop.
6756 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
6757
f37e278a
BS
67582010-08-02 Bernd Schmidt <bernds@codesourcery.com>
6759
6760 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
6761 into account.
6762
906668bb
BS
6763 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
6764 * config/arm/arm.c (thumb1_code): New variable.
6765 (arm_override_options): Set it.
6766 (thumb1_final_prescan_insn): Keep track of condition code status.
6767 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
6768 jumps that depend on them.
6769 * config/arm/arm.h (thumb1_code): Declare variable.
6770 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
6771 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
6772 thumb1_cc_mode.
6773 (CC_STATUS_INIT): New macro.
6774 * config/arm/constraints.md (Pd): New constraint.
6775 * config/arm/predicates.md (noov_comparison_operator): New predicate.
6776 * config/arm/arm.md (is_thumb1): New define_attr.
6777 (conds): Set default to "clob" when generating Thumb1 code.
6778 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
6779 code are set. Use two-operand assembly syntax.
6780 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
6781 pattern.
6782 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
6783 codes are set. Use two-operand assembly syntax.
6784 (zero_extendhisi splitter): Remove constraints.
6785 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
6786 thumb1_movsf_insn): Set conds attribute as appropriate.
6787 (cbranchsi4_insn): Use condition code status from struct
6788 machine_function to determine whether the comparison can be eliminated.
6789 Discourage the alternative using high registers.
6790 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
6791 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
6792 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
6793 subsi3_cbranch): Delete.
6794 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
6795 one subtract and one cbranch insn.
6796
0bd44ba2
BS
6797 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
6798 thumb2_movdf_soft_insn): Delete patterns.
6799 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
6800 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
6801 (pool_range, neg_pool_range): Use them to define defaults.
6802 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
6803 and allow for TARGET_32BIT.
6804
37119410
BS
6805 PR target/40457
6806 * config/arm/arm.h (arm_regs_in_sequence): Declare.
6807 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
6808 load_multiple_sequence, store_multiple_sequence): Delete
6809 declarations.
6810 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
6811 declarations.
6812 * config/arm/ldmstm.md: New file.
6813 * config/arm/arm.c (arm_regs_in_sequence): New array.
6814 (load_multiple_sequence): Now static. New args SAVED_ORDER,
6815 CHECK_REGS. All callers changed.
6816 If SAVED_ORDER is nonnull, copy the computed order into it.
6817 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
6818 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
6819 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
6820 If SAVED_ORDER is nonnull, copy the computed order into it.
6821 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
6822 like REGS. Handle Thumb mode.
6823 (arm_gen_load_multiple_1): New function, broken out of
6824 arm_gen_load_multiple.
6825 (arm_gen_store_multiple_1): New function, broken out of
6826 arm_gen_store_multiple.
6827 (arm_gen_multiple_op): New function, with code from
6828 arm_gen_load_multiple and arm_gen_store_multiple moved here.
6829 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
6830 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
6831 changed.
6832 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
6833 * config/arm/predicates.md (commutative_binary_operator): New.
6834 (load_multiple_operation, store_multiple_operation): Handle more
6835 variants of these patterns with different starting offsets. Handle
6836 Thumb-1.
6837 * config/arm/arm.md: Include "ldmstm.md".
6838 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
6839 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
6840 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
6841 peepholes): Delete.
6842 * config/arm/ldmstm.md: New file.
6843 * config/arm/arm-ldmstm.ml: New file.
6844
13cc4787
BS
6845 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
6846 if statement which adds extra costs to frame-related expressions.
6847
0eeeef07
RR
68482010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6849
6850 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
6851
22db1fbc
UB
68522010-08-01 Uros Bizjak <ubizjak@gmail.com>
6853
6854 PR target/45142
6855 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
6856 alternative 2.
b146446c 6857 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
22db1fbc
UB
6858 split V4SI operands.
6859
501d087d
AS
68602010-08-01 Anatoly Sokolov <aesok@post.ru>
6861
6862 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6863 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
6864 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
6865 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
6866
da46381f
KT
68672010-07-31 Kai Tietz <kai.tietz@onevision.com>
6868
6869 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
6870 LOCAL_INCLUDE_DIR.
6871
9eab7f91
RS
68722010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
6873
6874 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
6875 used in the call to optab_for_tree_code. Fix the second
6876 is_widening_mult_p call. Check that both unwidened operands
6877 have the same sign.
6878
6601202c
JT
68792010-07-31 John Tytgat <John.Tytgat@aaug.net>
6880
6881 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
6882
08cbf291
AS
68832010-07-31 Anatoly Sokolov <aesok@post.ru>
6884
6885 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6886
cf6521b4
DD
68872010-07-30 DJ Delorie <dj@redhat.com>
6888
6889 * config/rx/predicates.md (rx_constshift_operand): New.
6890 * config/rx/rx.md (zs_cond): New.
6891 (cbranchsi4): Remove mode.
6892 (*cbranchsi4_<code>): Likewise.
6893 (*tstbranchsi4_<code>): New.
6894 (*tstbranchsi4r_<code>): New.
6895 (*tstbranchsi4m_eq): New.
6896 (*tstbranchsi4m_ne): New.
6897 (cbranchsf4): Remove mode.
6898 (*cbranchsf4_<code>): Likewise.
6899
d4e0d036
BS
69002010-07-30 Bernd Schmidt <bernds@codesourcery.com>
6901
6902 * rtlanal.c (simplify_subreg_regno): Don't treat
6903 HARD_FRAME_POINTER_REGNUM specially.
6904
34251c0e
JM
69052010-07-30 Joseph Myers <joseph@codesourcery.com>
6906
6907 * common.opt (-G): Don't define option here.
6908 * config/g.opt: New.
6909 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
6910 rs6000/powerpc and score targets.
6911 * opts.c (common_handle_option): Don't handle -G here.
6912 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
6913 * config/frv/frv.c (frv_handle_option): Handle -G.
6914 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
22db1fbc 6915 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
34251c0e
JM
6916 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
6917 * config/mips/mips.c (mips_handle_option): Handle -G.
6918 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
6919 * config/score/score.c (score_handle_option): Handle -G.
6920
2d5bfc67
AS
69212010-07-30 Anatoly Sokolov <aesok@post.ru>
6922
6923 * config/mmix/mmix.c: Include basic-block.h.
6924
f0fc0803
JJ
69252010-07-30 Jakub Jelinek <jakub@redhat.com>
6926
6927 PR debug/45055
6928 PR rtl-optimization/45137
6929 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
6930 prototypes.
6931 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
6932 New functions.
6933 * combine.c (next_nonnote_nondebug_insn): Removed.
6934 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
6935 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
6936 * sched-deps.c (sched_analyze_insn): Likewise.
6937 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
6938 * rtlanal.c (canonicalize_condition): Likewise.
6939 * postreload.c (reload_combine_recognize_pattern): Likewise.
6940 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
6941
f53ea4f0
UB
69422010-07-29 Uros Bizjak <ubizjak@gmail.com>
6943
6944 * config/i386/i386.md (int_cond): Remove code iterator.
6945 (fp_cond): Ditto.
6946 (cbranch<mode>4): Use ordered_comparison_operator predicate
6947 for operator0.
6948 (cstore<mode>4): Ditto for operator1.
8aadc2f3
UB
6949 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
6950 (add<mode>cc): ditto.
f53ea4f0 6951
1f60f74e
RG
69522010-07-30 Richard Guenther <rguenther@suse.de>
6953
6954 PR middle-end/45141
6955 * expr.c (expand_expr_real_1): Check for not handled base address.
6956
4eb3f32c
RG
69572010-07-30 Richard Guenther <rguenther@suse.de>
6958
6959 * ipa-prop.c (ipa_modify_formal_parameters): Use
6960 build_distinct_type_copy.
6961
1242723c
AG
69622010-07-30 Anthony Green <green@moxielogic.com>
6963
6964 * config/moxie/rtems.h: New file.
6965 * config.gcc: Add moxie-rtems support.
6966
25aef556
BS
69672010-07-29 Bernd Schmidt <bernds@codesourcery.com>
6968
6969 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
6970 df flags as in run_fast_df_dce.
6971
0f953f83
JJ
69722010-07-29 Jakub Jelinek <jakub@redhat.com>
6973
6974 Revert:
f53ea4f0
UB
6975 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
6976
0f953f83 6977 * rtl.def (NOTE): Swap operands 4 and 5.
f53ea4f0 6978 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
0f953f83
JJ
6979 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
6980 Adjust accordingly.
f53ea4f0 6981 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
0f953f83 6982
8b522bef
JJ
69832010-07-29 Jakub Jelinek <jakub@redhat.com>
6984
6985 PR debug/45110
6986 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
6987 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
6988 (gen_subprogram_die): Likewise. Remove it when removing declaration's
6989 formal parameters.
6990 (gen_decl_die): Change return type to dw_die_ref, return what
6991 gen_formal_parameter_die returned.
6992
a1a6c2df
MJ
69932010-07-29 Martin Jambor <mjambor@suse.cz>
6994
6995 * dbgcnt.def (eipa_sra): New counter.
6996 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
6997
0c5bb946
XDL
69982010-07-29 Xinliang David Li <davidxl@google.com>
6999
7000 PR bootstrap/45119
7001 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
7002 in revision 162652.
7003
2c2fbff7
RG
70042010-07-29 Richard Guenther <rguenther@suse.de>
7005
7006 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
7007 (TV_TREE_STORE_CCP): Likewise.
7008 (TV_TREE_REDPHI): Likewise.
7009
70102010-07-29 Richard Guenther <rguenther@suse.de>
950f7f45
RG
7011
7012 * double-int.h (double_int_and_not): New function.
7013 * combine.c (try_combine): Use it.
7014 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
7015
8d074192
BS
70162010-07-29 Bernd Schmidt <bernds@codesourcery.com>
7017
7018 PR rtl-optimization/42575
7019 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
7020 Argument AU removed. All callers changed. Ignore artificial refs.
7021 Use return value of df_word_lr_simulate_defs to decide whether an insn
7022 is necessary.
7023 (fast_dce): Rename arg to WORD_LEVEL.
7024 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
7025 static.
7026 (pass_fast_rtl_byte_dce): Delete.
7027 * dce.h (run_word_dce): Declare.
7028 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
7029 All callers changed. Simplify code to only deal with two-word regs.
7030 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
7031 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
7032 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
7033 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
7034 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
7035 (df_word_lr_mark_ref): Declare.
7036 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
7037 df_word_lr_simulate_uses): Declare or rename from byte variants.
7038 (df_byte_lr_simulate_artificial_refs_at_top,
7039 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7040 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
7041 declarations.
7042 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
7043 (enum df_mm): Delete.
7044 * df-byte-scan.c: Delete file.
7045 * df-problems.c (df_word_lr_problem_data): Renamed from
7046 df_byte_lr_problem_data, all members deleted except for
7047 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
7048 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
7049 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7050 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
7051 df_byte_lr_confluence_0): Delete functions.
7052 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
7053 callers changed.
7054 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
7055 Don't initialize members that were deleted, don't try to discover data
7056 about registers. Ignore hard regs.
7057 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
7058 (df_word_lr_mark_ref): New function.
7059 (df_word_lr_bb_local_compute): Renamed from
7060 df_byte_bb_lr_local_compute; all callers changed. Use
7061 df_word_lr_mark_ref. Assert that artificial refs don't include
7062 pseudos. Ignore hard registers.
7063 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
7064 Assert that exit block uses don't contain pseudos.
7065 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
7066 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
7067 callers changed. Ignore hard regs.
7068 (df_word_lr_transfer_function): Renamed from
7069 df_byte_lr_transfer_function; all callers changed.
7070 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
7071 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
7072 changed.
7073 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
7074 callers changed.
7075 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
7076 confluence operator 0 set to NULL.
7077 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
7078 callers changed.
7079 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
7080 Return bool, true if bitmap changed or insn otherwise necessary.
7081 All callers changed. Simplify using df_word_lr_mark_ref.
7082 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
7083 all callers changed. Simplify using df_word_lr_mark_ref.
7084 * lower-subreg.c: Include "dce.h"
7085 (decompose_multiword_subregs): Call run_word_dce if df available.
7086 * Makefile.in (lower-subreg.o): Adjust dependencies.
7087 (df-byte-scan.o): Delete.
7088 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
7089
9b638c03
RG
70902010-07-29 Richard Guenther <rguenther@suse.de>
7091
7092 * tree.c (build_vector): Assert that the vector constant
7093 has enough elements.
7094 (build_vector_from_ctor): Pad with trailing zeros.
7095
1c09321c
RG
70962010-07-29 Richard Guenther <rguenther@suse.de>
7097
7098 PR tree-optimization/45120
7099 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7100 Handle offset in DEREFs properly.
7101 (get_constraint_for_1): Handle MEM_REF offset properly.
7102
6befd6b0
RG
71032010-07-29 Richard Guenther <rguenther@suse.de>
7104
7105 PR middle-end/45034
7106 * convert.c (convert_to_integer): Always use an unsigned
7107 type for narrowed negate and bitwise not.
7108
61869cc9
IR
71092010-07-29 Ira Rosen <irar@il.ibm.com>
7110
7111 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
f53ea4f0 7112 to outer loop when creating reduction epilogue for double reduction,
61869cc9
IR
7113 and switch back to the inner loop when updating the phi nodes.
7114 Update uses of outer loop exit phi nodes in double reduction (instead
7115 of uses of reduction).
7116
8119a6a6
MM
71172010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
7118
7119 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
7120 popcount on power7 and parity on power6 systems.
7121 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
7122 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
7123 instructions.
7124
7125 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
7126 (UNSPEC_PARITY): Ditto.
7127 (SFDF): New iterator for SF/DF.
7128 (rreg2): New mode attribute for floating register constraint.
7129 (TARGET_FLOAT): New mode attribute for whether single/double float
7130 is supported.
7131 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
7132 pattern.
7133 (parity<mode>2_cmpb): New insn for parity on power6 and newer
7134 machines.
7135 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
7136 pattern. Add support for fcpsgn instruction added in power6.
7137 (copysignsf3): Delete.
7138 (copysigndf3): Delete.
7139 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
7140 instead of if_then_else in RTL to avoid problems with -0.
7141
7142 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
7143 of if_then_else to mirror scalar code.
7144 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
7145 rs6000.md.
7146
7147 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
7148 instead of if_then_else.
7149
18081149
XDL
71502010-07-28 Xinliang David Li <davidxl@google.com>
7151
7152 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
7153 (dump_cand): Dump var_before/after.
7154 (htab_inv_expr_eq): New function.
7155 (htab_inv_expr_hash): New function.
7156 (tree_ssa_iv_optimize_init): Support pseudo invariants.
7157 (add_candidate_1): consider base type precision.
7158 (set_use_iv_cost): New parameter.
7159 (adjust_setup_cost): Use profile information.
7160 (get_address_cost): Do not hard code width in computing address
7161 offset limits.
7162 (compare_aff_trees): New function.
7163 (get_loop_invariant_expr_id): New function.
7164 (get_computation_cost_at): New parameter and use profile information.
7165 (get_computation_cost): New parameter.
7166 (determine_use_iv_cost_generic): Pass new parameter.
7167 (determine_use_iv_cost_address): Ditto.
7168 (determine_use_iv_cost_condition): Ditto.
7169 (autoinc_possible_for_pair): Ditto.
7170 (determine_use_iv_costs): More dumps.
7171 (iv_ca_get_num_inv_exprs): New function.
7172 (iv_ca_recount_cost): Consider loop invariants in register pressure
7173 cost.
7174 (iv_ca_add_use): New parameter.
7175 (iv_ca_dump): Better dumping.
7176 (iv_ca_extend): New parameter.
7177 (try_add_cand_for): Attempt to get better partial solution.
7178 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
7179 (create_new-ivs): More dumps.
7180 (rewrite_use_compare): Ditto.
7181 (free_loop_data): More cleanup.
7182 (treee_ssa_iv_optimize_finalize): Ditto.
7183
3c5273a9
KT
71842010-07-28 Kai Tietz <kai.tietz@onevision.com>
7185
7186 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
7187 * config/i386/i386.c (ix86_profile_before_prologue): New.
7188 (override_options): Add special handling for -mfentry.
7189 (ix86_function_regparm): Likewise.
7190 (ix86_function_sseregparm): Likewise.
7191 (ix86_frame_pointer_required): Likewise.
7192 (ix86_expand_prologue): Check for ms_hook_prologue.
7193 (x86_function_profiler): Adjust mcount output.
7194 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
7195 * config/i386/i386.opt (mfentry): New.
7196 * doc/invoke.texi (mfentry): Add documentation.
7197 * doc/tm.texi: Regenerated..
7198 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
7199 * final.c (final_start_function): Replace macro
7200 PROFILE_BEFORE_PROLOGUE by target hook.
7201 * function.c (thread_prologue_and_epilogue_insns): Likewise.
7202 * target.def (profile_before_prologue): New hook.
7203 * targhooks.c (default_profile_before_prologue): New.
7204 * targhooks.h (default_profile_before_prologue): New.
7205
652c4638
JJ
72062010-07-28 Jakub Jelinek <jakub@redhat.com>
7207
05b5ea34
JJ
7208 PR debug/45105
7209 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
7210
652c4638
JJ
7211 PR debug/45103
7212 * dwarf2out.c (dwarf2out_var_location): Always consider
7213 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
7214
fb039b24
MK
72152010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
7216
7217 PR rtl-optimization/45107
7218 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
7219
7a95d078
RG
72202010-07-28 Richard Guenther <rguenther@suse.de>
7221
7222 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
7223 (set_lattice_value): Do not query an old default value.
7224 (get_value_for_expr): New function. Properly canonicalize
7225 float values.
7226 (ccp_visit_phi_node): Use it.
7227
12ffc7d5
CLT
72282010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
7229
7230 * config/arm/arm.c (arm_pcs_default): Remove static.
7231 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
7232 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
7233 (arm_pcs_default): Declare.
7234
b2a0ce24
IS
72352010-07-28 Iain Sandoe <iains@gcc.gnu.org>
7236
f53ea4f0 7237 * config/rs6000/rs6000.c (rs6000_override_options):
b2a0ce24
IS
7238 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
7239 ... to darwin_rs6000_override_options.
7240 (rs6000_return_in_memory): Update preceding comment for darwin
7241 64 bit ABI. Use TARGET_MACHO inline.
7242 (rs6000_darwin64_struct_check_p): New.
7243 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
7244 (function_arg): Likewise.
7245 (rs6000_arg_partial_bytes): Likewise.
7246 (rs6000_function_value): Likewise.
7247
74164603 72482010-07-28 Andi Kleen <ak@linux.intel.com>
c71eb2b7
AK
7249
7250 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
7251
3abd6c1a
RG
72522010-07-28 Richard Guenther <rguenther@suse.de>
7253
7254 PR middle-end/44903
7255 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
7256 targets try harder to not generate unaligned accesses.
7257
4bcaf354
MK
72582010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
7259
7260 PR rtl-optimization/45101
7261 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
7262 for gcse-las.
7263
c2cf2f4a
EB
72642010-07-28 Eric Botcazou <ebotcazou@adacore.com>
7265
7266 PR tree-optimization/44885
7267 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
7268 with non-aliased component.
7269
eea13ead
JM
72702010-07-28 Joseph Myers <joseph@codesourcery.com>
7271
7272 * config/darwin-driver.c (SWITCH_TAKES_ARG,
7273 WORD_SWITCH_TAKES_ARG): Remove.
7274 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7275 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
7276 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
7277 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
7278 definitions from gcc.c.
7279 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
7280 defaults.h.
7281 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
7282 Move to defaults.h.
7283 * opts-common.c: Include tm.h.
7284 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
7285 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
7286 Handle more than one argument. Set canonical_option_num_elements.
7287 (decode_cmdline_options_to_array): Set
7288 canonical_option_num_elements and trailing elements of
7289 canonical_option.
7290 * opts.h (struct cl_decoded_option): Allow four elements in
7291 canonical_option. Add field canonical_option_num_elements.
7292 * Makefile.in (opts-common.o): Update dependencies.
7293
b4351367
EB
72942010-07-28 Eric Botcazou <ebotcazou@adacore.com>
7295
7296 PR middle-end/44790
7297 PR middle-end/44993
7298 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
7299 sure the base has address_mode before adding the offset.
7300
74164603 73012010-07-27 Xinliang David Li <davidxl@google.com>
b4351367 7302
880a1451
XDL
7303 * tree-flow.h (create_mem_ref): Add one new parameter.
7304 * tree-ssa-address.c (create_mem_ref): New parameter.
7305 (addr_to_parts): Ditto.
7306 (move_variant_to_index): New function.
7307 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
7308
418e920f
BS
73092010-07-27 Bernd Schmidt <bernds@codesourcery.com>
7310
7311 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
7312 4 and 5.
7313 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
7314 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
7315 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
7316 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
7317 CODE_LABELs and NOTEs.
7318 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
7319 * combine.c (try_combine): Likewise.
7320 * ira.c (setup_prohibited_mode_move_regs): Likewise.
7321 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
7322
5f20c657
JM
73232010-07-27 Joseph Myers <joseph@codesourcery.com>
7324
7325 * coretypes.h (struct cl_option_handlers): Declare.
7326 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
7327 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
7328 * langhooks-def.h (lhd_handle_option): Declare.
7329 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
7330 * langhooks.c (lhd_handle_option): New.
7331 * langhooks.h (struct lang_hooks): Update prototype and return
7332 value type of handle_option hook.
7333 * optc-gen.awk: Generate target_flags_explicit definition for the
7334 driver.
7335 * opts-common.c: Include diagnostic.h.
7336 (handle_option): Move from opts.c. Update prototype and return
7337 value type. Use handlers structure.
7338 (read_cmdline_option): Move from opts.c. Update prototype. Use
7339 handlers structure.
7340 (set_option): Move from opts.c.
7341 * opts.c (common_handle_option): Update prototype and return value
7342 type. Update calls to handle_option and enable_warning_as_error.
7343 (unknown_option_callback, post_handling_callback,
7344 lang_handle_option, target_handle_option): New.
7345 (handle_option, read_cmdline_option): Move to opts-common.c.
7346 (read_cmdline_options): Update prototype. Update call to
7347 read_cmdline_option.
7348 (decode_options): Initialize and use handlers structure.
7349 (set_option): Move to opts-common.c.
7350 (enable_warning_as_error): Update prototype. Update call to
7351 handle_option.
7352 * opts.h (struct cl_option_handler_func, struct
7353 cl_option_handlers): New.
7354 (handle_option, enable_warning_as_error): Update prototypes.
7355 (read_cmdline_option): Declare.
7356 * Makefile.in (opts-common.o): Update dependencies.
7357
ec3728ad
MK
73582010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7359
7360 * config/arm/arm.c (params.h): Include.
7361 (arm_override_options): Tune gcse-unrestricted-cost.
7362 * config/arm/t-arm (arm.o): Define dependencies.
7363
cad9aa15
MK
73642010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7365
7366 PR target/42495
7367 PR middle-end/42574
7368 * basic-block.h (get_dominated_to_depth): Declare.
7369 * dominance.c (get_dominated_to_depth): New function, use
7370 get_all_dominated_blocks as a base.
7371 (get_all_dominated_blocks): Use get_dominated_to_depth.
7372
7373 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
7374 (hoist_exprs): Remove.
7375 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
7376 (compute_code_hoist_vbeinout): Add debug print outs.
7377 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
7378
7379 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
7380 quadratic behavior.
7381 * params.h (MAX_HOIST_DEPTH): New macro.
7382 * doc/invoke.texi (max-hoist-depth): Document.
7383
9b9ee6d3
MK
73842010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7385
7386 PR rtl-optimization/40956
7387 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
7388 constants.
7389
d37c3c62
MK
73902010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7391
7392 PR target/42495
7393 PR middle-end/42574
7394 * config/arm/arm.c (legitimize_pic_address): Use
7395 gen_calculate_pic_address pattern to emit calculation of PIC address.
7396 (will_be_in_index_register): New function.
7397 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
7398 (thumb1_legitimate_address_p): Use it provided !strict_p.
7399 * config/arm/arm.md (calculate_pic_address): New expand and split.
7400
3393e880
MK
74012010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7402
7403 PR target/42495
7404 PR middle-end/42574
7405 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
7406 * config/arm/arm.md (define_split "J", define_split "K"): Make
7407 IRA/reload friendly.
7408
eae7938e
MK
74092010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7410
7411 * gcse.c (insert_insn_end_basic_block): Update signature, remove
7412 unused checks.
7413 (pre_edge_insert, hoist_code): Update.
7414
c7c910ce
MK
74152010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7416
7417 PR target/42495
7418 PR middle-end/42574
7419 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
7420
3d489bc7
MK
74212010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7422
7423 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
7424
ce4c0015
MK
74252010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7426
7427 PR rtl-optimization/40956
7428 PR target/42495
7429 PR middle-end/42574
7430 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
7431 for hoisting.
7432 (hoist_code): Count occurences in current block too.
7433
20160347
MK
74342010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7435
7436 * gcse.c (struct expr:max_distance): New field.
7437 (doing_code_hoisting_p): New static variable.
7438 (want_to_gcse_p): Change signature. Allow constrained hoisting of
7439 simple expressions, don't change behavior for PRE. Set max_distance.
7440 (insert_expr_in_table): Set new max_distance field.
7441 (hash_scan_set): Update.
7442 (hoist_expr_reaches_here_p): Stop search after max_distance
7443 instructions.
7444 (find_occr_in_bb): New static function. Use it in ...
7445 (hoist_code): Calculate sizes of basic block before any changes are
7446 done. Pass max_distance to hoist_expr_reaches_here_p.
7447 (one_code_hoisting_pass): Set doing_code_hoisting_p.
7448
7449 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
7450 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
7451 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
7452 macros.
7453 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
7454 Document.
7455
9b774782
JL
74562010-07-27 Jeff Law <law@redhat.com>
7457 Maxim Kuvyrkov <maxim@codesourcery.com>
7458
7459 * gcse.c (compute_transpout, transpout): Remove, move logic
7460 to prune_expressions.
7461 (compute_pre_data): Move pruning of trapping expressions ...
7462 (prune_expressions): ... here. New static function.
7463 (compute_code_hoist_data): Use it.
7464 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
7465
55791fcd
XDL
74662010-07-27 Xinliang David Li <davidxl@google.com>
7467
7468 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
7469 (rewrite_use_address): Adjust iv update position when needed.
7470
62a3f636
MK
74712010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
7472
7473 * dbgcnt.def (hoist_insn): New debug counter.
7474 * gcse.c (hoist_code): Use it.
7475
e2102efc
XDL
74762010-07-27 Xinliang David Li <davidxl@google.com>
7477
7478 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
7479 (niter_for_single_dom_exit): Passes additional parameter.
7480 (iv_period): Fix comments.
7481 (may_eliminate_iv): Handles multiple exit loops properly.
7482 (free_tree_niter_desc): New function.
7483 (free_loop_data): Frees up loop iteration descriptors.
7484
fea31288
JJ
74852010-07-27 Jakub Jelinek <jakub@redhat.com>
7486
f3184b4c
JJ
7487 PR target/44542
7488 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
7489 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
7490 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
7491 (expand_one_var): Don't consider DECL_ALIGN for variables for
7492 which expand_one_stack_var_at has been already called.
7493
fea31288
JJ
7494 PR testsuite/44701
7495 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
7496 constraints on IA-64.
7497
65e29588
JZ
74982010-07-27 Jie Zhang <jie@codesourcery.com>
7499
7500 PR target/44290
f53ea4f0 7501 Revert:
65e29588 7502 2010-07-23 Jie Zhang <jie@codesourcery.com>
f53ea4f0 7503
65e29588
JZ
7504 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
7505 false if ! tree_versionable_function_p.
7506
9f39bd53
JJ
75072010-07-27 Jakub Jelinek <jakub@redhat.com>
7508
7509 * dwarf2out.c (add_data_member_location_attribute): Use
7510 add_AT_unsigned instead of add_AT_int if offset is non-negative.
7511
a78e242c
BS
75122010-07-27 Bernd Schmidt <bernds@codesourcery.com>
7513
7514 * postreload.c (try_replace_in_use): New static function.
7515 (reload_combine_recognize_const_pattern): Use it here. Allow
7516 substituting into a final add insn, and substituting into a memory
7517 reference in an insn that sets the reg.
7518
61ff2bdc
JM
75192010-07-27 Joseph Myers <joseph@codesourcery.com>
7520
7521 * common.opt (o): Add MissingArgError.
7522 * doc/options.texi (MissingArgError): Document.
7523 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
7524 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
7525 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
f53ea4f0 7526 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
61ff2bdc
JM
7527 * langhooks.h (struct lang_hooks): Remove missing_argument.
7528 * optc-gen.awk: Handle MissingArgError and output new structure
7529 field initializers.
7530 * opts.c (read_cmdline_option): Use missing_argument_error field
7531 instead of missing_argument langhook.
7532 * opts.h (struct cl_option): Add missing_argument_error field.
7533 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
7534
4e98bcaf
IS
75352010-07-27 Iain Sandoe <iains@gcc.gnu.org>
7536
7537 PR target/29090
7538 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
7539 Darwin64 ABI, for zero-sized objects.
7540
a9ab25e2
IS
75412010-07-27 Iain Sandoe <iains@gcc.gnu.org>
7542
7543 PR target/35491
7544 PR target/29090
7545
7546 Merge from Apple local 4.2.1.
7547 2005-05-11 Stan Shebs <shebs@apple.com>
7548 Fix 64-bit varargs for Darwin (Radar 4028089).
7549 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
7550 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
7551 Add argument, add case for 8-byte register half-filled with a float.
7552 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
7553 single-precision floats specially.
7554
2200fc49
IR
75552010-07-27 Ira Rosen <irar@il.ibm.com>
7556
7557 PR tree-optimization/44152
7558 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
7559 complex numbers for further check.
f53ea4f0 7560 (vect_supported_load_permutation_p): Check nodes with
2200fc49
IR
7561 complex numbers.
7562
7a9bf9a4
JM
75632010-07-27 Joseph Myers <joseph@codesourcery.com>
7564
7565 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
7566 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
7567 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
7568 (LANG_HOOKS_INITIALIZER): Add new hooks.
7569 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
7570 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
7571 and complain_wrong_lang_p. Update init_options prototype.
7572 * c-objc-common.c (c_initialize_diagnostics): First call
7573 c_common_initialize_diagnostics.
7574 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
7575 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
a691bb08 7576 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
7a9bf9a4
JM
7577 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
7578 (hook_uint_void_0): New.
7579 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
7580 (hook_uint_void_0): New.
7581 * opts-common.c (decode_cmdline_option,
a691bb08 7582 decode_cmdline_options_to_array): Also fill in canonical_option field.
7a9bf9a4
JM
7583 * opts.c (complain_wrong_lang): Use langhook to determine whether
7584 to complain instead of special-casing LTO.
7585 (decode_options): Separate lang_mask determination with
7586 option_lang_mask hook from call of init_options hook.
7587 * opts.h (struct cl_decoded_option): Add canonical_option.
7588
42694189
JJ
75892010-07-27 Jakub Jelinek <jakub@redhat.com>
7590
7591 PR tree-optimization/45083
7592 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
7593
62036819
BS
75942010-07-27 Bernd Schmidt <bernds@codesourcery.com>
7595
7596 * postreload.c (reload_combine_recognize_const_pattern): Move test
7597 for limiting the insn movement to the right scope.
7598
2b0cb007
BS
7599 PR rtl-optimization/45051
7600 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
7601 than reg_mentioned_p.
7602
8b84c596
RH
76032010-07-26 Richard Henderson <rth@redhat.com>
7604
7605 PR target/44132
7606 * tree-emutls.c: New file.
7607 * Makefile.in (OBJS-common): Add it.
7608 * tree-pass.h (pass_ipa_lower_emutls): Declare.
7609 * passes.c (init_optimization_passes): Add it.
7610
7611 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
7612 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
7613 * expr.c (emutls_var_address): Delete.
7614 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
7615 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
7616 (emutls_finish): Delete.
7617 * toplev.c (compile_file): Don't call it.
7618 * tree.h (emutls_decl): Delete.
7619 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
7620 (emutls_finish, emutls_finalize_control_var): Delete.
7621 (emutls_object_type): Move to tree-emutls.c.
7622 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
7623 default_emutls_var_fields, get_emutls_object_type,
7624 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
7625 default_emutls_var_init): Likewise.
7626 (get_variable_section): Don't special case emutls.
7627 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
7628 default_elf_select_section, default_unique_section,
7629 default_encode_section_info): Likewise.
7630 * varpool.c (decide_is_variable_needed): Likewise.
7631 * gimple-iterator.c (update_call_edge_frequencies): New
7632 (gsi_insert_on_edge_immediate): Use it.
7633 (gsi_insert_seq_on_edge_immediate): Likewise.
7634 (gsi_commit_one_edge_insert): Likewise.
7635
7636 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
7637 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
7638 (x86_64_elf_unique_section): Likewise.
7639
b7956a5b
JH
76402010-07-26 Jan Hubicka <jh@suse.cz>
7641
7642 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
7643 GTY((skip)).
7644
b5f5d41d
AS
76452010-07-26 Anatoly Sokolov <aesok@post.ru>
7646
7647 * target.def (output_source_filename): New hook.
7648 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
7649 * doc/tm.texi: Regenerate.
7650 * toplev.c (output_file_directive) Remove function.
7651 * toplev.h (output_file_directive) Remove.
7652 * output.h (default_asm_output_source_filename,
7653 output_file_directive): Declare.
7654 * varasm.h (default_asm_output_source_filename,
7655 output_file_directive): New functions.
7656
7657 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7658 * config/mips/mips-protos.h (mips_output_filename): Remove.
7659 * config/mips/mips.c (mips_output_filename): Make Static.
7660 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
7661
7f8ac3d7
RG
76622010-07-26 Richard Guenther <rguenther@suse.de>
7663
7664 PR tree-optimization/43784
7665 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
7666 if the destination is used by the call.
7667
edc74207
RG
76682010-07-26 Richard Guenther <rguenther@suse.de>
7669
7670 PR middle-end/45073
7671 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
7672 SSA updating on being in SSA form.
7673
bd422c4a
RG
76742010-07-26 Richard Guenther <rguenther@suse.de>
7675
7676 PR middle-end/45056
a691bb08 7677 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
bd422c4a 7678
e093ffe3
RG
76792010-07-26 Richard Guenther <rguenther@suse.de>
7680
7681 PR tree-optimization/45071
a691bb08 7682 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
e093ffe3
RG
7683 adjust op->opcode.
7684
223a9d64
N
76852010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
7686
7687 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
7688 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
7689 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
7690 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
7691 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
7692 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
7693 save_r31, return_r31, save_interrupt, return_interrupt,
7694 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
7695 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
a691bb08 7696 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
223a9d64 7697 new ABI requirements.
a691bb08 7698 (save_r6_r9, L_callt_save_r6_r9): Remove.
223a9d64
N
7699 * config/v850/predicates.md (even_reg_operand, disp23_operand,
7700 const_float_1_operand const_float_0_operand): New Predicates.
7701 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
7702 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
7703 * config/v850/t-v850: Update multilibs for new target variants.
7704 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
7705 * config/v850/t-v850e: Likewise.
7706 * config/v850/v850.c (v850_issue_rate): New.
7707 (v850_strict_argument_naming): New.
7708 (function_arg): Modify to generate a different ABI.
7709 (print_operand): Update case 'z' to support float modes.
7710 (output_move_single): Modify to generate appropriate and better
7711 assembly.
7712 (v850_float_z_comparison_operator, v850_select_cc_mode,
7713 v850_float_nz_comparison_operator, v850_gen_float_compare,
a691bb08 7714 v850_gen_compare): New functions to support comparison of float values.
223a9d64
N
7715 (ep_memory_offset): Add support for V850E2 targets.
7716 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
7717 (INTERRUPT_REGPARM_NUM): Remove.
a691bb08 7718 (compute_register_save_size): Add extra case to save/restore long call.
223a9d64
N
7719 (use_prolog_function): New function to support prologue.
7720 (expand_prologue): Add support for V850E2 targets and modified
7721 as per the current ABI requirements.
7722 (expand_epilogue): Likewise.
7723 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
7724 (construct_save_jarl): Likewise.
7725 (construct_dispose_instruction): Update as per the current ABI
7726 requirements.
7727 (construct_prepare_instruction): Likewise.
a691bb08 7728 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
223a9d64
N
7729 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
7730 (CPP_SPEC): Updated to support v850e2 targets.
7731 (STRICT_ALIGNMENT): Modified.
7732 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
7733 (FIXED_REGISTERS): Likewise.
7734 (CALL_USED_REGISTERS): Likewise.
7735 (CONDITIONAL_REGISTER_USAGE): Updated.
7736 (HARD_REGNO_MODE_OK): Updated.
7737 (reg_class): Updated to add even registers.
7738 (REG_CLASS_NAMES): Likewise.
7739 (REG_CLASS_CONTENTS): Likewise.
7740 (REGNO_REG_CLASS): Updated for CC registers.
7741 (REG_CLASS_FROM_LETTER): Added support for even registers.
7742 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
7743 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
7744 ARG_POINTER_REGNUM): Updated.
7745 (FUNCTION_ARG_ADVANCE): Define.
7746 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
7747 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
7748 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
7749 (GO_IF_LEGITIMATE_ADDRESS): Updated.
7750 (SELECT_CC_MODE): Define.
7751 (REGISTER_NAMES): Updated to add psw and fcc registers.
7752 (ADDITIONAL_REGISTER_NAMES): Updated.
7753 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
7754 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
7755 * config/v850/v850.md (define_constants): Define new constants.
7756 (type): Update store,bit1,macc,div,fpu and single attributes.
7757 (cpu): New attribute.
7758 (cc): Add set_z attribute.
7759 (unsign23byte_load, sign23byte_load, unsign23hword_load,
7760 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
a691bb08 7761 23word_store): New instructions for 23-bit displacement load and store.
223a9d64
N
7762 (movqi_internal, movhi_internal): Update the attributes.
7763 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
7764 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
7765 the attributes.
7766 (v850_tst1): Modified using CC_REGNUM.
7767 (tstsi): Remove.
7768 (cmpsi): Modified as define_expand from define_insn.
7769 (cmpsi_insn, cmpsf, cmpdf): New instructions.
7770 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
7771 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
7772 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
7773 one_cmplsi2): Clobber the CC_REGNUM register.
7774 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
7775 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
a691bb08 7776 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
223a9d64
N
7777 (setf_insn, set_z_insn, set_nz_insn): New instructions for
7778 v850e2v3 target.
7779 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
7780 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
7781 targets.
7782 (sasf_1, sasf_2): Remove.
7783 (sasf): New instruction.
7784 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
7785 targets. CC_REGNUM register is clobbered and attributes are
7786 updated.
7787 (branch_z_normal, branch_z_invert, branch_nz_normal,
7788 branch_nz_invert): New branch related instructions.
7789 (jump): Updated the attributes.
7790 (switch): Update to support new targets. CC_REGNUM register is
7791 clobbered and attributes are updated.
7792 (call_internal_short, call_internal_long, call_value_internal_short,
7793 call_value_internal_long): Updated the attributes.
7794 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
7795 clobbered and attributes are updated.
7796 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
7797 Update to support new targets. CC_REGNUM register is clobbered.
7798 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
7799 instructions.
7800 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
7801 are updated.
7802 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
7803 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
7804 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
7805 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
7806 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
7807 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
7808 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
7809 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
7810 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
7811 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
7812 point instructions defined for V850e2v3 target.
7813 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
7814 Add support for V850E2 targets and CC_REGNUM register is clobbered.
7815 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
7816 support for new targets.
7817 * config/v850/v850-modes.def: New file.
7818 * config/v850/v850.opt(mstrict-align): Remove.
7819 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
7820 mv850e2v3): New command line options for V850.
7821 * config.gcc: Update the newly added files.
7822 * doc/invoke.texi: Update the newly added command line options for
7823 V850 target.
7824
4e89a3fa
RG
78252010-07-26 Richard Guenther <rguenther@suse.de>
7826
7827 PR tree-optimization/45052
7828 * ipa-pure-const.c (check_stmt): Check volatileness.
7829
58e6223e
EB
78302010-07-25 Eric Botcazou <ebotcazou@adacore.com>
7831
7832 PR target/44707
7833 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
7834 * config/sparc/sparc.c: Include reload.h.
7835 (legitimize_tls_address): Rename into...
7836 (sparc_legitimize_tls_address): ...this.
7837 (legitimize_pic_address): Rename into...
7838 (sparc_legitimize_pic_address): ...this.
7839 (sparc_expand_move): Adjust to above renaming.
7840 (sparc_tls_referenced_p): Likewise.
7841 (sparc_legitimize_tls_address): Likewise.
7842 (sparc_legitimize_pic_address): Likewise.
7843 (sparc_legitimize_address): Likewise.
7844 (sparc_output_mi_thunk): Likewise.
7845 (sparc_legitimize_reload_address): New global function. Recognize
7846 (lo_sum (high ...) ...) patterns generated by earlier passes.
7847 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
7848
bfb7cccf
EB
78492010-07-25 Eric Botcazou <ebotcazou@adacore.com>
7850
7851 PR target/44484
7852 * config/sparc/predicates.md (memory_reg_operand): Delete.
7853 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
7854 (*sync_compare_and_swap): Encode the address form in the pattern.
7855 (*sync_compare_and_swapdi_v8plus): Likewise.
7856
aac91b74
GP
78572010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
7858
a691bb08
UB
7859 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
7860 Streamline paragraph on compatibility with the system compiler.
aac91b74 7861
a522de15
SB
78622010-07-24 Steven Bosscher <steven@gcc.gnu.org>
7863
7864 PR middle-end/45035
7865 * alias.c (true_dependence_1): Fix thinko in merge of old
7866 true_dependence and canon_true_dependence.
7867
5d7f4d9c
JH
78682010-07-23 Jan Hubicka <jh@suse.cz>
7869
7870 * lto-streamer-out.c (write_symbol): Fix visibilities of external
7871 references.
7872
3d07b7cd
LCW
78732010-07-23 Le-Chun Wu <lcwu@google.com>
7874
7875 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
7876 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
7877 and an unnecessary assignment.
7878 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
7879 self-assign warning.
7880 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
7881 unnecessary self-init.
7882
aff08b12
RG
78832010-07-23 Richard Guenther <rguenther@suse.de>
7884
7885 PR lto/43071
7886 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
7887 for -flto and -fwhopr.
7888
9b91e436
KT
78892010-07-23 Kai Tietz <kai.tietz@onevision.com>
7890
7891 PR target/41943
a691bb08 7892 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
9b91e436
KT
7893 (stmp-int-hdrs): Prefix/postfix headers by include_next.
7894 * config.gcc (user_headers_inc_next_pre): New.
7895 (user_headers_inc_next_post): Likewise.
7896 (*-w64-mingw*): Use for float.h post-fixing, and for
7897 stddef.h/stdarg.h pre-fixing by include_next.
7898 * configure.ac (user_headers_inc_next_post): New.
7899 (user_headers_inc_next_pre): New.
7900 * configure: Regenerated.
7901
16c9d3b1
RO
79022010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7903
7904 * configure.ac: Don't disable TLS on Solaris 8/9 by default
7905 Set tga_func for Solaris 2/x86 resp. SPARC.
7906 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
7907 (LIB_THREAD_LDFLAGS_SPEC): Define.
a691bb08 7908 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
16c9d3b1
RO
7909 * configure: Regenerate.
7910 * config.in: Regenerate.
7911 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
7912 -pthread, -threads, LIB_TLS_SPEC with -pthread.
7913 * doc/install.texi (Specific, *-*-solaris2*): Document use of
7914 alternate thread libraries on Solaris 8.
7915 Document TLS patch requirements.
7916 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
7917 Document tls.
7918
7919 PR target/18788
7920 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
7921 -shared.
7922
cd3f04c8
JJ
79232010-07-23 Jakub Jelinek <jakub@redhat.com>
7924
7925 * tree.h (struct tree_base): Add nameless_flag bitfield.
7926 (TYPE_NAMELESS, DECL_NAMELESS): Define.
7927 * omp-low.c (create_omp_child_function, scan_omp_parallel,
7928 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
7929 DECL_ARTIFICIAL where needed.
7930 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
7931 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
7932 has DECL_NAMELESS set.
7933
556ede65
MJ
79342010-07-23 Martin Jambor <mjambor@suse.cz>
7935
7936 PR tree-optimization/44915
7937 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
7938 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
7939 (analyze_function): Likewise.
7940
8cbeddcc
MJ
79412010-07-23 Martin Jambor <mjambor@suse.cz>
7942
7943 PR tree-optimization/44914
7944 * tree-sra.c (sra_modify_function_body): Return true if CFG was
7945 changed, add purging dead eh edges.
7946 (ipa_sra_modify_function_body): Return true if CFG was changed,
7947 simplify purging dead eh edges.
7948 (modify_function): Return true if CFG was changed.
7949 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
7950 was changed.
7951 (ipa_early_sra): Likewise.
7952
61044492
JZ
79532010-07-23 Jie Zhang <jie@codesourcery.com>
7954
7955 PR target/44290
7956 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
7957 if "naked".
7958 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
7959 false if ! tree_versionable_function_p.
7960
c59a0a1d
NF
79612010-07-23 Nathan Froyd <froydnj@codesourcery.com>
7962
7963 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
7964 * ipa-pure-const.c (special_builtlin_state): Remove
7965 BUILT_IN_ARGS_INFO case.
7966 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7967 * builtins.c (expand_builtin): Likewise.
7968 (expand_builtin_args_info): Remove.
7969 * doc/tm.texi (__builtin_args_info): Remove.
7970 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
7971 * doc/tm.text.in: Likewise.
7972
c4fcd06a
RG
79732010-07-23 Richard Guenther <rguenther@suse.de>
7974
a691bb08 7975 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
c4fcd06a
RG
7976 (lto_symtab_merge_decls_2): Likewise.
7977 * tree-ssa.c (useless_type_conversion_p): Likewise.
7978 * lto-streamer-in.c (input_gimple_stmt): Likewise.
7979 * gimple.c (gtc_visited2, gtc_ob2): Remove.
7980 (struct type_pair_d): Make same_p an array indexed by mode.
7981 Update comment.
7982 (lookup_type_pair): Update initialization.
7983 (struct sccs): Adjust same_p type.
7984 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
7985 Adjust.
7986 (print_gimple_types_stats): Likewise.
7987 * gimple.h (enum gtc_mode): New.
7988 (gimple_types_compatible_p): Adjust prototype.
7989
6afb52d3
DJ
79902010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
7991
7992 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
7993 again after processing insn.
7994
a23c4464
JZ
79952010-07-23 Jie Zhang <jie@codesourcery.com>
7996
7997 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
7998 proper words when !tree_versionable_function_p.
7999
97a73876
RG
80002010-07-23 Richard Guenther <rguenther@suse.de>
8001
8002 PR tree-optimization/45037
8003 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
8004
ed3100b2
JZ
80052010-07-23 Jie Zhang <jie@codesourcery.com>
8006
a691bb08
UB
8007 * doc/extend.texi: Remove IP2K from the description of naked attribute.
8008 Add MCORE instead.
ed3100b2 8009
a691bb08 80102010-07-10 Andi Kleen <ak@linux.intel.com>
73ce4d1e
AK
8011
8012 PR lto/44992
a691bb08 8013 * lto-opts.c (lto_write_options): Add NULL file_data argument to
73ce4d1e
AK
8014 lto_get_section_name.
8015 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
8016 * lto-streamer-out.c (produce_asm): Likewise.
8017 (copy_function): Likewise.
8018 (produce_symtab): Likewise.
8019 (produce_asm_for_decls): Likewise.
8020 * lto-streamer.c (lto_get_section_name): Add file_data argument.
8021 Rewrite to add random postfix to LTO sections.
8022 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
8023 (lto_get_section_name): Add file_data argument to prototype.
8024
a691bb08 80252010-07-10 Andi Kleen <ak@linux.intel.com>
2994ee14
AK
8026
8027 * lto-section-in.c (lto_section_name): Synchronize names
8028 with lto_get_section_name.
8029
a691bb08 80302010-07-10 Andi Kleen <ak@linux.intel.com>
090fc3f4
AK
8031
8032 * lto-opts.c (lto_read_file_options): Check for missing section.
8033
8cfd82bf
BS
80342010-07-22 Bernd Schmidt <bernds@codesourcery.com>
8035
8036 * ira.c (check_allocation): Correctly handle the case where an allocno
8037 with two objects was allocated to a single reg.
8038
1a39adae
RS
80392010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
8040
8041 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
8042 (is_widening_mult_p): Likewise.
8043 (convert_to_widen): Use them.
8044 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
8045 well as integer ones.
8046
9362286d
SB
80472010-07-22 Steven Bosscher <steven@gcc.gnu.org>
8048
8049 * alias.c (true_dependence_1): New function, merged version of
8050 true_dependence and canon_true_dependence.
8051 (true_dependence): Simplify.
8052 (canon_true_dependence): Simplify.
8053
b78cb618
RH
80542010-07-22 Richard Henderson <rth@redhat.com>
8055
8056 PR target/45027
8057 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
8058 of V4SFmode for the SSE saves; increase stack alignment if needed.
8059 (ix86_gimplify_va_arg): Don't increase stack alignment here.
8060
828f2c8b
JJ
80612010-07-22 Jakub Jelinek <jakub@redhat.com>
8062
8063 PR bootstrap/45028
8064 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
8065 call cprop_find_used_regs again via note_uses.
8066
7be7d292
EB
80672010-07-22 Eric Botcazou <ebotcazou@adacore.com>
8068
8069 * alias.c (get_alias_set): Fix formatting issues.
8070
426d6333
SE
80712010-07-22 Steve Ellcey <sje@cup.hp.com>
8072
8073 PR middle-end/44878
8074 * stmt.c (expand_value_return): Call promote_function_mode with
8075 a for_return argument of 2 when returning by reference.
8076
35ea1c5a
DS
80772010-07-22 Dodji Seketeli <dodji@redhat.com>
8078
8079 PR debug/45024
8080 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
8081 unit DIE if we can find the scope DIE.
8082
ac0ab4f7
BS
80832010-07-22 Bernd Schmidt <bernds@codesourcery.com>
8084
bd3a5d17
UB
8085 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
8086 changed. Initialize OBJECT_SUBWORD.
ac0ab4f7
BS
8087 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
8088 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
8089 all callers changed.
8090 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
8091 (finish_allocno): Likewise.
8092 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
8093 (remove_low_level_allocnos): Likewise.
8094 (update_bad_spill_attribute): Likewise.
8095 (setup_min_max_allocno_live_range_point): Likewise.
8096 (sort_conflict_id_map): Likewise.
8097 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
8098 (ior_hard_reg_conflicts): New function.
8099 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
8100 (compress_conflict_vecs): Iterate over objects, not allocnos.
8101 (ira_add_live_range_to_object): New function.
8102 (object_range_compare_func): Renamed from allocno_range_compare_func.
8103 All callers changed.
8104 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
8105 subobjects, widen the min/max range of the lowest-order object to
8106 potentially include all other such low-order objects.
8107 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
8108 (check_allocation): Likewise. Use more fine-grained tests for register
8109 conflicts.
8110 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
8111 allocno subobjects.
8112 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
8113 choices about which bits to set in each set. Don't use
8114 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
8115 using the multiple sets we computed.
8116 (push_allocno_to_stack): Iterate over allocno subobjects.
8117 (all_conflicting_hard_regs_coalesced): New static function.
8118 (setup_allocno_available_regs_num): Use it.
8119 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
8120 subobjects.
8121 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
8122 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8123 by ALLOCNO_NUM_OBJECTS.
8124 (calculate_spill_cost): Likewise.
8125 (color_pass): Express if statement in a more normal way.
8126 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
8127 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
8128 (setup_slot_coalesced_allocno_live_ranges): Likewise.
8129 (allocno_reload_assign): Likewise.
8130 (ira_reassign_pseudos): Likewise.
8131 (fast_allocation): Likewise.
8132 * ira-conflicts.c (build_conflict_bit_table): Likewise.
8133 (print_allocno_conflicts): Likewise.
8134 (ira_build_conflicts): Likewise.
8135 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
8136 callers changed. Test subword 0 of each allocno for conflicts.
8137 (build_object_conflicts): Renamed from build_allocno_conflicts. All
8138 callers changed. Iterate over allocno subobjects.
8139 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
bd3a5d17
UB
8140 * ira-int.h (struct ira_allocno): New member: num_objects.
8141 Rename object to objects and change it into an array.
ac0ab4f7
BS
8142 (ALLOCNO_OBJECT): Add new argument N.
8143 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
8144 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
8145 (ior_hard_reg_conflicts): Declare.
8146 (ira_add_live_range_to_object): Declare.
8147 (ira_allocno_object_iterator): New.
8148 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
8149 (FOR_EACH_ALLOCNO_OBJECT): New macro.
bd3a5d17
UB
8150 * ira-lives.c (objects_live): Renamed from allocnos_live; all
8151 uses changed.
ac0ab4f7 8152 (allocnos_processed): New sparseset.
bd3a5d17
UB
8153 (make_object_born): Renamed from make_allocno_born; take an
8154 ira_object_t argument. All callers changed.
8155 (make_object_dead): Renamed from make_allocno_dead; take an
8156 ira_object_t argument. All callers changed.
ac0ab4f7
BS
8157 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
8158 All callers changed.
8159 (mark_pseudo_regno_live): Iterate over allocno subobjects.
8160 (mark_pseudo_regno_dead): Likewise.
8161 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
8162 functions.
8163 (mark_ref_live): Detect subword accesses and call
8164 mark_pseudo_regno_subword_live as appropriate.
8165 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
8166 (process_bb_nodes_live): Deal with object-related updates first; set
8167 and test bits in allocnos_processed to avoid computing allocno
8168 statistics more than once.
8169 (create_start_finish_chains): Iterate over objects, not allocnos.
8170 (print_object_live_ranges): New function.
8171 (print_allocno_live_ranges): Use it.
8172 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
8173 and objects_live.
8174
d4398a43
RG
81752010-07-22 Richard Guenther <rguenther@suse.de>
8176
8177 PR lto/42451
8178 * gimple.c (gtc_next_dfs_num): New global.
8179 (struct sccs): Make value a union, add integer same_p member.
8180 (gtc_visit): New function.
8181 (gimple_types_compatible_p_1): New function, split out from ...
8182 (gimple_types_compatible_p): ... here. Start a DFS walk here.
8183 (iterative_hash_gimple_type): Adjust for sccs change.
8184
56a42add
MJ
81852010-07-22 Martin Jambor <mjambor@suse.cz>
8186
8187 PR tree-optimization/44891
8188 * tree-sra.c: Include gimple-pretty-print.h.
8189 (replace_uses_with_default_def_ssa_name): Renamed to
8190 get_repl_default_def_ssa_name, return the new SSA name instead of
8191 replacing the old one.
8192 (sra_modify_assign): Dump a message when removing a load, if the LHS
8193 is an SSA_NAME, do not do any propagation, just set the RHS to a
8194 default definition SSA NAME, type convert if necessary.
8195 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
8196
5ccbfc1f
RG
81972010-07-22 Richard Guenther <rguenther@suse.de>
8198
8199 PR tree-optimization/45017
8200 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
8201 TYPE_PRECISION of integral types in addition to size.
8202
14ee5f0a
MK
82032010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
8204
8205 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
8206 when no C library is specified.
8207
93c594a3
MJ
82082010-07-22 Martin Jambor <mjambor@suse.cz>
8209
8210 * ipa-prop.h (struct ipa_node_params): Updated comment.
8211 (struct ipa_edge_args): Likewise.
8212 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
8213
02ec6988
MJ
82142010-07-22 Martin Jambor <mjambor@suse.cz>
8215
8216 * cgraphunit.c (verify_edge_count_and_frequency): New function.
8217 (verify_cgraph_node): Verify frequencies of indirect edges.
8218 * tree-inline.c (tree_function_versioning): Update frequencies of
8219 indirect edges.
8220
f67325e8
RR
82212010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8222
8223 PR target/43698
a691bb08
UB
8224 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
8225 Set *arm_rev to be predicable.
f67325e8 8226
50eb566f
IS
82272010-07-22 Iain Sandoe <iains@gcc.gnu.org>
8228
8229 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
8230 (LINK_COMMAND_SPEC_A): New.
8231 (DSYMUTIL): New.
8232 (DSYMUTIL_SPEC): New.
8233 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
8234 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
8235
3b2ee170
IS
82362010-07-22 Iain Sandoe <iains@gcc.gnu.org>
8237
8238 * calls.c (load_register_parameters): Move check for zero
bd3a5d17 8239 sized items so that only the call to
3b2ee170
IS
8240 mem_overlaps_already_clobbered_arg_p () is protected.
8241
37512c66
JH
82422010-07-22 Jan Hubicka <jh@suse.cz>
8243
8244 * ipa-pure-const.c (varying_state): Break out from ...
8245 (get_function_state): ... here; always return varying_state
8246 when state would be NULL otherwise.
8247 (remove_node_data): Do not free varying state.
8248
08bd6876
BS
82492010-07-22 Bernd Schmidt <bernds@codesourcery.com>
8250
8251 PR bootstrap/44970
8252 PR middle-end/45009
8253 * postreload.c: Include "target.h".
8254 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
8255 into account.
8256 (fixup_debug_insns): Don't copy the rtx.
a691bb08
UB
8257 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
8258 Don't copy when replacing. Call fixup_debug_insns in the case where
8259 we merged one add with another.
8260 (reload_combine_recognize_pattern): Fail if there aren't any uses.
8261 Try harder to determine whether we're picking a valid index register.
8262 Don't set store_ruid for an insn we're going to scan in the
8263 next iteration.
08bd6876
BS
8264 (reload_combine): Remove unused code.
8265 (reload_combine_note_use): When updating use information for
8266 an old insn, ignore a use that occurs after store_ruid.
8267 * Makefile.in (postreload.o): Update dependencies.
8268
dbb94435
BS
8269 * function.c (record_hard_reg_sets): Restrict the previous change
8270 to cases where the incoming nominal mode is the same as the
8271 incoming promoted mode and everything happens in MODE_INT.
8272
fcc71c6c
JJ
82732010-07-21 Jakub Jelinek <jakub@redhat.com>
8274
8275 PR debug/45015
8276 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
8277 ASM_OPERANDS_OUTPUT_IDX.
8278 (adjust_insn): For inline asm with multiple sets ensure first
8279 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
8280 the insn.
8281
650b5329
RH
82822010-07-21 Richard Henderson <rth@redhat.com>
8283
8284 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
8285 comparison for avoiding xmm register saves. Emit the xmm register
8286 saves explicitly.
8287 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
8288 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
8289 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
8290 Remove patterns and the associated splitters.
8291
7c6dafac
CF
82922010-07-21 Changpeng Fang <changpeng.fang@amd.com>
8293
8294 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
8295 and imagine parts of a complex, so that they can have the same
8296 base and fall into the same group.
8297
60f6be5a
RG
82982010-07-21 Richard Guenther <rguenther@suse.de>
8299
8300 PR lto/45018
8301 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
8302 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
8303 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
8304
75a75e91
MJ
83052010-07-21 Martin Jambor <mjambor@suse.cz>
8306
8307 PR tree-optimization/44900
8308 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
8309 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
8310
426797b2
BS
83112010-07-21 Bernd Schmidt <bernds@codesourcery.com>
8312
8313 PR middle-end/44738
8314 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
8315
35e3a6e9
RG
83162010-07-21 Richard Guenther <rguenther@suse.de>
8317
8318 PR middle-end/45013
8319 * tree-ssa.c (useless_type_conversion_p): Dispatch to
8320 gimple_types_compatible_p only when in lto.
8321 * gimple.c (gimple_types_compatible_p): Use canonical types
8322 to speed up comparison.
8323
3f2930d8
RG
83242010-07-21 Richard Guenther <rguenther@suse.de>
8325
8326 * tree-flow.h (referenced_var): Move define ...
8327 * tree-flow-inline.h (referenced_var): ... here as an inline
8328 function. Assert here ...
8329 * tree-dfa.c (referenced_var_lookup): ... instead of here.
8330 * tree-ssa.c (maybe_optimize_var): Check if the variable
8331 is in referenced vars.
8332 (execute_update_addresses_taken): Remove old broken check.
8333 * gimple-pretty-print.c (pp_points_to_solution): Use
8334 referenced_var_lookup.
8335 * tree-into-ssa.c (dump_decl_set): Likewise.
8336
370ae599
JJ
83372010-07-21 Jakub Jelinek <jakub@redhat.com>
8338
8339 PR debug/45003
a691bb08 8340 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
370ae599
JJ
8341 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
8342 ZERO_EXTEND here.
8343
7703295f
RH
83442010-07-20 Richard Henderson <rth@redhat.com>
8345
8346 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
8347
16737e76
BS
83482010-07-20 Bernd Schmidt <bernds@codesourcery.com>
8349
8350 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
8351 computing the sum of the stack pointer and a large constant.
8352 * config/arm/constraints.md (M): Remove superfluous parentheses.
8353 (Pc): New constraint.
8354
1b47fe3f
JJ
83552010-07-20 Jakub Jelinek <jakub@redhat.com>
8356
8357 PR debug/45006
8358 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
8359 operand's type if exp is tcc_unary class tree.
8360
97c56ee3
NF
83612010-07-20 Nathan Froyd <froydnj@codesourcery.com>
8362
8363 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
8364 Reverse sense of if_then_else condition.
8365
d95016e0
NF
83662010-07-20 Nathan Froyd <froydnj@codesourcery.com>
8367
8368 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
8369 * config/rs6000/rs6000.c (rs6000_override_options): Set
8370 rs6000_block_move_inline_limit appropriately.
8371 (expand_block_move): Use rs6000_block_move_inline_limit.
8372 * doc/invoke.texi (mblock-move-inline-limit): Document.
8373
caa4a250
BS
83742010-07-20 Bernd Schmidt <bernds@codesourcery.com>
8375
8376 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
8377 FROM and TO. All callers changed. Don't look for tracked uses,
8378 just scan the RTL for DEBUG_INSNs and substitute.
8379 (reload_combine_recognize_pattern): Call fixup_debug_insns.
8380 (reload_combine): Ignore DEBUG_INSNs.
8381
68eaf35c
JJ
83822010-07-20 Jakub Jelinek <jakub@redhat.com>
8383
d2d57152
JJ
8384 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
8385 depth to 8 from 5.
8386
68eaf35c
JJ
8387 PR debug/45003
8388 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
8389 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
8390 instead of the result's type.
8391
720151ca
RG
83922010-07-20 Richard Guenther <rguenther@suse.de>
8393
8394 PR tree-optimization/44977
8395 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
8396 SSA form.
8397
f5d6836a
RG
83982010-07-20 Richard Guenther <rguenther@suse.de>
8399
8400 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
8401 (lto_symtab_merge_decls_2): Likewise.
8402 * gimple.h (gimple_types_compatible_p): Declare.
8403 * gimple.c (gimple_queue_type_fixup): Remove.
8404 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
bd3a5d17 8405 (gimple_compatible_complete_and_incomplete_type_p): New function.
f5d6836a
RG
8406 (gimple_types_compatible_p): Adjust.
8407 (gimple_register_type): Remove type fixup code.
8408 (print_gimple_types_stats): Adjust.
8409 (free_gimple_type_tables): Likewise.
8410 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
8411 * tree-ssa.c (useless_type_conversion_p): Likewise.
8412
ad650c92
RG
84132010-07-20 Richard Guenther <rguenther@suse.de>
8414
8415 PR middle-end/44971
8416 PR middle-end/44988
8417 * tree-ssa.c (maybe_optimize_var): New function split out from ...
8418 (execute_update_addresses_taken): ... here.
8419 (non_rewritable_mem_ref_base): Likewise.
8420 (execute_update_addresses_taken): Do not iterate over all referenced
8421 vars but just all local decls and parms.
8422 Properly check call and asm arguments and rewrite call arguments.
8423
2c8f43e6
MK
84242010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
8425
8426 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
8427 to top level.
8428 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
8429 definitions ...
8430 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
8431 New macro.
8432 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
8433
b08e0339
RS
84342010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
8435
8436 * gengtype.c (start_root_entry): New function, split out from
8437 write_root. Check whether V is null and raise an error if so.
8438 (write_field_root): Check for V being null. Don't raise an error here;
8439 set V to null instead.
8440 (write_root): Update comment above function. Use start_root_entry.
8441
e74780a3
XDL
84422010-07-19 Xinliang David Li <davidxl@google.com>
8443
8444 PR testsuite/44932
bd3a5d17
UB
8445 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
8446 def edges.
e74780a3
XDL
8447 (find_uninit_use): Add dump.
8448 (is_use_properly_guarded): Ditto.
8449 (warn_uninitialized_phi): Ditto.
8450 (execute_late_warn_uninitialized): Ditto.
8451
8b4c365c
RG
84522010-07-19 Richard Guenther <rguenther@suse.de>
8453
8454 PR middle-end/44941
8455 * expr.c (emit_block_move_hints): Move zero size check first.
8456 Move asserts to more useful places.
8457 * calls.c (load_register_parameters): Check for zero size.
8458
157be8f6
RH
84592010-07-19 Richard Henderson <rth@redhat.com>
8460
8461 * tree-optimize.c (execute_all_early_local_passes): New. Change
8462 cgraph_state here ...
8463 (execute_early_local_optimizations): ... not here. Remove.
8464 (pass_early_local_passes, pass_all_early_optimizations): Update.
8465
b1d5eee8
BS
84662010-07-19 Bernd Schmidt <bernds@codesourcery.com>
8467
8468 * postreload.c (reload_combine_closest_single_use): Ignore the
8469 number of uses for DEBUG_INSNs.
8470 (fixup_debug_insns): New static function.
8471 (reload_combine_recognize_const_pattern): Use it. Don't let the
8472 main loop be affected by DEBUG_INSNs.
8473 Really disallow moving adds past a jump insn.
8474 (reload_combine_recognize_pattern): Don't update use_ruid here.
8475 (reload_combine_note_use): Do it here.
8476 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
8477
0be955e7 84782010-07-19 Bingfeng Mei <bmei@broadcom.com>
157be8f6 8479
0be955e7 8480 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
bd3a5d17
UB
8481 of a loop.
8482 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
0be955e7 8483
9005471b
IS
84842010-07-19 Iain Sandoe <iains@gcc.gnu.org>
8485
8486 * config/i386/darwin.h: Define darwin_emit_branch_islands.
8487 (TARGET_MACHO_BRANCH_ISLANDS): New.
8488 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
8489 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
8490 default value.
8491 * config/i386/i386.c (output_pic_addr_const): Do not emit
8492 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
8493 (x86_output_mi_thunk): Adjust symbol creation.
8494 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
8495 Remove out of date comment.
8496 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
bd3a5d17
UB
8497 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
8498 (DARWIN_GENERATE_ISLANDS): Ditto.
9005471b
IS
8499 (output_call): Do not emit branch islands unless
8500 darwin_emit_branch_islands is set.
8501 * config/darwin.c: Declare darwin_emit_branch_islands.
8502 (machopic_indirect_data_reference): Do not emit unless
8503 darwin_emit_branch_islands is set.
8504 (darwin_override_options): Set darwin_emit_branch_islands
8505 where it is needed.
bd3a5d17 8506 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9005471b 8507
39354b3b
RO
85082010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8509
8510 * doc/sourcebuild.texi (Effective-Target Keywords): Document
8511 sse_runtime, sse2_runtime.
8512
93f63c68
RS
85132010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
8514
8515 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
8516 low half of a single-register SCmode return value before ORing
8517 it with the high half.
8518 * config/mips/mips16.S (MERGE_GPRf): Likewise.
8519
84aa7cea
JDA
85202010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8521
8522 PR target/44805
8523 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
8524 on all targets.
8525
dc0d5a57
BS
85262010-07-17 Bernd Schmidt <bernds@codesourcery.com>
8527
8528 PR target/42235
8529 * postreload.c (reload_cse_move2add): Return bool, true if anything.
8530 changed. All callers changed.
8531 (move2add_use_add2_insn): Likewise.
8532 (move2add_use_add3_insn): Likewise.
8533 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
8534 reload_combine.
8535 (RELOAD_COMBINE_MAX_USES): Bump to 16.
8536 (last_jump_ruid): New static variable.
8537 (struct reg_use): New members CONTAINING_MEM and RUID.
8538 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
8539 (reload_combine_split_one_ruid, reload_combine_split_ruids,
8540 reload_combine_purge_insn_uses, reload_combine_closest_single_use
8541 reload_combine_purge_reg_uses_after_ruid,
8542 reload_combine_recognize_const_pattern): New static functions.
8543 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
8544 is true for our reg and that we have available index regs.
8545 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
8546 callers changed. Use them to initialize fields in struct reg_use.
8547 (reload_combine): Initialize last_jump_ruid. Be careful when to
8548 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
8549 Call reload_combine_recognize_const_pattern.
8550 (reload_combine_note_store): Update REAL_STORE_RUID field.
8551
d4404fee
JM
85522010-07-16 Jason Merrill <jason@redhat.com>
8553
8554 * Makefile.in (opts-common.o): Depend on options.h.
8555
6a4825bd
NF
85562010-07-16 Nathan Froyd <froydnj@codesourcery.com>
8557
8558 * tree.c (build_common_builtin_nodes): Use build_function_type_list
8559 instead of build_function_type.
8560 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
8561 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8562
c5af628d
NF
85632010-07-16 Nathan Froyd <froydnj@codesourcery.com>
8564
8565 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
8566 do all the work.
8567 (rs6000_emit_int_cmove): Use function pointers for insn generation.
8568 Don't force values into registers unnecessarily.
8569 (output_isel): Assert that we're not given conditions we can't handle.
8570 Delete corresponding code.
8571 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
8572 scc_comparison_operator constraint. Permit 0 for the consequent
8573 operand. Permit any GPR for the alternative operand.
8574 (isel_unsigned_<mode>): Likewise.
8575
88ad03c2
JJ
85762010-07-16 Jakub Jelinek <jakub@redhat.com>
8577
8578 PR target/44942
8579 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
8580 argument to const_tree.
8581 * config/i386/i386.c (function_arg_advance): If padding needs to be
8582 inserted before argument, increment cum->words by number of padding
8583 words as well.
8584 (contains_aligned_value_p): Change argument to const_tree.
8585 (ix86_function_arg_boundary): Change second argument to const_tree.
8586
71008de4
BS
85872010-07-16 Bernd Schmidt <bernds@codesourcery.com>
8588
8589 PR target/42235
8590 * function.c (record_hard_reg_sets): New static function.
8591 (assign_parm_setup_reg): If an optab for extending exists and the
8592 generated code clobbbers no hard regs, emit the insn directly and
8593 create a REG_EQUIV note.
8594
f7587ed0
NF
85952010-07-15 Nathan Froyd <froydnj@codesourcery.com>
8596
8597 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
8598 TREE_CHAIN.
8599 * c-typeck.c (push_init_level): Likewise.
8600 (process_init_element): Likewise.
8601
9a9d280e
AS
86022010-07-15 Anatoly Sokolov <aesok@post.ru>
8603
8604 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
8605 (integer_three_node): Add.
8606 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
8607 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
8608 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
8609 of call build_int_cst.
8610 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
8611 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
8612 (find_interesting_uses_address): Ditto.
8613 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
8614 * tree-eh.c (lower_eh_constructs_2): Ditto.
8615 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
8616 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
8617 * expmed.c (expand_divmod): Ditto.
8618 * tree-mudflap.c (mx_register_decls): Ditto.
8619 * varasm.c (array_size_for_constructor): Ditto.
8620 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
8621 * c-parser.c (c_parser_postfix_expression): Ditto.
8622
67bb0206
BS
86232010-07-15 Bernd Schmidt <bernds@codesourcery.com>
8624
8625 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
8626 New static variables.
8627 (reload_combine_recognize_pattern): New static function, broken out
8628 of reload_combine.
8629 (reload_combine): Use it. Only initialize first_index_reg and
8630 last_index_reg once.
8631
c5f77dcb
RH
86322010-07-15 Richard Henderson <rth@redhat.com>
8633
8634 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
8635 when done.
8636
ef8fc6c2
JH
86372010-07-15 Jan Hubicka <jh@suse.cz>
8638
bd3a5d17
UB
8639 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
8640 comdats for broken gold.
8641 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
ef8fc6c2 8642
3d894a8e
NF
86432010-07-15 Nathan Froyd <froydnj@codesourcery.com>
8644
8645 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
8646
910ad8de
NF
86472010-07-15 Nathan Froyd <froydnj@codesourcery.com>
8648
8649 * tree.h (DECL_CHAIN): Define.
8650 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
8651 * c-decl.c: Likewise.
8652 * c-parser.c: Likewise.
8653 * c-typeck.c: Likewise.
8654 * cfgexpand.c: Likewise.
8655 * cgraph.c: Likewise.
8656 * cgraphunit.c: Likewise.
8657 * combine.c: Likewise.
8658 * config/alpha/alpha.c: Likewise.
8659 * config/arm/arm.c: Likewise.
8660 * config/frv/frv.c: Likewise.
8661 * config/i386/i386.c: Likewise.
8662 * config/i386/winnt-cxx.c: Likewise.
8663 * config/ia64/ia64.c: Likewise.
8664 * config/iq2000/iq2000.c: Likewise.
8665 * config/mep/mep.c: Likewise.
8666 * config/mips/mips.c: Likewise.
8667 * config/pa/som.h: Likewise.
8668 * config/rs6000/rs6000.c: Likewise.
8669 * config/s390/s390.c: Likewise.
8670 * config/sh/sh.c: Likewise.
8671 * config/sh/symbian-cxx.c: Likewise.
8672 * config/sparc/sparc.c: Likewise.
8673 * config/spu/spu.c: Likewise.
8674 * config/stormy16/stormy16.c: Likewise.
8675 * config/vxworks.c: Likewise.
8676 * config/xtensa/xtensa.c: Likewise.
8677 * coverage.c: Likewise.
8678 * dbxout.c: Likewise.
8679 * dwarf2out.c: Likewise.
8680 * emit-rtl.c: Likewise.
8681 * expr.c: Likewise.
8682 * function.c: Likewise.
8683 * gimple-low.c: Likewise.
8684 * gimple-pretty-print.c: Likewise.
8685 * gimplify.c: Likewise.
8686 * integrate.c: Likewise.
8687 * ipa-inline.c: Likewise.
8688 * ipa-prop.c: Likewise.
8689 * ipa-split.c: Likewise.
8690 * ipa-struct-reorg.c: Likewise.
8691 * ipa-type-escape.c: Likewise.
8692 * langhooks.c: Likewise.
8693 * lto-cgraph.c: Likewise.
8694 * omp-low.c: Likewise.
8695 * stor-layout.c: Likewise.
8696 * tree-cfg.c: Likewise.
8697 * tree-complex.c: Likewise.
8698 * tree-dfa.c: Likewise.
8699 * tree-dump.c: Likewise.
8700 * tree-inline.c: Likewise.
8701 * tree-mudflap.c: Likewise.
8702 * tree-nested.c: Likewise.
8703 * tree-object-size.c: Likewise.
8704 * tree-pretty-print.c: Likewise.
8705 * tree-sra.c: Likewise.
8706 * tree-ssa-live.c: Likewise.
8707 * tree-ssa-loop-niter.c: Likewise.
8708 * tree-ssa-math-opts.c: Likewise.
8709 * tree-ssa-reassoc.c: Likewise.
8710 * tree-ssa-sccvn.c: Likewise.
8711 * tree-ssa-structalias.c: Likewise.
8712 * tree-tailcall.c: Likewise.
8713 * tree-vrp.c: Likewise.
8714 * tree.c: Likewise.
8715 * var-tracking.c: Likewise.
8716 * varasm.c: Likewise.
8717
643afedb
UW
87182010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8719
8720 PR target/44877
8721 * config/spu/spu.c (spu_expand_builtin_1): Allow references
8722 (as well as pointers) as argument to mask_for_load builtins.
8723
0ba0772b
RB
87242010-07-15 Richard Guenther <rguenther@suse.de>
8725
8726 PR tree-optimization/44946
8727 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
8728 with accessing only padding properly.
8729
02ee7bea
JH
87302010-07-15 Jan Hubicka <jh@suse.cz>
8731
0ba0772b
RB
8732 * ipa.c (function_and_variable_visibility): Variables marked as used
8733 should not be localized.
02ee7bea 8734
99fecd47
JH
87352010-07-15 Jan Hubicka <jh@suse.cz>
8736
8737 * cgraph.c: Include lto-streamer.h
8738 (change_decl_assembler_name): Work when assembler name hash is at place.
bd3a5d17
UB
8739 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
8740 be sure to rename it to avoid name clash.
99fecd47
JH
8741 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
8742 Localize hidden symbols only when locally defined.
8743
53f00dde
UB
87442010-07-15 Uros Bizjak <ubizjak@gmail.com>
8745
8746 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
8747
8ffadef9
MG
87482010-07-15 Magnus Granberg <zorry@gentoo.org>
8749 Kevin F. Quinn <kevquinn@gentoo.org>
8750
53f00dde
UB
8751 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
8752 * common.opt: Add -Wtrampolines.
8753 * doc/invoke.texi: Add -Wtrampolines.
8ffadef9 8754
5cb55204
JZ
87552010-07-15 Jie Zhang <jie@codesourcery.com>
8756
8757 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
8758 cortex_a8_issue_ls.
8759
4c4837a3
DK
87602010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
8761
8762 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
8763 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
8764
588c71da
UW
87652010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8766
8767 * config/spu/spu.c (reg_names): Remove prototype.
8768 (call_used_regs): Likewise.
8769
a9c5db80
DK
87702010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
8771
8772 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
8773 "unused" with attribute "used".
8774 (__JCR_END__): Likewise.
8775 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
8776 "used" attribute.
8777 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
8778
61593e5e
RG
87792010-07-14 Richard Guenther <rguenther@suse.de>
8780
8781 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
8782 (maybe_fixup_decls): Likewise.
8783 (input_gimple_stmt): Do not fixup anything.
8784 * lto-streamer-out.c (output_gimple_stmt): Make sure all
8785 non-automatic variable uses are wrapped inside a MEM_REF.
8786
fc7fcda1
RH
87872010-07-14 Richard Henderson <rth@redhat.com>
8788
8789 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
8790 for functions.
8791 * varasm.c (assemble_variable): Remove early exit for functions;
8792 assert that we're given a variable.
8793
eab3f92e
JZ
87942010-07-14 Jie Zhang <jie@codesourcery.com>
8795
8796 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
8797 cortex_a8_default when neon_type is not none.
8798
402464a0
BS
87992010-07-14 Bernd Schmidt <bernds@codesourcery.com>
8800
8801 * lower-subreg.c (subreg_context): New static bitmap.
8802 (decompose_multiword_subregs): Allocate and free it.
8803 (find_decomposable_subregs): Set a bit in it for a register that
8804 occurs in a subreg that changes mode but not size.
8805 (can_decompose_p): Test it instead of non_decomposable_context.
8806
bf9899d4
RG
88072010-07-14 Richard Guenther <rguenther@suse.de>
8808
8809 PR tree-optimization/44824
8810 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
8811 is_gimple_mem_ref_addr.
8812 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
8813 non-decl_address_invariant_p addresses.
8814
b1c8622e
BS
88152010-07-14 Bernd Schmidt <bernds@codesourcery.com>
8816
8817 * reload.c (find_reloads): Revert code to penalize small register
8818 classes that was brought in with the IRA merge.
8819
2bd6311d
RG
88202010-07-14 Richard Guenther <rguenther@suse.de>
8821
8822 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
8823 as base of ARRAY_REFs.
8824
f051cb5d
RG
88252010-07-14 Richard Guenther <rguenther@suse.de>
8826
8827 PR middle-end/44930
8828 * tree-pretty-print.c (do_niy): Do not print a newline.
8829
a49ae217
BS
88302010-07-14 Bernd Schmidt <bernds@codesourcery.com>
8831
8832 * ira-int.h (struct ira_object): New.
53f00dde 8833 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
a49ae217
BS
8834 (struct ira_allocno): Remove members min, max,
8835 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
8836 conflict_allocnos_num and conflict_vec_p. Add new member object.
8837 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
8838 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
8839 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
8840 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
8841 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
8842 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
8843 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
8844 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
8845 an ira_object_t rather than ira_allocno_t. All uses changed.
8846 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
8847 contains a vector of ira_object_t; all uses changed.
8848 (ira_objects_num): Declare variable.
8849 (ira_create_allocno_object): Declare function.
8850 (ira_conflict_vector_profitable_p): Adjust prototype.
8851 (ira_allocate_conflict_vec): Renamed from
8852 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
8853 (ira_allocate_object_conflicts): Renamed from
8854 ira_allocate_allocno_conflicts; first arg now ira_object_t.
8855 (struct ira_object_iterator): New.
8856 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
8857 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
8858 to conflict_vec_p. All uses changed.
8859 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
8860 Changed to take into account that conflicts are now tracked for
8861 objects.
53f00dde
UB
8862 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
8863 Args changed to accept ira_object_t. All uses changed.
a49ae217
BS
8864 (allocnos_conflict_p): New static function.
8865 (collected_conflict_objects): Renamed from collected_allocno_objects;
8866 now a vector of ira_object_t. All uses changed.
8867 (build_conflict_bit_table): Changed to take into account that
8868 conflicts are now tracked for objects.
8869 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
8870 (print_allocno_conflicts, ira_build_conflicts): Likewise.
8871 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
8872 setup_allocno_left_conflicts_size, allocno_reload_assign,
8873 fast_allocation): Likewise.
8874 * ira-lives.c (make_hard_regno_born, make_allocno_born)
8875 process_single_reg_class_operands, process_bb_node_lives): Likewise.
8876 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
8877 Likewise.
8878 * ira-build.c (ira_objects_num): New variable.
8879 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
8880 contains a vector of ira_object_t; all uses changed.
8881 (ira_object_id_map_vec): Corresponding change.
8882 (object_pool): New static variable.
8883 (initiate_allocnos): Initialize it.
8884 (finish_allocnos): Free it.
8885 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
8886 New functions.
8887 (ira_create_allocno): Don't set members that were removed.
8888 (ira_set_allocno_cover_class): Don't change conflict hard regs.
8889 (merge_hard_reg_conflicts): Changed to take into account that
8890 conflicts are now tracked for objects.
8891 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
8892 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
8893 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
8894 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
8895 setup_min_max_conflict_allocno_ids, ): Likewise.
53f00dde 8896 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
a49ae217
BS
8897 to ira_object_t; all callers changed.
8898 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
8899 to ira_object_t, all callers changed.
8900 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
8901 to ira_object_t, all callers changed.
8902 (conflict_check, curr_conflict_check_tick): Renamed from
8903 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
8904 changed.
8905 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
8906 arg changed to ira_object_t, all callers changed.
8907 (create_cap_allocno): Call ira_create_allocno_object.
8908 (finish_allocno): Free the corresponding object.
8909 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
8910 callers changed. Adjusted for dealing with objects.
8911 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
8912 dealing with objects.
8913 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
8914
53f00dde
UB
8915 * ira-int.h (struct live_range): Rename allocno member to object
8916 and change type to ira_object_t.
9140d27b
BS
8917 (struct ira_object): New member live_ranges.
8918 (struct ira_allocno): Remove member live_ranges.
8919 (ALLOCNO_LIVE_RANGES): Remove.
8920 (OBJECT_LIVE_RANGES): New macro.
8921 (ira_create_live_range, ira_copy_live_range_list,
8922 ira_merge_live_range_list, ira_live_ranges_intersect_p,
8923 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
8924 * ira-build.c (ira_create_object): Initialize live ranges here.
8925 (ira_create_allocno): Not here.
8926 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
8927 changed to ira_object_t, all callers changed.
8928 (copy_live_range): Rename from copy_allocno_live_range, all callers
8929 changed.
53f00dde
UB
8930 (ira_copy_live_range_list): Rename from
8931 ira_copy_allocno_live_range_list, all callers changed.
9140d27b
BS
8932 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
8933 all callers changed.
8934 (ira_live_ranges_intersect_p): Rename from
8935 ira_allocno_live_ranges_intersect_p, all callers changed.
8936 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
8937 callers changed.
8938 (ira_finish_live_range_list): Rename from
8939 ira_finish_allocno_live_range_list, all callers changed.
8940 (change_object_in_range_list): Rename from change_allocno_in_range_list,
8941 last arg changed to ira_object_t, all callers changed.
8942 (finish_allocno): Changed to expect live ranges in the allocno's object.
8943 (move_allocno_live_ranges, copy_allocno_live_ranges,
8944 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
8945 ira_flattening, ira_build): Likewise.
8946 * ira-color.c (allocnos_have_intersected_live_ranges_p,
8947 slot_coalesced_allocno_live_ranges_intersect,
8948 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
8949 * ira-conflicts.c (build_conflict_bit_table): Likewise.
8950 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
8951 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
8952 make_allocno_dead, create_start_finish_chains,
8953 remove_some_program_points_and_update_live_ranges,
8954 ira_debug_live_range_list): Likewise.
8955
fa86d337
BS
8956 * ira-int.h (ira_object_conflict_iterator): Rename from
8957 ira_allocno_conflict_iterator.
8958 (ira_object_conflict_iter_init): Rename from
8959 ira_allocno_conflict_iter_init, second arg changed to
8960 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
8961 FOR_EACH_ALLOCNO_CONFLICT.
8962 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
8963 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
8964 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
8965 * ira-conflicts.c (print_allocno_conflicts): Likewise.
8966
c31c32f9
JR
89672010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
8968
8969 PR other/44874
8970 * tree-dump.c (dump_options): Add enumerate_locals entry.
8971 Add TDF_NOID exclusion to all entry.
8972 * tree-dump.h (dump_enumerated_decls): Declare.
8973 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
8974 Don't display type uid.
8975 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
8976 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
8977 * tree-ssa-live.c: Include gimple.h.
8978 (numbered_tree_d): New struct.
8979 (numbered_tree): New typedef.
8980 (DEF_VEC_O (numbered_tree): New.
8981 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
8982 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
8983 (dump_enumerated_decls): Likewise.
8984 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
8985 debug info and flag_dump_final_insns, call dump_enumerated_decls.
8986 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
8987 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
8988
d1465187
RS
89892010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
8990
8991 * expmed.h (MAX_BITS_PER_WORD): Move to...
8992 * defaults.h (MAX_BITS_PER_WORD): ...here.
8993
0685e770
DD
89942010-07-13 DJ Delorie <dj@redhat.com>
8995
8996 * config/h8300/h8300.c (h8300_init_once): Default to
8997 -fstrict_volatile_bitfields.
8998
8999 * config/sh/sh.c (sh_override_options): Default to
9000 -fstrict_volatile_bitfields.
9001
9002 * config/rx/rx.c (rx_option_override): New.
9003
9004 * config/m32c/m32c.c (m32c_override_options): Default to
9005 -fstrict_volatile_bitfields.
9006
3bb06db4
NF
90072010-07-13 Nathan Froyd <froydnj@codesourcery.com>
9008
9009 * tree.h (build_function_call_expr): Delete.
9010 (build_call_expr_loc_array): New function.
9011 (build_call_expr_loc_vec): New function.
9012 * tree-flow.h (struct omp_region): Change type of ws_args field
9013 to a VEC.
9014 * builtins.c (build_function_call_expr): Delete.
9015 (build_call_expr_loc_array): New function.
9016 (build_call_expr_loc): Call it. Use XALLOCAVEC.
9017 (build_call_expr): Likewise.
9018 (build_call_expr_loc_vec): New function.
9019 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
9020 build_function_call_expr.
9021 * expr.c (emutls_var_address): Likewise.
9022 * varasm.c (emutls_common_1): Likewise.
9023 * omp-low.c (expand_omp_atomic_mutex): Likewise.
9024 (expand_omp_taskreg): Adjust for new type of region->ws_args.
9025 (get_ws_args_for): Return a VEC instead of a tree.
9026 (expand_parallel_call): Call build_call_expr_loc_vec instead of
9027 build_function_call_expr.
9028 * stor-layout.c (self_referential_size): Likewise.
9029
c55c061a
JJ
90302010-07-13 Jakub Jelinek <jakub@redhat.com>
9031
9032 PR testsuite/44701
9033 * recog.c (constrain_operands): Allow side-effects in memory
9034 operands if either < or > constraint is used, rather than if
9035 both < and > is used.
9036
2eb0b984
RG
90372010-07-13 Richard Guenther <rguenther@suse.de>
9038
9039 PR middle-end/44911
9040 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
9041 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
9042 without name.
9043
535b951f
KK
90442010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
9045
9046 PR target/44761
9047 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
9048 to variable emited.
9049 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
9050 * config/sh/sh.md (symGOT_load): Likewise.
9051 (symDTPOFF2reg): Likewise.
9052 (symTPOFF2reg): Likewise.
9053
6d06590d
RR
90542010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9055
9056 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
9057 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
9058
ea2d8f12
RO
90592010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9060
9061 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
9062 explanation.
9063 Find ucontext_t * on Solaris 11.
9064 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
9065 Handle new Solaris 11 __sighndlr patterns.
9066
2fed2012
JJ
90672010-07-13 Jakub Jelinek <jakub@redhat.com>
9068
9069 PR debug/44901
9070 * vec.h (VEC_block_remove): Fix comment.
9071 * tree-ssa-live.c (remove_unused_locals): Don't use
9072 VEC_unordered_remove on local_decls, instead replace a single
9073 vector element in each iteration if at least one element had
9074 to be removed and VEC_truncate at the end.
9075 * omp-low.c (expand_omp_taskreg): Likewise.
9076
cc343f65
MLI
90772010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
9078
9079 * c-decl.c (finish_function): Fix typo in comment.
a691bb08 9080
5676e87d
L
90812010-07-12 H.J. Lu <hongjiu.lu@intel.com>
9082
9083 PR bootstrap/44921
9084 * postreload.c (move2add_use_add3_insn): Silence gcc warning
9085 on min_regno.
9086
8556f58f
JJ
90872010-07-12 Jakub Jelinek <jakub@redhat.com>
9088
9089 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
9090 (simplify_stmt_using_ranges): Use it.
9091
8dc9f5bd
UW
90922010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9093
9094 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
9095 member. Do not mark as GTY(()).
9096 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
9097 (spu_builtin_decls): New static variable.
9098 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
9099 (spu_init_builtins): Likewise.
9100 (spu_builtin_mul_widen_even): Likewise.
9101 (spu_builtin_mul_widen_odd): Likewise.
9102 (spu_builtin_mask_for_load): Likewise.
9103 (spu_builtin_vec_perm): Likewise.
9104 * config/spu/spu-c.c: Include "target.h".
9105 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
9106 of using spu_builtins[].fndecl.
9107
ac9b0eea
RS
91082010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9109
9110 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
9111 imply -minterlink-mips16.
9112
5aa62249
RS
91132010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9114
9115 * config/mips/mips.h (mips16_globals): Declare.
9116 (SWITCHABLE_TARGET): Define.
9117 * config/mips/mips.c: Include target-globals.h.
9118 (mips16_globals): New variable.
9119 (mips_set_mips16_mode): Use save_target_globals and
9120 restore_target_globals instead of target_reinit.
9121
77f55879
RS
91222010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9123
9124 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
9125 to say that the function can be called more than once.
9126 * target-globals.c (save_target_globals): Call init_reg_sets.
9127
76ee381a
RS
91282010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9129
9130 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
9131 * bb-reorder.h: New file.
9132 * bb-reorder.c (default_target_bb_reorder): New variable.
9133 (this_target_bb_reorder): New conditional variable.
9134 (uncond_jump_length): Redefine as a macro.
9135 * target-globals.h (this_target_bb_reorder): Declare.
9136 (target_globals): Add a bb_reorder field.
9137 (restore_target_globals): Copy the bb_reorder field to
9138 this_target_bb-reorder.
9139 * target-globals.c: Include bb-reorder.h.
9140 (default_target_globals): Initialize the bb_reorder field.
9141 (save_target_globals): Likewise.
9142
7c6811fe
RS
91432010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9144
9145 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
9146 * gcse.h: New file.
9147 * gcse.c: Include gcse.h.
9148 (default_target_gcse): New variable.
9149 (this_target_gcse): New conditional variable.
9150 (can_copy): Redefine as a macro.
9151 (can_copy_init_p): New macro.
9152 (can_copy_p): Remove can_copy_init_p.
9153 * target-globals.h (this_target_gcse): Declare.
9154 (target_globals): Add a gcse field.
53f00dde 9155 (restore_target_globals): Copy the gcse field to this_target_gcse.
7c6811fe
RS
9156 * target-globals.c: Include gcse.h.
9157 (default_target_globals): Initialize the gcse field.
9158 (save_target_globals): Likewise.
9159
15e7b94f
RS
91602010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9161
9162 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
9163 and x_ira_prohibited_mode_move_regs_initialized_p.
9164 (ira_prohibited_mode_move_regs): Redefine as a macro.
9165 * ira.c (ira_prohibited_mode_move_regs): Delete.
9166 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
9167
cc14227f
RS
91682010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9169
9170 * reload.h (target_reload): Add x_cached_reg_save_code and
9171 x_cached_reg_restore_code.
9172 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
9173 Redefine as macros.
9174
fa19795e
RS
91752010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9176
9177 * Makefile.in (target-globals.o): Depend on builtins.h.
9178 * builtins.h: New file.
9179 * builtins.c: Include builtins.h.
9180 (default_target_builtins): New variable.
9181 (this_target_builtins): New conditional variable.
9182 (apply_args_mode, apply_result_mode): Redefine as macros.
9183 * target-globals.h (this_target_builtins): Declare.
9184 (target_globals): Add a builtins field.
9185 (restore_target_globals): Copy the builtins field to
9186 this_target_builtins.
9187 * target-globals.c: Include builtins.h.
9188 (default_target_globals): Initialize the builtins field.
9189 (save_target_globals): Likewise.
9190
c371bb73
RS
91912010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9192
9193 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
9194 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
9195 from expmed.c.
9196 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
9197 (alg_hash, alg_hash_used_p): New macros.
9198 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
9199 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
9200 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
9201
aa1c5d72
RS
92022010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9203
9204 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
9205 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
9206 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
9207 (this_op_costs, costs_classes): Redefine as macros.
9208 (record_reg_classes): Don't take op_costs as a parameter.
9209 (record_operand_costs): Likewise. Update calls to record_reg_classes.
9210 (scan_one_insn): Update call to record_operand_costs.
9211
afcc66c4
RS
92122010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9213
9214 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
9215 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
9216 (target_ira_int): New structure.
9217 (default_target_ira_int): Declare.
9218 (this_target_ira_int): Declare as a variable or define as a macro.
9219 (ira_reg_mode_hard_regset, ira_register_move_cost)
9220 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
9221 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
9222 (prohibited_class_mode_regs, ira_important_classes_num)
9223 (ira_important_classes, ira_reg_class_intersect)
9224 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
9225 (ira_reg_class_union): Redefine as macros.
9226 * ira.h (target_ira): New structure.
9227 (default_target_ira): Declare.
9228 (this_target_ira): Declare as a variable or define as a macro.
9229 (ira_available_class_regs, ira_hard_regno_cover_class)
9230 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
9231 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
9232 (ira_class_hard_regs_num): Redefine as macros.
9233 * ira.c (default_target_ira, default_target_ira_int): New variables.
9234 (this_target_ira, this_target_ira_int): New conditional variables.
9235 (ira_reg_mode_hard_regset, ira_memory_move_cost)
9236 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
9237 (ira_class_subset_p): Delete.
9238 (no_unit_alloc_regs): Redefine as a macro.
9239 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
9240 (ira_class_hard_regs_num, ira_class_hard_reg_index)
9241 (ira_available_class_regs): Delete.
9242 (alloc_reg_class_subclasses): Redefine as a macro.
9243 (ira_reg_class_cover_size, ira_reg_class_cover)
9244 (ira_important_classes_num, ira_important_classes)
9245 (ira_important_class_nums, ira_class_translate): Delete.
9246 (cover_class_order): Document the variable's lifetime.
9247 (reorder_important_classes): Don't set ira_important_class_nums.
9248 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
9249 (ira_reg_class_super_classes, ira_reg_class_union)
9250 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
9251 Delete.
9252 (setup_reg_class_nregs): Don't set ira_max_regs.
9253 (prohibited_class_mode_regs): Delete.
9254 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
9255 (target_globals): Add ira and ira_int fields.
9256 (restore_target_globals): Copy the ira field to this_target_ira
9257 and the ira_int field to this_target_ira_int.
9258 * target-globals.c: Include ira-int.h.
9259 (default_target_globals): Initialize the ira and ira_int fields.
9260 (save_target_globals): Likewise.
9261
4391924a
RS
92622010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9263
9264 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
9265 * cfgloop.h (target_cfgloop): New structure.
9266 (default_target_cfgloop): Declare.
9267 (this_target_cfgloop): Declare as a variable or define as a macro.
9268 (target_avail_regs, target_clobbered_regs, target_res_regs)
9269 (target_reg_cost, target_spill_cost): Redefine as macros.
9270 * cfgloopanal.c (default_target_cfgloop): New variable.
9271 (this_target_cfgloop): New conditional variable.
9272 (target_avail_regs, target_clobbered_regs, target_res_regs)
9273 (target_reg_cost, target_spill_cost): Delete.
9274 * target-globals.h (this_target_cfgloop): Declare.
9275 (target_globals): Add a cfgloop field.
9276 (restore_target_globals): Copy the cfgloop field to
9277 this_target_cfgloop.
9278 * target-globals.c: Include cfgloop.h.
9279 (default_target_globals): Initialize the cfgloop field.
9280 (save_target_globals): Likewise.
9281
9d86796b
RS
92822010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9283
9284 * regs.h (target_regs): Add x_direct_load, x_direct_store and
9285 x_float_extend_from_mem.
9286 (direct_load, direct_store, float_extend_from_mem): New macros.
9287 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
9288
3e9c326a
RS
92892010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9290
9291 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
9292 (target-globals.o): Depend on $(LIBFUNCS_H).
9293 * libfuncs.h: Include hashtab.h.
9294 (libfunc_entry): Moved from optabs.c.
9295 (target_libfuncs): New structure.
9296 (default_target_libfuncs): Declare.
9297 (this_target_libfuncs): Declare as a variable or define as a macro.
9298 (libfunc_table): Redefine as a macro.
9299 * optabs.c (default_target_libfuncs): New variable.
9300 (this_target_libfuncs): New conditional variable.
9301 (libfunc_table): Delete.
9302 (libfunc_entry): Moved to optabs.h.
9303 (libfunc_hash): Redefine as a macro.
9304 (hash_libfunc, eq_libfunc): Fix comments.
9305 (init_optabs): Use libfunc_hash to detect cases where the function
9306 has already been called. Clear the hash table instead of
9307 recreating it.
9308 * target-globals.h (this_target_libfuncs): Declare.
9309 (target_globals): Add a libfuncs field.
9310 (restore_target_globals): Copy the libfuncs field to
9311 this_target_libfuncs.
9312 * target-globals.c: Include libfuncs.h.
9313 (default_target_globals): Initialize the libfuncs field.
9314 (save_target_globals): Likewise.
9315
9f7f1892
RS
93162010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9317
9318 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
9319 in all dependency lists.
9320
4bcbfa03
RS
93212010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9322
9323 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
9324 * optabs.h (target_optabs): New structure.
9325 (default_target_optabs): Declare.
9326 (this_target_optabs): Declare as a variable or define as a macro.
9327 (optab_table, convert_optab_table, direct_optab_table): Redefine
9328 as macros.
9329 * optabs.c (default_target_optabs): New variable.
9330 (this_target_optabs): New conditional variable.
9331 (optab_table, convert_optab_table, direct_optab_table): Delete.
9332 * target-globals.h (this_target_optabs): Declare.
9333 (target_globals): Add a optabs field.
9334 (restore_target_globals): Copy the optabs field to
9335 this_target_optabs.
9336 * target-globals.c: Include expr.h and optabs.h.
9337 (default_target_globals): Initialize the optabs field.
9338 (save_target_globals): Likewise.
9339
b6609375
RS
93402010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9341
9342 * flags.h (target_flagstate): Add x_flag_excess_precision.
9343 (flag_excess_precision): Redefine as a macro.
9344 * toplev.c (flag_excess_precision): Delete.
9345
bcbaaba1
RS
93462010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9347
9348 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
9349 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
9350 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
9351 (no_caller_save_reg_set): Redefine as a macro.
9352 * reload.h (target_reload): Add x_caller_save_initialized_p and
9353 x_regno_save_mode.
9354 (caller_save_initialized_p): Redefine as a macro.
9355 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
9356 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
9357 (regno_save_mode): Redefine as a macro.
9358
462f85ce
RS
93592010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9360
9361 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
9362 * expmed.h: New file.
9363 * expmed.c (default_target_costs): New variable.
9364 (this_target_costs): New conditional variable.
9365 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
9366 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
9367 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
9368 * target-globals.h (this_target_expmed): Declare.
9369 (target_globals): Add a expmed field.
9370 (restore_target_globals): Copy the expmed field to
9371 this_target_expmed.
9372 * target-globals.c: Include expmed.h.
9373 (default_target_globals): Initialize the expmed field.
9374 (save_target_globals): Likewise.
9375
d474db84
RS
93762010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9377
9378 * Makefile.in (target-globals.o): Depend on reload.h.
9379 * reload.h (target_reload): New structure.
9380 (default_target_reload): Declare.
9381 (this_target_reload): Declare as a variable or define as a macro.
9382 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
9383 * reload1.c (default_target_reload): New variable
9384 (this_target_reload): New conditional variable.
9385 (indirect_symref_ok, double_reg_address_ok): Delete.
9386 (spill_indirect_levels): Redefine as a macro.
9387 * target-globals.h (this_target_reload): Declare.
9388 (target_globals): Add a reload field.
9389 (restore_target_globals): Copy the reload field to
9390 this_target_reload.
9391 * target-globals.c: Include hard-reg-set.h.
9392 (default_target_globals): Initialize the reload field.
9393 (save_target_globals): Likewise.
9394
7bf84454
RS
93952010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9396
9397 * rtl.h (target_rtl): Add x_static_reg_base_value.
9398 * alias.c (static_reg_base_value): Redefine as a macro.
9399
360d045b
RS
94002010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9401
9402 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
9403 (GTFILES): Remove reginfo.c.
9404 * rtl.h (target_rtl): Add x_top_of_stack.
9405 (top_of_stack): New macro.
9406 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
9407 (top_of_stack): Delete.
9408
55e78c8c
RS
94092010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9410
53f00dde
UB
9411 * regs.h (target_regs): Add x_hard_regs_of_mode,
9412 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
9413 x_may_move_out_cost and x_last_mode_for_init_move_cost.
55e78c8c
RS
9414 (have_regs_of_mode, contains_reg_of_mode, move_cost)
9415 (may_move_in_cost, may_move_out_cost): Redefine as macros.
9416 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
9417 (may_move_in_cost, may_move_out_cost): Delete.
9418 (last_mode_for_init_move_cost): Redefine as a macro.
9419
6642445b
RS
94202010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9421
9422 * hard-reg-set.h (target_hard_regs): New structure.
9423 (default_target_hard_regs): Declare.
9424 (this_target_hard_regs): Declare as a variable or define as a macro.
9425 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
9426 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
9427 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
9428 (reg_class_size, reg_class_subclasses, reg_class_subunion)
9429 (reg_class_superunion, reg_names): Redefine as macros.
9430 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
9431 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
9432 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
9433 (reg_class_contents, reg_class_size, reg_class_subclasses)
9434 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
9435 (default_target_hard_regs): New variable
9436 (this_target_hard_regs, initial_call_really_used_regs)
9437 (initial_reg_alloc_order): New conditional variables.
9438 (initial_reg_names): New variable.
9439 (init_reg_sets): Assert that initial_call_really_used_regs,
9440 initial_reg_alloc_order and initial_reg_names
9441 are all the same size as their variable counterparts. Use them to
9442 initialize those counterparts.
9443 * target-globals.h (this_target_hard_regs): Declare.
9444 (target_globals): Add a hard_regs field.
9445 (restore_target_globals): Copy the hard_regs field to
9446 this_target_hard_regs.
9447 * target-globals.c: Include hard-reg-set.h.
9448 (default_target_globals): Initialize the hard_regs field.
9449 (save_target_globals): Likewise.
9450
5fb0e246
RS
94512010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9452
9453 * Makefile.in (target-globals.o): Depend on $(RTL_H).
bd3a5d17 9454 * rtl.h (target_rtl): New structure.
5fb0e246
RS
9455 (default_target_rtl): Declare.
9456 (this_target_rtl): Declare as a variable or define as a macro.
9457 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
9458 Redefine as macros.
9459 * emit-rtl.c (default_target_rtl): New variable.
9460 (this_target_rtl): New conditional variable.
9461 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
9462 (return_address_pointer_rtx): Delete.
9463 (initial_regno_reg_rtx): New macro.
9464 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
9465 (init_emit_regs): Likewise.
9466 * target-globals.h (this_target_rtl): Declare.
9467 (target_globals): Add a rtl field.
9468 (restore_target_globals): Copy the rtl field to this_target_rtl.
9469 * target-globals.c: Include rtl.h.
9470 (default_target_globals): Initialize the rtl field.
9471 (save_target_globals): Likewise.
9472
939dcd0d
RS
94732010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9474
9475 * Makefile.in (target-globals.o): Depend on $(REGS_H).
9476 * regs.h (target_reg_modes): New structure.
9477 (default_target_reg_modes): Declare.
9478 (this_target_reg_modes): Declare as a variable or define as a macro.
9479 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
9480 * reginfo.c (default_target_reg_modes): New variable.
9481 (this_target_reg_modes): New conditional variable.
9482 (hard_regno_nregs, reg_raw_mode): Delete.
9483 * target-globals.h (this_target_regs): Declare.
9484 (target_globals): Add a regs field.
9485 (restore_target_globals): Copy the regs field to this_target_regs.
9486 * target-globals.c: Include regs.h.
9487 (default_target_globals): Initialize the regs field.
9488 (save_target_globals): Likewise.
9489
3bd36029
RS
94902010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9491
9492 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
9493 * doc/tm.texi: Regenerate.
9494 * Makefile.in (OBJS-common): Add target-globals.o.
9495 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
9496 and target-globals.h.
9497 (target-globals.o): New rule.
9498 (GTFILES): Include $(srcdir)/target-globals.h.
9499 * defaults.h (SWITCHABLE_TARGET): Define.
9500 * gengtype.c (open_base_files): Add target-globals.h to the
9501 list of includes.
9502 * target-globals.h: New file.
9503 * target-globals.c: Likewise.
9504
9505 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
9506 * flags.h (target_flag_state): New structure.
9507 (default_target_flag_state): Declare.
9508 (this_target_flag_state): Declare as a variable or define as a macro.
9509 (align_loops_log): Redefine as a macro.
9510 (align_loops_max_skip, align_jumps_log): Likewise.
9511 (align_jumps_max_skip, align_labels_log): Likewise.
9512 (align_labels_max_skip, align_functions_log): Likewise.
9513 * toplev.c (default_target_flag_state): New variable.
9514 (this_target_flag_state): New conditional variable.
9515 (align_loops_log): Delete.
9516 (align_loops_max_skip, align_jumps_log): Likewise.
9517 (align_jumps_max_skip, align_labels_log): Likewise.
9518 (align_labels_max_skip, align_functions_log): Likewise.
9519 * target-globals.h (this_target_flag_state): Declare.
9520 (target_globals): Add a flag_state field.
9521 (restore_target_globals): Copy the flag_state field to
9522 this_target_flag_state.
9523 * target-globals.c: Include flags.h.
9524 (default_target_globals): Initialize the flag_state field.
9525 (save_target_globals): Likewise.
9526
7beb0596
JZ
95272010-07-12 Jie Zhang <jie@codesourcery.com>
9528
9529 * postreload.c (reg_symbol_ref[]): New.
9530 (move2add_use_add2_insn): New.
9531 (move2add_use_add3_insn): New.
9532 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
9533 (move2add_note_store): Likewise.
9534
ea19b1ec
JR
95352010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
9536
9537 PR rtl-optimization/44752
9538 * genautomata.c (main): Don't emit an empty file even if there
9539 is no automaton.
9540
e2b4f103
RO
95412010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9542
9543 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
9544 ix86_solaris_return_in_memory.
9545 * config/i386-protos.h: Reflect this.
9546 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
9547 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
9548 Move ...
9549 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
9550
fb2f8cf8
JZ
95512010-07-12 Jie Zhang <jie@codesourcery.com>
9552
9553 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
9554 align the stack when it's going to be saved.
9555
8f89ba7c
RO
95562010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9557
9558 PR pch/14940
9559 * config/host-solaris.c (mmap_fixed): New function.
9560 (sol_gt_pch_get_address): Use it.
9561 (sol_gt_pch_use_address): Likewise.
9562
ae6a0535
RO
95632010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9564
9565 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
9566 pentiumpro on Solaris 8 and 9/x86.
9567 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
9568 Document SSE/SSE2 support.
9569 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
9570
e56d9a76
AK
95712010-07-12 Andi Kleen <ak@linux.intel.com>
9572
9573 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
9574 instead of gcc_assert to print better error message for multiple
9575 prevailing defs.
9576
9db335b9
UB
95772010-07-12 Uros Bizjak <ubizjak@gmail.com>
9578
9579 * config/i386/i386.c (ix86_asm_output_function_label): Change format
9580 string placeholder from 0x%x to %#x.
9581 (ix86_code_end): Use putc to output '\n'.
9582 (ix86_print_operand) <case ';'>: Use putc to output ';'.
9583
23b488ad
KT
95842010-07-11 Kai Tietz <kai.tietz@onevision.com>
9585
9586 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
9587 in directive -export.
9588
a56b31ca
AS
95892010-07-10 Anatoly Sokolov <aesok@post.ru>
9590
9591 * reginfo.h (reg_classes_intersect_p): Change arguments type to
9592 reg_class_t.
9593 * rtl.h (reg_classes_intersect_p): Adjust prototype.
9594
9595 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9596 Remove macros.
9597 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
9598 rs6000_memory_move_cost): Remove
9599 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
9600 TARGET_MEMORY_MOVE_COST): Define.
9601 (rs6000_register_move_cost): Make static. Change arguments type from
9602 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
9603 (rs6000_memory_move_cost): Make static. Change arguments type from
9604 'enum reg_class' to reg_class_t.
9605
bec922f0
SL
96062010-07-10 Sandra Loosemore <sandra@codesourcery.com>
9607
9608 PR middle-end/42505
9609 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
9610 lookup code into....
9611 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
9612 new functions.
9613 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
9614 * cfgloopanal.c (target_clobbered_regs): Define.
9615 (init_set_costs): Initialize target_clobbered_regs.
9616 (estimate_reg_pressure_cost): Add call_p argument. When true,
9617 adjust the number of available registers to exclude the
9618 call-clobbered registers.
9619 * cfgloop.h (target_clobbered_regs): Declare.
9620 (estimate_reg_pressure_cost): Adjust declaration.
9621 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
9622 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
9623 (determine_set_costs): Dump target_clobbered_regs.
9624 (loop_body_includes_call): New function.
9625 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
9626 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
9627 call_p flag through.
9628 (best_gain_for_invariant): Likewise.
9629 (find_invariants_to_move): Likewise.
9630 (move_single_loop_invariants): Likewise, using already-computed
9631 has_call field.
9632
ccf134c7
RG
96332010-07-10 Richard Guenther <rguenther@suse.de>
9634 Joern Rennecke <joern.rennecke@embecosm.com>
9635
9636 PR debug/44832
9db335b9 9637 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
ccf134c7
RG
9638 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
9639 unless they have DECL_IGNORED_P set.
9640
bcee752e
RG
96412010-07-10 Richard Guenther <rguenther@suse.de>
9642
9643 PR lto/44889
9644 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
9645 helper function.
9646 (gimple_types_compatible_p): Similar to pointed-to
9647 types allow and merge a mix of complete and incomplete aggregate.
9648 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
9649 (iterative_hash_gimple_type): Adjust for that.
9650
7e9b9697
RS
96512010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
9652
9653 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
9654
058bfe53
IS
96552010-07-10 Iain Sandoe <iains@gcc.gnu.org>
9656
9657 PR objc/44140
9658 * config/darwin.c (output_objc_section_asm_op): Save and restore
9659 section when outputting ObjC section list.
9660
b772114c
JH
96612010-07-09 Jan Hubicka <jh@suse.cz>
9662
9db335b9
UB
9663 * lto-streamer-out.c (produce_symtab): Do not write alias
9664 cgraph/varpool nodes.
b772114c 9665
7e97ee1a
JH
96662010-07-09 Jan Hubicka <jh@suse.cz>
9667
9668 * tree-inline.c (declare_return_variable): Fix ICE while
9669 inlining DECL_BY_VALUE function not in SSA form
9670
0bbe50f6
CF
96712010-07-09 Changpeng Fang <changpeng.fang@amd.com>
9672
9673 PR tree-optimization/44576
9674 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
9675 New. Pull out from is_loop_prefetching_profitable to implement
9676 the trip count to ahead ratio heuristic.
9677 (mem_ref_count_reasonable_p): New. Pull out from
9678 is_loop_prefetching_profitable to implement the instruction to
9679 memory reference ratio heuristic. Also consider not reasonable if
9680 the memory reference count is above a threshold (to avoid
9681 explosive compilation time.
9682 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
9683 is_loop_prefetching_profitable to implement the instruction to
9684 prefetch ratio heuristic.
9685 (is_loop_prefetching_profitable): Removed.
9686 (loop_prefetch_arrays): Distribute the cost analysis across the
9687 function to allow early exit of the prefetch analysis.
9688 is_loop_prefetching_profitable is splitted into three functions,
9689 with each one called as early as possible.
9690 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
9691 number of memory references in a loop is considered too many.
9692
c033690d
BS
96932010-07-09 Bernd Schmidt <bernds@codesourcery.com>
9694
9db335b9
UB
9695 * reload.c (find_reloads): Don't clear badop if we have a winreg
9696 alternative, but not win, and the class only has fixed regs.
c033690d
BS
9697 * hard-reg-set.h (class_only_fixed_regs): Declare.
9698 * reginfo.c (class_only_fixed_regs): New array.
9699 (init_reg_sets_1): Initialize it.
9700 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
9701 discourage alternatives using the stack pointer.
9702
0879e7b3
BS
9703 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
9704
1744c800
BS
9705 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
9706
95da5cf9
BS
9707 * config/arm/arm.md (cbranchqi4): Fix array size.
9708 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
9709 calculating length.
9710
e8edaf95
RG
97112010-07-09 Richard Guenther <rguenther@suse.de>
9712
9713 * gimple.c (struct type_fixup_s): New struct and VEC type.
9714 (gimple_register_type_fixups): New static global.
9715 (gimple_queue_type_fixup): New function.
9716 (gimple_types_compatible_p): Queue type fixups instead of
9717 applying them here.
9718 (gimple_register_type): Apply queued fixups for the
9719 canonical type. Empty the type fixup queue.
9720
7085bfb6
UB
97212010-07-09 Uros Bizjak <ubizjak@gmail.com>
9722
9723 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
9724 * configure: Regenerate.
abcb0bd9 9725 * config.in: Ditto.
7085bfb6 9726
85e693aa
JJ
97272010-07-09 Jakub Jelinek <jakub@redhat.com>
9728 Denys Vlasenko <dvlasenk@redhat.com>
9729 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9730
9731 PR tree-optimization/28632
9732 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
9733 (extract_range_from_binary_expr): Further optimize
9734 BIT_AND_EXPR and BIT_IOR_EXPR.
9735
59ee2304
SP
97362010-07-09 Sebastian Pop <sebastian.pop@amd.com>
9737
9738 * tree-if-conv.c (fold_or_predicates): New.
9739 (add_to_predicate_list): Call it.
9740
38a178dd
RG
97412010-07-09 Richard Guenther <rguenther@suse.de>
9742
9743 PR middle-end/44890
9744 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
9745 if base is a pointer.
9746 * tree-cfg.c (verify_expr): Update MEM_REF checking.
9747
c8aa02cc
MM
97482010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
9749
9750 PR target/44877
9751 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
9752 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
9753 builtin mask for load/store builtins.
9754
4bade865
UB
97552010-07-09 Uros Bizjak <ubizjak@gmail.com>
9756
9757 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
9758 for "lock addl".
9759 * configure: Regenerate.
9760 * config/i386/i386.c (ix86_print_operand) <case ';'>:
9761 Remove TARGET_MACHO.
9762
2c9ccc21
PB
97632010-07-09 Peter Bergner <bergner@vnet.ibm.com>
9764
9765 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
9766 default ISA flags.
9767 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
9768
5c9fae0d
TV
97692010-07-09 Tom de Vries <tjvries@xs4all.nl>
9770
9771 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
9772
7085bfb6 97732010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
099379da
HS
9774
9775 * config/picochip/picochip.md (commsTestPort): Emit more
9776 efficient sequence for tstport instruction.
9777
f55a7cbc
UB
97782010-07-09 Uros Bizjak <ubizjak@gmail.com>
9779
9780 * config/i386/i386.c (ix86_veclib_handler): Make static.
9781
dbfcc059
RG
97822010-07-09 Richard Guenther <rguenther@suse.de>
9783
9784 PR tree-optimization/44852
9785 * tree-ssa-alias.c: Include toplev.h for exact_log2.
9786 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
9787 in MEM_REF.
9788 (indirect_refs_may_alias_p): Likewise.
9789 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
9790
ca1316d2
RG
97912010-07-09 Richard Guenther <rguenther@suse.de>
9792
9793 PR tree-optimization/44882
9794 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
9795 sets do conflict.
9796 (vectorizable_load): Likewise.
9797
e784c52c
BS
97982010-07-09 Bernd Schmidt <bernds@codesourcery.com>
9799
9800 PR target/40657
9801 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
9802 All callers changed.
9803 Handle the case when we're called for the epilogue.
9804 (thumb_unexpanded_epilogue): Use it.
9805 (thumb1_expand_epilogue): Likewise.
9806
ac285648
JJ
98072010-07-09 Jakub Jelinek <jakub@redhat.com>
9808
9809 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
9810 both ranges are range_int_cst_p with non-negative minimum,
9811 try harder to derive smaller range.
9812
79a3f089
MLI
98132010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
9814
9815 * genrecog.c: Include diagnostic-core.h before toplev.h.
9816 * genoutput.c: Likewise.
9817 * genextract.c: Likewise.
9818 * genautomata.c: Likewise.
9819 * genemit.c: Likewise.
9820 * genpeep.c: Likewise.
9821 * genattrtab.c: Likewise.
9822 * genconditions.c: Likewise.
9823 * genpreds.c: Likewise.
9824
f55a7cbc 98252010-07-08 Andi Kleen <ak@linux.intel.com>
1df15c3d
AK
9826
9827 * lto-section-in.c (lto_section_name): Add missing comma.
9828
930572b9
AS
98292010-07-08 Anatoly Sokolov <aesok@post.ru>
9830
9831 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
9832 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
9833 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
9834 (ia64_override_options): Rename to...
9835 (ia64_option_override): ... this one. Make static.
9836
5951297a
EB
98372010-07-08 Eric Botcazou <ebotcazou@adacore.com>
9838
9839 PR middle-end/44843
9840 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
9841 pointed-to type of the offset in a MEM_REF to compute the alignment.
9842
135a687e
KT
98432010-07-08 Kai Tietz <kai.tietz@onevision.com>
9844
2784ed9c
KT
9845 * final.c (final_scan_insn): Replace
9846 TARGET_UNWIND_INFO macro check by unwind_emit
9847 hook NULL check.
9848 * targhooks.c (default_unwind_emit): Removed.
9849 * targhooks.h (default_unwind_emit): Likewise.
9850 * target.def (unwind_emit): Set default value to NULL.
9851
135a687e
KT
9852 * config/i386/i386-protos.h (ix86_asm_output_function_label):
9853 New prototype.
9854 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
9855 for NULL fntype argument and allow 64-bit targets.
9856 (ix86_asm_output_function_label): New function.
9857 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
9858 (ix86_handle_fndecl_attribute): Likewise.
9859 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
9860 * doc/doc/tm.texi: Regenerated.
9861 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
9862 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
9863 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
9864 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
9865 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
9866 * config/elfos.h: Likewise.
9867 * config/i386/cygming.h: Likewise.
9868 * config/netbsd-aout.h: Likewise.
9869 * config/openbsd.h: Likewise.
9870 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
9871 by ix86_asm_output_function_label function call.
9872 * varasm.c (assemble_start_function): Use
9873 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
9874
09411461
JH
98752010-07-08 Jan Hubicka <jh@suse.cz>
9876
9877 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
9878 New function.
9879 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
9880 Declare.
9881 * ipa-cp.c (ipcp_estimate_growth): Use it.
9882 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
9883 Likewise.
9884
72109b25
JH
98852010-07-08 Jan Hubicka <jh@suse.cz>
9886
9887 * tree-inline.c (declare_return_variable): Allocate annotation for new
9888 temporary.
9889
d89e5e20
SP
98902010-07-08 Sebastian Pop <sebastian.pop@amd.com>
9891
9892 PR tree-optimization/44710
9893 * tree-if-conv.c (parse_predicate): New.
9894 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
9895 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
9896
384a5197
SP
98972010-07-08 Sebastian Pop <sebastian.pop@amd.com>
9898
9899 * common.opt (ftree-loop-if-convert): New flag.
9900 * doc/invoke.texi (ftree-loop-if-convert): Documented.
9901 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
9902 when flag_tree_loop_if_convert is set.
9903
f8e1995a
UB
99042010-07-08 Uros Bizjak <ubizjak@gmail.com>
9905
9906 * config/i386/i386.c: Use short syntax for function calls
9907 through function pointers.
9908 * config/i386/i386.md: Ditto.
9909
a80903ff
EB
99102010-07-08 Eric Botcazou <ebotcazou@adacore.com>
9911
9912 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
9913
d0c422cb
RG
99142010-07-08 Richard Guenther <rguenther@suse.de>
9915
9916 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
9917 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
9918
b298f924
JJ
99192010-07-08 Jakub Jelinek <jakub@redhat.com>
9920
9921 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
9922 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
9923 (loc_list_from_tree): Likewise.
9924 (output_loc_operands): Handle outputting DW_OP_const[48]u
9925 with loc->dtprel set.
9926 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
9927
5dde3b01
JH
99282010-07-08 Jan Hubicka <jh@suse.cz>
9929
9930 * ipa.c: Include pointer-set.h
9931 (cgraph_externally_visible_p): New attribute ALIASED;
9932 when in LTO, hidden symbols are local unless they are aliased.
9933 (function_and_variable_visibility): Compute aliased nodes;
9934 handle LTO and hidden symbol on functions and vars.
9935 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
9936 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
9937
2de710b9
EB
99382010-07-08 Eric Botcazou <ebotcazou@adacore.com>
9939
9940 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9941 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9942 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9943 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9944 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9945 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
9946 (ix86_gen_probe_stack_range): Likewise.
9947 (override_options): Set them.
9948 (ix86_target_stack_probe): New function.
9949 (ix86_compute_frame_layout): Force use of push instructions to
9950 save registers if stack checking with probes is enabled.
9951 (get_scratch_register_on_entry): New function.
9952 (release_scratch_register_on_entry): Likewise.
9953 (ix86_adjust_stack_and_probe): Likewise.
9954 (output_adjust_stack_and_probe): Likewise.
9955 (ix86_emit_probe_stack_range): Likewise.
9956 (output_probe_stack_range): Likewise.
9957 (ix86_expand_prologue): Emit stack checking code if static built-in
9958 stack checking is enabled.
9959 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
9960 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
9961 (output_adjust_stack_and_probe): Likewise.
9962 (output_probe_stack_range): Likewise.
9963 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9964 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
9965 TARGET_STACK_PROBE.
9966 (allocate_stack_worker_64): Likewise.
9967 (allocate_stack): Likewise.
9968 (adjust_stack_and_probe): New insn.
9969 (probe_stack_range): Likewise.
9970
f076deba
RG
99712010-07-08 Richard Guenther <rguenther@suse.de>
9972
9973 PR tree-optimization/44831
9974 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
9975 a MEM_REF preserving TBAA info of the original dereference.
4bade865 9976 Dereference the original pointer if the address is not invariant.
f076deba
RG
9977 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
9978 at least one invariant address that we are going to dereference.
9979
20ede5c6
RG
99802010-07-08 Richard Guenther <rguenther@suse.de>
9981
9982 PR tree-optimization/44861
9983 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
9984 information when building MEM_REFs.
9985 (vectorizable_load): Likewise.
9986 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
9987
80edb36c
EB
99882010-07-08 Eric Botcazou <ebotcazou@adacore.com>
9989
9990 * config/sol2-c.c: Do not include diagnostic-core.h.
9991
2e1ec94f
RR
99922010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9993
1df15c3d 9994 PR bootstrap/44768
2e1ec94f
RR
9995 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
9996 with respect to current_function_decl. Pass decl of the function.
9997 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
9998 * ipa-inline.c (compute_inline_parameters): Pass decl to
9999 estimated_stack_frame_size.
10000
a03a9774
RG
100012010-07-08 Richard Guenther <rguenther@suse.de>
10002
10003 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
10004 New function.
10005 (valueize_refs): Call it.
10006
e73cfe5d
RG
100072010-07-08 Richard Guenther <rguenther@suse.de>
10008
10009 PR rtl-optimization/44838
10010 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
10011 SSA form do not use pointer equivalence.
10012
51d49bc2
EB
100132010-07-08 Eric Botcazou <ebotcazou@adacore.com>
10014
10015 * dwarf2out.c (AT_linkage_name): Delete.
10016 (add_linkage_attr): New function.
10017 (add_linkage_name): Call it to emit the linkage attribute.
10018 (dwarf2out_finish): Likewise.
10019 (move_linkage_attr): Explicitly accept both attribute variants.
10020
718f9c0f
MLI
100212010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
10022
10023 * toplev.h: Do not include diagnostic-core.h.
10024 Include diagnostic-core.h in every file that includes toplev.h.
10025 * c-tree.h: Do not include toplev.h.
10026 * pretty-print.h: Update comment.
10027 * Makefile.in: Update dependencies.
10028 * alias.c: Include diagnostic-core.h in every file that includes
10029 toplev.h.
10030 * attribs.c: Likewise.
10031 * auto-inc-dec.c: Likewise.
10032 * bb-reorder.c: Likewise.
10033 * bt-load.c: Likewise.
10034 * caller-save.c: Likewise.
10035 * calls.c: Likewise.
10036 * cfg.c: Likewise.
10037 * cfganal.c: Likewise.
10038 * cfgbuild.c: Likewise.
10039 * cfgcleanup.c: Likewise.
10040 * cfghooks.c: Likewise.
10041 * cfgloop.c: Likewise.
10042 * combine.c: Likewise.
10043 * config/alpha/alpha.c: Likewise.
10044 * config/arc/arc.c: Likewise.
10045 * config/arm/arm.c: Likewise.
10046 * config/arm/pe.c: Likewise.
10047 * config/avr/avr.c: Likewise.
10048 * config/bfin/bfin.c: Likewise.
10049 * config/cris/cris.c: Likewise.
10050 * config/crx/crx.c: Likewise.
10051 * config/darwin-c.c: Likewise.
10052 * config/darwin.c: Likewise.
10053 * config/fr30/fr30.c: Likewise.
10054 * config/frv/frv.c: Likewise.
10055 * config/h8300/h8300.c: Likewise.
10056 * config/host-darwin.c: Likewise.
10057 * config/i386/i386.c: Likewise.
10058 * config/i386/netware.c: Likewise.
10059 * config/i386/nwld.c: Likewise.
10060 * config/i386/winnt-cxx.c: Likewise.
10061 * config/i386/winnt-stubs.c: Likewise.
10062 * config/i386/winnt.c: Likewise.
10063 * config/ia64/ia64-c.c: Likewise.
10064 * config/ia64/ia64.c: Likewise.
10065 * config/iq2000/iq2000.c: Likewise.
10066 * config/lm32/lm32.c: Likewise.
10067 * config/m32c/m32c-pragma.c: Likewise.
10068 * config/m32c/m32c.c: Likewise.
10069 * config/m32r/m32r.c: Likewise.
10070 * config/m68hc11/m68hc11.c: Likewise.
10071 * config/m68k/m68k.c: Likewise.
10072 * config/mcore/mcore.c: Likewise.
10073 * config/mep/mep-pragma.c: Likewise.
10074 * config/mep/mep.c: Likewise.
10075 * config/mmix/mmix.c: Likewise.
10076 * config/mn10300/mn10300.c: Likewise.
10077 * config/moxie/moxie.c: Likewise.
10078 * config/pa/pa.c: Likewise.
10079 * config/pdp11/pdp11.c: Likewise.
10080 * config/picochip/picochip.c: Likewise.
10081 * config/rs6000/rs6000-c.c: Likewise.
10082 * config/rs6000/rs6000.c: Likewise.
10083 * config/rx/rx.c: Likewise.
10084 * config/s390/s390.c: Likewise.
10085 * config/score/score.c: Likewise.
10086 * config/score/score3.c: Likewise.
10087 * config/score/score7.c: Likewise.
10088 * config/sh/sh.c: Likewise.
10089 * config/sh/symbian-base.c: Likewise.
10090 * config/sh/symbian-c.c: Likewise.
10091 * config/sh/symbian-cxx.c: Likewise.
10092 * config/sol2-c.c: Likewise.
10093 * config/sol2.c: Likewise.
10094 * config/sparc/sparc.c: Likewise.
10095 * config/spu/spu.c: Likewise.
10096 * config/stormy16/stormy16.c: Likewise.
10097 * config/v850/v850-c.c: Likewise.
10098 * config/v850/v850.c: Likewise.
10099 * config/vax/vax.c: Likewise.
10100 * config/vxworks.c: Likewise.
10101 * config/xtensa/xtensa.c: Likewise.
10102 * convert.c: Likewise.
10103 * cse.c: Likewise.
10104 * cselib.c: Likewise.
10105 * dbgcnt.c: Likewise.
10106 * dbxout.c: Likewise.
10107 * ddg.c: Likewise.
10108 * dominance.c: Likewise.
10109 * emit-rtl.c: Likewise.
10110 * explow.c: Likewise.
10111 * expmed.c: Likewise.
10112 * fixed-value.c: Likewise.
10113 * fold-const.c: Likewise.
10114 * fwprop.c: Likewise.
10115 * gcse.c: Likewise.
10116 * ggc-common.c: Likewise.
10117 * ggc-page.c: Likewise.
10118 * ggc-zone.c: Likewise.
10119 * gimple-low.c: Likewise.
10120 * gimplify.c: Likewise.
10121 * graph.c: Likewise.
10122 * haifa-sched.c: Likewise.
10123 * ifcvt.c: Likewise.
10124 * implicit-zee.c: Likewise.
10125 * integrate.c: Likewise.
10126 * ira-build.c: Likewise.
10127 * ira-color.c: Likewise.
10128 * ira-conflicts.c: Likewise.
10129 * ira-costs.c: Likewise.
10130 * ira-lives.c: Likewise.
10131 * ira.c: Likewise.
10132 * lists.c: Likewise.
10133 * loop-doloop.c: Likewise.
10134 * loop-iv.c: Likewise.
10135 * lto-opts.c: Likewise.
10136 * lto-symtab.c: Likewise.
10137 * main.c: Likewise.
10138 * modulo-sched.c: Likewise.
10139 * optabs.c: Likewise.
10140 * params.c: Likewise.
10141 * plugin.c: Likewise.
10142 * postreload-gcse.c: Likewise.
10143 * postreload.c: Likewise.
10144 * predict.c: Likewise.
10145 * profile.c: Likewise.
10146 * real.c: Likewise.
10147 * regcprop.c: Likewise.
10148 * reginfo.c: Likewise.
10149 * regmove.c: Likewise.
10150 * reorg.c: Likewise.
10151 * resource.c: Likewise.
10152 * rtl.c: Likewise.
10153 * rtlanal.c: Likewise.
10154 * sched-deps.c: Likewise.
10155 * sched-ebb.c: Likewise.
10156 * sched-rgn.c: Likewise.
10157 * sdbout.c: Likewise.
10158 * sel-sched-dump.c: Likewise.
10159 * sel-sched-ir.c: Likewise.
10160 * simplify-rtx.c: Likewise.
10161 * stmt.c: Likewise.
10162 * stor-layout.c: Likewise.
10163 * store-motion.c: Likewise.
10164 * targhooks.c: Likewise.
10165 * tree-cfg.c: Likewise.
10166 * tree-cfgcleanup.c: Likewise.
10167 * tree-dump.c: Likewise.
10168 * tree-eh.c: Likewise.
10169 * tree-inline.c: Likewise.
10170 * tree-nomudflap.c: Likewise.
10171 * tree-object-size.c: Likewise.
10172 * tree-optimize.c: Likewise.
10173 * tree-outof-ssa.c: Likewise.
10174 * tree-phinodes.c: Likewise.
10175 * tree-profile.c: Likewise.
10176 * tree-ssa-ccp.c: Likewise.
10177 * tree-ssa-coalesce.c: Likewise.
10178 * tree-ssa-live.c: Likewise.
10179 * tree-ssa-loop-niter.c: Likewise.
10180 * tree-ssa-loop-prefetch.c: Likewise.
10181 * tree-ssa-loop.c: Likewise.
10182 * tree-ssa-structalias.c: Likewise.
10183 * tree-ssa-uninit.c: Likewise.
10184 * tree-ssa.c: Likewise.
10185 * tree-vect-data-refs.c: Likewise.
10186 * tree-vect-loop-manip.c: Likewise.
10187 * tree-vect-loop.c: Likewise.
10188 * tree-vect-patterns.c: Likewise.
10189 * tree-vect-stmts.c: Likewise.
10190 * tree-vrp.c: Likewise.
10191 * varasm.c: Likewise.
10192 * vec.c: Likewise.
10193 * web.c: Likewise.
10194 * xcoffout.c: Likewise.
10195
647565f6
RS
101962010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
10197
10198 * gengtype.c (write_field_root): New function.
10199 (write_root): Use it.
10200
88c1612f
WG
102012010-07-07 Wei Guozhi <carrot@google.com>
10202
10203 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10204 of lowest bits to lshift/compare): Add a missing line.
10205
ece53c91
WG
102062010-07-07 Wei Guozhi <carrot@google.com>
10207
10208 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10209 of lowest bits to lshift/compare): New.
10210
9730bc27
TT
102112010-07-07 Tom Tromey <tromey@redhat.com>
10212
10213 * doc/tm.texi: Update.
10214 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
10215 Add @hook.
10216 * target.def (want_debug_pub_sections): New hook.
10217 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
10218 * dwarf2out.c (add_pubname_string): Check
10219 targetm.want_debug_pub_sections.
10220 (add_pubname): Likewise.
10221 (add_pubtype): Likewise.
10222
f5d5226b
JZ
102232010-07-07 Jie Zhang <jie@codesourcery.com>
10224
10225 * genautomata.c (output_automata_list_min_issue_delay_code):
10226 Correctly decompress min_issue_delay.
10227
71df5a7e
BS
102282010-07-07 Bernd Schmidt <bernds@codesourcery.com>
10229
10230 PR rtl-optimization/44404
10231 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
10232 possible, use reg_overlap_mentioned_p instead.
10233
f625098e
DS
102342010-07-07 Duncan Sands <baldrick@free.fr>
10235
10236 PR middle-end/41355
10237 * tree.c (build_function_type_skip_args): Copy the original type using
1df15c3d 10238 build_distinct_type_copy rather than copy_node.
f625098e 10239
ab33bd5c
L
102402010-07-07 H.J. Lu <hongjiu.lu@intel.com>
10241
10242 PR target/44850
10243 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
10244 revision 161876.
10245 (ix86_expand_prologue): Likewise.
10246 (ix86_handle_fndecl_attribute): Likewise.
10247 (ix86_asm_declare_function_name): Likewise.
10248 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10249 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10250 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
4bade865 10251 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
ab33bd5c
L
10252 * doc/extend.texi: Likewise.
10253
5e86e540
L
102542010-07-07 H.J. Lu <hongjiu.lu@intel.com>
10255
10256 PR target/44844
10257 * config/i386/i386.md (rdrand<mode>): Changed to expand to
10258 retry if the carry flag isn't valid.
10259 (rdrand<mode>_1): New.
10260
0ee95c43
RG
102612010-07-07 Richard Guenther <rguenther@suse.de>
10262
10263 PR middle-end/44790
10264 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
10265 for expanding the constant offset for MEM_REFs.
10266
523968bf
RG
102672010-07-07 Richard Guenther <rguenther@suse.de>
10268
10269 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
10270 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
10271 * gimple.h (is_gimple_operand): Remove.
10272 * gimple.c (is_gimple_operand): Likewise.
10273 (walk_gimple_op): Fix wi->val_only setting for calls.
10274 * tree-cfg.c (verify_gimple_call): Fix argument validation.
10275 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
10276 invalid gimple calls.
10277
86353474
JH
102782010-07-06 Jan Hubicka <jh@suse.cz>
10279
10280 * lto-cgraph.c (output_cgraph): Add missing declaration.
10281
b0d9e663
JH
102822010-07-06 Jan Hubicka <jh@suse.cz>
10283
10284 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
10285 partition.
10286
38be945b
AO
102872010-07-06 Alexandre Oliva <aoliva@redhat.com>
10288
10289 * doc/gimple.texi (GIMPLE_DEBUG): Document.
10290 * doc/rtl.texi (Debug Information): New node.
10291 (NOTE_INSN_VAR_LOCATION): Document.
10292 (debug_insn): Likewise.
10293 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
10294
6938f93f
JH
102952010-07-07 Jan Hubicka <jh@suse.cz>
10296
4bade865 10297 With parts by Richard Guenther.
6938f93f
JH
10298
10299 PR middle-end/44813
10300 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
10301 for functions passed by reference.
10302 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
10303 in memory when passed by reference.
10304 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
10305 beggining.
10306 * ipa-split.c (split_function): Cleanup way return value is passed;
10307 handle SSA DECL_BY_REFERENCE retvals.
10308 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
10309 DECL_BY_REFERENCE is set.
10310 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
10311 find_what_p_points_to): Handle RESULT_DECL.
10312 * tree-inline.c (declare_return_variable): Get new entry_block argument;
10313 when passing by reference ensure that RESULT_DECL is gimple_val.
10314 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
10315 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
10316
325d7997
BS
103172010-07-07 Bernd Schmidt <bernds@codesourcery.com>
10318
10319 PR rtl-optimization/44787
10320 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
10321 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
10322
e10aaec0
JH
103232010-07-06 Jan Hubicka <jh@suse.cz>
10324
10325 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
10326 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
10327 with body can prevail.
10328 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
10329 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
10330 * cgraph.c (cgraph_get_node_or_alias): New function.
10331 * cgraph.h (cgraph_get_node_or_alias): Declare.
10332
4bbf141c
KT
103332010-07-06 Kai Tietz <kai.tietz@onevision.com>
10334
10335 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
10336 support.
10337 (ix86_expand_prologue): Likewise.
10338 (ix86_handle_fndecl_attribute): Likewise.
10339 (ix86_asm_declare_function_name): New function for
10340 ASM_DECLARE_FUNCTION_NAME.
10341 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
10342 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
10343 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
10344 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
10345 * doc/extend.texi: Adjust documentation about ms_hook_prologue
10346 attribute.
10347
9aa5922d
UB
103482010-07-06 Uros Bizjak <ubizjak@gmail.com>
10349
10350 * config/i386/i386.md (immediate_operand): New mode attribute.
f8e1995a 10351
9aa5922d
UB
10352 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
10353 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
10354 using P mode iterator.
10355 (pro_epilogue_adjust_stack_di_2): Rename from
10356 pro_epilogue_adjust_stack_rex64_2.
10357
10358 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
10359
103602010-07-06 Uros Bizjak <ubizjak@gmail.com>
10361
10362 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
10363 through gen_mov_insv_1 function pointer.
10364 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
10365 gen_truncxf<mode>2 through gen_truncxf function pointer.
10366 (remainder<mode>3): Ditto.
10367 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
10368 (allocate_stack): Call gen_allocate_stack_worker_64 or
10369 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
10370 function pointer.
10371 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
10372 function pointer.
10373
103742010-07-06 Uros Bizjak <ubizjak@gmail.com>
10375
10376 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
10377 operand constraint instead of <r><i>m.
10378
dfb88126
RG
103792010-07-06 Richard Guenther <rguenther@suse.de>
10380
10381 PR middle-end/44828
10382 * convert.c (convert_to_integer): Watch out for overflowing
10383 MULT_EXPR as well.
10384
c5d1f058
JH
103852010-07-05 Jan Hubicka <jh@suse.cz>
10386
10387 * lto-streamer.c (write_symbol_vec): Rename to ...
10388 (write_symbol) ... this one; write only symbol given and when
10389 present in cache. Sanity check that what is defined is present
10390 in cgraph/varpool with body/finalized decl.
10391 (write_symbols_of_kind): Remove.
10392 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
10393 pairs to produce symtab.
10394 (produce_asm_for_decls): Update call of produce_symtab; don't do so
10395 when doing WPA streaming.
10396
6e4da084
JH
103972010-07-05 Jan Hubicka <jh@suse.cz>
10398
10399 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
10400 function is still available to fold into.
10401
c021f10b
NF
104022010-07-05 Nathan Froyd <froydnj@codesourcery.com>
10403
10404 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
10405 * function.h (struct_function): Change type of local_decls field
10406 to a VEC.
10407 (add_local_decl): New function.
10408 (FOR_EACH_LOCAL_DECL): New macro.
10409 * cfgexpand.c (init_vars_expansion): Adjust for new type of
10410 cfun->local_decls.
10411 (estimated_stack_frame_size): Likewise.
10412 (expand_used_vars): Likewise.
10413 * cgraphbuild.c (build_cgraph_edges): Likewise.
10414 * function.c (instantiate_decls_1): Likewise.
10415 * ipa-struct-reorg.c (build_data_structure): Likewise.
10416 * ipa-type-escape.c (analyze_function): Likewise.
10417 * lto-streamer-in.c (input_function): Likewise.
10418 * lto-streamer-out.c (output_function): Likewise.
10419 * tree-ssa-live.c (remove_unused_locals): Likewise.
10420 * tree.c (free_lang_data_in_decl): Likewise.
10421 (find_decls_types_in_node): Likewise.
10422 * omp-low.c (remove_exit_barrier): Likewise.
10423 (expand_omp_taskreg): Likewise.
10424 (list2chain): Rename to...
10425 (vec2chain): ...this. Adjust.
10426 * cgraphunit.c (assemble_thunk): Call add_local_decl.
10427 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
10428 * gimple-low.c (record_vars_into): Likewise.
10429 * tree-inline.c (remap_decls): Likewise.
10430 (declare_return_variable): Likewise.
10431 (declare_inline_vars): Likewise.
10432 (copy_forbidden): Adjust for new type of cfun->local_decls.
10433 (add_local_variables): New function.
10434 (expand_call_inline): Call it.
10435 (tree_function_versioning): Likewise.
10436
4ee89d5f
L
104372010-07-05 H.J. Lu <hongjiu.lu@intel.com>
10438
10439 AVX Programming Reference (June, 2010)
10440 * config/i386/cpuid.h (bit_F16C): New.
10441 (bit_RDRND): Likewise.
10442 (bit_FSGSBASE): Likewise.
10443
10444 * config/i386/i386-builtin-types.def: Add
10445 "DEF_FUNCTION_TYPE (UINT16)", function types for
10446 float16 <-> float conversions and
10447 "DEF_FUNCTION_TYPE (VOID, UINT64)".
10448
10449 * config/i386/i386-c.c (ix86_target_macros_internal): Support
10450 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
10451 OPTION_MASK_ISA_F16C.
10452
10453 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
10454 (OPTION_MASK_ISA_RDRND_SET): Likewise.
10455 (OPTION_MASK_ISA_F16C_SET): Likewise.
10456 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
10457 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
10458 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
10459 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
9aa5922d 10460 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
4ee89d5f
L
10461 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
10462 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
10463 (override_options): Handle them.
9aa5922d 10464 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
4ee89d5f
L
10465 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
10466 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
10467 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
10468 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
10469 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
10470 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
10471 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
10472 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
10473 (bdesc_args): Likewise.
10474 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
10475 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
10476 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
10477 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
10478 Handle non-memory store.
10479
10480 * config/i386/i386.h (TARGET_FSGSBASE): New.
10481 (TARGET_RDRND): Likewise.
10482 (TARGET_F12C): Likewise.
10483
10484 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
10485 (UNSPEC_VCVTPS2PH): Likewise.
10486 (UNSPECV_RDFSBASE): Likewise.
10487 (UNSPECV_RDGSBASE): Likewise.
10488 (UNSPECV_WRFSBASE): Likewise.
10489 (UNSPECV_WRGSBASE): Likewise.
10490 (UNSPECV_RDRAND): Likewise.
10491 (rdfsbase<mode>): Likewise.
10492 (rdgsbase<mode>): Likewise.
10493 (wrfsbase<mode>): Likewise.
10494 (wrgsbase<mode>): Likewise.
10495 (rdrand<mode>): Likewise.
10496
10497 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
10498
10499 * config/i386/immintrin.h (_rdrand_u16): New.
10500 (_rdrand_u32): Likewise.
10501 (_readfsbase_u32): Likewise.
10502 (_readfsbase_u64): Likewise.
10503 (_readgsbase_u32): Likewise.
10504 (_readgsbase_u64): Likewise.
10505 (_writefsbase_u32): Likewise.
10506 (_writefsbase_u64): Likewise.
10507 (_writegsbase_u32): Likewise.
10508 (_writegsbase_u64): Likewise.
10509 (_rdrand_u64): Likewise.
10510 (_cvtsh_ss): Likewise.
10511 (_mm_cvtph_ps): Likewise.
10512 (_mm256_cvtph_ps): Likewise.
10513 (_cvtss_sh): Likewise.
10514 (_mm_cvtps_ph): Likewise.
10515 (_mm256_cvtps_ph): Likewise.
10516
10517 * config/i386/sse.md (vcvtph2ps): New.
10518 (*vcvtph2ps_load): Likewise.
10519 (vcvtph2ps256): Likewise.
10520 (vcvtps2ph): Likewise.
10521 (*vcvtps2ph): Likewise.
10522 (*vcvtps2ph_store): Likewise.
10523 (vcvtps2ph256): Likewise.
10524
10525 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
10526
10527 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
10528
3341aeda
JR
105292010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
10530
10531 PR bootstrap/44512
10532 * genenums.c (main): Output include of insn-constants.h
10533 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
10534
71b2fd74
UB
105352010-07-05 Uros Bizjak <ubizjak@gmail.com>
10536
10537 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
10538 (override_options): Initialize it.
10539 (ix86_expand_prologue): Use it.
10540
938650d8
JJ
105412010-07-05 Jakub Jelinek <jakub@redhat.com>
10542
10543 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
10544
88e06841
AS
105452010-07-05 Anatoly Sokolov <aesok@post.ru>
10546
10547 * double-int.h (fit_double_type): Remove declaration.
10548 * double-int.c (fit_double_type): Remove function.
10549 * tree.h (int_fits_type_p): Adjust prototype.
10550 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
10551 instead of fit_double_type.
10552 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
10553 instead of fit_double_type and build_int_cst_wide.
10554 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
10555 instead of fit_double_type and build_int_cst_wide.
10556 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
10557 of fit_double_type.
10558
92eb4438
JH
105592010-07-05 Jan Hubicka <jh@suse.cz>
10560
10561 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
10562 in_other_partition.
10563 * lto-cgraph.c (referenced_from_other_partition_p,
10564 reachable_from_other_partition_p): Use in_other_partition flags.
10565 (output_node, output_varpool_node): COMDAT nodes always have private
10566 copies and thus are never used from other partition.
10567
69e18c09
AS
105682010-07-05 Anatoly Sokolov <aesok@post.ru>
10569
10570 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
10571 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
10572 * config/ia64/ia64.c Include reload.h.
10573 (ia64_memory_move_cost): New function.
10574 (TARGET_MEMORY_MOVE_COST): Define.
10575 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
10576 memory_move_cost.
10577
16ad8025
SL
105782010-07-05 Sandra Loosemore <sandra@codesourcery.com>
10579
10580 PR middle-end/42505
16ad8025
SL
10581 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
10582 comments about cost model.
10583 (try_add_cand_for): Add second strategy for choosing initial set
10584 based on original IVs, controlled by ORIGINALP argument.
10585 (get_initial_solution): Add ORIGINALP argument.
10586 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
10587 (find_optimal_iv_set): Try two different strategies for choosing
10588 the IV set, and return the one with lower cost.
10589
bdf0f819
RG
105902010-07-05 Richard Guenther <rguenther@suse.de>
10591
9aa5922d 10592 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
bdf0f819 10593
a41e5e86
RG
105942010-07-05 Richard Guenther <rguenther@suse.de>
10595
10596 * tree.c (reference_alias_ptr_type): New function.
10597 * tree.h (reference_alias_ptr_type): Declare.
10598 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
10599 allow non-TARGET_MEM_REF new refs.
94dbbc81 10600 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
a41e5e86
RG
10601 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
10602 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
10603 (create_mem_ref): Get alias pointer type. Adjust calls to
10604 create_mem_ref_raw.
10605 (maybe_fold_tmr): Likewise.
10606 * tree-flow.h (create_mem_ref): Adjust prototype.
10607
f2896bc9
JJ
106082010-07-05 Jakub Jelinek <jakub@redhat.com>
10609
10610 PR c++/44808
10611 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
10612 *from_p is VAR_DECL.
10613
cfe6dea2
NF
106142010-07-05 Nathan Froyd <froydnj@codesourcery.com>
10615
10616 * tree.h (build_call_list): Remove.
10617 * tree.c (build_call_list): Remove.
10618
e22f7f31
RB
106192010-07-05 Richard Guenther <rguenther@suse.de>
10620
10621 * double-int.h (double_int_sub): Declare.
10622 * double-int.c (double_int_sub): New function.
10623 * dwarf2out.c (field_byte_offset): Use it.
10624 * fixed-value.c (do_fixed_add): Likewise.
10625 (do_fixed_multiply): Likewise.
10626 (do_fixed_divide): Likewise.
10627 * tree-predcom.c (add_ref_to_chain): Likewise.
10628 (determine_roots_comp): Likewise.
10629 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
10630
989ea525
NF
106312010-07-05 Nathan Froyd <froydnj@codesourcery.com>
10632
10633 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
10634 implementations.
10635
7ec6356e
BS
106362010-07-05 Bernd Schmidt <bernds@codesourcery.com>
10637
10638 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
10639 * arm-modes.def (CC_NOTB): Don't define.
10640 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
10641 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
10642 (LTUGEU): New code_iterator.
10643 (cnb, optab): New corresponding code_attrs.
10644 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
10645 to canonical form. Operands 1 and 2 are commutative. Parametrize
10646 using LTUGEU.
10647 (addsi3_carryin_shift_<optab>): Likewise.
10648 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
10649 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
10650 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
94dbbc81
UB
10651 (subsi3_compare): Renamed from subsi3_compare0_c.
10652 Change CC_NOTB to CC.
7ec6356e
BS
10653 (arm_subsi3_insn): Allow constants for operand 0.
10654 (compare_scc peephole for eq case): New.
10655 (compare_scc splitters): Change CC_NOTB to CC.
10656
75421dcd
RG
106572010-07-05 Richard Guenther <rguenther@suse.de>
10658
10659 * tree-ssa-loop-im.c (for_each_index): Do not handle
10660 ALIGN_INDIRECT_REF.
10661 (gen_lsm_tmp_name): Likewise.
10662 * tree-dump.c (dequeue_and_dump): Likewise.
10663 * tree-pretty-print.c (dump_generic_node): Likewise.
10664 (op_code_prio): Likewise.
10665 (op_symbol_code): Likewise.
10666 * tree.c (staticp): Likewise.
10667 (build1_stat): Likewise.
10668 * tree.h (INDIRECT_REF_P): Likewise.
10669 * fold-const.c (maybe_lvalue_p): Likewise.
10670 (operand_equal_p): Likewise.
10671 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10672 (ao_ref_init_from_vn_reference): Likewise.
10673 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
10674 (find_interesting_uses_address): Likewise.
10675 * dwarf2out.c (loc_list_from_tree): Likewise.
10676 * gimplify.c (gimplify_expr): Likewise.
10677 * tree-eh.c (tree_could_trap_p): Likewise.
10678 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
10679 * cfgexpand.c (expand_debug_expr): Likewise.
10680 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10681 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
10682 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
10683 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
10684 * tree-ssa-operands.c (get_expr_operands): Likewise.
10685 * expr.c (safe_from_p): Likewise.
10686 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
10687 * tree-vect-data-refs.c (vect_setup_realignment): Build
10688 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
10689 * tree-vect-stmts.c (vectorizable_load): Likewise.
10690 * tree.def (ALIGN_INDIRECT_REF): Remove.
10691
5d657263
RG
106922010-07-05 Richard Guenther <rguenther@suse.de>
10693
10694 PR tree-optimization/44784
10695 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
10696 for inserted stmts.
10697 (find_or_generate_expression): Fix SCCVN insertion check.
10698
3cd0d4fa
NS
106992010-07-05 Nathan Sidwell <nathan@codesourcery.com>
10700
10701 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
10702 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10703 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
10704 directives.
10705
9940b13c
IR
107062010-07-05 Ira Rosen <irar@il.ibm.com>
10707
10708 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
10709 statements that are not vectorized.
10710 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
94dbbc81 10711 in INSIDE_COST.
9940b13c 10712
e4dde839
MP
107132010-07-05 Mikael Pettersson <mikpe@it.uu.se>
10714
10715 PR bootstrap/44820
10716 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
10717
e3061843
RB
107182010-07-05 Richard Guenther <rguenther@suse.de>
10719
10720 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
10721 RESULT_DECLs properly.
10722
c2a78352
L
107232010-07-04 H.J. Lu <hongjiu.lu@intel.com>
10724
10725 PR rtl-optimization/44695
10726 * config/i386/i386.md (extract_code): Removed.
10727 (<u>divmodqi4): Likewise.
10728 (divmodqi4): New.
10729 (udivmodqi4): Likewise.
94dbbc81 10730 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
c2a78352
L
10731 (udivmodhiqi3): Likewise.
10732
4aa1c0d5
JH
107332010-07-04 Jan Hubicka <jh@suse.cz>
10734
10735 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
10736
a05541a9
JH
107372010-07-04 Jan Hubicka <jh@suse.cz>
10738
94dbbc81
UB
10739 * cgraphunit.c (init_cgraph): Only initialize dump file if it
10740 is not already initialized.
a05541a9 10741
f9621cc4
RS
107422010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
10743
10744 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
10745 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
10746 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
10747 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
10748 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
10749 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
10750 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
10751 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
10752 (sync_new_nand_optab): Redefine as macros.
10753 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
10754 Delete.
10755 (direct_optab_index): New enum.
10756 (direct_optab_d): New structure.
10757 (direct_optab): New typedef.
10758 (direct_optab_table): Declare.
10759 (direct_optab_handler, set_direct_optab_handler): New functions.
10760 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
10761 (sync_lock_release_optab): New macros.
10762 * optabs.c (direct_optab_table): New variable.
10763 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
10764 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
10765 cmpstr_optab and cmpstrn_optab.
10766 (emit_conditional_move): Likewise for movcc_optab.
10767 (can_conditionally_move_p): Likewise for movcc_gen_code.
10768 (init_insn_codes): Clear direct_optab_table.
10769 (init_optabs): Don't initialize the new "direct optabs" here.
10770 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
10771 vcond_gen_code.
10772 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
10773 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
10774 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
10775 (expand_sync_operation): Likewise other sync_*_optabs.
10776 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
10777 to sync_compare_and_swap_optab.
10778 (expand_sync_lock_test_and_set): Use direct_optab_handler for
10779 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
10780 to the names of both.
10781 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
10782 cmpstr_optab and cmpstrn_optab.
10783 (expand_builtin_lock_release): Likewise sync_lock_release.
10784 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
10785 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
10786 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
10787 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
10788 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
10789 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
10790 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
10791 (sync_lock_test_and_set, sync_lock_release): Delete.
10792 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
10793 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
10794 * genopinit.c (optabs): Use set_direct_optab_handler for the new
10795 macro optabs.
10796 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
10797 the "optab" local variable. Use direct_optab_handler for optab and
10798 sync_compare_and_swap_optab.
10799 * reload1.c (reload_in_optab, reload_out_optab): Delete.
10800 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
10801 reload_in_optab and reload_out_optab.
10802 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
10803 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
10804 * config/pa/pa.c (pa_secondary_reload): Likewise.
10805 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
10806 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
10807 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
10808 (VMSupportsCS8_builtin): Likewise.
10809
596455ce
RS
108102010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
10811
10812 * optabs.h (optab_handlers): Change type of insn_code to int.
10813 (optab_handler, set_optab_handler, convert_optab_handler)
10814 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
10815 CODE_FOR_nothing".
10816 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
10817 (init_insn_codes): Zero both the above arrays.
10818 (init_optabs): Never call init_insn_codes first time around.
10819
947131ba
RS
108202010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
10821
10822 * optabs.h (optab_handler, convert_optab_handler): Turn into
10823 inline functions that return an insn code.
10824 (set_optab_handler, set_convert_optab_handler): New functions.
10825 * builtins.c: Replace optab_handler(X)->insn_code with
10826 optab_handler or set_optab_handler thoughout. Likewise
10827 convert_optab_handler(X)->insn_code with convert_optab_handler
10828 and set_convert_optab_handler.
10829 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
10830 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
10831 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
10832 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
10833 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
10834 config/spu/spu.c: Likewise.
10835
47e5ff44
KK
108362010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
10837
10838 PR target/44531
10839 * config.gcc (sh*-*-*): Use regular expressions instead of
10840 the 'i' modifier for sed substitutions.
10841
abbd64b9
JS
108422010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
10843
10844 * gimple.c (gimple_body): Comments added.
10845
7f5ad6d7
RG
108462010-07-04 Richard Guenther <rguenther@suse.de>
10847
10848 PR middle-end/44809
10849 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
10850 of an INDIRECT_REF.
10851
17fc049f
RG
108522010-07-04 Richard Guenther <rguenther@suse.de>
10853
10854 PR tree-optimization/44479
10855 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
10856 extra SSA name copy statements which preserves points-to
10857 information.
10858 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10859 Copy points-to information for all pointers. Properly handle
10860 MEM_REFs.
10861 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
10862 copy statements.
10863 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
10864 dependency.
10865
72aa3dca
RG
108662010-07-04 Richard Guenther <rguenther@suse.de>
10867
10868 PR middle-end/44785
10869 * tree-inline.c (initialize_inlined_parameters): Do not
10870 re-use pointer-map slot over remap_type call.
10871
ef2a9157
RG
108722010-07-04 Richard Guenther <rguenther@suse.de>
10873
10874 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
10875
4fa4929e
RG
108762010-07-04 Richard Guenther <rguenther@suse.de>
10877
10878 PR tree-optimization/44656
10879 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
10880 again after value-replacing in the defintions lhs.
10881
720f5239
IR
108822010-07-04 Ira Rosen <irar@il.ibm.com>
10883 Revital Eres <eres@il.ibm.com>
10884
94dbbc81 10885 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
720f5239
IR
10886 Document new arguments.
10887 * doc/tm.texi: Regenerate.
10888 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
10889 Handle unaligned store.
10890 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
10891 * target.def (builtin_vectorization_cost): Add new arguments.
10892 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
10893 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
10894 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
10895 (vect_vfa_segment_size): Fix indentation.
10896 * tree-vectorizer.h (struct _vect_peel_info): New.
10897 (struct _vect_peel_extended_info): New.
10898 (struct _loop_vec_info): Add new field for peeling hash table and a
10899 macro for its access.
10900 (VECT_MAX_COST): Define.
10901 (vect_get_load_cost): Declare.
94dbbc81 10902 (vect_get_store_cost, vect_get_known_peeling_cost,
720f5239
IR
10903 vect_get_single_scalar_iteraion_cost): Likewise.
10904 (vect_supportable_dr_alignment): Add new argument.
10905 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
10906 field.
10907 (destroy_loop_vec_info): Free peeling hash table.
10908 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
10909 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
10910 vect_analyze_slp. Fix indentation.
10911 (vect_get_single_scalar_iteraion_cost): New function.
10912 (vect_get_known_peeling_cost): Likewise.
94dbbc81
UB
10913 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
10914 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
720f5239
IR
10915 statement. Move outside cost calculation inside unknown peeling case.
10916 Call vect_get_known_peeling_cost for known amount of peeling.
10917 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
10918 reference to the print message of forced alignment.
94dbbc81 10919 (vect_verify_datarefs_alignment): Update call to
720f5239
IR
10920 vect_supportable_dr_alignment.
10921 (vect_get_data_access_cost): New function.
10922 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
10923 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
10924 vect_peeling_hash_choose_best_peeling): Likewise.
10925 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
10926 to store all the accesses in the loop and find best possible access to
10927 align using peeling for known alignment case. For unknown alignment
10928 check if stores are preferred or if peeling is worthy.
10929 (vect_find_same_alignment_drs): Analyze pairs of loads too.
10930 (vect_supportable_dr_alignment): Add new argument and check aligned
94dbbc81 10931 accesses according to it.
720f5239 10932 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
94dbbc81 10933 (cost_for_stmt): Call vect_get_stmt_cost.
720f5239 10934 (vect_model_simple_cost): Likewise.
94dbbc81 10935 (vect_model_store_cost): Call vect_get_stmt_cost. Call
720f5239
IR
10936 vect_get_store_cost to calculate the cost of the statement.
10937 (vect_get_store_cost): New function.
94dbbc81 10938 (vect_model_load_cost): Call vect_get_stmt_cost. Call
720f5239
IR
10939 vect_get_load_cost to calculate the cost of the statement.
10940 (vect_get_load_cost): New function.
10941 (vectorizable_store): Update call to vect_supportable_dr_alignment.
10942 (vectorizable_load): Likewise.
94dbbc81 10943 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
720f5239
IR
10944 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
10945 arguments. Handle unaligned store.
10946 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
10947 (rs6000_builtin_support_vector_misalignment): Return true for word and
10948 double word alignments for VSX.
94dbbc81 10949 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
720f5239
IR
10950 vect_supportable_dr_alignment and builtin_vectorization_cost.
10951
d3ca3d6b
JDA
109522010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10953
10954 PR target/44597
10955 * config/pa/predicates.md (prefetch_cc_operand): Remove.
10956 (prefetch_nocc_operand): Likewise.
10957 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
10958 (prefetch_20): New insn.
10959 (prefetch_cc): Remove.
10960 (prefetch_nocc): Likewise.
10961
4d451982
MLI
109622010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
10963
10964 * expr.c (vector_mode_valid_p): Move to c-common.c.
10965 * expr.h (vector_mode_valid_p): Do not declare here.
10966 * system.h: Poison GCC_EXPR_H in front-ends.
10967 * Makefile.in: Update dependencies.
10968
3a0c7e3a
JDA
109692010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10970
10971 PR target/44705
10972 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
10973
f029db69
JH
109742010-07-03 Jan Hubicka <jh@suse.cz>
10975
10976 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
10977 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
10978 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
10979 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
10980 Likewise.
10981
10982 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
10983 Update timevars.V
10984 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
10985 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
10986 TV_IPA_LTO_DECL_OUT): New.
10987 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
10988
9b8051b4
JH
109892010-07-03 Jan Hubicka <jh@suse.cz>
10990
10991 * ipa-inline.c (update_edge_key): Break out from ...
10992 update_callers_keys): ... here;
10993 (update_callee_keys): Update only the edges from caller to callee.
10994 (update_all_calle_keys): Do what update_calle_keys did.
10995 (decide_inlining_of_small_functions): Avoid recomputing of all
10996 callees when badness increase.
10997
7c4f0041
JZ
109982010-07-03 Jie Zhang <jie@codesourcery.com>
10999
11000 * config/arm/arm.c (arm_attr_length_move_neon): New.
11001 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
11002 * config/arm/neon.md (define_mode_attr V_slen): Remove.
11003 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
11004 to compute length attribute.
11005
4e6f5666
JZ
110062010-07-03 Jie Zhang <jie@codesourcery.com>
11007
11008 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
11009 as predicate for operand 1 and remove its constraint.
11010 * config/arm/predicates.md (vfp_register_operand): New.
94dbbc81 11011 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
4e6f5666
JZ
11012 (*push_fp_multi): Likewise.
11013
6687b740
EB
110142010-07-03 Eric Botcazou <ebotcazou@adacore.com>
11015
11016 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
11017
110182010-07-03 Jan Hubicka <jh@suse.cz>
bd7f30a1
JH
11019
11020 * config/i386/i386.c (override_options): Revert accidental commit.
11021
3f59fa1c
LCW
110222010-07-02 Le-Chun Wu <lcwu@google.com>
11023
e2cb8da2 11024 PR c++/44128
3f59fa1c
LCW
11025 * doc/invoke.texi: Update documentation of -Wshadow.
11026
73160ba9
DJ
110272010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
11028 Julian Brown <julian@codesourcery.com>
74164603 11029 Sandra Loosemore <sandra@codesourcery.com>
73160ba9
DJ
11030
11031 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
11032 comparisons. Adjust to take both operands.
11033 (arm_select_cc_mode): Handle DImode comparisons.
11034 (arm_gen_compare_reg): Generate a scratch register for DImode
11035 comparisons which require one. Use xor for Thumb equality checks.
11036 (arm_const_double_by_immediates): New.
11037 (arm_print_operand): Allow 'Q' and 'R' for constants.
11038 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
11039 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
11040 arm_canonicalize_comparison.
11041 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
11042 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
11043 prototype.
11044 (arm_const_double_by_immediates): Declare.
11045 * config/arm/constraints.md (Di): New constraint.
11046 * config/arm/predicates.md (arm_immediate_di_operand)
11047 (arm_di_operand, cmpdi_operand): New.
11048 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
11049 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
11050 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
11051 (cstoredi4): Handle non-Cirrus also.
11052
400cfcf5 110532010-07-02 Julian Brown <julian@codesourcery.com>
74164603 11054 Sandra Loosemore <sandra@codesourcery.com>
400cfcf5
JB
11055
11056 PR target/43703
400cfcf5
JB
11057 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
11058 (smax<mode>3): Disable for NEON float modes when
11059 flag_unsafe_math_optimizations is false.
11060 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
11061 (*mul<mode>3_neon)
11062 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
11063 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
11064 for NEON float modes when flag_unsafe_math_optimizations is false.
94dbbc81
UB
11065 (quad_halves_<code>v4sf): Only enable if
11066 flag_unsafe_math_optimizations is true.
400cfcf5
JB
11067 * doc/invoke.texi (ARM Options): Add note about floating point
11068 vectorization requiring -funsafe-math-optimizations.
11069
bab53516
SL
110702010-07-02 Sandra Loosemore <sandra@codesourcery.com>
11071 Julian Brown <julian@codesourcery.com>
11072
11073 * config/arm/neon.md (UNSPEC_VABA): Delete.
11074 (UNSPEC_VABAL): Delete.
11075 (UNSPEC_VABS): Delete.
11076 (UNSPEC_VMUL_N): Delete.
11077 (adddi3_neon): New.
11078 (subdi3_neon): New.
11079 (mul<mode>3add<mode>_neon): Make the pattern named.
11080 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
11081 (neon_vadd<mode>): Replace with define_expand, and move the remaining
11082 unspec parts...
11083 (neon_vadd<mode>_unspec): ...to this.
11084 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
11085 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
11086 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
11087 (neon_vaba<mode>): Rewrite in terms of vabd.
11088 (neon_vabal<mode>): Rewrite in terms of vabdl.
11089 (neon_vabs<mode>): Rewrite without unspec.
11090 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
11091 (*arm_subdi3): Likewise.
11092 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
11093 No_op attribute to disable assembly output checks.
11094 * config/arm/arm_neon.h: Regenerated.
11095 * doc/arm-neon-intrinsics.texi: Regenerated.
11096
556e9ba0
JH
110972010-07-02 Jan Hubicka <jh@suse.cz>
11098
e2cb8da2
EB
11099 * ipa-split.c (split_function): For aggregate values, set the return
11100 slot optimization bit. When passing DECL_BY_REFERENCE, produce
94dbbc81 11101 *<retval> = fncall.part ().
556e9ba0
JH
11102 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
11103
b3b7bbce
SL
111042010-07-02 Sandra Loosemore <sandra@codesourcery.com>
11105
11106 * config/arm/neon.md (UNSPEC_VAND): Delete.
11107 (UNSPEC_VBIC): Delete.
11108 (UNSPEC_VCLZ): Delete.
11109 (UNSPEC_VCNT): Delete.
11110 (UNSPEC_VEOR): Delete.
11111 (UNSPEC_VORN): Delete.
11112 (UNSPEC_VORR): Delete.
11113 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
11114 core registers too.
11115 (anddi3_neon): Likewise.
11116 (orndi3_neon): Likewise.
11117 (bicdi3_neon): Likewise.
11118 (xordi3_neon): Likewise.
11119 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
11120 rid of unspec and handle unused operand.
11121 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
11122 * config/arm/predicates.md (imm_for_neon_logic_operand):
11123 Require TARGET_NEON.
11124 (imm_for_neon_inv_logic_operand): Likewise.
94dbbc81 11125 * config/arm/arm.md (define_split for logical_binary_operator):
b3b7bbce
SL
11126 Disable for NEON registers.
11127 (anddi3): Add new define_expand, and rename the insn. Disable
11128 this insn for NEON, where anddi3_neon now applies.
11129 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
11130 (iordi3): As for anddi3.
11131 (xordi3): Likewise.
11132 * config/arm/neon.ml (Vand): Split DImode variants and mark them
11133 as No_op to disable testing for exact instruction match.
11134 (Vorr): Likewise.
11135 (Veor): Likewise.
11136 (Vbic): Likewise.
11137 (Vorn): Likewise.
11138 * config/arm/arm_neon.h: Regenerated.
11139 * doc/arm-neon-intrinsics.texi: Regenerated.
11140
260c8ba3
EB
111412010-07-02 Eric Botcazou <ebotcazou@adacore.com>
11142
11143 * expr.h (emit_stack_probe): Declare.
11144 * explow.c (emit_stack_probe): Make global.
11145 (anti_adjust_stack_and_probe): Fix comments.
11146 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11147 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11148 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11149 * config/sparc/sparc.c: Include except.h.
11150 (sparc_emit_probe_stack_range): New function.
11151 (output_probe_stack_range): Likewise.
11152 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
11153 built-in stack checking is enabled.
11154 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
11155 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11156 (probe_stack_range): New insn.
11157
e4f1aef1
RG
111582010-07-02 Richard Guenther <rguenther@suse.de>
11159
11160 PR target/43958
11161 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
11162 for argument alignment.
11163
2094f1fc
JH
111642010-07-02 Jan Hubicka <jh@suse.cz>
11165
e2cb8da2
EB
11166 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
11167 walk backwards from entry_bb to check only those basic block of header
2094f1fc
JH
11168 that might lead to execution of split part.
11169 (consider_split) ... here.
11170 (find_return_bb): Allow assignment in return BB.
11171 (find_retval): New.
260c8ba3
EB
11172 (split_function): Fix name of cloned function; take care of updating
11173 return value in return_bb containing move.
2094f1fc 11174
2dc8bd76
AS
111752010-07-02 Andreas Schwab <schwab@linux-m68k.org>
11176
11177 PR target/44771
11178 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
11179 used variable insn.
11180
0acba2b4
EB
111812010-07-02 Eric Botcazou <ebotcazou@adacore.com>
11182
11183 * implicit-zee.c (combine_reaching_defs): Fix long lines.
11184 (is_set_with_extension_DI): Delete.
11185 (struct zero_extend_info): New structure.
f4a4b582 11186 (add_removable_zero_extend): New function.
0acba2b4
EB
11187 (find_removable_zero_extends): Use note_stores to find SETs.
11188 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
11189
14e444c3
CF
111902010-07-02 Changpeng Fang <changpeng.fang@amd.com>
11191
11192 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
11193 is_miss_rate_acceptable. Pull total_positions computation
11194 out of the loops. Early return if miss_positions exceeds
11195 the acceptable threshold.
11196 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
11197 is_miss_rate_acceptable after renaming of compute_miss_rate.
11198
a245c04b
CF
111992010-07-02 Changpeng Fang <changpeng.fang@amd.com>
11200
11201 PR middle-end/44576
11202 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
11203 of 1000) for miss rate if the address diference is greater than or
11204 equal to the cache line size (the two reference will never hit the
11205 same cache line).
11206
18e8200f
BS
112072010-07-02 Bernd Schmidt <bernds@codesourcery.com>
11208
11209 PR target/42835
11210 * config/arm/arm-modes.def (CC_NOTB): New mode.
11211 * config/arm/arm.c (get_arm_condition_code): Handle it.
11212 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
11213 * config/arm/arm.md (subsi3_compare0_c): New pattern.
11214 (compare_scc): Now a define_and_split. Add a number of extra
11215 splitters before it.
11216
e4c6a07a
BS
11217 PR target/42172
11218 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
11219 and ZERO_EXTEND.
11220 (arm_rtx_costs_1): Likewise.
11221 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
11222 * config/arm/arm.md (is_arch6): New attribute.
11223 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
11224 extendqisi2): Tighten the code somewhat, avoiding invalid
11225 RTL to occur in the expander patterns.
11226 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
11227 (thumb1_zero_extendhisi2_v6): Delete.
11228 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
11229 (thumb1_extendhisi2_v6): Delete.
11230 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
11231 (thumb1_extendqisi2_v6): Delete.
11232 (zero_extendhisi2 for register input splitter): New.
11233 (zero_extendqisi2 for register input splitter): New.
11234 (thumb1_extendhisi2 for register input splitter): New.
11235 (extendhisi2 for register input splitter): New.
11236 (extendqisi2 for register input splitter): New.
11237 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
11238 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
11239 and add support for a register alternative requiring a split.
11240 (thumb1_zero_extendqisi2): Likewise.
11241 (arm_zero_extendqisi2): Likewise.
11242 (arm_extendhisi2): Likewise.
11243 (arm_extendqisi2): Likewise.
11244
a277dd9b
SL
112452010-07-02 Sandra Loosemore <sandra@codesourcery.com>
11246
11247 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
11248 instead of an unspec.
11249 (neon_expand_vector_init): Likewise.
11250 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
11251 (UNSPEC_VDUP_LANE): Delete.
11252 (UNSPEC VDUP_N): Delete.
11253 (UNSPEC_VGET_HIGH): Delete.
11254 (UNSPEC_VGET_LANE): Delete.
11255 (UNSPEC_VGET_LOW): Delete.
11256 (UNSPEC_VMVN): Delete.
11257 (UNSPEC_VSET_LANE): Delete.
11258 (V_double_vector_mode): New.
11259 (vec_set<mode>_internal): Make code emitted match that for the
11260 corresponding intrinsics.
11261 (vec_setv2di_internal): Likewise.
11262 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
11263 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
11264 (neon_vset_lane<mode>): Combine double and quad patterns and
11265 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
11266 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
11267 (neon_vdup_n<mode>): Rewrite RTL without unspec.
11268 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
11269 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
11270 with neon_vdup_lanev2di, adjusting the pattern from the latter
11271 to be predicable for consistency.
11272 (neon_vdup_lane<mode>_internal): New.
11273 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
11274 to avoid using an unspec.
11275 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
11276 (neon_vdup_lanev2di): Turn into a define_expand.
11277 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
11278 (neon_vget_high<mode>): Replace with....
11279 (neon_vget_highv16qi): New pattern using canonical RTL.
11280 (neon_vget_highv8hi): Likewise.
11281 (neon_vget_highv4si): Likewise.
11282 (neon_vget_highv4sf): Likewise.
11283 (neon_vget_highv2di): Likewise.
11284 (neon_vget_low<mode>): Replace with....
11285 (neon_vget_lowv16qi): New pattern using canonical RTL.
11286 (neon_vget_lowv8hi): Likewise.
11287 (neon_vget_lowv4si): Likewise.
11288 (neon_vget_lowv4sf): Likewise.
11289 (neon_vget_lowv2di): Likewise.
11290
11291 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
11292 test for this emitting vmov.
11293 (Vset_lane): Likewise.
11294 (Vdup_n): Likewise.
11295 (Vmov_n): Likewise.
11296
11297 * doc/arm-neon-intrinsics.texi: Regenerated.
11298
8c98c2a6
SL
112992010-07-02 Sandra Loosemore <sandra@codesourcery.com>
11300
11301 * config/arm/neon.md (vec_extractv2di): Correct error in register
11302 numbering to reconcile with neon_vget_lanev2di.
11303
90fa9e17
RG
113042010-07-02 Richard Guenther <rguenther@suse.de>
11305
11306 * tree-ssa-structalias.c (pt_solution_set_var): New function.
11307 * tree-ssa-alias.h (pt_solution_set_var): Declare.
11308 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
11309 points-to information.
11310
c3ac3ddf
CB
113112010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
11312
11313 * config/s390/s390.c (override_options): Adopt prefetching
11314 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
11315
b144ba9d
JH
113162010-07-02 Jan Hubicka <jh@suse.cz>
11317
11318 * df-problems.c (df_kill_notes): Do not collect dead notes.
11319 (df_set_note): Just call add_reg_note.
11320 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
11321 df_create_unused_note): Do not deal with lists of old notes.
11322 (df_note_bb_compute): Likewise.
11323
fca821b5
RG
113242010-07-02 Richard Guenther <rguenther@suse.de>
11325
11326 * tree-ssa-structalias.c (find_func_aliases): Handle
11327 pointer alignment via BIT_AND_EXPR.
11328 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
11329
19368333
RG
113302010-07-02 Richard Guenther <rguenther@suse.de>
11331
11332 * tree-data-ref.c (initialize_data_dependence_relation): Handle
11333 mismatching number of dimensions properly.
11334
1a4fc49d
UW
113352010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11336
11337 PR target/44707
11338 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
11339 (lo_sum (high ...) ...) patterns generated by earlier passes.
11340
c18dc5cc
RO
113412010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11342
11343 * doc/install.texi (Prerequisites): Document Perl requirement on
11344 Solaris 2.
11345 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
11346
7dd536f1
RG
113472010-07-02 Richard Guenther <rguenther@suse.de>
11348
11349 PR middle-end/44777
11350 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
11351
450997ef
JH
113522010-07-02 Jan Hubicka <jh@suse.cz>
11353
11354 PR middle-end/44706
11355 * predict.c (predict_paths_for_bb): Handle case when control dependence
11356 BB has only abnormal edges.
11357
3fa39831
RG
113582010-07-02 Richard Guenther <rguenther@suse.de>
11359
11360 PR tree-optimization/44748
11361 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
11362 the embedded conversion in MEM_REFs.
11363
5a5bd694
MLI
113642010-07-01 López-Ibáñez <manu@gcc.gnu.org>
11365
11366 * reload.c: Include toplev.h.
11367 * recog.c: Likewise.
11368 * Makefile.in: Adjust dependencies.
11369
3aa05bb6
JJ
113702010-07-01 Jakub Jelinek <jakub@redhat.com>
11371
11372 PR debug/44694
11373 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
11374 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
11375
e3ccfc8b
RG
113762010-07-01 Richard Guenther <rguenther@suse.de>
11377
11378 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
11379 types for offsets.
11380
c689f757
JR
113812010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
11382
11383 PR target/44732
11384 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
94dbbc81 11385 Fix argument types.
c21fc181 11386
cc9568ba
BS
113872010-07-01 Bernd Schmidt <bernds@codesourcery.com>
11388
11389 PR target/44727
11390 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11391 Make sure operand 0 dies.
11392
70f34814
RG
113932010-07-01 Richard Guenther <rguenther@suse.de>
11394
11395 PR middle-end/42834
11396 PR middle-end/44468
11397 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
11398 * doc/generic.texi (References to storage): Document MEM_REF.
11399 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
11400 (print_call_name): Likewise.
11401 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
11402 (build_simple_mem_ref_loc): New function.
11403 (mem_ref_offset): Likewise.
11404 * tree.h (build_simple_mem_ref_loc): Declare.
11405 (build_simple_mem_ref): Define.
11406 (mem_ref_offset): Declare.
11407 * fold-const.c: Include tree-flow.h.
11408 (operand_equal_p): Handle MEM_REF.
11409 (build_fold_addr_expr_with_type_loc): Likewise.
11410 (fold_comparison): Likewise.
11411 (fold_unary_loc): Fold
11412 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
11413 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
11414 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
11415 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
11416 (ptr_deref_may_alias_ref_p_1): Likewise.
11417 (ao_ref_base_alias_set): Properly differentiate base object for
11418 offset and TBAA.
11419 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
11420 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
11421 (indirect_refs_may_alias_p): Likewise.
11422 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
11423 chasing code.
11424 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
11425 (call_may_clobber_ref_p_1): Likewise.
11426 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
11427 * expr.c (expand_assignment): Handle MEM_REF.
11428 (store_expr): Handle MEM_REFs from STRING_CSTs.
11429 (store_field): If expanding a MEM_REF of a non-addressable
11430 decl use bitfield operations.
11431 (get_inner_reference): Handle MEM_REF.
11432 (expand_expr_addr_expr_1): Likewise.
11433 (expand_expr_real_1): Likewise.
11434 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
11435 * alias.c (ao_ref_from_mem): Handle MEM_REF.
11436 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
11437 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
11438 (dr_analyze_indices): Likewise.
11439 (dr_analyze_alias): Likewise.
11440 (object_address_invariant_in_loop_p): Likewise.
11441 * gimplify.c (mark_addressable): Handle MEM_REF.
11442 (gimplify_cond_expr): Build MEM_REFs.
11443 (gimplify_modify_expr_to_memcpy): Likewise.
11444 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
11445 (gimple_fold_indirect_ref): Adjust.
11446 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
11447 * tree.def (MEM_REF): New tree code.
11448 * tree-dfa.c: Include toplev.h.
11449 (get_ref_base_and_extent): Handle MEM_REF.
11450 (get_addr_base_and_unit_offset): New function.
11451 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
11452 * gimple-fold.c (may_propagate_address_into_dereference): Handle
11453 MEM_REF.
11454 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
11455 accesses if the array has just one dimension. Remove always true
11456 parameter. Do not require type compatibility here.
11457 (maybe_fold_offset_to_component_ref): Remove.
11458 (maybe_fold_stmt_indirect): Remove.
11459 (maybe_fold_reference): Remove INDIRECT_REF handling.
11460 Fold back to non-MEM_REF.
11461 (maybe_fold_offset_to_address): Simplify. Deal with type
11462 mismatches here.
11463 (maybe_fold_reference): Likewise.
11464 (maybe_fold_stmt_addition): Likewise. Also handle
11465 &ARRAY + I in addition to &ARRAY[0] + I.
11466 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
11467 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
11468 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
11469 * tree-ssa.c (useless_type_conversion_p): Make most pointer
11470 conversions useless.
11471 (warn_uninitialized_var): Handle MEM_REF.
11472 (maybe_rewrite_mem_ref_base): New function.
11473 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
11474 to SSA form.
11475 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
11476 INDIRECT_REF handling.
11477 (copy_tree_body_r): Handle MEM_REF.
11478 * gimple.c (is_gimple_addressable): Adjust.
11479 (is_gimple_address): Likewise.
11480 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
11481 invariant base are invariant.
11482 (is_gimple_min_lval): Adjust.
11483 (is_gimple_mem_ref_addr): New function.
11484 (get_base_address): Handle MEM_REF.
11485 (count_ptr_derefs): Likewise.
11486 (get_base_loadstore): Likewise.
11487 * gimple.h (is_gimple_mem_ref_addr): Declare.
11488 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
11489 * tree-cfg.c (verify_address): New function, split out from ...
11490 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
11491 the address operand of MEM_REFs. Verify MEM_REFs. Reject
11492 INDIRECT_REFs.
11493 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
11494 INDIRECT_REF. Allow conversions.
11495 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
11496 a register does not change its size.
11497 (verify_types_in_gimple_reference): Verify MEM_REF.
11498 (verify_gimple_assign_single): Disallow INDIRECT_REF.
11499 Handle MEM_REF.
11500 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
11501 New.
11502 (mark_address_taken): Handle MEM_REF.
11503 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
11504 (get_asm_expr_operands): Pass opf_not_non_addressable.
11505 (get_expr_operands): Handle opf_[not_]non_addressable.
11506 Handle MEM_REF. Remove INDIRECT_REF handling.
bd3a5d17 11507 * tree-vrp.c (check_array_ref): Handle MEM_REF.
70f34814
RG
11508 (search_for_addr_array): Likewise.
11509 (check_array_bounds): Likewise.
11510 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
11511 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
11512 (ref_always_accessed_p): Likewise.
11513 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
11514 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
11515 Handle MEM_REF.
11516 * cgraphbuild.c (mark_load): Properly check for NULL result
11517 from get_base_address.
11518 (mark_store): Likewise.
11519 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
11520 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
11521 handling for MEM_REF.
11522 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
11523 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
11524 * builtins.c (stabilize_va_list_loc): Use the function ABI
11525 valist type if we couldn't canonicalize the argument type.
11526 Always dereference with the canonical va-list type.
11527 (maybe_emit_free_warning): Handle MEM_REF.
11528 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
11529 memmove to memcpy.
11530 * builtins.c (fold_builtin_memory_op): Use ref-all types
11531 for all memcpy foldings.
11532 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
11533 (build_outer_var_ref): Likewise.
11534 (scan_omp_1_op): Likewise.
11535 (lower_rec_input_clauses): Likewise.
11536 (lower_lastprivate_clauses): Likewise.
11537 (lower_reduction_clauses): Likewise.
11538 (lower_copyprivate_clauses): Likewise.
11539 (expand_omp_atomic_pipeline): Likewise.
11540 (expand_omp_atomic_mutex): Likewise.
11541 (create_task_copyfn): Likewise.
11542 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
11543 Remove old union trick. Initialize constant offsets.
11544 (ao_ref_init_from_vn_reference): Likewise. Do not handle
11545 INDIRECT_REF. Init base_alias_set properly.
94dbbc81 11546 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
70f34814
RG
11547 (vn_reference_fold_indirect): Adjust for MEM_REFs.
11548 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
11549 for ARRAY_REFs.
11550 (may_insert): Remove.
11551 (visit_reference_op_load): Do not test may_insert.
11552 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
11553 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
11554 a field to store the constant offset this op applies.
11555 (run_scc_vn): Adjust prototype.
11556 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
11557 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
11558 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
11559 bother about volatile qualifiers on pointers.
11560 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
11561 * tree-ssa-loop-ivopts.c
94dbbc81 11562 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
70f34814
RG
11563 (strip_offset_1): Likewise.
11564 (find_interesting_uses_address): Replace INDIRECT_REF handling with
11565 MEM_REF handling.
11566 (get_computation_cost_at): Likewise.
11567 * ipa-pure-const.c (check_op): Handle MEM_REF.
11568 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
11569 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
11570 and constants.
11571 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
11572 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
11573 (eliminate_local_variables_1): Likewise.
11574 (create_call_for_reduction_1): Likewise.
11575 (create_loads_for_reductions): Likewise.
11576 (create_loads_and_stores_for_name): Likewise.
11577 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
11578 (ssa_accessed_in_tree): Handle MEM_REF.
11579 (ssa_accessed_in_assign_rhs): Likewise.
11580 (update_type_size): Likewise.
11581 (analyze_accesses_for_call_stmt): Likewise.
11582 (analyze_accesses_for_assign_stmt): Likewise.
11583 (transform_access_sites): Likewise.
11584 (transform_allocation_sites): Likewise.
11585 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
11586 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
11587 not handle INDIRECT_REF.
11588 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
11589 (cond_store_replacement): Likewise.
11590 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
11591 MEM_REF, no not handle INDIRECT_REFs.
11592 (insert_into_preds_of_block): Properly initialize avail.
11593 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
11594 for ARRAY_REFs. Properly handle reference lookups that
11595 require a bit re-interpretation.
11596 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
70f34814
RG
11597 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
11598 (build_ref_for_offset_1): Remove.
11599 (build_ref_for_offset): Build MEM_REFs.
11600 (gate_intra_sra): Disable for now.
11601 (sra_ipa_modify_expr): Handle MEM_REF.
11602 (ipa_early_sra_gate): Disable for now.
11603 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
11604 MEM_REF handling.
11605 (disqualify_base_of_expr): Likewise.
11606 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
11607 MEM_REF handling.
11608 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
11609 Use mem_ref_offset. Remove bogus folding.
94dbbc81 11610 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
70f34814
RG
11611 (make_fancy_name_1): Add support for MEM_REF.
11612 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
11613 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
11614 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
11615 (compute_complex_ancestor_jump_func): Likewise.
11616 (ipa_analyze_virtual_call_uses): Likewise.
11617 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
11618 INDIRECT_REF folding with more generalized MEM_REF folding.
11619 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
11620 (forward_propagate_addr_into_variable_array_index): Also handle
11621 &ARRAY + I in addition to &ARRAY[0] + I.
11622 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
11623 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
11624 creates assignments with overlap.
11625 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
11626 (get_frame_field): Likewise.
11627 (get_nonlocal_debug_decl): Likewise.
11628 (convert_nonlocal_reference_op): Likewise.
11629 (struct nesting_info): Add mem_refs pointer-set.
11630 (create_nesting_tree): Allocate it.
11631 (convert_local_reference_op): Insert to be folded mem-refs.
11632 (fold_mem_refs): New function.
94dbbc81 11633 (finalize_nesting_tree_1): Perform defered folding of mem-refs
70f34814
RG
11634 (free_nesting_tree): Free the pointer-set.
11635 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
11636 (vectorizable_load): Likewise.
11637 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
11638 (propagate_with_phi): Likewise.
11639 * tree-object-size.c (addr_object_size): Handle MEM_REFs
11640 instead of INDIRECT_REFs.
11641 (compute_object_offset): Handle MEM_REF.
11642 (plus_stmt_object_size): Handle MEM_REF.
11643 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
11644 for &MEM_REF.
11645 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
11646 (symbol_marked_for_renaming): Likewise.
11647 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
11648 (fold-const.o): Add $(TREE_FLOW_H).
11649 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
11650 (find_func_clobbers): Likewise.
11651 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
11652 (decompose_access): Likewise.
11653 (replace_field_acc): Likewise.
11654 (replace_field_access_stmt): Likewise.
11655 (insert_new_var_in_stmt): Likewise.
11656 (get_stmt_accesses): Likewise.
11657 (reorg_structs_drive): Disable.
11658 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
11659 (ix86_canonical_va_list_type): Likewise.
11660
a87cf97e
JR
116612010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
11662
11663 PR other/44566
11664 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
11665 * target.def (struct gcc_target): Replace enum reg_class with
11666 reg_class_t in hook argument / return types.
11667 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
11668 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
11669 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
11670 * targhooks.h (default_branch_target_register_class): Likewise.
11671 (default_ira_cover_classes, default_secondary_reload): Likewise.
11672 (default_memory_move_cost, default_register_move_cost): Likewise.
11673 * targhooks.c (default_branch_target_register_class): Likewise.
11674 (default_ira_cover_classes, default_secondary_reload): Likewise.
11675 (default_memory_move_cost, default_register_move_cost): Likewise.
11676 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
11677 * bt-load.c (branch_target_load_optimize): Likewise.
11678 * ira.c (setup_cover_and_important_classes): Likewise.
11679 * ira-costs.c (copy_cost): Likewise.
11680 * reload1.c (emit_input_reload_insns): Likewise.
11681 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
11682 * config/frv/frv.c (frv_secondary_reload): Likewise.
11683 * config/s390/s390.c (s390_secondary_reload): Likewise.
11684 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
11685 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
11686 (ix86_register_move_cost): Likewise.
11687 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
11688 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
11689 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
11690 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
11691 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
11692 (rs6000_ira_cover_classes): Likewise.
11693 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
11694 * config/picochip/picochip-protos.h (picochip_secondary_reload):
11695 Likewise.
11696 * config/pa/pa.c (pa_secondary_reload): Likewise.
11697 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
11698 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
11699 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
11700 * doc/tm.texi: Regenerate.
11701
6e44d26e
SP
117022010-06-30 Sebastian Pop <sebastian.pop@amd.com>
11703
11704 PR bootstrrap/44726
11705 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
11706 use.
11707 (build_alias_set_optimal_p): Likewise.
11708 (build_base_obj_set_for_drs): Likewise.
11709
f6170701
JR
117102010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
11711
11712 * target.def: Remove comment about licensing problems of function
11713 declarations.
11714
ad78130c
JR
11715 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
11716 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
11717 * doc/tm.texi: Regenerate.
11718
89356d17
JR
11719 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
11720 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
11721
07a5b2bc
JR
11722 * target.def (enum_va_list_p): Use DEFHOOK.
11723 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
11724 Rename ptype to ptree.
11725 * doc/tm.texi: Regenerate.
11726
08914aaa
JR
11727 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
11728 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
11729 * doc/tm.texi: Regenerate.
11730
911852ff
JR
11731 * target.def (memory_move_cost): Use DEFHOOK.
11732 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
11733 Rename regclass AKA class to rclass.
11734 * doc/tm.texi: Regenerate.
11735
56cb42ea
JR
11736 * target.def (pragma_parse): Use DEFHOOK.
11737 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
11738 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
11739 * doc/tm.texi: Regenerate.
11740
ec9f85e5
JR
11741 * target.def (pass_by_reference): Use DEFHOOK.
11742 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
11743 * doc/tm.texi: Regenerate.
11744
d66f5459
JR
11745 * target.def (resolve_overloaded_builtin): Rename params to arglist.
11746 Use DEFHOOK.
11747 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
11748 * doc/tm.texi: Regenerate.
11749
893d13d5
JR
11750 * target.def (return_pops_args): Use DEFHOOK.
11751 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
11752 Rename stack-size to size.
11753 * doc/tm.texi: Regenerate.
11754
c06bbdf7
JR
11755 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
11756 last-sched_cycle to last_clock, cur_cycle to clock.
11757 * doc/tm.texi.in: Use @hook.
11758 * doc/tm.texi: Regenerate.
11759
4d00d5dd
JR
11760 * target.def (print_operand, print_operand_address): Update comment.
11761 (print_operand_punct_valid_p): Likewise.
11762
0cbd9993
MLI
117632010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
11764
11765 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
11766 to rtl.h.
11767 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
94dbbc81 11768 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
0cbd9993
MLI
11769 * rtl-error.h: New.
11770 * regrename.c: Do not include toplev.h. Include rtl-error.h.
11771 * rtl-error.c: Likewise.
11772 * reload.c: Likewise.
11773 * recog.c: Likewise.
11774 * sel-sched.c: Likewise.
11775 * function.c: Likewise.
11776 * reg-stack.c: Likewise.
11777 * cfgrtl.c: Likewise.
11778 * reload1.c: Likewise.
11779 * final.c: Include rtl-error.
11780 * Makefile.in: Adjust dependencies.
11781
8a9c1ae6
JH
117822010-06-30 Jan Hubicka <jh@suse.cz>
11783
11784 PR middle-end/PR44706
11785 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
11786 to return the value.
11787
8a1561bc
MM
117882010-06-30 Michael Matz <matz@suse.de>
11789
11790 PR bootstrap/44699
11791 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
11792 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
11793 a gimple reg, attach the original VDEF to the last store in the
11794 sequence.
11795
8a1dabd5
IS
117962010-06-30 Iain Sandoe <iains@gcc.gnu.org>
11797
11798 PR other/44034
11799 * config/darwin.c (darwin_override_options): Use renamed
11800 targetm.asm_out.emit_unwind_label.
11801
dcad005d
BS
118022010-06-30 Bernd Schmidt <bernds@codesourcery.com>
11803
11804 PR tree-optimization/39799
11805 * tree-inline.c (remap_ssa_name): Initialize variable only if
11806 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11807
1d468b06
NF
118082010-06-30 Nathan Froyd <froydnj@codesourcery.com>
11809
11810 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
11811
501d1a70
RG
118122010-06-30 Richard Guenther <rguenther@suse.de>
11813
11814 PR target/44722
11815 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
11816 against oscillation with reverse peephole2.
11817
ed1db000
L
118182010-06-30 H.J. Lu <hongjiu.lu@intel.com>
11819
11820 PR target/44721
11821 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11822 Fix last commit.
11823
aea8fc97
NC
118242010-06-30 Nick Clifton <nickc@redhat.com>
11825
11826 * config/rx/rx-modes.def: New file.
11827 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
11828 (CC_REGNUM): Define.
11829 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
11830 register.
11831 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
11832 (SELECT_CC_MODE): Define.
11833 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
11834 (reg:CC CC_REG) instead of (cc0).
11835 (attr "cc"): Delete.
11836 (cbranchsi4): Do not split compare and branch here. Instead move
11837 it to...
11838 (cbranchsi4_<code>): ... here. New patterns.
11839 (cmpsi): Call rx-compare_redundant to find out if it is necessary
11840 to emit the compare instruction.
11841 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
11842 cc_status flags.
11843 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
11844 FIRST_PSEUDO_REGNUM.
11845 (rx_expand_prologue, rx_expand_epilogue): Likewise.
11846 (rx_notice_update_cc): Delete.
11847 (rx_cc_modes_compatible): New function.
11848 (flags_needed_for_conditional): New function.
11849 (flags_from_mode): New function.
11850 (rx_compare_redundant): New function - scans backwards through
94dbbc81 11851 insn list to find out if condition flags are already set correctly.
aea8fc97
NC
11852 (TARGET_CC_MODES_COMPATIBLE): Define.
11853 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
11854
11855 * config/rx/rx.h (BRANCH_COST): Define.
11856 (REGISTER_MOVE_COST): Define.
94dbbc81 11857 * config/rx/predicates (rx_source_operand): Allow all constant types.
aea8fc97
NC
11858 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
11859 (tstsi4): New pattern.
11860 * config/rx/rx.c (rx_memory_move_cost): Define.
11861 (TARGET_MEMORY_MOVE_COST): Define.
11862
6662d794
MLI
118632010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
11864
11865 * tree.h (block_may_fallthru): Declare here.
11866 * tree-flow.h (block_may_fallthru): Do not declare here.
11867 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
11868 bitmap.h
11869 * Makefile.in (c-typeck.o): Update dependencies.
11870
9de9cbaf
JJ
118712010-06-30 Jakub Jelinek <jakub@redhat.com>
11872
11873 PR debug/44694
11874 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
11875 * cselib.c (cfa_base_preserved_regno): New static variable.
11876 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
11877 of REGNO (cfa_base_preserved_val->locs->loc).
11878 (cselib_preserve_cfa_base_value): Add regno argument, set
11879 cfa_base_preserved_regno to it.
11880 (cselib_invalidate_regno): Allow removal of registers other than
11881 cfa_base_preserved_regno from cfa_base_preserved_val.
11882 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
11883 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
11884 of MEM addresses, if not on LHS.
11885 (reverse_op): Don't add reverse ops for cfa_base_rtx.
11886 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
11887
ee932b8f
BS
118882010-06-30 Bernd Schmidt <bernds@codesourcery.com>
11889
11890 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
11891 static variables.
11892 (peep2_buf_position): New static function.
11893 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
11894 peephole2_optimize): Use it.
11895 (peep2_attempt, peep2_update_life): New static functions, broken out
11896 of peephole2_optimize.
11897 (peep2_fill_buffer): New static function.
11898 (peephole2_optimize): Change the main loop to try to fill the buffer
11899 with the maximum number of insns before matching them against
11900 peepholes. Use a forward scan. Remove special case for targets with
11901 conditional execution.
11902 * genrecog.c (change_state): Delete dead code.
11903 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11904 Rewrite so as not to expect the second insn to have had a peephole
11905 applied yet.
11906
4d64faec
NF
119072010-06-29 Nathan Froyd <froydnj@codesourcery.com>
11908
11909 * genhooks.c (emit_findices): Cast field precision to int.
11910 (emit_documentation): Likewise.
11911
0287000a
JJ
119122010-06-29 Jakub Jelinek <jakub@redhat.com>
11913
087fa34b
JJ
11914 PR tree-optimization/43801
11915 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
11916 if old_decl was DECL_ONE_ONLY.
11917
0287000a
JJ
11918 PR debug/44668
11919 * dwarf2out.c (add_accessibility_attribute): New function.
11920 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
11921 instead of adding DW_AT_accessibility manually.
11922 (gen_enumeration_type_die, gen_struct_or_union_type_die,
11923 gen_typedef_die): Use it.
11924
6a07b007
DR
119252010-06-29 Douglas B Rupp <rupp@gnat.com>
11926
11927 * vmsdbgout.c (full_name): Just output the file name if not native.
11928
6ca45368
DR
119292010-06-29 Douglas B Rupp <rupp@gnat.com>
11930
11931 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
11932 (funcnam_table): New static table.
11933 (funcnum_table): New static table.
11934 (write_rtnbeg): Write value saved in funcnum_table.
11935 (write_rtnend): Write value saved in funcnum_table.
11936 (vmsdbgout_begin_function): Save current function info in
11937 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
11938 (vmsdbgout_finish): Iterate over funcnum_table.
11939
528b7aa4
DR
119402010-06-29 Douglas B Rupp <rupp@gnat.com>
11941
11942 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
11943 (vmsdbgout_type_decl): Declare
11944 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
11945 (FUNC_EPILOGUE_LABEL): New macro
11946 (vmsdbgout_begin_epilogue): New function.
11947 (vmsdbgout_type_decl): New function.
11948
cb488ce1
DR
119492010-06-29 Douglas B Rupp <rupp@gnat.com>
11950
11951 * vmsdbg.h: Update copyright.
11952
b313b165
DR
119532010-06-29 Douglas B Rupp <rupp@gnat.com>
11954
11955 * vmsdbg.h (DST_K_TBG): New DST constant.
11956 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
11957 (write_modbeg): Cast module_language to avoid warning.
11958 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
11959
38f8b050
JR
119602010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
11961
11962 PR other/44034
11963 * target.def, doc/tm.texi.in, genhooks.c: New files.
11964 * target.h: Instead of defining individual hook members,
11965 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
11966 include target.def.
11967 * target-def.h: Instead of defining individual hook initializers,
11968 include target-hooks-def.h.
11969 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
11970 targetm.live_on_entry -> targetm.extra_live_on_entry
11971 targetm.sched.md_finish ->targetm.sched.finish
11972 targetm.sched.md_init -> targetm.sched.init
11973 targetm.sched.md_init_global -> targetm.sched.init_global
11974 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
11975 targetm.asm_out.except_table_label ->
11976 targetm.asm_out.emit_except_table_label
11977 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
11978 targetm.target_help -> targetm.help
11979 targetm.vectorize.builtin_support_vector_misalignment ->
11980 targetm.vectorize.support_vector_misalignment
11981 targetm.file_start_app_off -> targetm.asm_file_start_app_off
11982 targetm.file_start_file_directive ->
11983 targetm.asm_file_start_file_directive
11984 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
11985 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
eed023cc 11986 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
38f8b050
JR
11987 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
11988 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
11989 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
11990 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
11991 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
11992 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
11993 * Makefile.in (TARGET_H): Depend on target.def.
11994 (TARGET_DEF_H): Depend on target-hooks-def.h.
11995 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
11996 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
11997 * doc/tm.texi: Regenerate.
11998
e82a40fc
JR
11999 * Makefile.in (s-tm-texi): Remove stray tab / rule.
12000
7ecb00a6
JR
12001 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
12002 (targetm.sched.init): Likewise.
12003
3fc7cd18
NF
120042010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12005
12006 PR bootstrap/44713
12007 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
12008 (function_arg_advance_32): Const-ify TYPE parameter.
12009 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
12010 (ix86_function_arg_advance): Change type of NAMED to bool.
12011 (function_arg_32): Const-ify CUM and TYPE parameters.
12012 (function_arg_64): Likewise. Change type of NAMED to bool.
12013 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
12014 to bool.
12015 (ix86_function_arg): Change type of NAMED to bool.
12016 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
12017 last argument as a bool.
12018
74f7912a
JR
120192010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
12020
12021 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
12022 (OVERRIDE_OPTIONS): Add note of obsolescence.
12023 Replace references with references to TARGET_OPTION_OVERRIDE.
12024 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
12025 the macro).
12026 * targhooks.c (default_target_option_override): New function.
12027 * targhooks.h (default_target_option_override): Declare.
12028 * target.h (struct gcc_target): Add override member to
9afcc09d 12029 target_option member.
74f7912a
JR
12030 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
12031 targetm.target_option.override call.
12032 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
12033 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
12034
20a6bb58
JH
120352010-06-29 Jan Hubicka <jh@suse.cz>
12036
12037 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
12038
b35366ce
JH
120392010-06-29 Jan Hubicka <jh@suse.cz>
12040
12041 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
12042 unreachable.
12043 (rebuild_frequencies): New function.
12044 * predict.h (rebuild_frequencies): Declare.
12045 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
12046 entry block and edge reaching new_entry.
94dbbc81
UB
12047 (tree_function_versioning): When doing partial cloning, rebuild
12048 frequencies when done.
b35366ce
JH
12049 * passes.c (execute_function_todo): Use rebild_frequencies.
12050
50b56694
RG
120512010-06-29 Richard Guenther <rguenther@suse.de>
12052
12053 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
12054 * tree-flow.h (enum noalias_state): Remove.
12055 (struct var_ann_d): Remove noalias_state member.
12056
810c4bf4
BS
120572010-06-29 Bernd Schmidt <bernds@codesourcery.com>
12058
12059 PR target/43902
12060 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
12061 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
12062 (maddhidi4): Likewise.
12063
3df41baf
BS
12064 Revert parts of the change for PR25130.
12065 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
12066 MEM_ALIAS_SET.
12067
3c07301f
NF
120682010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12069
12070 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
12071 targetm.calls.function_incoming_arg, and
12072 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
12073 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
12074 * target.h (struct gcc_target): Add function_arg_advance,
12075 function_arg, and function_incoming_arg fields.
12076 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
12077 (TARGET_FUNCTION_INCOMING_ARG): Define.
12078 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
12079 and TARGET_FUNCTION_INCOMING_ARG.
12080 * targhooks.h (default_function_arg_advance): Declare.
12081 (default_function_arg, default_function_incoming_arg): Declare.
12082 * targhooks.c (default_function_arg_advance): New function.
12083 (default_function_arg, default_function_incoming_arg): New function.
12084 * config/i386/i386.c (function_arg_advance): Rename to...
12085 (ix86_function_arg_advance): ...this. Make static.
12086 (function_arg): Rename to...
12087 (ix86_function_arg): ...this. Make static.
12088 (TARGET_FUNCTION_ARG_ADVANCE): Define.
12089 (TARGET_FUNCTION_ARG): Define.
12090 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
12091 (FUNCTION_ARG): Delete.
12092 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
12093 (function_arg): Delete prototype.
12094
079e7538
NF
120952010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12096
12097 * reginfo.c (init_reg_sets_1): Adjust comments.
12098 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
12099 * calls.c (prepare_call_address): Likewise.
12100 (emit_call_1): Use targetm.calls.return_pops_args.
12101 (expand_call): Likewise.
12102 * function.c (assign_parms): Likewise.
12103 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
12104 * target.h (struct gcc_target) [struct calls]: Add
12105 return_pops_args field.
12106 * targhooks.h (default_return_pops_args): Declare.
12107 * targhooks.c (default_return_pops_args): Define.
12108 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
12109 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
12110 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
12111 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
12112 documentation.
12113 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
12114 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
12115 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
12116 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
12117 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
12118 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
12119 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
12120 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
12121 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
12122 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
12123 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
12124 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
12125 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
12126 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
12127 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
12128 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
12129 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
12130 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
12131 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
12132 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
12133 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
12134 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
12135 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
12136 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
12137 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
12138 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
12139 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
12140 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
12141 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
12142 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
12143 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
12144 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
12145 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
12146 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
12147 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
12148 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
12149 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
12150 * config/i386/i386.c (ix86_return_pops_args): Make static.
12151 Constify arguments.
12152 (TARGET_RETURN_POPS_ARGS): Define.
12153 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
12154 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
12155 (TARGET_RETURN_POPS_ARGS): Define.
12156 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
12157 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
12158 (TARGET_RETURN_POPS_ARGS): Define.
12159
ea184343
RG
121602010-06-29 Richard Guenther <rguenther@suse.de>
12161
12162 PR middle-end/44667
12163 * tree-inline.c (initialize_inlined_parameters): Make sure
12164 to remap the inlined parameter variable substitutions types.
12165
5dfebe0a
EB
121662010-06-29 Eric Botcazou <ebotcazou@adacore.com>
12167
12168 PR rtl-optimization/44659
12169 * combine.c (make_compound_operation) <SUBREG>: Do not return the
12170 result of force_to_mode if it partially re-expanded the compound.
12171
6b5c2d6c
JH
121722010-06-28 Jan Hubicka <jh@suse.cz>
12173
12174 PR middle-end/44671
5dfebe0a
EB
12175 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
12176 RESULT_DECL.
6b5c2d6c 12177
9589f23e
AS
121782010-06-28 Anatoly Sokolov <aesok@post.ru>
12179
12180 * double-int.h (force_fit_type_double): Remove declaration.
12181 * double-int.c (force_fit_type_double): Move to tree.c.
12182 * tree.h (force_fit_type_double): Declare.
12183 * tree.h (force_fit_type_double): Moved from double-int.c. Use
12184 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
12185 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
12186 * convert.c (convert_to_pointer): Adjust call to
12187 force_fit_type_double.
12188 * tree-vrp.c (extract_range_from_assert,
12189 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
12190 * fold-const.c: Update comment.
12191 (int_const_binop, fold_convert_const_int_from_int,
12192 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
12193 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
12194 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
12195 round_up_loc): Adjust call to force_fit_type_double.
12196
5dfebe0a 121972010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
dfecaf59
PT
12198
12199 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
12200
bb8e5dca
MJ
122012010-06-28 Martin Jambor <mjambor@suse.cz>
12202
12203 * tree-sra.c (convert_callers): New parameter, change fndecls of
12204 recursive calls.
12205 (modify_function): Pass the old decl to convert_callers.
12206
f5d3b855
MJ
122072010-06-28 Martin Jambor <mjambor@suse.cz>
12208
12209 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
12210 ipa_check_create_node_params and ipa_initialize_node_params with
12211 checking asserts they are not necessary.
12212
4021f4a1
JH
122132010-06-28 Jan Hubicka <jh@suse.cz>
12214
12215 PR tree-optimization/44687
12216 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
12217
621f4189
MJ
122182010-06-28 Martin Jambor <mjambor@suse.cz>
12219
12220 PR c++/44535
12221 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
12222 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
12223 instead of BINFO_BASE_BINFO.
12224
fe2ef088
MM
122252010-06-28 Michael Matz <matz@suse.de>
12226
12227 PR middle-end/44592
12228 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
12229 proper VDEF chain for intermediate stores in the sequence.
12230
f0cc75e0
JH
122312010-06-28 Jan Hubicka <jh@suse.cz>
12232
12233 PR tree-optimization/44357
94dbbc81
UB
12234 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
12235 uninlinable functions.
f0cc75e0 12236
5dfebe0a 122372010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
3c005e6c
PT
12238
12239 * config.gcc (powerpc*-*-*): Handle titan.
12240 * config/rs6000/rs6000.c (titan_cost): New costs.
12241 (rs6000_override_options): Add "titan" to processor_target_table.
12242 Add Titan to branch alignment logic.
12243 Correctly set rs6000_cost for titan.
12244 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
12245 * config/rs6000/titan.md: New file.
12246 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
94dbbc81 12247
40523581
NF
122482010-06-28 Nathan Froyd <froydnj@codesourcery.com>
12249
12250 * tree-browser.c (TB_history_stack): Convert to a VEC.
12251 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
12252 (TB_history_prev): Likewise.
12253
04924d6a
NF
122542010-06-28 Nathan Froyd <froydnj@codesourcery.com>
12255
12256 * vec.h (vec_heap_free): Add parentheses around free.
12257
3b06d379
SB
122582010-06-28 Steven Bosscher <steven@gcc.gnu.org>
12259
12260 * system.h: Poison GCC_EXCEPT_H for front-end files.
12261
12262 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
12263 langhook.
12264 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
12265 Define to NULL by default.
12266 * except.h: Define GCC_EXCEPT_H.
12267 (doing_eh): Remove prototype.
12268 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
12269 (lang_protect_cleanup_actions): Remove.
12270 * except.c (lang_protect_cleanup_actions): Remove.
12271 (doing_eh): Remove.
12272 (gen_eh_region): Don't check doing_eh here.
12273 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
12274 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
12275 instead of lang_protect_cleanup_actions.
12276 * omp-low.c (maybe_catch_exception): Likewise.
12277 * Makefile.in: Update dependencies.
12278
5dfebe0a 122792010-06-28 Bingfeng Mei <bmei@broadcom.com>
6d41cd02 12280
94dbbc81
UB
12281 * cgraph.h (struct varpool_node): new used_from_object_file flag.
12282 (struct cgraph_local_info): new used_from_object_file flag.
12283 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
12284 (cgraph_clone_node): initialize used_from_object_file.
12285 (cgraph_create_virtual_clone): initialize used_from_object_file.
12286 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
12287 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
12288 when compiling with -fwhole-program.
12289 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
6d41cd02 12290 internal resolver.
94dbbc81
UB
12291 * ipa.c (function_and_variable_visibility): Set externally_visible
12292 flag of varpool_node if used_from_object_file flag is set.
12293 (cgraph_externally_visible_p): check used_from_object_file flag.
12294 * doc/invoke.texi (-fwhole-program option): Change description of
12295 externally_visible attribute accordingly.
12296 * doc/extend.texi (externally_visible): Ditto.
6d41cd02 12297
7802ca7c
JH
122982010-06-27 Jan Hubicka <jh@suse.cz>
12299
12300 * params.def (max-inline-insns-auto): Default to 40.
12301 * doc/invoke.texi (max-inline-insns-auto): Document the change.
12302
d402c33d
JH
123032010-06-27 Jan Hubicka <jh@suse.cz>
12304
12305 PR middle-end/44671
12306 PR middle-end/44686
5dfebe0a
EB
12307 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
12308 signature change.
d402c33d
JH
12309 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
12310 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
12311
de8f4b07
AS
123122010-06-27 Anatoly Sokolov <aesok@post.ru>
12313
12314 * target.h (struct gcc_target): Add register_move_cost field.
12315 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
12316 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
12317 * targhooks.c (default_register_move_cost): New function.
12318 * targhooks.h (default_register_move_cost): Declare function.
12319 * defaults.h (REGISTER_MOVE_COST): Delete.
12320 * ira-int.h (ira_register_move_cost): Update comment.
bd3a5d17 12321 * ira.c (ira_register_move_cost): Update comment.
de8f4b07
AS
12322 * reload.h (register_move_cost): Declare.
12323 * reginfo.c (register_move_cost): New function.
12324 (move_cost): Update comment.
12325 (init_move_cost, memory_move_secondary_cost): Replace
12326 REGISTER_MOVE_COST with register_move_cost.
12327 * postreload.c (reload_cse_simplify_set): (Ditto.).
12328 * reload.c (find_valid_class, find_reloads): (Ditto.).
12329 * reload1.c (choose_reload_regs): (Ditto.).
12330 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
12331 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
12332 * doc/md.texi (can_create_pseudo_p): Update documentation.
12333
12334 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12335 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12336 * config/i386/i386.h (ix86_memory_move_cost): Make static.
12337 (TARGET_MEMORY_MOVE_COST): Define.
12338
12339 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
12340 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
12341 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
12342 (TARGET_MEMORY_MOVE_COST): Define.
12343
533e50f6
RG
123442010-06-27 Richard Guenther <rguenther@suse.de>
12345
12346 PR tree-optimization/44683
12347 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
12348 false edge from the inverted condition.
12349
11af16ef
RG
123502010-06-27 Richard Guenther <rguenther@suse.de>
12351
12352 PR middle-end/44684
12353 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
12354 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
12355 for register LHS. Or non-store assignments.
12356
d9816849
EB
123572010-06-26 Eric Botcazou <ebotcazou@adacore.com>
12358
12359 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
12360 (sparc_emit_set_const64): Likewise. Remove disabled code.
12361 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
12362 (sparc_emit_set_const64): Likewise.
12363
2639084e
CM
123642010-06-26 Catherine Moore <clm@codesourcery.com>
12365
12366 * config/mips/mips.md (alu_type): New attribute.
12367 (type): Infer type from alu_type.
12368 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
12369 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
12370 *subsi3_extended, negsi2, negdi2, *low<mode>,
12371 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
12372 xor<mode>3, *nor<mode>3,
12373 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
12374 *zero_extendhi_truncqi): Set alu_type instead of type.
12375
df453731
DR
123762010-06-26 Douglas B Rupp <rupp@gnat.com>
12377
12378 * config/alpha/alpha.c (alpha_need_linkage): Adjust
6a02864a 12379 splay_tree_new_ggc call.
df453731
DR
12380 (alpha_use_linkage): Likewise.
12381
d5d8b111
JM
123822010-06-26 Joseph Myers <joseph@codesourcery.com>
12383
12384 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
12385 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
12386 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
12387 (static_specs): Remove switches_need_spaces.
12388 (process_command, do_self_spec): Hardcode handling "-o" instead of
12389 checking switches_need_spaces.
12390 * system.h (SWITCHES_NEED_SPACES): Poison.
12391
2706a615
RG
123922010-06-26 Richard Guenther <rguenther@suse.de>
12393
12394 PR tree-optimization/44393
12395 * tree-loop-distribution.c (generate_loops_for_partition): Fix
12396 stmt removal and VOP renaming.
12397 (generate_memset_zero): Remove redundant stmt updating.
12398 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
12399 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
12400
8b3057b3
JH
124012010-06-26 Jan Hubicka <jh@suse.cz>
12402
12403 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
12404 edges comming from header are equivalent.
12405 (visit_bb): Handle PHIs correctly.
12406 * tree-inline.c (copy_phis_for_bb): Be able to copy
12407 PHI from entry edge.
94dbbc81 12408 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
8b3057b3 12409
6bfd4302
RB
124102010-06-26 Richard Guenther <rguenther@suse.de>
12411
12412 PR middle-end/44674
12413 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
12414 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
12415
922e1882
JM
124162010-06-26 Joseph Myers <joseph@codesourcery.com>
12417
12418 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
12419 add_infile, alloc_switch): New.
12420 (process_command): Remove variable lang_n_infiles. Process
12421 options in a single pass. Use new functions for allocating
12422 infiles and switches arrays. Properly skip operands of
12423 -Xpreprocessor and -Xassembler.
12424
8cf9feca
JH
124252010-06-26 Jan Hubicka <jh@suse.cz>
12426
12427 PR middle-end/44671
6bfd4302
RB
12428 * cgraphunit.c (cgraph_function_versioning): Remove wrong
12429 cgraph_make_decl_local call; fix typo copying RTL data.
8cf9feca 12430
f6052f86
DD
124312010-06-25 DJ Delorie <dj@redhat.com>
12432
12433 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
12434 (m32c_output_aligned_common): Likewise.
12435 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
12436 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
12437 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
12438 (m32c_register_pragmas): Register it.
12439 * config/m32c/m32c.c (m32c_get_pragma_address): New.
12440 (m32c_insert_attributes): Set #pragma address decls volatile.
12441 (pragma_entry_eq): New.
12442 (pragma_entry_hash): New.
12443 (m32c_note_pragma_address): New.
12444 (m32c_get_pragma_address): New.
12445 (m32c_output_aligned_common): New.
12446 * doc/extend.texi: Document the new pragma.
12447
12448 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
12449 also.
12450 * config/m32c/predicates.md (m32c_any_operand): Check the code
12451 instead of memory_operand so as to allow matching volatile MEMs.
12452 (m32c_nonimmediate_operand): Likewise.
12453 (mra_operand): Allow volatiles.
12454
e0a80069
AO
124552010-06-25 Alexandre Oliva <aoliva@redhat.com>
12456
12457 PR debug/44610
12458 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
12459 address if the offset is unknown.
12460
8e7745dc
DR
124612010-06-25 Douglas B Rupp <rupp@gnat.com>
12462
12463 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
12464 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
12465 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
12466 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
12467 to ia64_start_function. Invoke it.
12468 * config/ia64/ia64.c (ia64_start_function): Call new function
12469 dwarf2out_vms_debug_main_pointer.
12470
5c8b27d7
SP
124712010-06-25 Sebastian Pop <sebastian.pop@amd.com>
12472
12473 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
12474 statements computing the true predicate.
12475
29caa68a
SP
124762010-06-25 Sebastian Pop <sebastian.pop@amd.com>
12477
12478 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
12479 to boolean_true_node.
12480 (reset_bb_predicate): New.
12481 (predicate_bbs): Call reset_bb_predicate.
12482
0f741287
SP
124832010-06-25 Sebastian Pop <sebastian.pop@amd.com>
12484
12485 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
12486 (tree_if_conversion): Returns true when something has been changed.
12487 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
12488 changed something.
12489
53aa40a8
SP
124902010-06-25 Sebastian Pop <sebastian.pop@amd.com>
12491
12492 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
12493 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
12494 * tree-if-conv.c: Include dbgcnt.h.
12495 (tree_if_conversion): Use if_conversion_tree to count the number of
12496 if-convertible loops.
12497
1fbb509a
CF
124982010-06-25 Changpeng Fang <changpeng.fang@amd.com>
12499
12500 * common.opt (fprefetch-loop-arrays): Re-define
12501 -fprefetch-loop-arrays as a tri-state option with the initial
12502 value of -1.
12503 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
12504 pass only when flag_prefetch_loop_arrays > 0.
12505 * toplev.c (process_options): Note that, with tri-states,
12506 flag_prefetch_loop_arrays>0 means prefetching is enabled.
12507 * config/i386/i386.c (override_options): Enable prefetching at -O3
12508 for a set of CPUs that sw prefetching is helpful.
12509 (software_prefetching_beneficial_p): New. Return TRUE if software
12510 prefetching is beneficial for the given CPU.
12511
97f43086
L
125122010-06-25 H.J. Lu <hongjiu.lu@intel.com>
12513
12514 PR rtl-optimization/44326
12515 * implicit-zee.c (find_removable_zero_extends): Replace
12516 INSN_P with NONDEBUG_INSN_P.
12517
062c604f
MJ
125182010-06-25 Martin Jambor <mjambor@suse.cz>
12519
12520 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
12521 (struct ipa_node_params): Removed the modification_analysis_done flag.
12522 (ipa_is_param_modified): Removed.
12523 (ipa_analyze_node): Declare.
12524 (ipa_compute_jump_functions): Remove declaration.
12525 (ipa_count_arguments): Likewise.
12526 (ipa_detect_param_modifications): Likewise.
12527 (ipa_analyze_params_uses): Likewise.
12528 * ipa-prop.c (struct param_analysis_info): New type.
12529 (visit_store_addr_for_mod_analysis): Removed.
12530 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
12531 moved down in the file.
12532 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
12533 (ipa_count_arguments): Made static.
12534 (mark_modified): New function.
12535 (is_parm_modified_before_call): New function.
12536 (compute_pass_through_member_ptrs): New parameter parms_info, call
12537 is_parm_modified_before_call instead of ipa_is_param_modified.
12538 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
12539 it to compute_pass_through_member_ptrs.
12540 (ipa_compute_jump_functions): New parameter parms_info, pass it to
12541 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
12542 on the callee if it is analyzed. Made static.
12543 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
12544 is_parm_modified_before_call instead of ipa_is_param_modified.
12545 (ipa_analyze_call_uses): New parameter parms_info, pass it to
12546 ipa_analyze_indirect_call_uses.
12547 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
12548 ipa_analyze_call_uses.
12549 (ipa_analyze_params_uses): New parameter parms_info, pass it to
12550 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
12551 (ipa_analyze_node): New function.
12552 (ipa_print_node_params): Do not dump the modified flag.
12553 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
12554 it. Do not stream the modified parameter flag.
12555 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
12556 it. Do not stream the modified parameter flag.
12557 * ipa-cp.c (ipcp_analyze_node): Removed.
12558 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
12559 with only a call to ipa_analyze_node.
12560 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
12561 node with only a call to ipa_analyze_node.
53aa40a8 12562
212580ff
MLI
125632010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
12564
12565 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
53aa40a8 12566
3e485f62
JH
125672010-06-25 Jan Hubicka <jh@suse.cz>
12568
12569 * tree-pass.h (pass_split_functions): Declare.
12570 * opts.c (decode_options): Enable function splitting at -O2
12571 * timevar.def (TV_IPA_FNSPLIT): New macro.
12572 * ipa-split.c: New file.
12573 * common.opt (-fpartial-inlining): New flag.
12574 * Makefile.in (ipa-split.o): New object file.
12575 * passes.c (init_optimization_passes): Add ipa-split.
12576 * params.def (partial-inlining-entry-probability): New parameters.
12577 * doc/invoke.texi (-fpartial-inlining): New.
12578
12947319
MLI
125792010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
12580
12581 PR 44665
12582 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
12583 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
12584 (gimplify_expr): Likewise.
53aa40a8 12585
8aa29647
MJ
125862010-06-25 Martin Jambor <mjambor@suse.cz>
12587
12588 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
12589 statements instead of bailing out on them.
12590 (ipa_analyze_indirect_call_uses): Do not require that loads from the
12591 parameter are in the same BB as the condition. Update comments.
12592
8ba0479e
JJ
125932010-06-25 Jakub Jelinek <jakub@redhat.com>
12594
7a2eceff
JJ
12595 PR middle-end/43866
12596 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
12597 true or always false, return NULL_TREE.
12598 (tree_unswitch_single_loop): Optimize conditions even when reaching
12599 max-unswitch-level parameter. If num > 0, optimize first all conditions
12600 using entry checks, then do still reachable block discovery and consider
12601 only conditions in still reachable basic blocks in the loop.
12602
8ba0479e
JJ
12603 PR tree-optimization/44539
12604 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
12605 the call doesn't have LHS, but has VDEF.
12606
d6841109
JM
126072010-06-25 Joseph Myers <joseph@codesourcery.com>
12608
12609 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
12610 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
94dbbc81 12611 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
d6841109
JM
12612 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
12613 * system.h (MODIFY_TARGET_NAME): Poison.
12614
4c9d416e
AM
126152010-06-25 Alan Modra <amodra@gmail.com>
12616
12617 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
12618 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
12619 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12620 CMODEL_LARGE as default.
12621 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
12622 (offsettable_ok_by_alignment): Delete.
12623 (rs6000_emit_move): Remove mcmodel=medium optimization.
12624
0354c0c7
BS
126252010-06-25 Bernd Schmidt <bernds@codesourcery.com>
12626
12627 With large parts from Jim Wilson:
12628 PR target/43902
12629 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
12630 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
12631 * optabs.c (optab_for_tree_code): Likewise.
12632 (expand_widen_pattern_expr): Likewise.
12633 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
12634 out of execute_optimize_widening_mul.
12635 (convert_plusminus_to_widen): New function.
12636 (execute_optimize_widening_mul): Use the two new functions.
12637 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
12638 Remove code to generate widening multiply-accumulate. Add support
12639 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
12640 * gimple-pretty-print.c (dump_ternary_rhs): New function.
12641 (dump_gimple_assign): Call it when appropriate.
12642 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
12643 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
12644 (expand_gimple_stmt_1): Likewise.
12645 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
12646 WIDEN_MULT_MINUS_EXPR.
12647 * tree-ssa-operands.c (get_expr_operands): Likewise.
12648 * tree-inline.c (estimate_operator_cost): Likewise.
12649 * gimple.c (extract_ops_from_tree_1): Renamed from
12650 extract_ops_from_tree. Add new arg for a third operand; fill it.
12651 (gimple_build_assign_stat): Support operations with three operands.
12652 (gimple_build_assign_with_ops_stat): Likewise.
12653 (gimple_assign_set_rhs_from_tree): Likewise.
12654 (gimple_assign_set_rhs_with_ops_1): Renamed from
12655 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
12656 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
12657 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
12658 WIDEN_MULT_MINUS_EXPR.
12659 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
12660 (extract_ops_from_tree_1): Adjust declaration.
12661 (gimple_assign_set_rhs_with_ops_1): Likewise.
12662 (gimple_build_assign_with_ops): Pass NULL for last operand.
12663 (gimple_build_assign_with_ops3): New macro.
12664 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
12665 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
12666 functions.
12667 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
12668 (verify_gimple_assign): Call it.
12669 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
12670 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
12671 functions for dealing with three-operand statements.
12672 * tree.c (commutative_ternary_tree_code): New function.
12673 * tree.h (commutative_ternary_tree_code): Declare it.
5dfebe0a
EB
12674 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
12675 ternary statements.
0354c0c7
BS
12676 (gimple_assign_nonzero_warnv_p): Likewise.
12677 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
12678 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
12679 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
12680 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
12681 (struct hashtable_expr): New member ternary in the union.
12682 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
12683 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
12684 (iterative_hash_hashable_expr): Likewise.
12685 (print_expr_hash_elt): Handle EXPR_TERNARY.
12686 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
12687 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
12688 statements. Handle GIMPLE_TERNARY_RHS.
12689
38f78b0c
JH
126902010-06-25 Jan Hubicka <jh@suse.cz>
12691
12692 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
12693
09a1e889
SZ
126942010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
12695
12696 PR c/44517
12697 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
12698 parameters are not good.
12699 (c_parser_parameter_declaration): Error unknown type name if the type
12700 name can't start declaration specifiers.
12701
418f840c
JM
127022010-06-25 Joseph Myers <joseph@codesourcery.com>
12703
12704 * gcc.c (translate_options): Don't mention +e in comment.
12705 (process_command): Don't handle +e specially.
12706
dd2e0807
BS
127072010-06-25 Bernd Schmidt <bernds@codesourcery.com>
12708
12709 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
12710
3c55880a
BS
12711 * ira-build.c (merge_hard_reg_conflicts): New function.
12712 (create_cap_allocno, copy_info_to_removed_store_destinations,
12713 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
12714 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
12715 (remove_unnecessary_allocnos, remove_low_level_allocnos)
12716 copy_nifo_to_removed_store_destination): Use them.
12717 * ira-lives.c (make_hard_regno_born): New function, split out of
12718 make_regno_born.
12719 (make_allocno_born): Likewise.
12720 (make_hard_regno_dead): New function, split out of make_regno_dead.
12721 (make_allocno_dead): Likewise.
12722 (inc_register_pressure): New function, split out of set_allocno_live.
12723 (dec_register_pressure): New function, split out of clear_allocno_live.
12724 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
12725 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
12726 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
12727 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
12728 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
12729 mark_pseudo_regno_live.
12730 (process_bb_node_lives): Use mark_pseudo_regno_live,
12731 make_hard_regno_born and make_allocno_dead.
12732 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
12733 set_allocno_live, clear_allocno_live): Delete functions.
12734
029da7d4
BS
12735 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
12736 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
12737 functions.
12738 (ira_flattening): Use ira_parent_allocno.
12739 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
12740 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
12741
6300cb73
BS
12742 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
12743 statement.
12744
42ce1cc4
BS
12745 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
12746 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
12747 minmax_set_iter_cond, minmax_set_iter_next,
12748 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
12749 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
12750 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
12751 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
12752 uses changed.
12753
b14151b5
BS
12754 * ira-int.h (struct live_range, live_range_t): Renamed from struct
12755 ira_allocno_live_range and allocno_live_range_t; all uses changed.
12756 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
12757 All uses changed.
12758
8850383b
RE
127592010-06-24 Richard Earnshaw <rearnsha@arm.com>
12760
12761 * thumb2.md (thumb2_tlobits_cbranch): Delete.
12762 (peephole2 to convert zero_extract/compare of single bit to
12763 lshift/compare): New.
12764
43a5d30b
AS
127652010-06-24 Anatoly Sokolov <aesok@post.ru>
12766
12767 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
12768 recursive call and call to 'int_const_binop'.
12769 (build_range_check, fold_cond_expr_with_comparison, unextend,
12770 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
12771 multiple_of_p): Adjust call to const_binop.
12772
b1c6d018
UB
127732010-06-24 Uros Bizjak <ubizjak@gmail.com>
12774
12775 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
12776 determine size of XFmode operand.
12777 (XFmode extended DFmode push splitter): Ditto.
12778 (XFmode extended SFmode push splitter): Ditto.
12779
da0ae970
L
127802010-06-24 H.J. Lu <hongjiu.lu@intel.com>
12781
12782 PR target/44588
12783 * config/i386/i386.md (extract_code): New.
12784 (<u>divmodqi4): Likewise.
12785 (divmodhiqi3): Likewise.
12786 (udivmodhiqi3): Likewise.
12787 (<u>divqi3): Remvoved.
12788
54f044eb
JJ
127892010-06-24 Jakub Jelinek <jakub@redhat.com>
12790
12791 PR middle-end/44492
12792 * recog.h (struct recog_data): Add is_asm field.
12793 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
12794 present in constraints of inline-asm operand and memory operand
12795 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
12796 (extract_insn): Initialize recog_data.is_asm.
12797 * doc/md.texi (Constraints): Document operand side-effect rules.
12798
d166d4c3
AK
127992010-06-24 Andi Kleen <ak@linux.intel.com>
12800
b1c6d018
UB
12801 * c-parser.c (c_parser_conditional_expression): Call
12802 warn_for_omitted_condop.
12803 * doc/invoke.texi: Document omitted condop warning.
d166d4c3 12804
b27c1cde
NC
128052010-06-24 Nick Clifton<nickc@redhat.com>
12806
12807 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
12808 insn in the sequence is a jump insn before setting its label.
12809
2dcef31e
AM
128102010-06-24 Alan Modra <amodra@gmail.com>
12811
12812 * collect2.c (main): Match exactly --version and --help.
12813
5f4a67a5
DD
128142010-06-24 DJ Delorie <dj@redhat.com>
12815
12816 * config/m32c/m32c-pragma.c: Don't include rtl.h.
12817
bc051083
UB
128182010-06-23 Uros Bizjak <ubizjak@gmail.com>
12819
b1c6d018 12820 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
bc051083
UB
12821 using X87MODEF mode iterator.
12822 (pushsf splitter): Macroize splitter using P mode iterator.
12823 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
12824 mode iterator.
12825
12826 (*movxf_internal): Rename from *movxf_integer.
12827 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
12828 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
12829 (*movdf_internal): Rename from *movdf_integer.
12830 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
12831 (*movsf_internal): Rename from *movdf_1.
12832
cde8534c
BS
128332010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
12834
bd3a5d17 12835 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
cde8534c
BS
12836 (const_gimple_seq_node): Removed typedefs.
12837
bd3a5d17 12838 * gimple.h (gimple_seq_node_d, gimple_seq_node)
cde8534c
BS
12839 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
12840
9b2133cd
L
128412010-06-23 H.J. Lu <hongjiu.lu@intel.com>
12842
12843 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
12844 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
12845 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
12846 and CODE_FOR_vec_extract_lo_v4df.
12847
12848 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
12849 Changed to define_insn_and_split.
12850 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
12851 (vec_extract_lo_v16hi): Likewise.
12852 (vec_extract_lo_v32qi): Likewise.
12853 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
12854 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
12855
82c0295a
JR
128562010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
12857
f52d94aa 12858 PR target/44640
82c0295a
JR
12859 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
12860 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
12861 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
12862 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
12863 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
12864
f52d94aa 12865 PR target/44640
bec02c18
JR
12866 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
12867
f12c802a
JR
12868 PR other/44644
12869 * df-core.c (struct df): Rename to df_d.
12870 * df.h (struct df): Likewise.
12871 * dse.h (struct df): Remove forward declaration.
12872 * recog.h (struct insn_data): Rename to:
12873 (struct_insn_data_d). Adjusted all users.
12874
1004318e
AC
128752010-06-23 Arnaud Charlet <charlet@adacore.com
12876
422f3939 12877 PR ada/22220
1004318e
AC
12878 * doc/install.texi: Update requirements to build GNAT.
12879
f878882b
AS
128802010-06-22 Andreas Schwab <schwab@linux-m68k.org>
12881
12882 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
12883 enum type.
12884 (m68k_sched_attr_opx_type): Remove unreachable return.
12885 (m68k_sched_attr_opy_type): Likewise.
12886 (m68k_sched_attr_size): Likewise.
12887 (sched_get_opxy_mem_type): Likewise.
12888 (m68k_sched_attr_op_mem): Likewise.
12889
8d2adc24
EB
128902010-06-22 Eric Botcazou <ebotcazou@adacore.com>
12891
12892 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
12893 new statement and adjust VDEF only if necessary. Remove superfluous
12894 call to maybe_clean_or_replace_eh_stmt.
12895 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
12896 copy the flags.
12897 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
12898 * tree-inline.c (copy_bb): ...and not there.
12899
ca3e07b4
CC
129002010-06-22 Cary Coutant <ccoutant@google.com>
12901
12902 * dwarf2out.c (is_nested_in_subprogram): New function.
12903 (should_move_die_to_comdat): Use it.
12904 (copy_ancestor_tree): Don't mark DIEs here.
12905 (copy_decls_walk): Start walk from root of newly-added tree;
12906 mark DIEs here instead.
12907
153b6955
L
129082010-06-22 H.J. Lu <hongjiu.lu@intel.com>
12909
12910 * config/i386/i386.md (unit): Also check sseishft1.
12911
b074e783
JH
129122010-06-22 Jan Hubicka <jh@suse.cz>
12913
8d2adc24
EB
12914 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
12915 enabled.
b074e783 12916
1a0f3fa1
JH
129172010-06-22 Jan Hubicka <jh@suse.cz>
12918
8d2adc24
EB
12919 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
12920 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
12921 Return true if something changed.
1a0f3fa1 12922 * df.h (df_confluence_function_n): Return bool.
8d2adc24
EB
12923 * df-core.c (df_worklist_propagate_forward,
12924 df_worklist_propagate_backward): Track changes and ages.
1a0f3fa1
JH
12925 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
12926 track ages.
12927 * dse.c (dse_confluence_n): Return always true.
12928
129292010-06-22 Jan Hubicka <jh@suse.cz>
07309d58
UB
12930
12931 * bitmap.c (bitmap_clear_bit): Micro optimize.
12932
a8ecfc9f
UB
129332010-06-22 Uros Bizjak <ubizjak@gmail.com>
12934
12935 * config/i386/i386.md (SWI1248x): New mode iterator.
12936 (SWI48x): Ditto.
12937 (SWI12): Ditto.
12938 (SWI24): Ditto.
bc051083 12939
a8ecfc9f
UB
12940 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
12941 SWI1248x mode iterator.
12942 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
12943 using SWI124 mode iterator.
12944 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
12945 mode iterator.
12946 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
12947 *pushdi2_prologue_rex64 using P mode iterator.
12948 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
12949 using SWI48 mode iterator.
12950 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
12951 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
12952 using SWI1248x mode iterator.
12953 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
12954 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
12955 SWI48 mode iterator.
12956 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
12957 iterator.
12958 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
12959 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
12960 SWI12 mode iterator.
12961 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
12962 SWI12 mode iterator.
12963 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
12964 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
12965 SWI24 mode iterator.
12966 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
12967 SWI48 mode iterator.
12968 (mov<mode>_insn_1): New expander.
12969 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
12970 using SWI48x mode iterator.
12971
12972 (*movoi_internal_avx): Rename from *movoi_internal.
12973 (*movti_internal_rex64): Rename from *movti_rex64.
12974 (*movti_internal_sse): Rename from *movti_sse.
12975 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
12976 (*movdi_internal): Rename from *movdi_2.
12977 (*movsi_internal): Rename from *movsi_1.
12978 (*movhi_internal): Rename from *movhi_1.
12979 (*movqi_internal): Rename from *movqi_1.
12980
12981 (insv): Update the call to gen_movsi_insv_1 for rename.
12982 * config/i386/i386.c (promote_duplicated_reg): Ditto.
12983
0d6a035d
JH
129842010-06-22 Jan Hubicka <jh@suse.cz>
12985
12986 * passes.c (execute_function_todo): Move call of statistics_fini_pass
12987 to ...
12988 (execute_todo) ... this one.
12989
8d2547f2
AM
129902010-06-22 Alan Modra <amodra@gmail.com>
12991
12992 PR target/44364
12993 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12994 * caller-save.c (insert_restore, insert_save): Use non-validate
12995 form of adjust_address.
12996
e92abd50
JDA
129972010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12998
12999 PR target/39690
a181e869 13000 * config/pa/pa.c (override_options): Disable
e92abd50
JDA
13001 -freorder-blocks-and-partition.
13002
c1b157a6
L
130032010-06-21 H.J. Lu <hongjiu.lu@intel.com>
13004
13005 PR target/44615
13006 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
13007
13008 * config/i386/i386.md (type): Add sseishft1
13009
13010 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
13011 (ppro_insn_load): Likewise.
13012 (ppro_insn_store): Likewise.
13013 (ppro_insn_both): Likewise.
13014
13015 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
13016 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
13017 for type.
13018 (*vec_extractv2di_1_avx): Likewise.
13019 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
13020 type. Remove atom_unit.
13021 (*vec_extractv2di_1_sse2): Likewise.
13022
cd7fe53b
DD
130232010-06-21 DJ Delorie <dj@redhat.com>
13024
13025 * diagnostic.h (diagnostic_classification_change_t): New.
13026 (diagnostic_context): Add history and push/pop list.
13027 (diagnostic_push_diagnostics): Declare.
13028 (diagnostic_pop_diagnostics): Declare.
13029 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
13030 from pragmas in a history chain instead of the global table.
13031 (diagnostic_push_diagnostics): New.
13032 (diagnostic_pop_diagnostics): New.
13033 (diagnostic_report_diagnostic): Scan history chain to find state
13034 of diagnostics as of the diagnostic location.
13035 * opts.c (set_option): Pass UNKNOWN_LOCATION to
13036 diagnostic_classify_diagnostic.
13037 (enable_warning_as_error): Likewise.
13038 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
13039 use in the history chain.
cd7fe53b
DD
13040 * doc/extend.texi: Document pragma GCC diagnostic changes.
13041
d34b4f64
JJ
130422010-06-21 Jakub Jelinek <jakub@redhat.com>
13043
5ec96609
JJ
13044 * dwarf2out.c (add_linkage_name): New function. Don't add
13045 anything to DW_TAG_member DIEs.
13046 (add_name_and_src_coords_attributes): Use it.
13047 (gen_variable_die): Call it for C++ static data members if
13048 specification is DW_TAG_member.
13049
f0057424
JJ
13050 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
13051 C++ char16_t and char32_t.
13052
2e1e8c5d
JJ
13053 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
13054 * genattrtab.c: Include vecprim.h.
13055 (cached_attrs, cached_attr_count, attrs_seen_once,
13056 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
13057 attrs_cached_after): New variables.
13058 (find_attrs_to_cache): New function.
13059 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
13060 (write_test_expr): Add attrs_cached argument, return it too,
13061 attempt to cache non-const attributes used more than once in
13062 a single case handling.
13063 (write_attr_get): Use find_attrs_to_cache, for caching candidates
13064 emit cached_* variables. Adjust write_attr_set callers.
13065 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
13066 to find attributes that should be cached in this block. Adjust
13067 write_test_expr callers.
13068 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
13069 callers.
13070 (make_automaton_attrs): Adjust write_test_expr caller.
13071
2b21299c
JJ
13072 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
13073 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
13074 (make_automaton_attrs): If find_tune_attr returns non-NULL,
13075 write separate internal_dfa_insn_code_* and insn_default_latency_*
13076 functions for each attribute's value and emit init_sched_attrs
13077 function and function pointers.
13078 * genattr.c (const_attrs, reservations): New variables.
13079 (gen_attr): Add const attributes to const_attrs vector.
13080 (check_tune_attr, find_tune_attr): New functions.
13081 (main): Add reservations to reservations vector. If find_tune_attr
13082 returns true, add prototype for init_sched_attrs and make
13083 internal_dfa_insn_code and insn_default_latency function pointers,
13084 otherwise define init_sched_attrs as dummy macro.
13085 * cfgexpand.c: Include insn-attr.h.
13086 (gimple_expand_cfg): Call init_sched_attrs.
13087
5e88be0d 13088 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
d34b4f64 13089
529e5fc9
JJ
13090 PR target/44575
13091 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
13092 va_arg from a set of register save slots into a temporary,
13093 if the container is bigger than type size, do the copying
13094 using smaller mode or using memcpy.
13095
67477881
JJ
13096 PR bootstrap/44426
13097 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
13098 prototype.
13099 (sel_print_to_dot): Remove macro.
13100 (sel_print): Likewise. New prototype.
13101 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
13102 (sel_print): New function.
13103
babc4728
RO
131042010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13105
13106 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
13107 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
13108
31e727b0
NC
131092010-06-21 Nick Clifton <nickc@redhat.com>
13110
13111 * config/rx/rx.h (PTRDIFF_TYPE): Define.
13112 (SMALL_REGISTER_CLASS): Define (to zero).
13113 (PRINT_OPERAND): Delete.
13114 (PRINT_OPERAND_ADDRESS): Delete.
13115 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
13116 (rx_print_operand_address): Delete prototype.
13117 * config/rx/rx.c (rx_print_operand): Make static.
13118 Allow %H and %L to handle CONST_DOUBLEs.
13119 (rx_print_operand_address): Make static.
13120 (rx_gen_move_template): Rename local variable 'template' to
13121 out_template.
5e88be0d 13122 (rx_function_arg): Do not pass unknown sized objects in registers.
31e727b0
NC
13123 (TARGET_PRINT_OPERAND): Define.
13124 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13125
b361b153
JK
131262010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
13127
13128 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
13129
7916a546
KT
131302010-06-21 Kai Tietz <kai.tietz@onevision.com>
13131
13132 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
13133 stack-alignment for simple leaf-functions.
13134
339325b3
AO
131352010-06-20 Alexandre Oliva <aoliva@redhat.com>
13136
13137 * doc/install.texi: Document bootstrap-lto.
13138
7254364e
AO
131392010-06-20 Alexandre Oliva <aoliva@redhat.com>
13140
13141 PR debug/44248
13142 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
13143 (input_function): Drop them here, if VTA is disabled.
13144
dedd9d05
UB
131452010-06-20 Uros Bizjak <ubizjak@gmail.com>
13146
13147 PR target/44546
13148 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
13149 New predicate.
5e88be0d 13150 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
dedd9d05
UB
13151 ix86_swapped_fp_comparsion_operator instead of
13152 ix86_fp_comparison_operator.
13153
13154 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
13155 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
13156 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
13157 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
13158 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
13159 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
13160
6e2f1956
JM
131612010-06-20 Joseph Myers <joseph@codesourcery.com>
13162
13163 PR other/32998
13164 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
13165 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
13166 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
13167 (decode_cmdline_option): Update for this return value. Set
13168 orig_option_with_args_text field. Set arg field for unknown
13169 options. Make static.
13170 (decode_cmdline_options_to_array): New.
13171 (prune_options): Update handling of find_opt return value.
13172 * opts.c (read_cmdline_option): Take decoded option. Return void.
13173 (read_cmdline_options): Take decoded options.
13174 (decode_options): Add parameters for decoded options. Use
13175 decode_cmdline_options_to_array. Use decoded options for -O
13176 scan. Use integral_argument for -O parameters. Update call to
13177 read_cmdline_options.
dedd9d05 13178 (enable_warning_as_error): Update handling of find_opt return value.
6e2f1956
JM
13179 * opts.h: Update comment on unknown options.
13180 (struct cl_decoded_option): Update comments on opt_index and arg.
13181 Add orig_option_with_args_text.
13182 (decode_cmdline_option): Remove.
13183 (decode_cmdline_options_to_array): Declare.
13184 (decode_options): Update prototype.
13185 * toplev.c (save_argv): Remove.
13186 (save_decoded_options, save_decoded_options_count): New.
13187 (read_integral_parameter): Remove.
13188 (print_switch_values): Use decoded options.
dedd9d05 13189 (toplev_main): Don't set save_argv. Update call to decode_options.
6e2f1956 13190 * toplev.h (read_integral_parameter): Remove.
dedd9d05 13191 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
6e2f1956 13192
e6bfe8a2
RE
131932010-06-19 Richard Earnshaw <rearnsha@arm.com>
13194
13195 PR target/44072
13196 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
13197 immediate.
13198 * constraints.md (Pw, Px): New constraints.
13199 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
13200
1c154a23
L
132012010-06-19 H.J. Lu <hongjiu.lu@intel.com>
13202
13203 * config/i386/sse.md (fma4modesuffixf4): Removed.
13204 (ssemodesuffixf2s): Likewise.
13205 (ssemodesuffixf4): Likewise.
13206 (ssemodesuffixf2c): Likewise.
13207 (ssescalarmodesuffix2s): Likewise.
13208 (avxmodesuffixf2c): Likewise.
13209 (ssemodesuffix): New.
13210 (ssescalarmodesuffix): Likewise.
13211 Update patterns with ssemodesuffix and ssescalarmodesuffix.
13212
5a2983ce
PH
132132010-06-19 Philip Herron <herron.philip@googlemail.com>
13214
a8ecfc9f 13215 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
5a2983ce 13216
fae76410
L
132172010-06-18 H.J. Lu <hongjiu.lu@intel.com>
13218
13219 * stor-layout.c (debug_rli): Remove unused local variables.
13220
d36d83e9
EB
132212010-06-18 Eric Botcazou <ebotcazou@adacore.com>
13222
13223 PR rtl-optimization/40900
13224 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
13225 original expression for later reuse.
13226 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
13227 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
13228
fd7de64c
AS
132292010-06-18 Anatoly Sokolov <aesok@post.ru>
13230
13231 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
13232 double_int_fits_in_uhwi_p): Implement as static inline.
13233 (double_int_xor): New inline function.
13234 (double_int_lrotate, double_int_rrotate, double_int_max,
13235 double_int_umax, double_int_smax, double_int_min, double_int_umin,
13236 double_int_smin): Declare.
13237 (lrotate_double, rrotate_double): Remove declaration.
13238 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
13239 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
13240 (double_int_lrotate, double_int_rrotate, double_int_max,
13241 double_int_umax, double_int_smax, double_int_min, double_int_umin,
13242 double_int_smin): New function.
13243 * fold-const.c (int_const_binop): Clean up, use double_int_*
13244 functions.
13245 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
13246 double_int_* and immed_double_int_const functions.
13247
bc87224e
NF
132482010-06-18 Nathan Froyd <froydnj@codesourcery.com>
13249
13250 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
13251 * function.c (types_used_by_cur_var_decl): Likewise.
a8ecfc9f 13252 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
bc87224e 13253
76d971cc
NF
132542010-06-18 Nathan Froyd <froydnj@codesourcery.com>
13255
13256 * tree.h (record_layout_info): Change type of pending_statics field
13257 to a VEC.
13258 * stor-layout.c (start_record_layout): Store NULL into
13259 pending_statics.
13260 (debug_rli): Call debug_vec_tree instead of debug_tree.
13261 (place_field): Likewise.
13262 (finish_record_layout): Likewise.
13263
9628d8f6
AM
132642010-06-18 Alan Modra <amodra@gmail.com>
13265
13266 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
13267
8ccfe1ab
JDA
132682010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13269
13270 PR target/43740
dedd9d05
UB
13271 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
13272 for SET source operand from SET destination operand.
8ccfe1ab 13273
60de8907
BS
132742010-06-17 Bernd Schmidt <bernds@codesourcery.com>
13275
13276 PR rtl-optimization/39871
13277 * reload1.c (init_eliminable_invariants): For flag_pic, disable
13278 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
13279 (function_invariant_p): Rule out a plus of frame or arg pointer with
13280 a SYMBOL_REF.
13281 * ira.c (find_reg_equiv_invariant_const): Likewise.
13282
d398d903
GN
132832010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
13284
13285 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
13286 print_operand_address and puts to output the operand for CONST.
13287
654bbfea
JJ
132882010-06-17 Jakub Jelinek <jakub@redhat.com>
13289
13290 PR debug/44572
13291 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
13292 hook.
13293
11d259f0
NF
132942010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13295
13296 * v850-protos.h (print_operand): Delete.
13297 (print_operand_address): Delete.
13298 * v850.h (PRINT_OPERAND): Delete.
13299 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13300 (PRINT_OPERAND_ADDRESS): Delete.
13301 * v850.c (print_operand_address): Rename to...
13302 (v850_print_operand_address): ...this. Make static. Call
13303 v850_print_operand.
13304 (print_operand): Rename to...
13305 (v850_print_operand): ...this. Make static. Call
13306 v850_print_operand_address.
13307 (v850_print_operand_punct_valid_p): New function.
13308 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13309 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13310
9e94b957
NF
133112010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13312
13313 * config/sh/sh-protos.h (print_operand): Delete.
13314 (print_operand_address): Delete.
13315 * config/sh/sh.h (PRINT_OPERAND): Delete.
13316 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13317 (PRINT_OPERAND_ADDRESS): Delete.
13318 * config/sh/sh.c (sh_print_operand_address): Make static.
13319 (sh_print_operand): Make static. Call sh_print_operand_address
13320 and sh_print_operand.
13321 (sh_print_operand_punct_valid_p): New function.
13322 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13323 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13324
349f851e
NF
133252010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13326
13327 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
13328 (mcore_print_operand_address): Delete.
13329 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
13330 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13331 (PRINT_OPERAND_ADDRESS): Delete.
13332 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
13333 (mcore_print_operand): Make static.
13334 (mcore_print_operand_punct_valid_p): New function.
13335 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
13336 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13337
efe554e4
NF
133382010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13339
13340 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
13341 (print_operand_address): Delete.
13342 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
13343 (PRINT_OPERAND_ADDRESS): Delete.
13344 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
13345 static.
13346 (m68hc11_print_operand): Make static.
13347 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13348
c73035c7
NF
133492010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13350
13351 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
13352 (m32r_print_operand_address): Delete.
13353 * config/m32r/m32r.h (m32r_punct_chars): Delete.
13354 (PRINT_OPERAND): Delete.
13355 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13356 (PRINT_OPERAND_ADDRESS): Delete.
13357 * config/m32r/m32r.c (m32r_punct_chars): Make static.
13358 (m32r_print_operand_address): Make static.
13359 (m32r_print_operand): Make static.
13360 (m32r_print_operand_punct_valid_p): New function.
13361 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13362 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13363
bf7c1408
NF
133642010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13365
13366 * config/iq2000/iq2000-protos.h (print_operand): Delete.
13367 (print_operand_address): Delete.
13368 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
13369 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13370 (PRINT_OPERAND_ADDRESS): Delete.
13371 (iq2000_print_operand_punct): Delete.
13372 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
13373 (iq2000_print_operand_address): Make static.
13374 (iq2000_print_operand): Make static.
13375 (iq2000_print_operand_punct_valid_p): New function.
13376 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13377 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13378
0fb30cb7
NF
133792010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13380
13381 * config/frv/frv-protos.h (frv_print_operand): Delete.
13382 (frv_print_operand_address): Delete.
13383 * config/frv/frv.h (PRINT_OPERAND): Delete.
13384 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13385 (PRINT_OPERAND_ADDRESS): Delete.
13386 * config/frv/frv.c (frv_print_operand_address): Make static.
13387 (frv_print_operand): Make static.
13388 (frv_print_operand_punct_valid_p): New function.
13389 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13390 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13391
bfdb7b70
NF
133922010-06-17 Nathan Froyd <froydnj@codesourcery.com>
13393
13394 * tree.h (vec_member): Declare.
13395 * tree.c (vec_member): Define.
13396
3a620661
RG
133972010-06-17 Richard Guenther <rguenther@suse.de>
13398
13399 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
13400 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
13401
498c378f
RG
134022010-06-17 Richard Guenther <rguenther@suse.de>
13403
13404 * tree-inline.c (declare_return_variable): Remove bogus code.
13405
bd2e63a1
RG
134062010-06-17 Richard Guenther <rguenther@suse.de>
13407
13408 * gimplify.c (gimplify_bind_expr): Always promote complex
13409 and vector variables to registers if possible.
13410
7fa5296e
RG
134112010-06-17 Richard Guenther <rguenther@suse.de>
13412
13413 * expr.c (get_inner_reference): Use double_int for bit_offset
13414 calculation.
13415
6a78b724
DD
134162010-06-16 DJ Delorie <dj@redhat.com>
13417
13418 * common.opt (-fstrict-volatile-bitfields): new.
13419 * doc/invoke.texi: Document it.
13420 * fold-const.c (optimize_bit_field_compare): For volatile
13421 bitfields, use the field's type to determine the mode, not the
13422 field's size.
13423 * expr.c (expand_assignment): Likewise.
13424 (get_inner_reference): Likewise.
13425 (expand_expr_real_1): Likewise.
13426 * expmed.c (store_fixed_bit_field): Likewise.
13427 (extract_bit_field_1): Likewise.
13428 (extract_fixed_bit_field): Likewise.
13429
f1071b12
RG
134302010-06-16 Richard Guenther <rguenther@suse.de>
13431
dedd9d05 13432 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
f1071b12 13433
67ad2ae7
DR
134342010-06-16 Douglas B Rupp <rupp@gnat.com>
13435
13436 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
13437 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
13438 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
13439 * debug.c: Likewise.
13440 * sdbout.c: Likewise.
13441 * vmsdbgout.c: Likewise.
13442 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
13443 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
13444 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
13445 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
13446 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
13447 * dwarf2out.c (dw_fde_struct): New fields
13448 dw_fde_vms_{end,begin}_prologue.
13449 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
13450 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
13451 (dwarf2out_vms_end_prologue): New function.
13452 (dwarf2out_vms_begin_epilogue): New function.
13453 (dw_val_struct): New value dw_val_class_vms_delta.
13454 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
13455 begin_epilogue for VMS.
13456 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
13457 new static functions.
13458 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
dedd9d05 13459 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
67ad2ae7
DR
13460 static functions.
13461 (print_die): New case dw_val_class_vms_delta.
13462 (attr_checksum): Likewise.
13463 (same_dw_val_p: Likewise.
13464 (size_of_die): Likewise.
13465 (value_format): Likewise.
13466 (output_die): Likewise.
13467 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
13468 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
13469 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
13470 dwarf2out_cfi_begin_epilogue
13471 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
13472
ed5c4a10
NF
134732010-06-16 Nathan Froyd <froydnj@codesourcery.com>
13474
13475 * config/cris/cris-protos.h (cris_print_operand): Delete.
13476 (cris_print_operand_address): Delete.
13477 * config/cris/cris.h (PRINT_OPERAND): Delete.
13478 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13479 (PRINT_OPERAND_ADDRESS): Delete.
13480 * config/cris/cris.c (cris_print_operand_address): Make static.
13481 (cris_print_operand): Make static.
13482 (cris_print_operand_punct_valid_p): New function.
13483 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13484 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13485
616c557d
NF
134862010-06-16 Nathan Froyd <froydnj@codesourcery.com>
13487
13488 * config/arm/arm-protos.h (arm_print_operand): Delete.
13489 (arm_print_operand_address): Delete.
13490 * config/arm/arm.h (PRINT_OPERAND): Delete.
13491 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13492 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
13493 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
a8ecfc9f 13494 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
616c557d
NF
13495 (arm_print_operand): Make static.
13496 (arm_print_operand_punct_valid_p): New function.
13497 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13498 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13499
c249a7bc
NC
135002010-06-16 Nick Clifton <nickc@redhat.com>
13501
13502 * config/rx/constraints.md (NEGint4): New constraint.
13503 * config/rx/rx.md (attr cc): Add set_zsc.
13504 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
13505 initialised.
13506 (cmpsf): Likewise.
13507 (call_internal): Clobber the cc0 register.
13508 (call_value_internal): Likewise.
13509 (cstoresi4): Likewise.
13510 (movsieq): Likewise.
13511 (movsine): Likewise.
13512 (addsi3): Add alternative to handle small negative constants.
13513 (sunsi3): Likewise.
13514 (addsi3): Do not set the O bit in the cc0 register.
13515 (adddi3): Likewise.
13516 (subsi3): Likewise.
13517 (subdi3): Likewise.
13518 (andsi3): Reorder alternatives to prefer shorter forms.
13519 (mulsi3): Likewise.
13520 (iorsi3): Likewise.
13521 (negsi2): Note that the cc0 flags are set.
13522 (rotlsi3): Note that only the Z and S bits are set in cc0.
13523 (lshrsi3): Likewise.
13524 (ashlsi3): Likewise.
13525 (subsf3): Use %Q for the MEM operand.
13526 (fix_truncsfsi2): Likewise.
13527 (floatsisf2): Likewise.
13528 (bitset): Remove early clobber from destination.
13529 (bitset_in_memory): Likewise.
13530 (lrintsf2): Clobber the cc0 register.
dedd9d05 13531 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
c249a7bc
NC
13532 (rx_print_operand): Handle %N.
13533
f75aa51c
JH
135342010-06-16 Jan Hubicka <jh@suse.cz>
13535
13536 * df-core.c (df_compact_blocks): Free problem_temps vector.
13537
29be3835
MJ
135382010-06-16 Martin Jambor <mjambor@suse.cz>
13539
13540 PR tree-optimization/43905
13541 * tree-sra.c: Include tree-inline.h.
13542 (create_abstract_origin): Removed.
13543 (modify_function): Version the call graph node instead of creating
13544 abstract origins and dealing with same_body aliases.
13545 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
13546 function is versionable.
13547 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
13548
e7bfcf35
MK
135492010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
13550
13551 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
13552 (CHOOSE_DYNAMIC_LINKER): Update.
13553
f582a3aa
UB
135542010-06-15 Uros Bizjak <ubizjak@gmail.com>
13555
13556 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
13557 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
13558 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
13559 *prefetch_3dnow_rex.
13560
e4f7c483
AS
135612010-06-15 Anatoly Sokolov <aesok@post.ru>
13562
13563 * target.h (struct asm_out):Add declare_constant_name field.
13564 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
13565 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
13566 * output.h (default_asm_declare_constant_name): Declare.
13567 (assemble_label): Update prototype.
13568 * varasm.c (assemble_constant_contents): Use
13569 targetm.asm_out.declare_constant_name target hook.
13570 (assemble_label): Add 'file' argument.
13571 (default_asm_declare_constant_name): New function.
13572 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
13573 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
13574 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
13575
13576 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
13577 * config/darwin.c (darwin_asm_declare_constant_name): New function.
13578 (machopic_output_indirection): Update assemble_label argument list.
13579 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
13580 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
13581
6ab4e307
SP
135822010-06-15 Sebastian Pop <sebastian.pop@amd.com>
13583
13584 PR middle-end/44391
13585 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
13586 size_one_node for pointer types. Do not call gmp_cst_to_tree.
13587
7fc1dad6
RG
135882010-06-15 Richard Guenther <rguenther@suse.de>
13589
13590 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
13591
50416c61 135922010-06-15 Paul Brook <paul@codesourcery.com>
6ab4e307 13593
50416c61
PB
13594 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
13595 hard-float ABI.
13596
15bbc165
AO
135972010-06-15 Alexandre Oliva <aoliva@redhat.com>
13598
13599 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
13600 don't get a vector type for output.
13601
79943d19
JJ
136022010-06-15 Jakub Jelinek <jakub@redhat.com>
13603
13604 PR fortran/44536
13605 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
13606 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
13607 (LANG_HOOKS_DECLS): Add it.
13608 * gimplify.c (omp_notice_variable): Call
13609 lang_hooks.decls.omp_report_decl.
13610
eed5f58a
MJ
136112010-06-15 Martin Jambor <mjambor@suse.cz>
13612
13613 PR lto/44464
13614 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
13615 on the newly dead SSA name.
13616
070b27da
AM
136172010-06-15 Alan Modra <amodra@gmail.com>
13618
13619 * doc/invoke.texi: Add mcmodel to powerpc options.
13620 * configure.ac: Add HAVE_LD_LARGE_TOC test.
13621 * configure: Regenerate.
13622 * config.in: Regenerate.
13623 * config/rs6000/linux64.opt (mcmodel): New.
13624 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
9628d8f6 13625 (TARGET_CMODEL, SET_CMODEL): Define.
070b27da
AM
13626 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
13627 select CMODEL_MEDIUM default.
13628 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
13629 (TARGET_CMODEL): Define default.
13630 * config/rs6000/rs6000.c (cmodel): New variable.
13631 (rs6000_explicit_options): Add cmodel field.
13632 (rs6000_handle_option): Handle -mcmodel.
13633 (create_TOC_reference): Add largetoc_reg param. Generate high,
13634 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
13635 (rs6000_delegitimize_address): Recognise new toc reference rtl
13636 and minimal-toc rtl.
13637 (rs6000_legitimize_reload_address): Handle new toc references.
13638 (print_operand_address): Handle legitimate_constant_pool_address_p
13639 match before lo_sum.
13640 (rs6000_eliminate_indexed_memrefs): Tidy.
13641 (rs6000_emit_move): Tweak threshold for inlining constants.
13642 Keep rs6000_emit_allocate_stack large stack frame offsets
13643 loaded into r0 inline.
13644 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
13645 (tocrel_base, tocrel_offset): New variables.
13646 (toc_relative_expr_p): Set them here.
f582a3aa 13647 (print_operand_address): Skip over any offset on constant pool address.
070b27da
AM
13648 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
13649 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
13650 (offsettable_ok_by_alignment): New function.
13651 (rs6000_emit_move): Address suitably aligned local symbol_refs
13652 relative to the toc pointer for -mcmodel=medium.
13653 (legitimate_constant_pool_address_p): Make param const_rtx. Add
13654 strict param. Allow lo_sum version of addressing. Verify reg
13655 used for -mminimal-toc and -mcmodel != small. Update all callers.
13656 * config/rs6000/constraints.md: Update for above change.
13657 * config/rs6000/predicates.md: Likewise.
13658 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
13659 code.
13660 (tls_gd): Split for -mcmodel=medium/large.
13661 (tls_gd_high, tls_gd_low): New.
13662 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
13663 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
13664 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
13665 (largetoc_high, largetoc_low): New.
13666 (cmptf_internal2): Add clobber.
13667 * config/rs6000/rs6000-protos.h: Update.
13668
d5058523
CF
136692010-06-14 Changpeng Fang <changpeng.fang@amd.com>
13670
13671 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
13672 true if no prefetch is going to be generated for a given group.
13673 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
13674 estimate the prefetch_count.
13675 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
13676 prefetch count by considering the unroll_factor and prefetch_mod
13677 for is_loop_prefetching_profitable.
13678
33d67485
AS
136792010-06-14 Andreas Schwab <schwab@linux-m68k.org>
13680
13681 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
13682 anything if the argument is not a MEM.
13683
22963fee
AO
136842010-06-14 Alexandre Oliva <aoliva@redhat.com>
13685
13686 PR debug/43650
13687 PR debug/44181
13688 PR debug/44247
13689 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
13690 debug stmts.
13691 (canonicalize_loop_ivs): Likewise.
13692
c11b0b3b
AO
136932010-06-14 Alexandre Oliva <aoliva@redhat.com>
13694
13695 PR debug/43656
13696 * haifa-sched.c (setup_insn_reg_pressure_info,
13697 update_register_pressure): Reject debug insns.
13698 (ready_sort): Don't setup reg pressure for debug insns.
13699 (schedule_insn): Don't update reg pressure for debug insns.
13700
2465dcc2
RG
137012010-06-14 Richard Guenther <rguenther@suse.de>
13702
13703 * lto-streamer.c (cached_bp): Remove.
13704 (bitpack_delete): Likewise.
13705 (bitpack_create): Likewise.
13706 (bp_get_next_word): Likewise.
13707 (bp_pack_value, bp_unpack_value): Move ...
13708 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
13709 Re-implement.
13710 (struct bitpack_d): Likewise.
13711 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
13712 New inline functions.
13713 * lto-streamer-out.c (lto_output_bitpack): Remove.
f582a3aa 13714 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
2465dcc2
RG
13715 (pack_value_fields): Adjust.
13716 (lto_write_tree): Likewise.
13717 (output_gimple_stmt): Likewise.
13718 (output_function): Likewise.
13719 * lto-streamer-in.c (input_gimple_stmt): Adjust.
13720 (input_function): Likewise.
f582a3aa 13721 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
2465dcc2
RG
13722 (lto_input_bitpack): Remove.
13723 (lto_materialize_tree): Adjust.
13724 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
13725 * lto-cgraph.c (lto_output_edge): Adjust.
13726 (lto_output_node): Likewise.
13727 (lto_output_varpool_node): Likewise.
13728 (lto_output_ref): Likewise.
13729 (input_node): Likewise.
13730 (input_varpool_node): Likewise.
13731 (input_ref): Likewise.
13732 (input_edge): Likewise.
13733 (output_node_opt_summary): Likewise.
13734 (input_node_opt_summary): Likewise.
13735 * ipa-pure-const.c (pure_const_write_summary): Likewise.
13736 (pure_const_read_summary): Likewise.
13737 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
13738 (ipa_read_indirect_edge_info): Likewise.
13739 (ipa_write_node_info): Likewise.
13740 (ipa_read_node_info): Likewise.
13741
808081b4
L
137422010-06-14 H.J. Lu <hongjiu.lu@intel.com>
13743
13744 PR target/44534
f582a3aa 13745 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
808081b4
L
13746 (vec_extract_lo_v16hi): Likewise.
13747 (vec_extract_lo_v32qi): Likewise.
13748
5bca794b
JJ
137492010-06-14 Jakub Jelinek <jakub@redhat.com>
13750
aa493694
JJ
13751 PR bootstrap/44426
13752 * tree.h (build_call_expr): Don't define as vararg macro, instead
13753 add a prototype.
13754 * builtins.c (build_call_nofold): Remove.
13755 (expand_builtin_int_roundingfn, expand_builtin_pow,
13756 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
13757 expand_builtin_memset_args, expand_builtin_strcmp,
13758 expand_builtin_strncmp, expand_builtin_memory_chk): Use
13759 build_call_nofold_loc instead of build_call_nofold.
13760 (build_call_expr): New function.
13761
8ab7d796 13762 PR tree-optimization/44508
f582a3aa 13763 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
8ab7d796
JJ
13764 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
13765 don't eliminate trivially dead stmts.
13766 * tree-vrp.c (vrp_finalize): Pass false as last argument
13767 to substitute_and_fold.
13768 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
13769 to substitute_and_fold.
13770 * tree-ssa-ccp.c (ccp_finalize): Likewise.
13771
5bca794b
JJ
13772 PR bootstrap/44509
13773 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
5bca794b 13774
c1e822d5
IR
137752010-06-14 Ira Rosen <irar@il.ibm.com>
13776
6ab4e307 13777 PR tree-optimization/44507
c1e822d5
IR
13778 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
13779 to build initial vector for BIT_AND_EXPR.
13780 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13781
ce71b410
JJ
137822010-06-14 Jakub Jelinek <jakub@redhat.com>
13783
13784 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
13785 adjust z10prop set_attr.
13786
7a40b8b1
JH
137872010-06-13 Jan Hubicka <jh@suse.cz>
13788
13789 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
13790 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
13791 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
223c6c5d
EB
13792 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
13793 datastructure checks into checking asserts.
7a40b8b1
JH
13794 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
13795 * tree-ssa-sccvn.c (VN_INFO): Likewise.
13796 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
13797 df_ref_create_structure): Likewise.
13798 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
13799 pool_free): Use gcc_checking_assert.
13800 * alias.c (get_alias_set): Likewise.
13801 * var-tracking.c (variable_htab_free, shared_hash_copy,
13802 canonicalize_values_mark, variable_merge_over_cur): Likewise.
13803 * lto-streamer.c (bp_unpack_value): Likewise.
13804
4a2ac96f
RG
138052010-06-13 Richard Guenther <rguenther@suse.de>
13806
13807 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
13808 Do not stream but initialize TYPE_CANONICAL to NULL.
13809 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
13810 * gimple.c (gimple_types_compatible_p): Disregard
13811 TYPE_STRUCTURAL_EQUALITY_P.
13812 (gimple_register_type): Use TYPE_CANONICAL as cache.
13813 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
13814 before registering common types.
13815 * config/i386/i386.c (ix86_function_arg_boundary): Do not
13816 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
13817 * tree.h (TYPE_CANONICAL): Clarify documentation.
13818
ba90d838
AS
138192010-06-13 Anatoly Sokolov <aesok@post.ru>
13820
13821 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
13822 LIBCALL_VALUE): Remove macros.
13823 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
13824 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13825 TARGET_FUNCTION_VALUE_REGNO_P): Define.
13826 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
13827 (ia64_function_value): Make static. Handle receiving the function
13828 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
13829
9fcb01de
JH
138302010-06-12 Jan Hubicka <jh@suse.cz>
13831
13832 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
13833 at correct place.
13834
f63a6726
BS
138352010-06-12 Bernd Schmidt <bernds@codesourcery.com>
13836
13837 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
13838
e285df08
JH
138392010-06-12 Jan Hubicka <jh@suse.cz>
13840
13841 * df-core.c (df_clear_bb_info): New function.
13842 (df_set_blocks): bb_info is always allocated.
13843 (df_get_bb_info): Use block_info_elt_size.
13844 (df_set_bb_info): Likewise.
13845 (df_compact_blocks): Update for new block_info.
13846 (grow_bb_info): New function.
13847 * df-problems.c (df_grow_bb_info): Move to df-core.c
13848 (df_rd_set_bb_info): Remove.
13849 (df_rd_free_bb_info): Do not free block pool.
13850 (df_rd_alloc): Do not create pool, use check for
13851 obstack presence instead of NULL pointer for new blocks.
13852 (df_rd_free): DO not free alloc pool; clear block_info.
13853 (problem_RD): Add size of block info structure.
13854 (df_lr_set_bb_info): Remove.
13855 (df_lr_free_bb_info): Do not free block pool.
13856 (df_lr_alloc): Do not create pool, use check for
13857 obstack presence instead of NULL pointer for new blocks.
13858 (df_lr_free): DO not free alloc pool; clear block_info.
13859 (problem_LR): Add size of block info structure.
13860 (df_live_set_bb_info): Remove.
13861 (df_live_free_bb_info): Do not free block pool.
13862 (df_live_alloc): Do not create pool, use check for
13863 obstack presence instead of NULL pointer for new blocks.
13864 (df_live_free): DO not free alloc pool; clear block_info.
13865 (problem_LIVE): Add size of block info structure.
13866 (problem_CHAIN): Add size of block info structure.
13867 (df_byte_lr_set_bb_info): Remove.
13868 (df_byte_lr_free_bb_info): Do not free block pool.
13869 (df_byte_lr_alloc): Do not create pool, use check for
13870 obstack presence instead of NULL pointer for new blocks.
13871 (df_byte_lr_free): DO not free alloc pool; clear block_info.
13872 (problem_BYTE_LR): Add size of block info structure.
13873 (problem_NOTE): Add size of block info structure.
13874 (df_byte_MD_set_bb_info): Remove.
13875 (df_byte_MD_free_bb_info): Do not free block pool.
13876 (df_byte_MD_alloc): Do not create pool, use check for
13877 obstack presence instead of NULL pointer for new blocks.
13878 (df_byte_MD_free): DO not free alloc pool; clear block_info.
13879 (problem_BD): Add size of block info structure.
13880 * df-scan.c (df_scan_free_internal): Free block pool.
13881 (df_scan_set_bb_info): Remove.
13882 (df_scan_free_bb_info): Check for artificial_defs instead
13883 of bb_info being non-NULL.
13884 (df_scan_alloc): DO not create df_scan_block pool.
13885 (problem_SCAN): Set size of block info.
13886 (df_bb_refs_record): Do not allocate bb_info.
13887 * df.h (df_problem): Add block_info_elt_size.
13888 (struct dataflow): Change block_info to void *.
13889 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
13890 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
13891 in-line structures.
13892
02d635a2
JH
138932010-06-12 Jan Hubicka <jh@suse.cz>
13894
13895 PR tree-optimize/44485
223c6c5d
EB
13896 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
13897 containing use of return value of noreturn function.
02d635a2 13898
153a3027
AS
138992010-06-12 Anatoly Sokolov <aesok@post.ru>
13900
13901 * targhooks.c (default_function_value): Don't use
13902 FUNCTION_OUTGOING_VALUE.
13903 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
13904 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
13905
48b09a92
KH
139062010-06-12 Kazu Hirata <kazu@codesourcery.com>
13907
f582a3aa
UB
13908 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
13909 Add crtfastmath.o to extra_parts.
48b09a92
KH
13910 * config/mips/crtfastmath.c: New.
13911 * config/mips/linux.h (ENDFILE_SPEC): New.
13912
b53cd1c5
SP
139132010-06-12 Sebastian Pop <sebastian.pop@amd.com>
13914
13915 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
13916 old_type in parameter.
13917 (gcc_type_for_value): Update call to gcc_type_for_interval.
13918 (compute_type_for_level_1): Renamed compute_type_for_level.
13919 Update call to gcc_type_for_interval.
13920
fcfbd84e
JM
139212010-06-11 Joseph Myers <joseph@codesourcery.com>
13922
13923 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
f582a3aa 13924 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
fcfbd84e 13925
5d4b393f
JM
139262010-06-11 Joseph Myers <joseph@codesourcery.com>
13927
13928 * opts-common.c: Include options.h.
13929 (integral_argument): Move from opts.c.
13930 (decode_cmdline_option): New. Based on read_cmdline_option.
13931 * opts.c (integral_argument): Move to opts-common.c.
13932 (read_cmdline_option): Move most contents to
13933 decode_cmdline_option. Use %qs in diagnostics.
13934 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
13935 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
13936 decode_cmdline_option): New.
13937
b79a08f6
UB
139382010-06-11 Uros Bizjak <ubizjak@gmail.com>
13939
13940 PR target/44481
13941 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
f582a3aa 13942 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
b79a08f6
UB
13943 (partiysi2_cmp): Ditto.
13944 (*partiyhi2_cmp): Ditto.
13945 (*parityqi2_cmp): Remove.
13946
d5568f03
JH
139472010-06-11 Jan Hubicka <jh@suse.cz>
13948
b79a08f6
UB
13949 * bitmap.h (bmp_iter_next_bit): New.
13950 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
d5568f03 13951
5914a70f 139522010-06-11 Sandra Loosemore <sandra@codesourcery.com>
f582a3aa 13953 Eric Botcazou <ebotcazou@adacore.com>
5914a70f
SL
13954
13955 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
13956 computed cost.
13957
ed9955f9
UB
139582010-06-11 Uros Bizjak <ubizjak@gmail.com>
13959
13960 * config/i386/i386.md (unspec): New define_c_enum.
13961 (unspecv): Ditto.
13962
8e680db5
JJ
139632010-06-10 Jakub Jelinek <jakub@redhat.com>
13964
8e680db5
JJ
13965 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
13966
7b14477e
SP
139672010-06-11 Sebastian Pop <sebastian.pop@amd.com>
13968
13969 PR middle-end/44483
13970 * tree-if-conv.c (bb_predicate_s): New struct.
13971 (bb_predicate_p): New.
13972 (bb_has_predicate): New.
13973 (bb_predicate): New.
13974 (set_bb_predicate): New.
13975 (bb_predicate_gimplified_stmts): New.
13976 (set_bb_predicate_gimplified_stmts): New.
13977 (add_bb_predicate_gimplified_stmts): New.
13978 (init_bb_predicate): New.
13979 (free_bb_predicate): New.
13980 (is_predicated): Use bb_predicate.
13981 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
13982 (predicate_bbs): Same. Gimplify the condition of the basic blocks
13983 before processing their successors.
13984 (clean_predicate_lists): Removed.
13985 (find_phi_replacement_condition): Use bb_predicate.
13986 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
13987 computations.
13988 (insert_gimplified_predicates): New.
13989 (combine_blocks): Call insert_gimplified_predicates.
13990 (tree_if_conversion): Call free_bb_predicate instead of
13991 clean_predicate_lists.
13992
f6e47b26 139932010-10-11 Paul Brook <paul@codesourcery.com>
ed9955f9 13994
f6e47b26
PB
13995 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
13996 * config/arm/arm.c (all_architectures): Change v7e-m default to
13997 cortexm4.
13998 * config/arm/arm-cores.def: Add cortex-m4.
13999 * config/arm/arm-tune.md: Regenerate.
14000
0a42aa4e
JH
140012010-06-11 Jan Hubicka <jh@suse.cz>
14002
14003 * ipa-pure-const.c (special_builtlin_state): New function.
14004 (check_call): Use it instead of special casign BUILT_IN_RETURN.
14005 (propagate_pure_const): Use it.
14006
d725a1a5
JH
140072010-06-11 Jan Hubicka <jh@suse.cz>
14008
14009 * df-problems.c (df_live_scratch): Convert to bitmap_head.
14010 (df_live_alloc): Initialize df_live_scratch when initializing
14011 problem_data.
14012 (df_live_transfer_function): Update uses of df_live_scratch.
14013 (df_live_free): Free problem_data; clear df_live_scratch before
14014 releasing the obstack.
14015 (df_md_free): Free problem data.
14016
7ea6b6cf
JH
140172010-06-11 Jan Hubicka <jh@suse.cz>
14018
14019 * doc/invoke.texi (Wsuggest-attribute): Document.
14020 (Wmissing-noreturn): Remove.
14021 * ipa-pure-const.c (warn_function_noreturn): New function.
14022 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
14023 warn_missing_noreturn.
14024 * common.opt (Wsuggest-attribute=noreturn): New.
14025 * tree-flow.h (warn_function_noreturn): Declare.
14026 * tree-cfg.c (execute_warn_function_noreturn): Use
14027 warn_function_noreturn.
14028 (gate_warn_function_noreturn): New.
14029 (pass_warn_function_noreturn): Update.
14030
2ee3cb35
MLI
140312010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
14032
14033 * c-typeck.c (handle_warn_cast_qual): Add loc
14034 parameter. Improve warning message.
14035 (build_c_cast): Pass location to handle_warn_cast_qual.
14036
3d25c396
UB
140372010-06-11 Uros Bizjak <ubizjak@gmail.com>
14038
14039 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
14040 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
14041 insn mnemonic.
14042 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
14043
b66a8c5d
DS
140442010-06-10 Dodji Seketeli <dodji@redhat.com>
14045
14046 Fix bootstap on mips
14047 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
14048 be naming typedefs.
14049
10d291f6
KT
140502010-06-11 Kai Tietz <kai.tietz@onevision.com>
14051
14052 * system.h (helper_const_non_const_cast): New inline for
14053 gcc version <= 4.0.
14054 (CONST_CAST2): For gcc version <= 4.0 use
14055 new helper to do const/non-const casting.
14056
0fe60a1b
RS
140572010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14058
14059 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
14060 * Makefile.in (OBJS-common): Include insn-enums.o.
14061 (insn-enums.o): New rule.
14062 (simple_generated_c): Add insn-enums.c.
14063 (build/genenums.o): New rule.
14064 (genprogmd): Add "enums".
14065 * genconstants.c (print_enum_type): Declare a C string array
14066 for each enum.
14067 * genenums.c: New file.
14068 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
14069 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
14070 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
14071
8f4fe86c
RS
140722010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14073
14074 * doc/md.texi (define_enum_attr): Document.
14075 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
14076 * read-md.h (lookup_enum_type): Declare.
14077 * read-md.c (lookup_enum_type): New function.
14078 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
14079 * genattrtab.c (attr_desc): Add an enum_name field.
14080 (evaluate_eq_attr): Take the associated attribute as argument.
14081 Get the enum prefix from the enum_name field, if defined.
14082 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
14083 (simplify_test_exp): Pass attr to evaluate_eq_attr.
14084 (add_attr_value): New function, split out from...
14085 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
14086 (write_test_expr): Pass attr to evaluate_eq_attr.
14087 (write_attr_get): Use the enum_name as the enum tag, if defined.
14088 (write_attr_valueq): Use the enum_name as a prefix, if defined.
14089 (find_attr): Initialize enum_name.
14090 (main): Handle DEFINE_ENUM_ATTR.
14091 * gensupport.c (process_rtx): Likewise.
14092 * config/mips/mips.h (mips_tune_attr): Delete.
14093 * config/mips/mips.md (cpu): Use define_attr_enum.
14094
24609606
RS
140952010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14096
14097 * doc/md.texi (define_c_enum, define_enum): Document.
14098 * read-md.h (md_constant): Add a parent_enum field.
14099 (enum_value, enum_type): New structures.
14100 (upcase_string, traverse_enum_types): Declare.
14101 * read-md.c (enum_types): New variable.
14102 (upcase_string, add_constant): New functions.
14103 (handle_constants): Don't create the hash table here.
14104 Use add_constant.
14105 (traverse_md_constants): Don't check for a null md_constants.
14106 (decimal_string, handle_enum, traverse_enum_types): New functions.
14107 (read_md_files): Initialize md_constants and md_enums.
14108 * genconstants.c (print_md_constant): Ignore info argument.
14109 Only print constants that belong to no enum.
14110 (print_enum_type): New function.
14111 (main): Don't pass stdout to print_md_constant. Call print_enum_type
14112 for each defined enum type.
14113 * config/mips/mips.md (processor): New define_enum.
14114 (unspec): New define_c_enum.
14115 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
14116 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
14117 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
14118 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
14119 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
14120 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
14121 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
14122 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
14123 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
14124 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
14125 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
14126 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
14127 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
14128 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
14129 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
14130 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
14131 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
14132 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
14133 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
14134 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
14135 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
14136 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
14137 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14138 (UNSPEC_RDDSP): Move to mips-dsp.md.
14139 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
14140 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
14141 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
14142 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
14143 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
14144 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
14145 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
14146 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
14147 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
14148 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
14149 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
14150 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
14151 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
14152 Moved to mips-dspr2.md.
14153 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
14154 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
14155 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
223c6c5d 14156 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24609606
RS
14157 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
14158 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
14159 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14160 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14161 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14162 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
223c6c5d
EB
14163 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14164 UNSPEC_LOONGSON_PSADBH)
24609606
RS
14165 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14166 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14167 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
14168 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14169 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14170 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
223c6c5d 14171 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24609606
RS
14172 (cpu): Update comment.
14173 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
14174 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
14175 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
14176 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
223c6c5d
EB
14177 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
14178 UNSPEC_LOONGSON_PCMPEQ)
14179 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
14180 UNSPEC_LOONGSON_PINSR_0)
24609606
RS
14181 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14182 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14183 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14184 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
223c6c5d
EB
14185 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14186 UNSPEC_LOONGSON_PSADBH)
24609606
RS
14187 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14188 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14189 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
14190 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14191 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14192 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14193 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
14194 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
14195 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
14196 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
14197 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
14198 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
14199 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
14200 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
14201 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
14202 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
14203 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
14204 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
14205 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
14206 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
14207 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
14208 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
14209 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
14210 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
14211 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
14212 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
14213 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14214 (UNSPEC_RDDSP): Moved from mips.md.
14215 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
14216 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
14217 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
14218 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
14219 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
14220 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
14221 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
14222 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
14223 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
14224 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
14225 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
14226 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
14227 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
14228 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
14229 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
14230 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
14231 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
14232 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
14233 (UNSPEC_SCC): Moved from mips.md.
14234 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
14235 "processor_type" to "processor".
14236 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
14237 * config/mips/mips.h (processor_type): Delete.
14238 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
14239 "processor_type" to "processor".
14240
c513ce77
RS
142412010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14242
14243 * configure.ac (tm_include_list): Add insn-constants.h.
14244 * configure: Regenerate.
14245 * Makefile.in (GTM_H): Move insn-constants.h here from...
14246 (TM_H): ...here.
14247 * mkconfig.sh: Remove special handling for insn-constants.h.
14248
9b68b6ea
RS
142492010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14250
14251 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
14252 (BUILD_MD): ...this new variable.
14253 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
14254 that include the old contents of simple_generated_h and
14255 simple_generated_c.
14256 (simple_generated_h, simple_generated_c): Include them. Add
14257 insn-constants.h.
14258 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
14259 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
14260 Remove these dependencies from the main rule and include
14261 insn-conditions.md in the command line only if it appears
14262 in the dependency list.
14263 (insn-constants.h, s-constants): Delete.
14264 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
14265 or gensupport.h.
14266 (build/genmddeps.o): Likewise.
14267 (genprogrtl): New variable that contains everything from genprogmd
14268 except mddeps and constants.
14269 (genprogmd): Redefine in terms of genprogrtl. Make these programs
14270 depend on $(BUILD_MD)
14271 (genprog): New variable. Make these programs depend on
14272 $(BUILD_ERRORS).
14273 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
14274 (main): Use read_md_files instead of init_rtx_reader_args.
14275 * genconstants.c: As for genmddeps.c.
14276 * read-md.h (read_skip_construct): Declare.
14277 * read-md.c (read_skip_construct): New function.
14278 (handle_file): Allow a null handle_directive, skipping the
14279 construct if so.
14280 (parse_include): Update the comment accordingly.
14281
600ab3fc
RS
142822010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14283
14284 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
14285 * genmddeps.c: Include read-md.h.
14286 (main): Call init_rtx_reader_args instead of init_md_reader_args.
14287 * genattr.c (main): Likewise.
14288 * genattrtab.c (main): Likewise.
14289 * genautomata.c (main): Likewise.
14290 * gencodes.c (main): Likewise.
14291 * genconditions.c (main): Likewise.
14292 * genconfig.c (main): Likewise.
14293 * genconstants.c (main): Likewise.
14294 * genemit.c (main): Likewise.
14295 * genextract.c (main): Likewise.
14296 * genflags.c (main): Likewise.
14297 * genopinit.c (main): Likewise.
14298 * genoutput.c (main): Likewise.
14299 * genpeep.c (main): Likewise.
14300 * genrecog.c (main): Likewise.
14301 * genpreds.c (main): Likewise.
14302 * gensupport.h (in_fname): Move to read-md.h.
14303 (init_md_reader_args_cb): Rename to...
14304 (init_rtx_reader_args_cb): ...this and return a bool.
14305 (init_md_reader_args): Rename to...
14306 (init_rtx_reader_args): ...this and return a bool.
14307 (include_callback): Move to read-md.h.
14308 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
14309 (file_name_list, first_dir_md_include): Move to read-md.c
14310 (first_bracket_include): Delete unused variable.
14311 (last_dir_md_include): Move to read-md.c.
14312 (process_include): Delete, moving code to read-md.c:handle_include.
14313 (process_rtx): Don't handle INCLUDE.
14314 (save_string): Delete.
14315 (rtx_handle_directive): New function.
14316 (init_md_reader_args_cb): Rename to...
14317 (init_rtx_reader_args_cb): ...this and return a boolean success value.
14318 Use read_md_args.
14319 (init_md_reader_args): Rename to...
14320 (init_rtx_reader_args): ...this and return a boolean success value.
14321 * rtl.def (INCLUDE): Delete.
14322 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
14323 argument.
14324 * read-rtl.c (read_conditions): Don't gobble ')' here.
14325 (read_mapping): Likewise.
14326 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
14327 Handle top-level non-rtx constructs here rather than in read_rtx_1.
14328 Store the whole queue in *X. Remove call to init_md_reader.
14329 (read_rtx_1): Rename to...
14330 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
14331 Don't handle top-level non-rtx constructs here. Don't handle (nil)
14332 here.
14333 (read_nested_rtx): New function. Handle (nil) here rather than
14334 in read_rtx_code.
14335 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
14336 gobble ')' here.
14337 * read-md.h (directive_handler_t): New type.
14338 (in_fname, include_callback): Moved from read-md.h.
14339 (read_constants, init_md_reader): Delete.
14340 (read_md_files): Declare.
14341 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
14342 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
14343 from gensupport.c.
14344 (read_constants): Rename to...
14345 (handle_constants): ...this. Don't gobble ')' here.
14346 (handle_include, handle_file, handle_toplevel_file)
14347 (parse_include): New functions, mostly taken from gensupport.c.
14348 (init_md_reader): Subsume into...
14349 (read_md_files): ...this new function.
14350
7f7c467f
RS
143512010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14352
14353 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
14354 (unread_char): Decrement read_md_lineno after putting back '\n'.
14355 * read-md.c (fatal_with_file_and_line): Push back any characters
14356 that we decide not to add to the context.
14357 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
14358 fatal_expected_char in cases where '/' ends a line (for example).
14359 (read_name): Don't increment read_md_lineno here.
14360 (read_escape): Likewise.
14361 (read_quoted_string): Likewise.
14362 (read_braced_string): Likewise.
14363
9f418533
RS
143642010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14365
14366 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
14367 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
14368 * genconstants.c: Include read-md.h.
14369 * read-rtl.c (md_constants): Move to read-md.c.
14370 (md_name): Move to read-md.h.
14371 (initialize_iterators): Use leading_string_hash instead of def_hash
14372 and leading_string_eq_p instead of def_name_eq_p.
14373 (read_name): Move to read-md.c.
14374 (def_hash, def_name_eq_p): Delete.
14375 (read_constants, traverse_md_constants): Move to read-md.c.
14376 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
14377 * read-md.h: Include hashtab.h.
14378 (md_name): Moved from read-rtl.c.
14379 (md_constant): Moved from read-md.h.
14380 (leading_string_hash, leading_string_eq_p, read_name)
14381 (read_constants, traverse_md_constants): Declare.
14382 * read-md.c (md_constants): Moved from read-rtl.c.
14383 (leading_string_hash, leading_string_eq_p): New functions.
14384 (read_name, read_constants, traverse_md_constants): Moved from
14385 read-rtl.c.
14386
82f8e3fd
RS
143872010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14388
14389 * read-rtl.c (md_name): New structure.
14390 (read_name): Take an md_name instead of a buffer pointer.
14391 Use the "string" field instead of strcpy when expanding constants.
14392 (read_constants): Remove the tmp_char argument. Update the calls
14393 to read_name, using two local name buffers instead of the tmp_char
14394 argument. Merge the constant-creation code.
14395 (read_conditions): Remove the tmp_char argument. Update the calls
14396 to read_name, using a local name buffer instead of the tmp_char
14397 argument.
14398 (read_mapping): Replace tmp_char variable with a local name buffer.
14399 Update the calls to read_name.
14400 (read_rtx_1): Likewise. Update the calls to read_constants and
14401 read_conditions.
14402
bb933490
RS
144032010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14404
14405 * Makefile.in (build/read-md.o): Depend on errors.h.
14406 * read-md.h (error_with_line): Declare.
14407 * read-md.c: Include errors.h.
14408 (message_with_line_1): New function, extracted from...
14409 (message_with_line): ...here.
14410 (error_with_line): New function.
14411 * genattrtab.c: If a call to message_with_line is followed by
14412 "have_error = 1;", replace both statements with a call to
14413 error_with_line.
14414 * genoutput.c: Likewise.
14415 * genpreds.c: Likewise.
14416 * genrecog.c: If a call to message_with_line is followed by
14417 "error_count++;", replace both statements with a call to
14418 error_with_line.
14419 (errorcount): Delete.
14420 (main): Don't check it.
14421 * gensupport.c: If a call to message_with_line is followed by
14422 "errors = 1;", replace both statements with a call to error_with_line.
14423 (errors): Delete.
14424 (process_define_cond_exec): Check have_error instead of errors.
14425 (init_md_reader_args_cb): Likewise. Don't set errors.
14426
c5e88b39
RS
144272010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14428
14429 * read-md.h (read_md_file): Declare.
14430 (read_char, unread_char): New functions.
14431 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14432 (read_quoted_string, read_string): Remove FILE * argument.
14433 * read-md.c (read_md_file): New variable.
14434 (read_md_filename, read_md_lineno): Update comments and remove
14435 unnecessary initialization.
14436 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14437 (read_escape, read_quoted_string, read_braced_string, read_string):
14438 Remove FILE * argument. Update calls accordingly, using read_char
14439 and unread_char instead of getc and ungetc.
14440 * rtl.h (read_rtx): Remove FILE * argument.
14441 * read-rtl.c (iterator_group): Remove FILE * argument from
14442 "find_builtin".
14443 (iterator_traverse_data): Remove "infile" field.
14444 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
14445 (add_mapping, read_name, read_constants, read_conditions)
14446 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
14447 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
14448 Remove file arguments from all calls, using read_char and unread_char
14449 instead of getc and ungetc.
14450 * gensupport.c (process_include): Preserve read_md_file around
14451 the include. Set read_md_file to the handle of the included file.
14452 Update call to read_rtx.
14453 (init_md_reader_args_cb): Set read_md_file to the handle of the file
14454 and remove local FILE *. Update calls to read_rtx.
14455
d2a3ce4e
RS
144562010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14457
14458 * read-md.h (read_rtx_lineno): Rename to...
14459 (read_md_lineno): ...this.
14460 (read_rtx_filename): Rename to...
14461 (read_md_filename): ...this.
14462 (copy_rtx_ptr_loc): Rename to...
14463 (copy_md_ptr_loc): ...this.
14464 (print_rtx_ptr_loc): Rename to...
14465 (print_md_ptr_loc): ...this.
14466 * read-md.c: Likewise. Update references after renaming.
14467 (string_obstack): Replace RTL with MD in comment.
14468 (set_rtx_ptr_loc): Rename to...
14469 (set_md_ptr_loc): ...this.
14470 (get_rtx_ptr_loc): Rename to...
14471 (get_md_ptr_loc): ...this.
14472 * genconditions.c: Update references after renaming.
14473 * genemit.c: Likewise.
14474 * genoutput.c: Likewise.
14475 * genpreds.c: Likewise.
14476 * gensupport.c: Likewise.
14477 * read-rtl.c: Likewise.
14478
10692477
RS
144792010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14480
14481 * Makefile.in (READ_MD_H): New variable.
14482 (BUILD_RTL): Add build/read-md.o.
14483 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
14484 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
14485 (build/genattrtab.o, build/genconditions.o build/genemit.o)
14486 (build/genextract.o, build/genflags.o, build/genoutput.o)
14487 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
14488 (build/read-md.o): New rule.
14489 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
14490 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
14491 * coretypes.h: ...here.
14492 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
14493 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
14494 * genattr.c: Include read-md.h.
14495 * genattrtab.c: Likewise.
14496 * genconditions.c: Likewise.
14497 * genemit.c: Likewise.
14498 * genextract.c: Likewise.
14499 * genflags.c: Likewise.
14500 * genoutput.c: Likewise.
14501 * genpreds.c: Likewise.
14502 * genrecog.c: Likewise.
14503 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
14504 (join_c_conditions, print_c_condition, read_rtx_filename)
14505 (read_rtx_lineno): Move to read-md.h.
14506 * read-rtl.c: Include read-md.h.
14507 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
14508 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
14509 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
14510 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
14511 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
14512 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
14513 (read_braced_string, read_string): Move to read-md.c.
14514 (read_rtx): Move some initialization to init_md_reader and call
14515 init_md_reader here.
14516 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
14517 Move to read-md.h.
14518 * gensupport.c: Include read-md.h.
3d25c396 14519 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
10692477
RS
14520 * read-md.h, read-md.c: New files.
14521
feab9982
AS
145222010-06-10 Anatoly Sokolov <aesok@post.ru>
14523
14524 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14525 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14526 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
14527 * config/moxie/moxie.c (moxie_function_value): Make static.
14528 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
14529 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14530
567a4beb
MJ
145312010-06-10 Martin Jambor <mjambor@suse.cz>
14532
14533 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
14534 * dbgcnt.def (tree_sra): New counter.
14535 * tree-sra.c: Include dbgcnt.h.
14536 (gate_intra_sra): Check tree_sra debug counter.
14537
591d4f4a
MJ
145382010-06-10 Martin Jambor <mjambor@suse.cz>
14539
14540 PR tree-optimization/44258
14541 * tree-sra.c (build_access_subtree): Return false iff there is a
14542 partial overlap.
14543 (build_access_trees): Likewise.
14544 (analyze_all_variable_accesses): Disqualify candidates if
14545 build_access_trees returns true for them.
14546
b933b33a
AO
145472010-06-10 Alexandre Oliva <aoliva@redhat.com>
14548
14549 PR debug/41371
14550 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
14551 tail-recurse into canonical node. Fast-forward over
14552 non-canonical VALUEs.
14553
ff534e89
L
145542010-06-10 H.J. Lu <hongjiu.lu@intel.com>
14555
14556 PR boostrap/44470
14557 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
14558 (*addsi_1_zext) <TYPE_LEA>: Likewise.
14559 (add lea splitter): Likewise.
14560 (add_zext lea splitter): Likewise.
14561
1cb42611
JM
145622010-06-10 Joseph Myers <joseph@codesourcery.com>
14563
14564 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
14565
29aba2bb
JH
145662010-06-10 Jan Hubicka <jh@suse.cz>
14567
14568 * df-problems.c (df_live_problem_data): Add live_bitmaps.
14569 (df_live_alloc): Initialize problem data and live_osbtacks.
14570 (df_live_finalize): Remove obstack, problem data; do not
14571 clear all bitmaps.
14572 (df_live_top_dump, df_live_bottom_dump): Do not dump old
14573 data when not allocated.
14574 (df_live_verify_solution_start): Do not allocate problem data.
14575 (df_live_verify_solution_end): Check if out is allocated.
14576 (struct df_md_problem_data): New structure.
14577 (df_md_alloc): Allocate problem data.
14578 (df_md_free): Free problem data; do not clear bitmaps.
14579
bfa912a8
JB
145802010-06-10 Jan Beulich <jbeulich@novell.com>
14581
2aa9a961 14582 PR bootstrap/37304
bfa912a8
JB
14583 * configure.ac: Replace $() with ${} when intending to expand
14584 variables rather than invoking commands.
14585 * configure: Re-generate.
14586
21d9971a
JH
145872010-06-10 Jan Hubicka <jh@suse.cz>
14588
fea87e28 14589 PR rtl-optimization/44460
3d25c396
UB
14590 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
14591 TYPE_NEEDS_CONSTRUCTING sanity check.
21d9971a 14592
07a67d6a
GP
145932010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
14594
14595 * doc/include/fdl.texi: Move to GFDL version 1.3.
14596
14597 * doc/cpp.texi: Move to GFDL version 1.3.
14598 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
14599 * doc/gccint.texi: Move to GFDL version 1.3.
14600 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
14601 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
14602 * doc/invoke.texi: Move to GFDL version 1.3.
14603
15e80fc3
JH
146042010-06-09 Jan Hubicka <jh@suse.cz>
14605
14606 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
14607 Break out from ...
14608 (propagate) ... here; swap the order.
14609
377002a9
JH
146102010-06-09 Jan Hubicka <jh@suse.cz>
14611
14612 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
14613 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
14614 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
14615 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
14616
50814135
CF
146172010-06-09 Changpeng Fang <changpeng.fang@amd.com>
14618
14619 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
14620 Do not the gather memory reference in the outer loop if the step
14621 is not a constant.
14622
f7963a7c
CF
146232010-06-09 Changpeng Fang <changpeng.fang@amd.com>
14624
3d25c396
UB
14625 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
14626 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
14627 8 to 4. Minor change of the related comments.
f7963a7c 14628
7472eb13
SP
146292010-06-09 Sebastian Pop <sebastian.pop@amd.com>
14630
14631 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
14632 the scev analysis when the variable is not used outside the loop
14633 in a close phi node: call compute_overall_effect_of_inner_loop.
14634
c12e2a5f
SP
146352010-06-09 Sebastian Pop <sebastian.pop@amd.com>
14636
14637 * graphite-sese-to-poly.c (single_pred_cond): Renamed
14638 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
14639 (build_sese_conditions_before): Renamed call to single_pred_cond.
14640 (build_sese_conditions_after): Same.
14641
072edf07
SP
146422010-06-09 Sebastian Pop <sebastian.pop@amd.com>
14643
14644 * graphite-poly.h: Fix comments and indentation.
14645 * graphite-sese-to-poly.c: Same.
14646 (build_sese_conditions_before): Compute stmt and gbb only when needed.
14647 * tree-chrec.c: Fix comments and indentation.
14648 (tree-ssa-loop-niter.c): Same.
14649
642d55de
EB
146502010-06-09 Eric Botcazou <ebotcazou@adacore.com>
14651
14652 PR rtl-optimization/42461
14653 * dce.c (deletable_insn_p): Return true for const or pure calls again.
14654 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
14655
a2b709cc
JH
146562010-06-09 Jan Hubicka <jh@suse.cz>
14657
14658 * bitmap.c (bitmap_and): Walk array forward.
14659 (bitmap_and_compl_into): Likewise.
14660 (bitmap_xor): Likewise.
14661 (bitmap_xor_into): Likewise.
14662 (bitmap_equal_p): Likewise.
14663 (bitmap_intersect_p): Likewise.
14664 (bitmap_intersect_compl_p): Likewise.
14665 (bitmap_ior_and_into): Likewise.
14666 (bitmap_elt_copy): Likewise.
14667 (bitmap_and_compl): Likewise.
14668 (bitmap_elt_ior): Likewise.
14669
807303cf
DK
146702010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
14671
14672 * opts-common.c (prune_options): Ensure replacement argv array
14673 is correctly terminated by a NULL entry.
14674
06795261
JH
146752010-06-09 Jan Hubicka <jh@suse.cz>
14676
14677 * cgraph.h (varpool_first_static_initializer,
14678 varpool_next_static_initializer): Make checking only when
14679 checking enabled.
14680 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
14681 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
14682 gcc_assert to gcc_checking_assert.
3d25c396
UB
14683 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
14684 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
06795261 14685 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
3d25c396
UB
14686 op_iter_init_phiuse, op_iter_init_phidef,
14687 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
14688 gcc_checking_assert.
06795261
JH
14689 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
14690 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
14691 partition_is_global, live_on_entry, live_on_exit,
14692 live_merge_and_clear): Likewise.
14693 * system.h (gcc_checking_assert): New macro.
14694 * gimple.h (set_bb_seq): Use gcc_checking_assert.
14695
8d681dbf
JM
146962010-06-09 Jason Merrill <jason@redhat.com>
14697
14698 * Makefile.in (TAGS): Collect tags info from c-family.
14699
2bc0a660
JH
147002010-06-09 Jan Hubicka <jh@suse.cz>
14701
14702 * gimple.h (gcc_gimple_checking_assert): New macro.
3d25c396
UB
14703 (gimple_set_def_ops, gimple_set_use_ops,
14704 gimple_set_vuse, gimple_set_vdef,
14705 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
14706 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
14707 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
14708 gimple_asm_output_op, gimple_asm_output_op_ptr,
14709 gimple_asm_set_output_op, gimple_asm_clobber_op,
14710 gimple_asm_set_clobber_op, gimple_asm_label_op,
14711 gimple_asm_set_label_op, gimple_try_set_kind,
14712 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
14713 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
14714 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
14715 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
14716 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
14717 gimple_omp_for_set_initial, gimple_omp_for_final,
14718 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
14719 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
14720 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
14721 conditional with ENABLE_GIMPLE_CHECKING.
14722 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2bc0a660 14723
6521ac85
SL
147242010-06-09 Sandra Loosemore <sandra@codesourcery.com>
14725
14726 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
14727 (get_computation_cost_at): Use it.
14728 (determine_use_iv_cost_condition): Likewise.
14729 (determine_iv_cost): Likewise.
14730
76c85743
RG
147312010-06-09 Richard Guenther <rguenther@suse.de>
14732
14733 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
14734 replace constants.
14735
5d7eb7e2
KT
147362010-06-09 Kai Tietz <kai.tietz@onevision.com>
14737
14738 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
14739
1536b6ab
MJ
147402010-06-09 Martin Jambor <mjambor@suse.cz>
14741
14742 PR tree-optimization/44423
14743 * tree-sra.c (dump_access): Dump also grp_assignment_read.
14744 (analyze_access_subtree): Pass negative allow_replacements to children
14745 if the current type is scalar.
14746
f52d94aa 147472010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
2d7f5f9b
JR
14748
14749 PR testsuite/42843
14750 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
14751 * doc/plugins.texi (Plugin license check): Update information
14752 on type of plugin_is_GPL_compatible.
14753 * Makefile.in (PLUGINCC): Define as $(COMPILER).
14754 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
14755
eef5973d
BS
147562010-06-09 Bernd Schmidt <bernds@codesourcery.com>
14757
14758 * config/arm/arm.c (thumb2_reorg): New function.
14759 (arm_reorg): Call it.
14760 * config/arm/thumb2.md (define_peephole2 for flag clobbering
14761 arithmetic operations): Delete.
14762
2cc0672a
EW
147632010-06-09 Edmar Wienskoski <edmar@freescale.com>
14764
14765 PR target/44067
14766 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
14767 e500v2 target.
14768
f1c3bf86
JR
147692010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
14770
2d7f5f9b 14771 PR plugins/44459
f1c3bf86
JR
14772 * gcc-plugin.h: Encapsulate all declarations in extern "C".
14773
a7280dfb
JH
147742010-06-08 Jan Hubicka <jh@suse.cz>
14775
14776 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
14777 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
14778
e89065a1
SL
147792010-06-08 Sandra Loosemore <sandra@codesourcery.com>
14780
14781 PR tree-optimization/39874
14782 PR middle-end/28685
14783 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
14784 Declare.
14785 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
14786 same_bool_result_p): New.
14787 (and_var_with_comparison, and_var_with_comparison_1,
14788 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
14789 (or_var_with_comparison, or_var_with_comparison_1,
14790 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
14791 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
14792 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
14793 of combine_comparisons.
14794 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
14795
c547eb0d
AS
147962010-06-08 Anatoly Sokolov <aesok@post.ru>
14797
14798 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14799 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
55f9fe15
AS
14800 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
14801 pdp11_function_value_regno_p): New functions.
c547eb0d
AS
14802 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14803 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14804
29a551b3
KH
148052010-06-08 Kazu Hirata <kazu@codesourcery.com>
14806
14807 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
14808 Thumb-2 in the MINUS case.
14809
a9429e29
LB
148102010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14811
14812 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
14813
14814 * doc/gty.texi (GTY Options): Document typed GC allocation and
14815 variable_size GTY option.
14816
14817 * ggc-internal.h: New.
14818
14819 * ggc.h: Update copyright year.
14820 (digit_string): Move to stringpool.c.
14821 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
14822 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
14823 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
14824 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
14825 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
14826 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
14827 (ggc_force_collect, ggc_get_size, ggc_statistics)
14828 (ggc_print_common_statistics): Move to ggc-internal.h.
14829 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
14830 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
14831 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
14832 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
14833 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
14834 (ggc_alloc_zone_pass_stat): Remove.
14835 (ggc_internal_alloc_stat, ggc_internal_alloc)
14836 (ggc_internal_cleared_alloc_stat): New.
14837 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
14838 (ggc_internal_vec_alloc_stat)
14839 (ggc_internal_cleared_vec_alloc_stat)
14840 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
14841 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
14842 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
14843 (ggc_cleared_alloc_ptr_array_two_args): New.
14844 (htab_create_ggc, splay_tree_new_ggc): Redefine.
14845 (ggc_splay_alloc): Change the type of the first argument to
14846 enum gt_types_enum.
14847 (ggc_alloc_string): Make macro.
14848 (ggc_alloc_string_stat): New.
14849 (ggc_strdup): Redefine.
14850 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
14851 (ggc_alloc_rtvec_sized): New.
14852 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
14853 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
14854 (ggc_internal_cleared_alloc_zone_stat)
14855 (ggc_internal_zone_alloc_stat)
14856 (ggc_internal_zone_cleared_alloc_stat)
14857 (ggc_internal_zone_vec_alloc_stat)
14858 (ggc_alloc_zone_rtx_def_stat)
14859 (ggc_alloc_zone_tree_node_stat)
14860 (ggc_alloc_zone_cleared_tree_node_stat)
14861 (ggc_alloc_cleared_gimple_statement_d_stat): New.
14862
14863 * ggc-common.c: Include ggc-internal.h.
14864 (ggc_internal_cleared_alloc_stat): Rename from
14865 ggc_alloc_cleared_stat.
14866 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
14867 (ggc_calloc): Remove.
14868 (ggc_cleared_alloc_htab_ignore_args): New.
14869 (ggc_cleared_alloc_ptr_array_two_args): New.
14870 (ggc_splay_alloc): Add obj_type parameter.
14871 (init_ggc_heuristics): Formatting fixes.
14872
14873 * ggc-none.c: Update copyright year.
14874 (ggc_alloc_stat): Rename to ggc_alloc_stat.
14875 (ggc_alloc_cleared_stat): Rename to
14876 ggc_internal_cleared_alloc_stat.
14877 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
14878
14879 * ggc-page.c: Update copyright year. Include ggc-internal.h.
14880 Remove references to ggc_alloc in comments.
14881 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
14882 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
14883 (new_ggc_zone, destroy_ggc_zone): Remove.
14884 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
14885
14886 * ggc-zone.c: Include ggc-internal.h. Remove references to
14887 ggc_alloc in comments.
14888 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
14889 (ggc_internal_alloc_zone_pass_stat): New.
14890 (ggc_internal_cleared_alloc_zone_stat): New.
14891 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
14892 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
14893 (new_ggc_zone, destroy_ggc_zone): Remove.
14894
14895 * stringpool.c: Update copyright year. Include ggc-internal.h
14896 (digit_vector): Make static.
14897 (digit_string): Moved from ggc.h.
14898 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
14899 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
14900
14901 * Makefile.in (GGC_INTERNAL_H): New.
14902 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
14903 $(GGC_INTERNAL_H) to dependencies.
14904
14905 * gentype.c: Update copyright year.
14906 (walk_type): Accept variable_size GTY option.
14907 (USED_BY_TYPED_GC_P): New macro.
14908 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
14909 whitespace at the end of strings.
14910 (get_type_specifier, variable_size_p): New functions.
14911 (alloc_quantity, alloc_zone): New enums.
14912 (write_typed_alloc_def): New function.
14913 (write_typed_struct_alloc_def): Likewise.
14914 (write_typed_typed_typedef_alloc_def): Likewise.
14915 (write_typed_alloc_defns): Likewise.
14916 (output_typename, write_splay_tree_allocator_def): Likewise.
14917 (write_splay_tree_allocators): Likewise.
14918 (main): Call write_typed_alloc_defns and
14919 write_splay_tree_allocators.
14920
14921 * lto-streamer.h (lto_file_decl_data_ptr): New.
14922
14923 * passes.c (order): Define using cgraph_node_ptr.
14924
14925 * strinpool.c (struct string_pool_data): Declare nested_ptr using
14926 ht_identifier_ptr.
14927
14928 * gimple.h (union gimple_statement_d): Likewise.
14929
14930 * rtl.h (struct rtx_def): Likewise.
14931 (struct rtvec_def): Likewise.
14932
14933 * tree.h (union tree_node): Likewise.
14934
14935 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
14936
14937 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
14938
14939 * tree-scalar-evolution.c (scev_initialize): Likewise.
14940
14941 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
14942
14943 * dwarf2asm.c (dw2_force_const_mem): Likewise.
14944
14945 * omp-low.c (lower_omp_critical): Likewise.
14946
14947 * bitmap.h (struct bitmap_head_def): Update comment to not
14948 reference ggc_alloc.
14949
14950 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
14951
14952 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
14953
14954 * ipa-prop.c (duplicate_ggc_array): Rename to
14955 duplicate_ipa_jump_func_array. Use typed GC allocation.
14956 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
14957
14958 * gimple.c (gimple_alloc_stat): Use
14959 ggc_alloc_cleared_gimple_statement_d_stat.
14960
14961 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
14962
14963 * tree.c (make_node_stat): Use
14964 ggc_alloc_zone_cleared_tree_node_stat.
14965 (make_tree_vec_stat): Likewise.
14966 (build_vl_exp_stat): Likewise.
14967 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
14968 (make_tree_binfo_stat): Likewise.
14969 (tree_cons_stat): Likewise.
14970
14971 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
14972 (shallow_copy_rtx_stat): Likewise.
14973 (make_node_stat): Likewise.
14974
14975 * lto-symtab.c: Fix comment.
14976
14977 * tree-cfg.c (create_bb): Update comment to not reference
14978 ggc_alloc_cleared.
3d25c396 14979 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
a9429e29
LB
14980
14981 * varpool.c (varpool_node): Use typed GC allocation.
14982 (varpool_extra_name_alias): Likewise.
14983
14984 * varasm.c (emutls_decl): Likewise.
14985 (get_unnamed_section): Likewise.
14986 (get_noswitch_section): Likewise.
14987 (get_section): Likewise.
14988 (get_block_for_section): Likewise.
14989 (build_constant_desc): Likewise.
14990 (create_constant_pool): Likewise.
14991 (force_const_mem): Likewise.
14992
14993 * tree.c (build_vl_exp_stat): Likewise.
14994 (build_real): Likewise.
14995 (build_string): Likewise.
14996 (decl_debug_expr_insert): Likewise.
14997 (decl_value_expr_insert): Likewise.
14998 (type_hash_add): Likewise.
14999 (build_omp_clause): Likewise.
15000
15001 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
15002
15003 * tree-ssa.c (init_tree_ssa): Likewise.
15004
15005 * tree-ssa-structalias.c (heapvar_insert): Likewise.
15006
15007 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
15008
15009 * tree-ssa-loop-niter.c (record_estimate): Likewise.
15010
15011 * tree-ssa-alias.c (get_ptr_info): Likewise.
15012
15013 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
15014
15015 * tree-phinodes.c (allocate_phi_node): Likewise.
15016
15017 * tree-iterator.c (tsi_link_before): Likewise.
15018 (tsi_link_after): Likewise.
15019
15020 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
15021
15022 * tree-dfa.c (create_var_ann): Likewise.
15023
15024 * tree-cfg.c (create_bb): Likewise.
15025
15026 * toplev.c (alloc_for_identifier_to_locale): Likewise.
15027 (general_init): Likewise.
15028
15029 * stringpool.c (stringpool_ggc_alloc): Likewise.
15030 (gt_pch_save_stringpool): Likewise.
15031
15032 * sese.c (if_region_set_false_region): Likewise.
15033
15034 * passes.c (do_per_function_toporder): Likewise.
15035
15036 * optabs.c (set_optab_libfunc): Likewise.
15037 (set_conv_libfunc): Likewise.
15038
15039 * lto-symtab.c (lto_symtab_register_decl): Likewise.
15040
15041 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
15042 (input_eh_region): Likewise.
15043 (input_eh_lp): Likewise.
15044 (make_new_block): Likewise.
15045 (unpack_ts_real_cst_value_fields): Likewise.
15046
15047 * lto-section-in.c (lto_new_in_decl_state): Likewise.
15048
15049 * lto-cgraph.c (input_node_opt_summary): Likewise.
15050
15051 * loop-init.c (loop_optimizer_init): Likewise.
15052
15053 * lambda.h (lambda_vector_new): Likewise.
15054
15055 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
15056
15057 * ira.c (update_equiv_regs): Likewise.
15058
15059 * ipa.c (cgraph_node_set_new): Likewise.
15060 (cgraph_node_set_add): Likewise.
15061 (varpool_node_set_new): Likewise.
15062 (varpool_node_set_add): Likewise.
15063
15064 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
15065 (duplicate_ipa_jump_func_array): Likewise.
15066 (ipa_read_node_info): Likewise.
15067
15068 * ipa-cp.c (ipcp_create_replace_map): Likewise.
15069
15070 * integrate.c (get_hard_reg_initial_val): Likewise.
15071
15072 * gimple.c (gimple_alloc_stat): Likewise.
15073 (gimple_build_omp_for): Likewise.
15074 (gimple_seq_alloc): Likewise.
15075 (gimple_copy): Likewise.
15076
15077 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
15078 (gsi_insert_after_without_update): Likewise.
15079
15080 * function.c (add_frame_space): Likewise.
15081 (insert_temp_slot_address): Likewise.
15082 (assign_stack_temp_for_type): Likewise.
15083 (allocate_struct_function): Likewise.
15084 (types_used_by_var_decl_insert): Likewise.
15085
15086 * except.c (init_eh_for_function): Likewise.
15087 (gen_eh_region): Likewise.
15088 (gen_eh_region_catch): Likewise.
15089 (gen_eh_landing_pad): Likewise.
15090 (add_call_site): Likewise.
15091
15092 * emit-rtl.c (get_mem_attrs): Likewise.
15093 (get_reg_attrs): Likewise.
15094 (start_sequence): Likewise.
15095 (init_emit): Likewise.
15096
15097 * dwarf2out.c (new_cfi): Likewise.
15098 (queue_reg_save): Likewise.
15099 (dwarf2out_frame_init): Likewise.
15100 (new_loc_descr): Likewise.
15101 (find_AT_string): Likewise.
15102 (new_die): Likewise.
15103 (add_var_loc_to_decl): Likewise.
15104 (clone_die): Likewise.
15105 (clone_as_declaration): Likewise.
15106 (break_out_comdat_types): Likewise.
15107 (new_loc_list): Likewise.
15108 (loc_descriptor): Likewise.
15109 (add_loc_descr_to_each): Likewise.
15110 (add_const_value_attribute): Likewise.
15111 (tree_add_const_value_attribute): Likewise.
15112 (add_comp_dir_attribute): Likewise.
15113 (add_name_and_src_coords_attributes): Likewise.
15114 (lookup_filename): Likewise.
15115 (store_vcall_insn): Likewise.
15116 (dwarf2out_init): Likewise.
15117
15118 * dbxout.c (dbxout_init): Likewise.
15119
15120 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15121
15122 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15123
15124 * config/score/score7.c (score7_output_external): Likewise.
15125
15126 * config/score/score3.c (score3_output_external): Likewise.
15127
15128 * config/s390/s390.c (s390_init_machine_status): Likewise.
15129
15130 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
15131 (rs6000_init_machine_status): Likewise.
15132 (output_toc): Likewise.
15133
15134 * config/pa/pa.c (pa_init_machine_status): Likewise.
15135 (get_deferred_plabel): Likewise.
15136
15137 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
15138
15139 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
15140
15141 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
15142
15143 * config/mep/mep.c (mep_init_machine_status): Likewise.
15144 (mep_note_pragma_flag): Likewise.
15145
15146 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
15147
15148 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
15149
15150 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
15151
15152 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
15153 (i386_pe_maybe_record_exported_symbol): Likewise.
15154
15155 * config/i386/i386.c (get_dllimport_decl): Likewise.
15156 (ix86_init_machine_status): Likewise.
15157 (assign_386_stack_local): Likewise.
15158
15159 * config/frv/frv.c (frv_init_machine_status): Likewise.
15160
15161 * config/darwin.c (machopic_indirection_name): Likewise.
15162
15163 * config/cris/cris.c (cris_init_machine_status): Likewise.
15164
15165 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
15166
15167 * config/avr/avr.c (avr_init_machine_status): Likewise.
15168
15169 * config/arm/arm.c (arm_init_machine_status): Likewise.
15170
15171 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
15172 (alpha_need_linkage): Likewise.
15173 (alpha_use_linkage): Likewise.
15174
15175 * cgraph.c (cgraph_allocate_node): Likewise.
15176 (cgraph_create_edge_1): Likewise.
15177 (cgraph_create_indirect_edge): Likewise.
15178 (cgraph_add_asm_node): Likewise.
15179
15180 * cfgrtl.c (init_rtl_bb_info): Likewise.
15181
15182 * cfgloop.c (alloc_loop): Likewise.
15183 (rescan_loop_exit): Likewise.
15184
15185 * cfg.c (init_flow): Likewise.
15186 (alloc_block): Likewise.
15187 (unchecked_make_edge): Likewise.
15188
15189 * c-parser.c (c_parse_init): Likewise.
15190 (c_parse_file): Likewise.
15191
15192 * c-decl.c (bind): Likewise.
15193 (record_inline_static): Likewise.
15194 (push_scope): Likewise.
15195 (make_label): Likewise.
15196 (lookup_label_for_goto): Likewise.
15197 (finish_struct): Likewise.
15198 (finish_enum): Likewise.
15199 (c_push_function_context): Likewise.
15200
15201 * bitmap.c (bitmap_element_allocate): Likewise.
15202 (bitmap_gc_alloc_stat): Likewise.
15203
15204 * alias.c (record_alias_subset): Likewise.
15205 (init_alias_analysis): Likewise.
15206
49c8958b 152072010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
3d25c396 15208
49c8958b
SZ
15209 * fold-const.c (fold_comparison): Remove redundant parenthesis.
15210 * tree-inline.c (expand_call_inline): Pass translated return value of
15211 cgraph_inline_failed_string to diagnostic function.
15212
5dfebe0a 152132010-06-08 Andrew Pinski <pinskia@gmail.com>
6a8f4e12
AP
15214 Shujing Zhao <pearly.zhao@oracle.com>
15215
15216 PR c/37724
15217 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
15218 implicit bad conversions is initialization.
15219 (error_init): Use gmsgid instead of msgid for argument name and change
15220 the call for error.
15221 (pedwarn_init): Use gmsgid instead of msgid for argument name and
15222 change the call for pedwarn.
15223 (warning_init): Use gmsgid instead of msgid for argument name and
15224 change the call for warning.
15225
6e9e0126
NF
152262010-06-07 Nathan Froyd <froydnj@codesourcery.com>
15227
6a8f4e12 15228 * config/mips/mips-protos.h (mips_print_operand): Delete.
6e9e0126
NF
15229 (mips_print_operand_address): Delete.
15230 * config/mips/mips.h (mips_print_operand_punct): Delete.
15231 (PRINT_OPERAND): Delete.
15232 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15233 (PRINT_OPERAND_ADDRESS): Delete.
15234 * config/mips/mips.c (mips_print_operand_punct): Make static.
15235 (mips_print_operand_address): Make static.
15236 (mips_print_operand): Make static. Call
15237 mips_print_operand_punct_valid_p.
15238 (mips_print_operand_punct_valid_p): New function.
15239 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15240 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15241
f2eff9f8
JH
152422010-06-07 Jan Hubicka <jh@suse.cz>
15243
15244 PR middle-end/44454
15245 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
15246 are allocated.
15247
10575b5d
KK
152482010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
15249
15250 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
15251 name of RECORD.
15252
659b24d6
RO
152532010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15254
15255 * doc/sourcebuild.texi (Effective-Target Keywords, Other
15256 attributes): Document gas.
15257
390b2b32
UB
152582010-06-07 Uros Bizjak <ubizjak@gmail.com>
15259
15260 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
15261 <TYPE_LEA>: Split instruction.
15262 <default>: Remove alternative 2 handling.
15263 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
15264 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
15265 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
15266
15267 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
15268 (ashift_zext lea splitter): Use DImode for multiplication.
15269
15270 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
15271 to generate addition.
15272
5498f011
JM
152732010-06-07 Joseph Myers <joseph@codesourcery.com>
15274
15275 * common.opt (fira-verbose): Use Var.
15276 (fpcc-struct-return): Use Init instead of VarExists.
15277 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
15278 toplev.c.
15279 * flags.h (flag_signed_char, flag_short_enums,
15280 flag_pcc_struct_return, flag_ira_verbose,
3d25c396 15281 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
5498f011 15282 * toplev.c (flag_detailed_statistics, flag_signed_char,
390b2b32 15283 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
5498f011
JM
15284 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
15285 * toplev.h (flag_crossjumping, flag_if_conversion,
15286 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
15287 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
15288 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
15289 flag_cprop_registers, time_report, flag_ira_loop_pressure,
15290 flag_ira_coalesce, flag_ira_move_spills,
15291 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
15292
e7f96023
JH
152932010-06-07 Jan Hubicka <jh@suse.cz>
15294
f2580bd8
L
15295 * df-core.c (df_analyze_problem): Do verification after allocation.
15296
e7f96023
JH
15297 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
15298 (df_lr_alloc): Initialize problem data; move bitmaps to
15299 lr_bitmaps obstack.
15300 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
15301 (df_lr_verify_solution_start): Do not initialize problem data;
15302 allocate bitmaps in lr_bitmaps.
15303 (df_lr_verify_solution_end): Do not free problem data.
15304
f10ea640
JH
153052010-06-07 Jan Hubicka <jh@suse.cz>
15306
15307 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
15308 if caller is noreturn.
15309 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
15310 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
15311 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
15312 * ipa-pure-const.c (check_decl): Add IPA parameter.
15313 (state_from_flags): New function.
15314 (better_state, worse_state): New functions.
15315 (check_call): When in IPA mode, do not care about callees.
15316 (check_load, check_store): Update.
15317 (check_ipa_load, check_ipa_store): New.
15318 (check_stmt): When in IPA mode, use IPA checkers.
15319 (analyze_function): Use state_from_flags.
15320 (propagate): Check indirect edges and references.
15321
5e52ffc4
KH
153222010-06-07 Kazu Hirata <kazu@codesourcery.com>
15323
15324 PR rtl-optimization/44404
15325 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
3d25c396 15326 of count_occurrences to see if it's safe to modify mem_insn.
5e52ffc4 15327
ae0595b0
RG
153282010-06-07 Richard Guenther <rguenther@suse.de>
15329
15330 * gimplify.c (gimplify_cleanup_point_expr): For empty body
15331 and EH-only cleanup drop the cleanup instead of inserting it
15332 unconditionally.
15333
35e1a5e7
IR
153342010-06-07 Ira Rosen <irar@il.ibm.com>
15335
15336 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
15337 documentation.
15338 * targhooks.c (default_builtin_vectorization_cost): New function.
15339 * targhooks.h (default_builtin_vectorization_cost): Declare.
15340 * target.h (enum vect_cost_for_stmt): Define.
15341 (builtin_vectorization_cost): Change argument and comment.
15342 * tree-vectorizer.h: Remove cost model macros.
15343 * tree-vect-loop.c: Include target.h.
15344 (vect_get_cost): New function.
15345 (vect_estimate_min_profitable_iters): Replace cost model macros with
15346 calls to vect_get_cost.
15347 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
15348 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
15349 default implementation.
15350 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
15351 calls to target hook builtin_vectorization_cost.
15352 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
15353 Likewise.
15354 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
15355 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
15356 implementation to return costs.
15357 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
15358 * config/spu/spu.h: Remove vectorizer cost model macros.
15359 * config/i386/i386.h: Likewise.
15360 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
15361 a call to target hook builtin_vectorization_cost.
15362
81c566c2
ST
153632010-06-06 Sriraman Tallam <tmsriram@google.com>
15364
15365 PR target/44319
15366 * config/i386/i386.c (override_options): Turn zee pass on for level 2
15367 and above and defer till target is known.
15368 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
15369 turn off otherwise.
390b2b32 15370
a7e3698d
JH
153712010-05-25 Jan Hubicka <jh@suse.cz>
15372
15373 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
15374 (df_compact_blocks): Likewise.
15375 * df.h (struct df): Turn hardware_regs_used,
15376 regular_block_artificial_uses, eh_block_artificial_uses,
15377 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
15378 bitmap_head.
15379 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
15380 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
15381 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
15382 df_scan_blocks, df_insn_delete, df_insn_rescan,
15383 df_insn_rescan_debug_internal, df_insn_rescan_all,
15384 df_process_deferred_rescans, df_process_deferred_rescans,
15385 df_notes_rescan, df_get_call_refs, df_get_call_refs,
15386 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
15387 df_record_entry_block_defs, df_record_exit_block_uses,
15388 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
15389 df_scan_verify): Update.
15390
e62b90b4
DS
153912010-05-25 Dodji Seketeli <dodji@redhat.com>
15392
15393 PR c++/44188
15394 * c-common.c (is_typedef_decl): Move this definition ...
15395 * tree.c (is_typedef_decl): ... here.
eed023cc 15396 (typdef_variant_p): Move definition here from cp/tree.c.
e62b90b4
DS
15397 * c-common.h (is_typedef_decl): Move this declaration ...
15398 * tree.h (is_typedef_decl): ... here.
eed023cc 15399 (typedef_variant_p): Move declaration here from cp/cp-tree.h
e62b90b4
DS
15400 * dwarf2out.c (is_naming_typedef_decl): New function.
15401 (gen_tagged_type_die): Split out of ...
15402 (gen_type_die_with_usage): ... this function. When an anonymous
15403 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15404 is emitted for the typedef.
15405 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15406 anonymous tagged types.
15407
04087cd0
MLI
154082010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
15409
15410 PR c/20000
390b2b32 15411 * c-decl.c (grokdeclarator): Delete warning.
04087cd0 15412
f7b4a383
EB
154132010-06-06 Eric Botcazou <ebotcazou@adacore.com>
15414
15415 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
15416 newly built CALL_EXPR.
df2a52a6
EB
15417 * tree-profile.c (tree_profiling): Don't profile functions produced
15418 for built-in stuff.
f7b4a383 15419
346967d1
SB
154202010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
15421
15422 PR bootstrap/44427
15423 PR bootstrap/44428
3333e146 15424 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
346967d1
SB
15425 endianness-independent.
15426
39dabefd
SB
154272010-06-05 Steven Bosscher <steven@gcc.gnu.org>
15428
15429 * c-common.c: Move to c-family/.
15430 * c-common.def: Likewise.
15431 * c-common.h: Likewise.
15432 * c-cppbuiltin.c: Likewise.
15433 * c-dump.c: Likewise.
15434 * c-format.c: Likewise.
15435 * c-format.h : Likewise.
15436 * c-gimplify.c: Likewise.
15437 * c-lex.c: Likewise.
15438 * c-omp.c: Likewise.
15439 * c.opt: Likewise.
15440 * c-opts.c: Likewise.
15441 * c-pch.c: Likewise.
15442 * c-ppoutput.c: Likewise.
15443 * c-pragma.c: Likewise.
15444 * c-pragma.h: Likewise.
15445 * c-pretty-print.c: Likewise.
15446 * c-pretty-print.h: Likewise.
15447 * c-semantics.c: Likewise.
15448 * stub-objc.c: Likewise.
15449
15450 * gengtype.c (get_file_langdir): Special-case files in c-family/.
15451 (get_output_file_with_visibility): Fix name for c-common.h.
15452 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
15453
15454 * c-tree.h: Update include path for moved files.
15455 * c-lang.c: Likewise.
15456 * c-lang.h: Likewise.
15457 * c-parser.c: Likewise.
15458 * c-convert.c: Likewise.
15459 * c-decl.c: Likewise.
15460 * c-objc-common.c: Likewise.
15461 * configure.ac: Make sure c-family/ exists in the build directory.
15462 * configure: Regenerate.
15463 * Makefile.in: Update paths for moved files. Regroup files per
15464 location and update dependencies. Move generated_files down after
15465 ALL_GTFILES_H.
15466
15467 * config/spu/spu-c.c: Update paths for moved files.
15468 * config/mep/mep-pragma.c: Likewise.
15469 * config/darwin-c.c: Likewise.
15470 * config/i386/msformat-c.c: Likewise.
15471 * config/i386/i386-c.c: Likewise.
15472 * config/avr/avr-c.c: Likewise.
15473 * config/sol2-c.c: Likewise.
15474 * config/ia64/ia64-c.c: Likewise.
15475 * config/rs6000/rs6000-c.c: Likewise.
15476 * config/arm/arm.c: Likewise.
15477 * config/arm/arm-c.c: Likewise.
15478 * config/h8300/h8300.c: Likewise.
15479 * config/v850/v850-c.c: Likewise.
15480
15481 * config/t-darwin: Fix dependencies for moved files.
15482 * config/t-sol2: Fix dependencies for moved files.
15483 * config/mep/t-mep: Fix dependencies for moved files.
15484 * config/ia64/t-ia64: Fix dependencies for moved files.
15485 * config/rs6000/t-rs6000: Fix dependencies for moved files.
15486 * config/v850/t-v850: Fix dependencies for moved files.
15487 * config/v850/t-v850e: Fix dependencies for moved files.
15488
15489 * config/m32c/m32c-pragma.c
15490
15491 * po/exgettext: Look in c-family/ also.
15492
ad06ee51
EB
154932010-06-05 Eric Botcazou <ebotcazou@adacore.com>
15494
15495 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
15496 (mark_control_dependent_edges_necessary): Call it instead of marking
15497 the last statement manually.
15498 (propagate_necessity): Likewise.
15499
0fc555fb
JH
155002010-06-05 Jan Hubicka <jh@suse.cz>
15501
6903fcbd
L
15502 * basic-block.h (compute_dominance_frontiers): Updated.
15503 (compute_idf): Likewise.
15504
0fc555fb
JH
15505 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
15506 for dominance frontiers.
3d25c396 15507 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
0fc555fb
JH
15508 (insert_updated_phi_nodes_for): Likewise.
15509 (update_ssa): Likewise.
15510 * cfganal.c (compute_dominance_frontiers_1): Likewise.
15511 (compute_dominance_frontiers): Likewise.
15512 (compute_idf): Likewise.
15513 * df-problems.c (df_md_local_compute): Likewise.
15514
f5c21ef3
AS
155152010-06-05 Anatoly Sokolov <aesok@post.ru>
15516
15517 * target.h (struct gcc_target): Add memory_move_cost field.
15518 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
15519 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
15520 * targhooks.c (default_memory_move_cost): New function.
15521 * targhooks.h (default_memory_move_cost): Declare function.
15522 * reload.h (memory_move_cost): Declare.
15523 (memory_move_secondary_cost): Change type of 'in' argument to bool.
15524 * reginfo.c (memory_move_cost): New function.
15525 (memory_move_secondary_cost): Change type of 'in' argument to bool.
15526 * ira.h (ira_memory_move_cost): Update comment.
bd3a5d17 15527 * ira.c (ira_memory_move_cost): Update comment.
f5c21ef3
AS
15528 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
15529 with memory_move_cost.
15530 * postreload.c (reload_cse_simplify_set): (Ditto.).
15531 * reload1.c (choose_reload_regs): (Ditto.).
15532 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
15533 (MEMORY_MOVE_COST): Revise documentation.
15534
15535 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
15536 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
15537 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
15538 type of 'in' argument to bool.
15539 (TARGET_MEMORY_MOVE_COST): Define.
15540
da8c7675
JH
155412010-06-05 Jan Hubicka <jh@suse.cz>
15542
ad06ee51
EB
15543 * ipa-pure-const.c (propagate): Fix typo in handling of functions
15544 that cannot return. Be more careful when merging the results with
15545 previously known ones.
da8c7675 15546
c1ce46a5
MK
155472010-06-05 Matthias Klose <doko@ubuntu.com>
15548
15549 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
15550 function to add the -iplugindir option.
15551 (find_plugindir_spec_function): Add new declaration and function.
15552 (static_spec_func): Use it for "find-plugindir".
15553
82c3c067
JJ
155542010-06-05 Jakub Jelinek <jakub@redhat.com>
15555
15556 PR c++/44361
15557 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
15558 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
15559 statement expression.
15560
5c72d561
JH
155612010-06-05 Jan Hubicka <jh@suse.cz>
15562
15563 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
15564 (df_rd_problem_data): Convert sparse_invalidated_by_call,
15565 dense_invalidated_by_call to bitmap head.
15566 (df_rd_alloc, df_rd_bb_local_compute_process_def,
15567 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
15568 df_rd_start_dump, df_lr_verify_transfer_functions,
15569 df_live_verify_transfer_functions, df_chain_create_bb,
15570 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
15571 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
389caea8
EB
15572 df_simulate_one_insn_forwards, df_md_alloc,
15573 df_md_bb_local_compute_process_def,
15574 df_md_bb_local_compute_process_def, df_md_local_compute,
15575 df_md_transfer_function df_md_free): Update.
5c72d561 15576
f2c1da78
JM
155772010-06-05 Joseph Myers <joseph@codesourcery.com>
15578
15579 PR c/44322
15580 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
15581 target type for ADDR_EXPR; require no changes to qualifiers except
15582 for function types.
15583 * c-tree.h (c_build_type_variant): Remove.
15584
4af89b88
SB
155852010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
15586
389caea8 15587 * genautomata.c (get_excl_set): Do work per element, not per char.
4af89b88
SB
15588 (check_presence_pattern_sets): Similar.
15589 (check_absence_pattern_sets): Similar.
15590
99d98200
SB
155912010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
15592
15593 * genautomata.c (curr_state_pass_num): Delete.
15594 (min_issue_delay_pass_states): Delete.
15595 (min_issue_delay): Delete.
15596 (initiate_min_issue_delay_pass_states): Delete.
15597 (output_min_issue_delay_table): Compute min_issue_delay_vect
15598 using a breadth-first search variant.
15599 (output_tables): Don't call initiate_min_issue_delay_pass_states.
15600
c69d3a0e
L
156012010-06-04 H.J. Lu <hongjiu.lu@intel.com>
15602
15603 PR boostrap/44421
390b2b32 15604 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
c69d3a0e
L
15605 (df_byte_lr_bb_local_compute): Likewise.
15606
0a766368
JM
156072010-06-03 Jason Merrill <jason@redhat.com>
15608
15609 Implement noexcept operator (5.3.7)
15610 * c-common.c (c_common_reswords): Add noexcept.
15611 * c-common.h (enum rid): Add RID_NOEXCEPT.
15612
bdc6b402
JM
156132010-06-04 Joseph Myers <joseph@codesourcery.com>
15614
15615 * config/darwin-driver.c (darwin_default_min_version): Use
9f7b464b 15616 GCC-specific formats in diagnostics.
bdc6b402
JM
15617 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
15618 diagnostics.
15619 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
15620 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
15621 eval_spec_function, handle_braces, process_brace_body, main,
15622 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
15623 getenv_spec_function, compare_version_strings,
15624 version_compare_spec_function): Use GCC-specific formats in
15625 diagnostics.
15626
7d1f0f8a
UB
156272010-06-04 Uros Bizjak <ubizjak@gmail.com>
15628
15629 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
15630 that operand 0 and operand 1 are equal.
15631 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
15632 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
15633 and operand 1 are equal.
390b2b32 15634 <default>: Ditto. Remove ??? comment.
7d1f0f8a
UB
15635 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
15636 and operand 1 are equal.
390b2b32
UB
15637 <default>: Ditto. Remove ??? comment.
15638 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
7d1f0f8a
UB
15639 are equal.
15640 (*add<mode>_4) <default>: Ditto.
15641 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
15642
6b3c42ae
NF
156432010-06-04 Nathan Froyd <froydnj@codesourcery.com>
15644
15645 * config/i386/i386-protos.h (ix86_print_operand): Declare.
15646 * config/i386/i386.c (ix86_print_operand): Make non-static.
15647 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
15648 * output.h (output_operand): Declare.
15649 * final.c (output_operand): Make non-static.
15650
0fa43fb7
AO
156512010-06-04 Alexandre Oliva <aoliva@redhat.com>
15652
39e7207a
AO
15653 PR rtl-optimization/44013
15654 * sched-deps.c (add_dependence_list_and_free): Don't free lists
15655 when processing debug insns.
15656
0fa43fb7
AO
15657 PR debug/41371
15658 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
15659 recursing. Check that recursion is bounded. Rename inner var
15660 to avoid hiding incoming argument.
15661
ad1f7916
UB
156622010-06-04 Uros Bizjak <ubizjak@gmail.com>
15663
7d1f0f8a
UB
15664 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
15665 operands[2] == 255.
ad1f7916
UB
15666 (*addqi_3): Ditto.
15667 (*addqi_4): Ditto.
15668 (*addqi_5): Ditto.
15669 (*addqi_ext_1_rex64): Ditto.
15670 (*addqi_ext_1): Ditto.
15671
15672 (*addqi_4): Check for incdec_operand in QImode.
15673
15674 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
15675 using SWI mode iterator.
15676 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
15677 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
15678 mode iterator.
15679 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
15680 using SWI mode iterator.
15681
49706e39
MLI
156822010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
15683
15684 PR c/25880
15685 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
15686 * c-format.c (gcc_diag_flag_specs): Add hash.
15687 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
15688 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
15689 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
15690 pp_c_cv_qualifiers. Handle qualifiers spelling here.
15691 (pp_c_type_qualifier_list): Call the function above.
15692 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
15693 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
15694 (WARN_FOR_QUALIFIERS): New macro.
15695 (convert_for_assignment): Use it.
15696
b13ea8bd
KT
156972010-06-04 Kai Tietz <kai.tietz@onevision.com>
15698
ad1f7916 15699 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
b13ea8bd 15700
b33a91c9
JH
157012010-06-04 Jan Hubicka <jh@suse.cz>
15702
15703 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
15704 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
15705 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
15706 DF_BYTE_LR_OUT): Update for embedded bitmaps.
15707 * fwprop.c (single_def_use_enter_block): Likewise.
15708 * ddg.c (create_ddg_dep_from_intra_loop_link,
15709 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
15710 * loop-iv.c (latch_dominating_def): Likewise.
15711 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
15712 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
15713 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
15714 df_rd_transfer_function, df_rd_top_dump,
15715 df_rd_bottom_dump): Update.
15716 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
15717 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
15718 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
15719 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
15720 df_lr_verify_solution_start, df_lr_verify_solution_end,
15721 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
15722 df_live_free_bb_info, df_live_alloc, df_live_reset,
15723 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
15724 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
15725 df_live_verify_solution_start, df_live_verify_solution_end,
15726 df_live_verify_transfer_functions, df_chain_create_bb,
15727 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
15728 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
15729 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
15730 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
15731 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
15732 df_byte_lr_transfer_function, df_byte_lr_top_dump,
15733 df_byte_lr_bottom_dump, df_create_unused_note,
15734 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
15735 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
15736 df_md_transfer_function, df_md_init, df_md_confluence_0,
15737 df_md_confluence_n,
ad1f7916
UB
15738 df_md_top_dump, df_md_bottom_dump): Update.
15739 (struct df_lr_problem_data): Embedd bitmap headers.
b33a91c9 15740
f251709a
JH
157412010-06-04 Jan Hubicka <jh@suse.cz>
15742
ad1f7916
UB
15743 * dce.c (dce_process_block): Do not re-scan already marked
15744 instructions.
f251709a 15745
8ff49c29
BS
157462010-06-04 Bernd Schmidt <bernds@codesourcery.com>
15747
15748 PR rtl-optimization/39871
15749 PR rtl-optimization/40615
15750 PR rtl-optimization/42500
15751 PR rtl-optimization/42502
15752 * ira.c (init_reg_equiv_memory_loc: New function.
15753 (ira): Call it twice.
15754 * reload.h (calculate_elim_costs_all_insns): Declare.
15755 * ira-costs.c: Include "reload.h".
15756 (regno_equiv_gains): New static variable.
15757 (init_costs): Allocate it.
15758 (finish_costs): Free it.
15759 (ira_costs): Call calculate_elim_costs_all_insns.
15760 (find_costs_and_classes): Take estimated elimination costs
15761 into account.
15762 (ira_adjust_equiv_reg_cost): New function.
15763 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
15764 * reload1.c (init_eliminable_invariants, free_reg_equiv,
ad1f7916 15765 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
8ff49c29
BS
15766 (elim_bb): New static variable.
15767 (reload): Move code out of here into init_eliminable_invariants and
15768 free_reg_equiv. Call them.
15769 (calculate_elim_costs_all_insns): New function.
15770 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
15771 all callers changed. If FOR_COSTS is true, don't call alter_reg,
15772 but call note_reg_elim_costly if we turned a valid memory address
15773 into an invalid one.
15774 * Makefile.in (ira-costs.o): Depend on reload.h.
15775
95c5655c
JB
157762010-06-04 Julian Brown <julian@codesourcery.com>
15777
15778 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
15779 for pool ranges.
15780
d4c0c9f6
RG
157812010-06-04 Richard Guenther <rguenther@suse.de>
15782
15783 PR lto/41584
15784 * cgraph.h (struct varpool_node): Add lto_file_data field.
15785 * lto-cgraph.c (input_varpool_node): Initialize it.
15786
308e51aa
UB
157872010-06-04 Uros Bizjak <ubizjak@gmail.com>
15788
15789 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
15790 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
15791 predicate in "type" attribute calculation.
15792 (*addsi_1_zext): Ditto.
15793 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
15794 (*addsi_2_zext): Ditto.
15795 (*add<mode>_3): Ditto.
15796 (*addsi_3_zext): Ditto.
15797 (*add<mode>_5): Ditto.
15798
f3cf730b
JH
157992010-06-03 Jan Hubicka <jh@suse.cz>
15800
15801 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
15802 of bitmap_bit_p.
15803 * cfganal.c (compute_dominance_frontiers_1): Likewise.
15804
95f4cd58
JH
158052010-06-03 Jan Hubicka <jh@suse.cz>
15806
15807 * df-problems.c (df_create_unused_note, df_note_bb_compute):
15808 micro-optimize the checks when to add new note.
15809
6e2188e0
NF
158102010-06-03 Nathan Froyd <froydnj@codesourcery.com>
15811
15812 * final.c (output_asm_insn): Call
15813 targetm.asm_out.print_operand_punct_valid_p. Update comments.
15814 (output_operand): Call targetm.asm_out.print_operand. Update comments.
15815 (output_address): Call targetm.asm_out.print_operand_address.
15816 Update comments.
15817 * target.h (struct gcc_target): Add print_operand,
15818 print_operand_address, and print_operand_punct_valid_p fields.
15819 * targhooks.h (default_print_operand): Declare.
15820 (default_print_operand_address): Declare.
15821 (default_print_operand_punct_valid_p): Declare.
15822 * targhooks.c (default_print_operand): Define.
15823 (default_print_operand_address): Define.
15824 (default_print_operand_punct_valid_p): Define.
15825 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
15826 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
15827 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
15828 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
15829 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
15830 * vmsdbgout.c (addr_const_to_string): Update comment.
15831 * config/i386/i386.c (print_operand): Rename to...
15832 (ix86_print_operand): ...this. Make static.
15833 (print_operand_address): Rename to...
15834 (ix86_print_operand_address): ...this. Make static. Call
15835 ix86_print_operand instead of PRINT_OPERAND.
15836 (ix86_print_operand_punct_valid_p): New function.
15837 (TARGET_PRINT_OPERAND): Define.
15838 (TARGET_PRINT_OPERAND_ADDRESS): Define.
15839 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15840 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
15841 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15842 (PRINT_OPERAND): Delete.
15843 (PRINT_OPERAND_ADDRESS): Delete.
15844 * config/i386/i386-protos.h (print_operand): Delete prototype.
15845 (print_operand_address): Delete prototype.
15846
bb6c4ac8
RG
158472010-06-03 Richard Guenther <rguenther@suse.de>
15848
15849 PR tree-optimization/44403
15850 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
15851 Preserve pointer qualifiers.
15852 (vect_create_data_ref_ptr): Likewise.
15853
1c314335
L
158542010-06-03 H.J. Lu <hongjiu.lu@intel.com>
15855
15856 PR c++/44294
15857 * defaults.h (MAX_FIXED_MODE_SIZE): New.
15858
15859 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
15860
c87d6057
JJ
158612010-06-03 Jakub Jelinek <jakub@redhat.com>
15862
15863 PR debug/44375
15864 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
15865 return false if merging the bbs would lead to goto_locus
15866 location being lost from the IL.
15867
193d4c0f
JJ
158682010-06-03 Jan Hubicka <jh@suse.cz>
15869 Jakub Jelinek <jakub@redhat.com>
15870
308e51aa 15871 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
193d4c0f
JJ
15872 set->regs[i] is NULL or has just one entry.
15873
703e95cf
JH
158742010-06-03 Jan Hubicka <jh@suse.cz>
15875
15876 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
15877 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
15878
12a0a4d4
PB
158792010-06-03 Paul Brook <paul@codesourcery.com>
15880
15881 * config/arm/arm.c (FL_TUNE): Define.
15882 (arm_default_cpu, arm_cpu_select): Remove.
15883 (all_cores): Populate core field.
15884 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
15885 (arm_find_cpu): New function.
15886 (arm_handle_option): Lookup cpu/architecture names.
15887 (arm_override_options): Cleanup mcpu/march/mtune handling.
15888 (arm_file_start): Ditto.
15889
d9d7a1bf
AM
158902010-06-03 Alan Modra <amodra@gmail.com>
15891
15892 PR target/44169
15893 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
15894 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
15895 rtx to gen_load_toc_v4_PIC_1b. Tidy.
15896 (rs6000_emit_load_toc_table): Likewise.
15897
514f01ad
JH
158982010-06-02 Jan Hubicka <jh@suse.cz>
15899
15900 * passes.c (init_optimization_passes): Put ipa reference
15901 after ipa pure-const.
15902
22a8d1e6
JH
159032010-06-02 Jan Hubicka <jh@suse.cz>
15904
15905 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
15906 calls_read_all and calls_write_all.
15907 (get_reference_optimization_summary): Fix formatting.
15908 (is_proper_for_analysis): Check that decl is not readonly.
15909 (propagate_bits): Check CONST/PURE/noreturn flags.
15910 (ipa_init): Move all_module_statics to optimization_summary_obstack.
15911 (analyze_function): Ignore indirect edges.
15912 (copy_global_bitmap): For all module statics, do nothing.
15913 (generate_summary): Do not print calls_read_all/calls_write_all.
15914 (read_write_all_from_decl): Take node as argument; check
15915 cgraph_node_cannot_return.
15916 (propagate): Reorganize read_all/write_all computation;
15917 check indirect edges; check ecf flags; use all_module_statics
15918 in the results; do not free all_module_statics.
15919 (stream_out_bitmap): Handle all_module_statics.
15920 (ipa_reference_write_optimization_summary): Likewise; use
15921 varpool/cgraph encoders to get boundaries.
15922 (ipa_reference_read_optimization_summary): Read in all_module_statics;
15923 use it when possible.
15924
92902797
MM
159252010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15926
15927 PR target/44218
15928 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
308e51aa 15929 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
92902797
MM
15930
15931 * doc/extend.texi (powerpc builtins): Document vec_recip,
15932 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
15933
308e51aa 15934 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
92902797
MM
15935 (rs6000_emit_swrsqrt): Ditto.
15936 (rs6000_emit_swdivsf): Delete.
15937 (rs6000_emit_swdivdf): Ditto.
15938 (rs6000_emit_swrsqrtsf): Ditto.
15939
15940 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
15941 describe the reciprocal estimate support for each type.
15942 (recip_options): Map -mrecip=<opt> into option bits.
15943 (gen_2arg_fn_t): New typedef for binary rtx gen function.
15944 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
15945 reciprocal estimate instructions.
15946 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
15947 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
15948 Set up rs6000_recip_bits based on the -mrecip* options. Print the
15949 cost information if -mdebug=cost or -mdebug=reg.
15950 (rs6000_override_options): Set -mrecip-precision for power6, and
15951 power7 machines. If -mvsx or -mdfp, enable various options that
15952 came in previous instruction set ISAs, unless the option was
15953 explicitly disabled by the command line option. Parse
15954 -mrecip=<opt> options.
15955 (rs6000_builtin_vectorized_function): Add support for vectorizing
15956 the reciprocal estimate builtins and expansions.
15957 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
15958 (bdesc_2arg): Add reciprocal estimate builtins.
15959 (bdesc_1arg): Add reciprocal square root estimate builtins.
15960 (rs6000_expand_builtin): Rewrite to use a switch statement,
308e51aa 15961 instead of multiple if/then/elses. Add reciprocal estimate builtins.
92902797
MM
15962 (rs6000_init_builtins): Create declarations for reciprocal
15963 estimate builtins.
15964 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
15965 sized, prefer traditional floating point registers, if integer
15966 vector types, prefer altivec registers. Don't actually look at
15967 the memory address any more.
15968 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
15969 builtins.
15970 (rs6000_load_constant_and_splat): New helper function to load up
15971 the constant for reciprocal estimate instructions.
15972 (rs6000_emit_madd): New helper function for generating
15973 multiply/add type instructions, based on the current switches.
15974 (rs6000_emit_msub): Ditto.
15975 (rs6000_emit_mnsub): Ditto.
15976 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
15977 replace a divide with a reciprocal estimate and fixup, adding
15978 support for machines with high precision and vectors.
15979 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
15980 low precision machines.
15981 (rs6000_emit_swdiv): New common function to be called to replace a
15982 division with reciprocal estimate and fixup.
15983 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
308e51aa 15984 for double and vector types. Add support for high precision machines.
92902797
MM
15985
15986 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
15987 the reciprocal estimate instructions can be generated.
15988 (TARGET_FRE): Ditto.
15989 (TARGET_FRSQRTES): Ditto.
15990 (TARGET_FRSQRTE): Ditto.
15991 (RS6000_RECIP_*): New macros for reciprocal estimate support.
15992
15993 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
15994 square root estimate on vectors.
15995 (re<mode>2): New insn for reciprocal division estimate on vectors.
15996
15997 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
15998 New builtin.
15999 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
16000 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
16001 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
16002 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
16003 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
16004 (RS6000_BUILTIN_RSQRT): Ditto.
16005 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
16006 floating point builtin.
16007
16008 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16009 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
16010 __RECIP_PRECISION__ based on the command line switches.
16011 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
16012
16013 * config/rs6000/rs6000.opt (-mrecip): Document add support for
308e51aa 16014 replacing division instructions with reciprocal estimate and fixup.
92902797
MM
16015 (-mrecip=<opt>): New option.
16016 (-mrecip-precision): Ditto.
16017
16018 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
16019 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
16020 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
16021 precision scalar.
16022
16023 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
16024 (UNSPEC_VREFP): Ditto.
16025 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
308e51aa 16026 conterparts with regard to support of -mno-fused-madd and -ffast-math.
92902797
MM
16027 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
16028 reciprocal estimate instructions to be generated.
16029 (altivec_vrefp): Ditto.
16030
16031 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
16032 estimate support.
16033 (rreg): New mode attribute for reciprocal estimate support.
16034 (recip<mode>3): New insn for division using reciprocal estimate
16035 and fixup builtins.
16036 (divide define_split): New define_split to convert floating point
16037 division to use reciprocal estimate if the user used the
16038 appropriate options and the split is run when we can add new
16039 pseudo registers for the fixup.
16040 (rsqrt<mode>2): New insn for reciprocal square root support.
16041 (recipsf3): Move into recip<mode>3.
16042 (recipdf3): Ditto.
16043 (fres): Use TARGET_FRES.
16044 (rsqrtsf2): Move into rsqrt<mode>2.
16045 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
16046 (copysignsf3): Add support for VSX.
16047 (fred): Use TARGET_FRE.
16048 (fred_fpr): Ditto.
16049 (rsqrtdf_internal1): New function for frsqrte instruciton.
16050
308e51aa 16051 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
92902797
MM
16052 (vec_rsqrt): Ditto.
16053
eef4a603
RG
160542010-06-03 Richard Guenther <rguenther@suse.de>
16055
16056 PR middle-end/44291
16057 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
16058 (set_user_assembler_libfunc): Likewise.
16059
77ec4307
SB
160602010-06-02 Steven Bosscher <steven@gcc.gnu.org>
16061
16062 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
16063 defaults.h.
16064 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
16065 to defaults.h
16066 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
16067 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
16068 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
16069 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
16070 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
16071 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
16072 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
16073 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
16074 * defaults.h: Updated for above mentioned changes.
16075
ef2d9e4d
KT
160762010-06-02 Kai Tietz <kai.tietz@onevision.com>
16077
16078 * c-common.c: Remove header include of tm_p.h.
16079 * Makefile.in (c-common.o): Remove TM_P_H dependency.
16080
53e030f1
JJ
160812010-06-02 Jakub Jelinek <jakub@redhat.com>
16082
16083 * tree.h (struct tree_decl_map): New type.
16084 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
16085 (tree_decl_map_hash): New prototype.
16086 (debug_expr_for_decl, value_expr_for_decl): Change into
16087 tree_decl_map hashtab from tree_map.
16088 (init_ttree): Adjust initialization.
16089 (tree_decl_map_hash): New function.
16090 (decl_debug_expr_lookup, decl_debug_expr_insert,
16091 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
16092
a6198222
RO
160932010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16094
16095 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
16096 linker emulations.
16097 * configure: Regenerate.
16098 * config.in: Regenerate.
16099
16100 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
16101 (X86_64_EMULATION): Define.
16102 (TARGET_LD_EMULATION): Use them.
16103
16104 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
16105 (SPARC64_EMULATION): Define.
16106 (LINK_ARCH_SPEC): Use them.
16107
d6abd6d8
SP
161082010-06-02 Sebastian Pop <sebastian.pop@amd.com>
16109
16110 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
16111 smallest_mode_for_size for computing the precision types of new
16112 graphite IVs. Do not call lang_hooks.types.type_for_size.
16113
718d3588
SP
161142010-06-02 Sebastian Pop <sebastian.pop@amd.com>
16115
16116 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
16117 information.
16118 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
16119
5521cae9
SP
161202010-06-02 Sebastian Pop <sebastian.pop@amd.com>
16121
16122 PR middle-end/44363
16123 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
16124 return false instead.
16125
437ffe7b
JH
161262010-06-02 Jan Hubicka <jh@suse.cz>
16127
16128 PR middle-end/44295
16129 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
16130 create new cgraph node to check callee.
16131
f3dcdff7
RG
161322010-06-02 Richard Guenther <rguenther@suse.de>
16133
16134 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
16135
396717c9
RG
161362010-06-02 Richard Guenther <rguenther@suse.de>
16137
16138 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
16139 (lto_wrapper_cleanup): ... this. Do not exit.
16140 (fatal): Adjust. Exit here.
16141 (fatal_perror): Likewise.
16142 (fatal_signal): New function.
16143 (main): Set up signal handlers to cleanup temporary files.
16144 * Makefile.in (lto-wrapper.o): Adjust dependencies.
16145
2698955a
RG
161462010-06-02 Richard Guenther <rguenther@suse.de>
16147
16148 PR tree-optimization/44377
16149 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
16150
30972225
AK
161512010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16152
16153 * config/s390/2097.md (z10_fhex): Remove insn reservation.
16154 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
16155 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
16156 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
16157 instruction.
308e51aa 16158 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
30972225 16159
d4fb676f
JH
161602010-06-02 Jan Hubicka <jh@suse.cz>
16161
16162 * bitmap.c (bitmap_descriptor): Add search_iter.
16163 (bitmap_find_bit): Increment it.
16164 (print_statistics): Print it.
16165
36c4a482
NF
161662010-06-02 Nathan Froyd <froydnj@codesourcery.com>
16167
16168 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
16169 instead of gimple_build_call_vec. Delete unnecessary local variable.
16170
f66d6761
SB
161712010-06-02 Steven Bosscher <steven@gcc.gnu.org>
16172
16173 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
16174 change from yesterday.
16175
a8cd9c51
SB
161762010-06-02 Steven Bosscher <steven@gcc.gnu.org>
16177
16178 * c-ada-spec.c: Clean up redundant includes.
16179
2eb79bbb
SB
161802010-06-01 Steven Bosscher <steven@gcc.gnu.org>
16181
16182 * gimplify.c: Do not include except.h and optabs.h.
16183 (gimplify_body): Do not initialize RTL profiling.
16184 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
16185 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
16186 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
16187 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
16188 langhooks.h.
16189
16190 * tree-pretty-print.h: Include pretty-print.h.
16191 * gimple-pretty-print.h: Include pretty-print.h.
16192
16193 * tree-pretty-print.c: Do not include diagnostic.h.
16194 * tree-vrp.c: Likewise.
16195 * tree-tailcall.c: Likewise
16196 * tree-scalar-evolution.c: Likewise
16197 * tree-ssa-dse.c: Likewise
16198 * tree-chrec.c: Likewise
16199 * tree-ssa-sccvn.c: Likewise
16200 * tree-ssa-copyrename.c: Likewise
16201 * tree-nomudflap.c: Likewise
16202 * tree-call-cdce.c: Likewise
16203 * tree-stdarg.c: Likewise
16204 * tree-ssa-math-opts.c: Likewise
16205 * tree-nrv.c: Likewise
16206 * tree-ssa-sink.c: Likewise
16207 * tree-browser.c: Likewise
16208 * tree-ssa-loop-ivcanon.c: Likewise
16209 * tree-ssa-loop.c: Likewise
16210 * tree-parloops.c: Likewise
16211 * tree-ssa-address.c: Likewise
16212 * tree-ssa-ifcombine.c: Likewise
16213 * tree-if-conv.c: Likewise
16214 * tree-data-ref.c: Likewise
16215 * tree-affine.c: Likewise
16216 * tree-ssa-phiopt.c: Likewise
16217 * tree-ssa-coalesce.c: Likewise
16218 * tree-ssa-pre.c: Likewise
16219 * tree-ssa-live.c: Likewise
16220 * tree-predcom.c: Likewise
16221 * tree-ssa-forwprop.c: Likewise
16222 * tree-ssa-dce.c: Likewise
16223 * tree-ssa-ter.c: Likewise
16224 * tree-ssa-loop-prefetch.c: Likewise
16225 * tree-optimize.c: Likewise
16226 * tree-ssa-phiprop.c: Likewise
16227 * tree-object-size.c: Likewise
16228 * tree-outof-ssa.c: Likewise
16229 * tree-ssa-structalias.c: Likewise
16230 * tree-switch-conversion.c: Likewise
16231 * tree-ssa-reassoc.c: Likewise
16232 * tree-ssa-operands.c: Likewise
16233 * tree-vectorizer.c: Likewise
16234 * tree-vect-data-refs.c: Likewise
16235 * tree-vect-generic.c: Likewise
16236 * tree-vect-stmts.c: Likewise
16237 * tree-vect-patterns.c: Likewise
16238 * tree-vect-slp.c: Likewise
16239 * tree-vect-loop.c: Likewise
16240 * tree-ssa-loop-ivopts.c: Likewise
16241 * tree-ssa-loop-im.c: Likewise
16242 * tree-ssa-loop-niter.c: Likewise
16243 * tree-ssa-loop-unswitch.c: Likewise
16244 * tree-ssa-loop-manip.c: Likewise
16245 * tree-ssa-loop-ch.c: Likewise
16246 * tree-dump.c: Likewise
16247 * tree-complex.c: Likewise
16248
16249 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
16250 * tree-ssa-uninit.c: Likewise
16251 * tree-ssa-threadupdate.c: Likewise
16252 * tree-ssa-uncprop.c: Likewise
16253 * tree-ssa-ccp.c: Likewise
16254 * tree-ssa-dom.c: Likewise
16255 * tree-ssa-propagate.c: Likewise
16256 * tree-ssa-alias.c: Likewise
16257 * tree-dfa.c: Likewise
16258 * tree-cfgcleanup.c: Likewise
16259 * tree-sra.c: Likewise
16260 * tree-ssa-copy.c: Likewise
16261 * tree-ssa.c: Likewise
16262 * tree-profile.c: Likewise
16263 * tree-cfg.c: Likewise
16264 * tree-ssa-threadedge.c: Likewise
16265 * tree-vect-loop-manip.c: Likewise
16266
16267 * tree-inline.c: Do not include diagnostic.h and expr.h.
16268 Include rtl.h.
16269 (copy_decl_for_dup_finish): Do not use NULL_RTX.
16270
308e51aa 16271 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2eb79bbb
SB
16272 * tree-loop-distribution.c: Likewise.
16273
73add7fe
JH
162742010-06-01 Jan Hubicka <jh@suse.cz>
16275
16276 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
16277
566d09ef
JH
162782010-06-01 Jan Hubicka <jh@suse.cz>
16279
16280 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
16281 remove return value.
16282 (split_bbs_on_noreturn_calls) .... here.
16283 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
16284 * tree-flow.h (fixup_noreturn_call): New.
16285
fb9ef4c1
JH
162862010-06-01 Jan Hubicka <jh@suse.cz>
16287
16288 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
16289
6594b49d
NF
162902010-06-01 Nathan Froyd <froydnj@codesourcery.com>
16291
16292 * tree.h (build_nt_call_list): Delete.
16293 * tree.c (build_nt_call_list): Delete.
16294
5936d944
JH
162952010-06-01 Jan Hubicka <jh@suse.cz>
16296
16297 * fwprop.c: Make emit-rtl.h include last.
16298 * rtlanal.c: Include emit-rtl.h.
16299 * genautomata.c: Output emit-rtl include into insn-automata.c
16300 * df-scan.c: Include emit-rtl.h.
16301 * haifa-sched.c: Indlude emit-rtl.h.
16302 * mode-switching.c: Indlude emit-rtl.h.
16303 * graph.c: Indlude emit-rtl.h.
16304 * sel-sched.c: Include emit-rtl.h.
16305 * sel-sched-ir.c: Include emit-rtl.h.
16306 * ira-build.c: Include emit-rtl.h.
bd3a5d17 16307 * emit-rtl.c (first_insn, last_insn): Remove defines.
5936d944
JH
16308 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
16309 Move to emit-rtl.h.
308e51aa
UB
16310 (set_new_first_and_last_insn, get_last_insn_anywhere,
16311 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
16312 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
16313 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
16314 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
16315 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
16316 Use accessor functions.
5936d944
JH
16317 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16318 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16319 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
308e51aa 16320 mem_expr_equal_p): Move here from rtl.h.
5936d944
JH
16321 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
16322 Move here from emit-rtl.c; make inline.
308e51aa 16323 * cfglayout.h: Include emit-rtl.h.
5936d944
JH
16324 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16325 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16326 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
308e51aa
UB
16327 mem_expr_equal_p, get_insns, set_first-insn,
16328 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
16329 * reg-stack.c: Include emit-rtl.h.
5936d944
JH
16330 * dce.c: Likewise.
16331
91382288
JH
163322010-06-01 Jan Hubicka <jh@suse.cz>
16333
16334 * cgraph.h (tree_function_versioning): Update prototype.
16335 (cgraph_function_versioning): Update prototype.
16336 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
16337 bitmap.
308e51aa 16338 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
91382288
JH
16339 (cgraph_materialize_clone, save_inline_function_body): Update use of
16340 tree_function_versioning.
308e51aa
UB
16341 * tree-inline.c (copy_bb): Look for previous copied block to link
16342 after; fix debug output.
91382288
JH
16343 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
16344 (copy_body): Likewise.
16345 (expand_call_inline): Update use of copy_body.
16346 (tree_function_versioning): Update use of copy body; accept
16347 blocks_to_copy and new_entry.
16348
6ac9d3a3
JH
163492010-06-01 Jan Hubicka <jh@suse.cz>
16350
16351 * gegenrtl.c: Remove unnecesary prototypes.
16352 (gendecl): Remove.
16353 (gendef): Produce static inline.
16354 (gencode): Remove.
16355 (main): Do not decode parameters; generate header only.
16356 * Makefile.in (genrtl.c): Remove.
16357
2e3b4885
JH
163582010-06-01 Jan Hubicka <jh@suse.cz>
16359
16360 * tree-switch-conversion.c (build_one_array): Make it readonly.
16361
0641fa97
RG
163622010-06-01 Richard Guenther <rguenther@suse.de>
16363
16364 * optabs.c (init_optabs): Guard all accesses to reinit.
16365 * ipa-pure-const.c (propagate): Fix another typo.
16366 * opts.c (common_handle_option): Split assignment to bool.
16367 * c-opts.c (c_common_handle_option): Likewise.
16368
9cc54940 163692010-06-01 Arnaud Charlet <charlet@adacore.com>
308e51aa 16370 Matthew Gingell <gingell@adacore.com>
9cc54940
AC
16371
16372 * doc/invoke.texi: Mention -fdump-ada-spec.
16373 * tree-dump.c (dump_files): Add ada-spec.
16374 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
16375 * tree-pass.h (tree_dump_index): Add TDI_ada.
16376 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
16377 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
16378 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
16379 * c-decl.c: Include c-ada-spec.h.
16380 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
16381 functions.
16382 (c_write_global_declarations): Add handling of -fdump-ada-spec.
16383 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
16384 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
16385 * c-ada-spec.h, c-ada-spec.c: New files.
16386
97d45cef
RG
163872010-06-01 Richard Guenther <rguenther@suse.de>
16388
16389 PR lto/43853
16390 * ipa-pure-const.c (get_function_state): Hand back varying state
16391 if we do not have one.
16392 (has_function_state): New function.
16393 (duplicate_node_data): Adjust.
16394 (remove_node_data): Likewise.
16395 (pure_const_write_summary): Likewise.
16396 (propagate): Likewise. Fix typo.
16397
f7fbb475
JH
163982010-06-01 Jan Hubicka <jh@suse.cz>
16399
16400 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
16401 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
16402 (execute_all_ipa_transforms): Do not play with the states.
16403
d47a371c
MK
164042010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
16405
16406 * config/arm/t-linux-androideabi: New.
389caea8 16407 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
d47a371c 16408
613f61fc
JH
164092010-06-01 Jan Hubicka <jh@suse.cz>
16410
16411 * tree-inline.c (estimate_num_insns): For stdarg functions look
16412 into call statement to count cost of argument passing.
16413
193d4c0f 164142010-06-01 Kai Tietz <kai.tietz@onevision.com>
42ad7bc8 16415
308e51aa
UB
16416 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
16417 argument for fprintf.
16418 (ix86_output_addr_diff_elt): Likewise.
16419 (x86_function_profiler): Likewise.
16420 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
16421 (LPREFIX): Likewise.
16422 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
42ad7bc8 16423
c71ad61e
JJ
164242010-05-31 Jakub Jelinek <jakub@redhat.com>
16425
16426 PR target/44338
16427 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
16428 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
16429 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
16430 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
16431 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
16432 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
16433 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
16434 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
16435 TARGET_FUSED_MADD.
16436
63f1c699
JH
164372010-05-31 Jan Hubicka <jh@suse.cz>
16438
16439 * tree.h (tree_range_check_failed): Declare noreturn.
16440
4892422a
JH
164412010-05-31 Jan Hubicka <jh@suse.cz>
16442
16443 * gimple.c (gimple_call_builtin_p): New function.
16444 * gimple.h (gimple_call_builtin_p): Declare.
16445 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
16446 to exit.
16447 (execute_warn_function_return): BUILT_IN_RETURN is return.
16448 (split_critical_edges): Return edges are not critical.
16449 (is_ctrl_altering_stmt): Builtin_in_return is altering.
16450 (gimple_verify_flow_info): Handle built_in_return.
16451 (execute_warn_function_return): Handle built_in_return.
16452 * ipa-pure-const.c (check_call): Ignore builtin_return.
16453
90a7788b
JJ
164542010-05-31 Jakub Jelinek <jakub@redhat.com>
16455
6a866023
JJ
16456 PR middle-end/44337
16457 * expr.c (expand_assignment): Don't store anything for out-of-bounds
16458 array accesses with non-MEM.
16459
90a7788b
JJ
16460 PR tree-optimization/44182
16461 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
16462 newly needs to end a bb is followed by debug stmts, instead return
16463 true from the function at the end.
16464 (maybe_move_debug_stmts_to_successors): New function.
16465 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
16466
877a19bf
KT
164672010-05-31 Kai Tietz <kai.tietz@onevision.com>
16468
16469 PR target/44161
308e51aa 16470 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
877a19bf 16471
c5d01958
EB
164722010-05-31 Eric Botcazou <ebotcazou@adacore.com>
16473
16474 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
16475 for nested functions in non-optimized compilation.
16476
a4c9bc15
RG
164772010-05-31 Richard Guenther <rguenther@suse.de>
16478
308e51aa 16479 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
a4c9bc15 16480
22983f55
JH
164812010-05-30 Jan Hubicka <jh@suse.cz>
16482
16483 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
16484
66a3e339
RG
164852010-05-30 Richard Guenther <rguenther@suse.de>
16486
16487 PR lto/42975
16488 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
16489 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
16490 no longer needed.
16491
83bf7f5e
IS
164922010-05-30 Iain Sandoe <iains@gcc.gnu.org>
16493
16494 * config/darwin.c (output_objc_section_asm_op): Add comment.
16495 (name_needs_quotes): Add '_' to list of valid comment chars.
16496 (machopic_output_function_base_name): Remove unneeded quotes.
16497 (darwin_encode_section_info): Adjust asm whitespace.
16498 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
16499 (ASM_OUTPUT_LOCAL): Ditto.
16500 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
16501 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
16502 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
308e51aa 16503
18fc5f44
EB
165042010-05-30 Eric Botcazou <ebotcazou@adacore.com>
16505
16506 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
16507 RS6000_OUTPUT_BASENAME unconditionally.
16508 (rs6000_output_function_epilogue): Likewise.
16509
babf1701
JH
165102010-05-30 Jan Hubicka <jh@suse.cz>
16511
16512 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
c5d01958 16513 nodes.
babf1701 16514
fbd767b1
RG
165152010-05-30 Richard Guenther <rguenther@suse.de>
16516
16517 * tree-cfg.c (verify_gimple_assign_single): Implement
16518 verification for COND_EXPR rhs.
16519
0a5fa5a1
JH
165202010-05-30 Jan Hubicka <jh@suse.cz>
16521
16522 * cgraph.h (cgraph_dump_file): Declare.
16523 * cgraphunit.c (cgraph_dump_file): Export.
308e51aa 16524 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
0a5fa5a1 16525
0b9c3a04
JH
165262010-05-30 Jan Hubicka <jh@suse.cz>
16527
16528 * dwarf2out.c (reference_to_unused,
18fc5f44
EB
16529 premark_types_used_by_global_vars_helper): Avoid creation of new
16530 varpool nodes.
0b9c3a04 16531
d56026c2
JH
165322010-05-30 Jan Hubicka <jh@suse.cz>
16533
16534 * cgraph.h (cgraph_node_cannot_return,
16535 cgraph_edge_cannot_lead_to_return): New functions.
16536 * cgraph.c (cgraph_node_cannot_return,
16537 cgraph_edge_cannot_lead_to_return): Use them.
16538 * ipa-pure-const.c (pure_const_names): New static var.
16539 (check_call): Handle calls not leading to return.
16540 (pure_const_read_summary): Dump info read.
308e51aa
UB
16541 (propagate): Dump info about propagation process; ignore side effects
16542 of functions not leading to exit; fix handling of pure functions.
d56026c2 16543
17f01631
JH
165442010-05-30 Jan Hubicka <jh@suse.cz>
16545
16546 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
16547 for tail call epilogues.
16548
f59292da
JH
165492010-05-30 Jan Hubicka <jh@suse.cz>
16550
16551 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
18fc5f44
EB
16552 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
16553 dump files.
f59292da 16554
8a6295ba
JH
165552010-05-29 Jan Hubicka <jh@suse.cz>
16556
18fc5f44
EB
16557 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
16558 node; remove references in node we no longer keep in cgrpah but need
16559 body of.
8a6295ba 16560
7baeea85
JH
165612010-05-29 Jan Hubicka <jh@suse.cz>
16562
16563 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
16564
482959e5
JDA
165652010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16566
16567 PR target/44165
16568 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
16569
24e47c76
JH
165702010-05-29 Jan Hubicka <jh@suse.cz>
16571
16572 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
16573 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
16574 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
16575 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
308e51aa 16576 debug_names_replaced_by, debug_update_ssa): Likewise.
24e47c76
JH
16577 * sbitmap.c (debug_sbitmap): Likewise.
16578 * genrecog.c (debug_decision, debug_decision_list): Likewise.
16579 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
16580 debug_tree_chain): Likewise.
16581 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
16582 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
a691bb08 16583 * optabs.c (debug_optab_libfuncs): Likewise.
24e47c76
JH
16584 (verify_loop_closed_ssa): Likewise.
16585 * value-prof.c (verify_histograms): Likewise.
16586 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
16587 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
16588 * cfghooks.c (verify_flow_info): Likewise.
16589 * fold-const.c (debug_fold_checksum): Likewise.
16590 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
16591 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
16592 Likewise.
16593 * omega.c (debug_omega_problem): Likewise.
16594 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
16595 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
16596 * dominance.c (verify_dominators, debug_dominance_info,
16597 debug_dominance_tree): Likewise.
16598 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
16599 * df_regno_debug, df_ref_debug,
16600 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
16601 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
16602 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
16603 * sel-sched.c (debug_state): Likewise.
18fc5f44
EB
16604 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
16605 Likewise.
24e47c76
JH
16606 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
16607 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
16608 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
18fc5f44
EB
16609 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
16610 Likewise.
24e47c76
JH
16611 * c-pretty-print.c (debug_c_tree): Likewise.
16612 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
18fc5f44
EB
16613 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
16614 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
24e47c76
JH
16615 * ebitmap.c (debug_ebitmap): Likewise.
16616 * function.c (debug_find_var_in_block_tree): Likewise.
16617 * print-rtl.c (debug_rtx): Likewise.
16618 (debug_rtx_count): Likewise.
16619 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
16620 * stor-layout.c (debug_rli): Likewise.
16621 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
18fc5f44
EB
16622 * tree-data-ref.c (debug_data_references,
16623 debug_data_dependence_relations, debug_data_reference,
16624 debug_data_dependence_relation, debug_rdg_vertex,
24e47c76
JH
16625 debug_rdg_component, debug_rdg): Likewise.
16626 * tree-affine.c (debug_aff): Likewise.
18fc5f44
EB
16627 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
16628 Likewise.
24e47c76
JH
16629 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
16630 * emit-rtl.c (verify_rtl_sharing): Likewise.
16631 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
16632 debug_value_expressions): Likewise.
16633 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
16634 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
16635 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
16636 * cfglayout.c (verify_insn_chain): Likewise.
16637 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
16638 debug_clast_stmt, debug_generated_program): Likewise.
16639 * ggc-page.c (debug_print_page_list): Likewise.
16640 * tree-ssa-ter.c (debug_ter): Likewise.
16641 * graphite-dependences.c (debug_pddr): Likewise.
16642 * sched-deps.c (debug_ds): Likewise.
16643 * tree-ssa.c (verify_ssa): Likewise.
16644 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
16645 debug_scattering_functions, debug_iteration_domains, debug_pdr,
18fc5f44
EB
16646 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
16647 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
24e47c76
JH
16648 * tree-inline.c (debug_find_tree): Likewise.
16649 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
16650 debug_ppl_powerset_matrix): Likewise.
16651 * var-tracking.c (debug_dv): Likewise.
16652 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
16653 * cfgloop.c (verify_loop_structure): Likewise.
16654 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
16655 * c-common.c (verify_sequence_points): Likewise.
16656 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
16657 debug_candidates, debug_rgn_dependencies): Likewise.
16658 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
16659 * debug_constraint_graph, debug_solution_for_var,
16660 debug_sa_points_to_info): Likewise.
16661 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
16662 Likewie.
16663 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
16664 debug_loops, debug_loop, debug_loop_num): Likewise.
16665 * passes.c (debug_pass): Likewise.
16666 (dump_properties): Likewise; add cfglayout property.
16667 (debug_properties): Likewise.
16668 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
16669 * varpool.c (debug_varpool): Likewise.
16670 * regcprop.c (debug_value_data): Likewise.
16671 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
16672 debug_immediate_uses_for): Likewise.
16673
f9897dfa
L
166742010-05-29 H.J. Lu <hongjiu.lu@intel.com>
16675
16676 PR bootstrap/44315
16677 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
16678 Filter out insn-flags.h.
16679
9eec9488
JH
166802010-05-29 Jan Hubicka <jh@suse.cz>
16681
16682 * cgraph.h (struct varpool_node_set_def,
16683 struct cgraph_node_set_def): Remove unused AUX pointer.
16684 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
16685 VEC_empty macro.
16686
eb598ce6
JH
166872010-05-29 Jan Hubicka <jh@suse.cz>
16688
16689 PR middle-end/44324
16690 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
16691
1be8f484
RG
166922010-05-29 Richard Guenther <rguenther@suse.de>
16693
16694 * lto-streamer.c (cached_bp): New global variable.
16695 (bitpack_create): Return the cached bitpack, if available.
16696 (bitpack_delete): Clear and cache the bitpack, if appropriate.
16697 (bp_pack_value): Remove redundant asserts.
16698
0247298c
SP
166992010-05-29 Sebastian Pop <sebastian.pop@amd.com>
16700
16701 PR middle-end/44306
16702 * tree-if-conv.c (is_true_predicate): New.
16703 (is_predicated): Use is_true_predicate.
16704 (add_to_predicate_list): Same. Do not use unshare_expr.
16705 (add_to_dst_predicate_list): Same.
16706
32ccbfac
SP
167072010-05-29 Sebastian Pop <sebastian.pop@amd.com>
16708
16709 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
16710 field on edges.
16711 (predicate_bbs): Same.
16712 (clean_predicate_lists): Same.
16713 (find_phi_replacement_condition): Do not AND the predicate from
16714 edge->aux.
16715
a41021ce
L
167162010-05-29 H.J. Lu <hongjiu.lu@intel.com>
16717
16718 PR bootstrap/44315
16719 * Makefile.in (build/gencondmd.o): Add a missing `\'.
16720
bbd07239
JDA
167212010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16722
16723 PR target/44261
16724 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
16725 (negdf2): Adjust expander pattern and use negdf2_slow.
16726 (negsf2): Likewise.
16727
25efe060
NF
167282010-05-29 Nathan Froyd <froydnj@codesourcery.com>
16729
18fc5f44
EB
16730 * basic-block.h (struct control_flow_graph): Move last_label_uid field
16731 up.
25efe060
NF
16732 * df.h (struct df_base_ref): Move regno field up.
16733 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
16734 * expr.h (struct separate_ops): Move location field up.
16735 * optabs.h (struct optab_d): Move libcall_basename field down.
16736 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
16737 * config/i386/i386.h (struct machine_function): Convert call_abi field
16738 into a bitfield. Move cfa field to the end of the structure.
16739
4cceafb8
JH
167402010-05-29 Jan Hubicka <jh@suse.cz>
16741
16742 * varpool.c (varpool_get_node): Fix lookup.
16743
65ea7e28
SB
167442010-05-29 Steven Bosscher <steven@gcc.gnu.org>
16745
16746 * config/spu/spu-protos.h: Do not include rtl.h. Protect
16747 RTL specific prototypes with #ifdef RTX_CODE.
16748 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
16749 * config/spu/t-spu-elf: Fix dependencies.
16750
1a86e236
SB
16751 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
16752
d03a97e1
MS
167532010-05-29 Mike Stump <mikestump@comcast.net>
16754
a41021ce 16755 PR bootstrap/44315
d03a97e1
MS
16756 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
16757 TM_H when building to avoid dependency loops.
16758
f0c418dc
JH
167592010-05-29 Jan Hubicka <jh@suse.cz>
16760
54da01d2 16761 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
dedd9d05 16762 refs and body; not the whole node for masters of materialized clones.
f0c418dc 16763
5c5543af
MS
167642010-05-29 Mike Stump <mikestump@comcast.net>
16765
16766 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
16767
036546e5
JH
167682010-05-29 Jan Hubicka <jh@suse.cz>
16769
16770 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
16771 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
16772 use of clone_function_name.
308e51aa 16773 * cgraph.h (cgraph_create_virtual_clone,
036546e5
JH
16774 cgraph_function_versioning): update prototypes.
16775 (clone_function_name): Declare.
16776 * ipa-cp.c (ipcp_insert_stage): Update call of
16777 cgraph_create_virtual_clone.
16778 * omp-low.c (create_omp_child_function_name): Use
16779 cgraph_create_virtual_clone.
16780 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
16781 (cgraph_function_versioning): Take SUFFIX argument; produce new name
16782 and make decl local.
16783
3e097227
SB
167842010-05-29 Steven Bosscher <steven@gcc.gnu.org>
16785
16786 * vec.h: Include statistics.h
16787 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
16788 with VEC_H.
16789
accf9ad6
SB
167902010-05-29 Steven Bosscher <steven@gcc.gnu.org>
16791
3d25c396
UB
16792 * c-lex.c: Do not include c-tree.h.
16793 * c-pretty-print.c: Likewise.
16794 * c-opts.c: Likewise.
16795 * c-gimplify.c: Likewise.
accf9ad6
SB
16796 * c-common.c: Likewise.
16797 * c-dump.c: Likewise. Include c-common.h.
16798
59cc9210
SB
167992010-05-29 Steven Bosscher <steven@gcc.gnu.org>
16800
16801 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
16802 before including diagnostic-core.h.
16803 (c_cpp_error): New prototype moved from c-tree.h.
16804 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
16805 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
16806 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
16807 (c_cpp_error): Prototype moved to c-common.h.
16808 * Makefile.in: Update dependency for C_COMMON_H.
16809
bffad7f1
SB
168102010-05-29 Steven Bosscher <steven@gcc.gnu.org>
16811
16812 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
16813 * c-common.c (c_register_addr_space): Remove here.
16814 * c-decl.c (c_register_addr_space): Re-add here.
16815
d685a689
MS
168162010-05-28 Mike Stump <mikestump@comcast.net>
16817
16818 * config/darwin-c.c: Remove c-tree.h include.
16819
6afbc885
JM
168202010-05-28 Joseph Myers <joseph@codesourcery.com>
16821
16822 * gcc.c: Include diagnostic.h.
16823 (error_count): Remove. All users changed to use errorcount.
16824 (programname): Remove. All users changed to use progname.
16825 (fancy_abort, internal_error, fatal_error, error, warning, inform,
16826 fnotice): Remove.
16827 (execute): Don't include "Internal error" and bug reporting
16828 information in argument of internal_error call.
16829 (process_command): Don't increment error_count after calling
16830 perror_with_name.
16831 (input_filename): Rename to gcc_input_filename. All users
16832 changed.
16833 (main): Call diagnostic_initialize. Register delete_temp_files
16834 with atexit. Use seen_error to test for errors.
16835 * gcc.h: Include diagnostic-core.h.
16836 (fatal_error, error, warning): Remove.
16837 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
16838 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
16839 (gcc.o): Update dependencies.
16840
bdf0eb06
JL
168412010-05-28 Jeff Law <law@redhat.com>
16842
0896cc66
JL
16843 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
16844 functions.
16845 * ira.h (ira_bad_reload_regno): Declare
16846 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
16847
bdf0eb06
JL
16848 * ira-color.c (update_curr_costs): Free updated hard reg costs.
16849 (ira_reassign_conflict_allocnos): Remove bogus asserts.
16850 (allocno_reload_assign): Likewise.
16851
4a73490d
NF
168522010-05-28 Nathan Froyd <froydnj@codesourcery.com>
16853
16854 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
16855 build1_stat.
16856
86561bb6
RG
168572010-05-28 Richard Guenther <rguenther@suse.de>
16858
16859 PR lto/44312
16860 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
16861 Stream fixed-point constants mode.
16862 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
16863 and TYPE_PRECISION.
16864 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
16865 Stream fixed-point constants mode.
16866 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
16867 and TYPE_PRECISION.
16868
0a74c758
SP
168692010-05-28 Sebastian Pop <sebastian.pop@amd.com>
16870
16871 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
16872 only place it was called from.
16873 (number_of_latch_executions): Do not return chrec_dont_know when the
16874 may_be_zero is a runtime condition: instead, return a COND_EXPR
16875 including the may_be_zero condition.
16876 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
16877 of nb_iterations.
16878 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
16879 COND_EXPRs.
16880
e7cb8957
SP
168812010-05-28 Sebastian Pop <sebastian.pop@amd.com>
16882
16883 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
16884 generate COND_EXPRs for degenerate_phi_result.
16885
d10e857e
SP
168862010-05-28 Sebastian Pop <sebastian.pop@amd.com>
16887
16888 PR middle-end/44293
16889 * tree-if-conv.c (if_convertible_loop_p): Check the
16890 if-convertibility of phi nodes in non predicated BBs.
16891
6cffd02a
JM
168922010-05-28 Joseph Myers <joseph@codesourcery.com>
16893
16894 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
16895
2dec80c7
JM
168962010-05-28 Joseph Myers <joseph@codesourcery.com>
16897
16898 PR driver/15303
16899 * gcc.c (inform, warning, inform): New functions.
16900 (fatal_ice): Rename to internal_error; change cmsgid parameter to
16901 gmsgid. All callers changed.
dedd9d05 16902 (notice): Rename to fnotice; add parameter fp. All callers changed.
2dec80c7
JM
16903 (fatal_error): Rename to fatal_signal. All users changed.
16904 (fatal): Rename to fatal_error; change cmsgid parameter to
16905 gmsgid. All callers changed.
16906 (process_command): Use warning instead of error for warnings.
16907 (end_going_arg): Don't use _() around argument of error.
16908 (do_spec_1): Use inform for message from %n specs. Use warning
16909 instead of error for warnings.
16910 (main): Use inform for comparison messages. Use warning for
16911 message about unused linker input.
16912 (error): Increment error_count. Print "error: ".
16913 * gcc.h (fatal): Change to fatal_error.
16914 (warning): Declare.
16915 * config/darwin-driver.c (darwin_default_min_version): Use warning
16916 instead of fprintf for warnings.
dedd9d05 16917 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
2dec80c7 16918
dcd8b2ee
JB
169192010-05-28 Julian Brown <julian@codesourcery.com>
16920
16921 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
16922 (*thumb2_addsi3_compare0_scratch): New.
16923 * config/arm/constraints.md (Pv): New.
16924 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
16925 for ARM mode only.
16926 (*addsi3_compare0_scratch): Likewise.
16927
df24c2b8
JH
169282010-05-28 Jan Hubicka <jh@suse.cz>
16929
6c608111
EB
16930 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
16931 check.
16932 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
16933 only on local statics.
df24c2b8 16934
c3a9a336
IS
169352010-05-28 Iain Sandoe <iains@gcc.gnu.org>
16936
308e51aa 16937 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
c3a9a336 16938
47089d42
MK
169392010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
16940
16941 PR bootstrap/44314
16942 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
16943 (OPTION_GLIBC): Define.
16944
005d613b
JJ
169452010-05-28 Jakub Jelinek <jakub@redhat.com>
16946
cced5e7f
JJ
16947 PR debug/41048
16948 * dwarf2out.c (double_int_type_size_in_bits): New function.
16949 (round_up_to_align): Change first argument and return value to
16950 double_int.
16951 (field_byte_offset): Work internally on double_ints.
16952
005d613b
JJ
16953 PR target/43636
16954 * builtins.c (expand_movstr): Use a temporary pseudo instead
16955 of target even when target is not NULL and not const0_rtx, but
16956 fails movstr predicate.
16957 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
16958
7ca92787
JM
169592010-05-28 Joseph Myers <joseph@codesourcery.com>
16960
16961 * final.c (rest_of_clean_state): Use %m in errors instead of
16962 strerror (errno).
16963 * gengtype.c (read_input_list, close_output_files): Use xstrerror
16964 instead of strerror.
16965 * toplev.c (process_options): Use %m in errors instead of strerror
16966 (errno).
16967 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
16968 (errno).
16969
8bf85f21
UB
169702010-05-28 Uros Bizjak <ubizjak@gmail.com>
16971
16972 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
16973 (ix86_canonical_va_list_type): Make static. Add declaration.
16974 (ix86_enum_va_list): Make static. Reindent.
16975 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
16976 (ix86_canonical_va_list_type): Ditto.
16977 (ix86_enum_va_list): Ditto.
16978
b5611987
RG
169792010-05-28 Richard Guenther <rguenther@suse.de>
16980
16981 * lto-wrapper.c (run_gcc): With -save-temps generate a
16982 user-visible ltrans filename. Fixup ltrans unit numbering.
16983
40dcd88b
KT
169842010-05-28 Kai Tietz <kai.tietz@onevision.com>
16985
d4048208
KT
16986 * c-common.c (c_common_nodes_and_builtins): Replace use
16987 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
16988 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
16989 to ix86_enum_va_list.
16990 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
16991 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
16992 (TARGET_ENUM_VA_LIST_P): Add hook description.
16993 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
16994 * target.h (gcc_target): Add enum_va_list hook.
16995
40dcd88b
KT
16996 PR bootstrap/44299
16997 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
16998 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
16999 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
17000
1cb980a2
AM
170012010-05-28 Alan Modra <amodra@gmail.com>
17002
17003 PR target/44266
17004 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17005 emit_library_call machinery to set up __tls_get_addr calls.
17006
b247e88a
AK
170072010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17008
17009 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
17010
ec4be2f4
DS
170112010-05-28 Dodji Seketeli <dodji@redhat.com>
17012
6c608111 17013 Revert fix for PR c++/44188
ec4be2f4
DS
17014 * c-common.c (is_typedef_decl): Revert the moving of this
17015 definition ...
17016 * tree.c (is_typedef_decl): ... here.
17017 (typdef_variant_p): Revert the moving of this definition
eed023cc 17018 here from cp/tree.c.
ec4be2f4
DS
17019 * c-common.h (is_typedef_decl): Revert the moving of this
17020 declaration ...
17021 * tree.h (is_typedef_decl): ... here.
17022 (typedef_variant_p): Revert the moving of this declaration here
eed023cc 17023 from cp/cp-tree.h
ec4be2f4
DS
17024 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
17025 (gen_tagged_type_die): Revert the splitting out of ...
17026 (gen_type_die_with_usage): ... this function. Revert the anonymous
17027 tagged type handling.
17028 (gen_typedef_die): Revert emitting DW_TAG_typedef for
17029 typedefs naming anonymous tagged types.
17030
3fe7b63c
SB
170312010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
17032
17033 * config/rs6000/rs6000-modes.def (PSImode): Delete.
17034
f6b5d695
SB
170352010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
17036
17037 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
17038 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
17039 throughout.
17040 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
17041 "xer" to "ca".
17042 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
17043 XER_REGS to CA_REGS throughout.
17044 * config/rs6000/rs6000.h: Same.
17045 (ADDITIONAL_REGISTER_NAMES): Add "xer".
17046 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
17047 that mode_iterator "P" is the size for arithmetic carries as well.
17048 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
17049
47027bf3
JJ
170502010-05-28 Jakub Jelinek <jakub@redhat.com>
17051
17052 PR bootstrap/44255
17053 * combine.c (struct rtx_subst_pair): Define unconditionally.
17054 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
17055 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
17056 Call make_compound_operation on pair->to.
17057 (propagate_for_debug): Don't call make_compound_operation here.
17058 Always use simplify_replace_fn_rtx.
17059
170602010-05-27 Sterling Augustine <sterling@tensilica.com>
1b408ba1
SA
17061
17062 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
17063 * config/xtensa/xtensa.c (override_options): Check
17064 TARGET_FORCE_NO_PIC and set flag_pic.
17065 * config/xtensa/xtensa.opt: Document -mforce-no-pic
17066
170672010-05-27 Kai Tietz <kai.tietz@onevision.com>
17068
0bc25dd0
KT
17069 PR bootstrap/44299
17070 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
17071 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
17072
1da2ed5f
JM
170732010-05-27 Joseph Myers <joseph@codesourcery.com>
17074
17075 * diagnostic-core.h: New. Contents moved from diagnostic.h and
17076 toplev.h.
17077 * diagnostic.c: Don't include toplev.h.
17078 (progname): Define. Moved from toplev.c.
17079 (seen_error): New function.
17080 * diagnostic.h: Include diagnostic-core.h.
17081 (diagnostic_t, emit_diagnostic): Don't declare here.
17082 * toplev.c (progname): Move to toplev.c.
17083 (emit_debug_global_declarations, compile_file, finalize,
17084 do_compile, toplev_main): Use seen_error.
17085 * toplev.h: Include diagnostic-core.h.
17086 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
17087 internal_error, warning, warning_at, error, error_n, error_at,
17088 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
17089 verbatim, fnotice, progname): Move to diagnostic-core.h.
17090 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
17091 (expand_builtin_expect): Use seen_error.
17092 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
17093 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
17094 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
17095 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
17096 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
17097 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
17098 errorcount for errors.
17099 * c-opts.c (c_common_finish): Use seen_error.
17100 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17101 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
17102 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
17103 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
17104 (get_coverage_counts): Use seen_error.
17105 * dwarf2out.c (dwarf2out_finish): Use seen_error.
17106 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
17107 gimplify_body): Use seen_error.
17108 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
17109 * ipa-pure-const.c (gate_pure_const): Use seen_error.
17110 * ipa-reference.c (gate_reference): Use seen_error.
17111 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
17112 * lambda-code.c: Include diagnostic-core.h instead of
17113 diagnostic.h.
17114 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17115 * lto-compress.c: Include diagnostic-core.h instead of
17116 diagnostic.h.
17117 * lto-section-in.c: Include diagnostic-core.h instead of
17118 diagnostic.h.
17119 * lto-streamer-out.c: Include diagnostic-core.h instead of
17120 diagnostic.h.
17121 * lto-streamer.c: Include diagnostic-core.h instead of
17122 diagnostic.h.
17123 (gate_lto_out): Use seen_error.
17124 * matrix-reorg.c: Include diagnostic-core.h instead of
17125 diagnostic.h.
17126 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
17127 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
17128 (gate_expand_omp, lower_omp_1): Use seen_error.
17129 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
17130 (rest_of_decl_compilation, rest_of_type_compilation,
17131 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
17132 * tree-cfg.c (label_to_block_fn): Use seen_error.
17133 * tree-inline.c (optimize_inline_calls): Use seen_error.
17134 * tree-mudflap.c (mudflap_finish_file): Use
17135 seen_error.
17136 * tree-optimize.c (gate_all_optimizations,
17137 gate_all_early_local_passes, gate_all_early_optimizations): Use
17138 seen_error.
17139 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
17140 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
17141 (varpool_remove_unreferenced_decls,
17142 varpool_assemble_pending_decls): Use seen_error.
17143 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
17144 (TOPLEV_H, DIAGNOSTIC_H): Update.
17145 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
17146 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
17147 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
17148 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
17149 coverage.o, lambda-code.o): Update dependencies.
17150
fe08ec12
DS
171512010-05-25 Dodji Seketeli <dodji@redhat.com>
17152
17153 PR c++/44188
17154 * c-common.c (is_typedef_decl): Move this definition ...
17155 * tree.c (is_typedef_decl): ... here.
eed023cc 17156 (typdef_variant_p): Move definition here from cp/tree.c.
fe08ec12
DS
17157 * c-common.h (is_typedef_decl): Move this declaration ...
17158 * tree.h (is_typedef_decl): ... here.
eed023cc 17159 (typedef_variant_p): Move declaration here from cp/cp-tree.h
fe08ec12
DS
17160 * dwarf2out.c (is_naming_typedef_decl): New function.
17161 (gen_tagged_type_die): Split out of ...
17162 (gen_type_die_with_usage): ... this function. When an anonymous
17163 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
17164 is emitted for the typedef.
17165 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
17166 anonymous tagged types.
17167
b042534c
JM
171682010-05-27 Jason Merrill <jason@redhat.com>
17169
17170 * print-tree.c (debug_vec_tree): New fn.
17171 (print_vec_tree): New fn.
17172 * tree.h: Declare them.
17173 * gdbinit.in (pvt): New command.
17174
17175 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
17176
17177 * gdbinit.in (pdd): New command.
17178
cdc029b9
JH
171792010-05-27 Jan Hubicka <jh@suse.cz>
17180
17181 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
17182 (update_caller_keys): Return early if there are no callers;
17183 only update fibheap when decresing the key.
17184 (update_callee_keys): Avoid recursion.
17185 (decide_inlining_of_small_functions): When badness does not match;
17186 re-insert into fibheap.
17187
7a3b4887
SB
171882010-05-27 Steven Bosscher <steven@gcc.gnu.org>
17189
17190 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
17191 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
17192 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
17193 (ALL_HOST_OBJS): Now a union of the above two.
17194 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
17195 all files in ALL_HOST_FRONTEND_OBJS.
17196 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
17197
17198 * c-common.c: Pretend to be a backend file by undefining
17199 IN_GCC_FRONTEND (still need rtl.h here).
17200
753d358d
JH
172012010-05-27 Jan Hubicka <jh@suse.cz>
17202
17203 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
17204 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
17205
88302d54
JH
172062010-05-27 Jan Hubicka <jh@suse.cz>
17207
17208 * sched-ebb.c: Rename struct deps to struct deps_desc.
17209 * ddg.c: Likewise.
17210 * sel-sched-ir.c: Likewise.
17211 * sched-deps.c: Likewise.
17212 * sched-int.h: Likewise.
17213 * sched-rgn.c: Likewise.
17214
f4a4b582 172152010-05-27 Jon Beniston <jon@beniston.com>
9bb81453
JB
17216
17217 PR 43726
308e51aa 17218 * config/lm32/lm32.h: Remove definition of
9bb81453
JB
17219 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
17220
7951d88a
EB
172212010-05-27 Eric Botcazou <ebotcazou@adacore.com>
17222
17223 PR lto/44230
17224 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
17225
fde9c428
RG
172262010-05-27 Richard Guenther <rguenther@suse.de>
17227
17228 PR tree-optimization/44284
17229 * tree-vect-stmts.c (vectorizable_assignment): Handle
17230 sign-changing conversions as simple copy.
17231
3714764d
MK
172322010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
17233
17234 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
17235 Bionic C library.
17236 (__gthread_active_p): Check for pthread_create if compiling against
17237 Bionic C library.
17238
51b9db92
MK
172392010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
17240
17241 Support compilation for Android platform. Reimplement -mandroid.
17242
17243 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
17244 (*android*): Set ANDROID_DEFAULT.
17245 (arm*-*-linux*): Include linux-android.h.
17246 (arm*-*-eabi*): Don't include previous -mandroid implementation.
17247 * config/arm/eabi.h: Remove, move Android-specific parts ...
17248 * config/linux-android.h: ... here. New file.
17249 * config/arm/eabi.opt: Rename to ...
17250 * config/linux-android.opt: ... this.
17251 (mandroid): Allow -mno-android option. Initialize based on
17252 ANDROID_DEFAULT.
17253 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
17254 Move logic to corresponding LINUX_TARGET_* macros.
17255 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
17256 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
17257 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
17258 Android definitions.
17259 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
17260 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
17261 Document.
17262
74c70253
MK
172632010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
17264
17265 Add support for Bionic C library
17266
17267 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
17268 macro.
17269 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
17270 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
17271
17272 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
17273 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
17274 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
17275 to support multiple C libraries. Handle Bionic.
17276 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
17277 (BIONIC_DYNAMIC_LINKER64): Define.
17278 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
17279 Update.
17280 (TARGET_HAS_SINCOS): Enable for Bionic.
17281
17282 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
17283 the last option specified on command line take effect.
17284 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
17285 (mbionic): New.
17286 (mglibc, muclibc): Update.
17287
17288 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
17289 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
17290 DEFAULT_LIBC.
17291
17292 * doc/invoke.texi (-mglibc, -muclibc): Update.
17293 (-mbionic): Document.
17294
3ef0694c
UW
172952010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17296
17297 * c-common.h (c_register_addr_space): Add prototype.
17298 (ADDR_SPACE_KEYWORD): Remove.
17299 * c-common.c (c_register_addr_space): New function.
17300 (c_addr_space_name): Reimplement.
17301 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
17302
17303 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
17304 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
17305
17306 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
17307 Remove TARGET_ADDR_SPACE_KEYWORDS.
17308
447924ef
JM
173092010-05-27 Joseph Myers <joseph@codesourcery.com>
17310
17311 * input.c: New file.
17312 * input.h (main_input_filename): Move declaration to toplev.h.
17313 * toplev.c (input_location, line_table): Move to input.c
17314 * toplev.h (main_input_filename): Move declaration from input.h.
17315 * tree.c (expand_location): Move to input.c.
17316 * Makefile.in (OBJS-common): Add input.o.
17317 (input.o): Add dependencies.
17318
62116e60
RG
173192010-05-27 Richard Guenther <rguenther@suse.de>
17320
17321 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
17322 for non-existant files.
17323 (fork_execute): Mark args_name file as deleted.
17324
64c31785
KT
173252010-05-27 Kai Tietz <kai.tietz@onevision.com>
17326
17327 PR bootstrp/44287
17328 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
17329 (narrow_signed_type): Likewise.
17330
e466e2ce
JH
173312010-05-26 Jan Hubicka <jh@suse.cz>
17332
17333 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
17334 edge only when checking is enabled; check using former_clone_of;
17335 check inline clones too.
17336 (cgraph_materialize_clone): Record former_clone_of pointer.
17337 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
17338 combining redirections; dump args_to_skip bitmap
17339 (cgraph_materialize_all_clones): Do no redirection here.
17340 * ipa-inline.c (inline_transform): Do redirection here.
17341 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
17342 cheking only).
17343
e62d5d9f
SB
173442010-05-26 Steven Bosscher <steven@gcc.gnu.org>
17345
17346 * config/avr/avr-c.c: Do not include regs.h.
17347 Include cpplib.h for cpp_define and tree.h for c-common.h.
17348 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
17349 * config/avr/t-avr: Fix dependencies for avr-c.o.
17350
d477d1fe
SB
173512010-05-26 Steven Bosscher <steven@gcc.gnu.org>
17352
17353 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
17354 string instead of SYMBOL_REF rtx.
17355 * rtl.h (set_stack_check_libfunc): Move prototype from here...
17356 * libfuncs.h: ...to here. Adjust for explow.c change.
17357
ab9b814d
JM
173582010-05-26 Joseph Myers <joseph@codesourcery.com>
17359
17360 * pretty-print.c: Don't include ggc.h.
17361 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
17362 (identifier_to_locale): Use them for allocation.
17363 * pretty-print.h (identifier_to_locale_alloc,
17364 identifier_to_locale_free): Declare.
17365 * toplev.c (alloc_for_identifier_to_locale): New.
17366 (general_init): Set identifier_to_locale_alloc and
17367 identifier_to_locale_free.
17368 * Makefile.in (pretty-print.o): Update dependencies.
17369
c9549072
EB
173702010-05-26 Eric Botcazou <ebotcazou@adacore.com>
17371
17372 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
17373 pointer types if they have different alignment or mode.
17374
bf44d792
AS
173752010-05-26 Anatoly Sokolov <aesok@post.ru>
17376
17377 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17378 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17379 * config/sparc/sparc-protos.h (function_value): Remove declaration.
17380 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
17381 sparc_function_value_regno_p): New functions.
17382 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17383 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17384 (function_value): Rename to...
17385 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
17386 argument to 'outgoing'.
17387 (function_arg_record_value, function_arg_union_value,
17388 function_arg_vector_value): Update comment.
17389
4ad2e1ec
EB
173902010-05-26 Eric Botcazou <ebotcazou@adacore.com>
17391
17392 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
17393 (fde_needed_for_eh_p): New predicate.
17394 (output_call_frame_info): Use it throughout to decide whether FDEs
17395 are needed for EH purpose.
17396 (dwarf2out_begin_prologue): Reorder assignments.
17397
4204425f
SP
173982010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17399
17400 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
17401 special case loop->header.
17402 (is_predicated): New.
17403 (if_convertible_loop_p): Call it.
17404
e1449456
SP
174052010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17406
17407 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
17408 iterator in parameter. Do not generate code during the analysis.
17409 (tree_if_convert_cond_stmt): Removed.
17410 (tree_if_convert_stmt): Removed.
17411 (predicate_bbs): New.
17412 (if_convertible_loop_p): Call predicate_bbs.
17413 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
17414 now contains all the analysis part.
17415
76b84776
SP
174162010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17417
17418 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
17419 statements in the analysis part.
17420 (tree_if_convert_stmt): Update comment.
17421 (remove_conditions_and_labels): New.
17422 (combine_blocks): Call remove_conditions_and_labels.
17423 (tree_if_conversion): Update comment.
17424
bc447143
SP
174252010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17426
17427 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
17428 than 2 predecessors or more than 2 successors.
17429
6d795034
SP
174302010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17431
17432 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
17433 of loops in which the data dependence analysis fails.
17434
d7309618
SP
174352010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17436
17437 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
17438 CDI_POST_DOMINATORS.
17439 (tree_if_conversion): Same.
17440
7b371e73
SP
174412010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17442
17443 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
17444
4ab71973
SP
174452010-05-26 Sebastian Pop <sebastian.pop@amd.com>
17446
17447 * tree-if-conv.c: Update copyright years. Fix comments.
17448 Fix indentation.
17449
a6766312
KT
174502010-05-26 Kai Tietz <kai.tietz@onevision.com>
17451
17452 * builtin-types.def (BT_INT128): New primitive type.
17453 (BT_UINT128): Likewise.
17454 * c-common.c (c_common_r): Add __int128 keyword.
17455 (c_common_type_for_size): Handle __int128.
17456 (c_common_type_for_mode): Likewise.
17457 (c_common_signed_or_unsigned_type): Likewise.
17458 (c_common_nodes_and_builtins): Add builtin type
17459 if target supports 128-bit integer scalar.
17460 * c-common.h (enum rid): Add RID_INT128.
17461 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
17462 if target supports 128-bit integer scalar.
ade52657 17463 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
a6766312
KT
17464 (finish_declspecs): Likewise.
17465 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
17466 (c_token_starts_declspecs): Likewise.
17467 (c_parser_declspecs): Likewise.
17468 (c_parser_attributes): Likewise.
17469 (c_parser_objc_selector): Likewise.
17470 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
17471 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
17472 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
17473 * tree.c (make_or_reuse_type): Likewise.
17474 (make_unsigned_type): Likewise.
17475 (build_common_tree_nodes_2): Likewise.
17476 * tree.h (enum integer_type_kind): Add itk_int128 and
17477 itk_unsigned_int128.
ade52657 17478 (int128_integer_type_node): New define.
a6766312 17479 (int128_unsigned_type_node): New define.
a6766312
KT
17480 * doc/extend.texi: Add documentation about __int128 type.
17481
880ad25f
RG
174822010-05-26 Richard Guenther <rguenther@suse.de>
17483
17484 * tree-ssa-sccvn.c (copy_nary): Adjust.
17485 (copy_phis): Rename to ...
17486 (copy_phi): ... this. Adjust.
17487 (copy_references): Rename to ...
17488 (copy_reference): ... this. Adjust.
17489 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
17490 result into the valid table.
17491
52642070
SB
174922010-05-26 Steven Bosscher <steven@gcc.gnu.org>
17493
17494 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
17495 insn-config.h, insn-codes.h, recog.h, and optabs.h.
17496
58cd6303
LB
174972010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
17498
ade52657 17499 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
58cd6303 17500
c3a02647
RG
175012010-05-26 Richard Guenther <rguenther@suse.de>
17502
17503 * opts.c (common_handle_option): Handle OPT_Ofast.
17504
5f0f4a3b
JM
175052010-05-26 Joseph Myers <joseph@codesourcery.com>
17506
17507 * diagnostic.c: Don't include opts.h.
17508 (permissive_error_option): Define.
17509 (diagnostic_initialize): Take n_opts parameter. Allocate memory
17510 for classify_diagnostic. Don't use memset for
17511 classify_diagnostic. Initialize new and recently added fields.
17512 (diagnostic_classify_diagnostic): Use context->n_opts instead of
17513 N_OPTS.
17514 (diagnostic_report_diagnostic): Pass context parameter to
17515 diagnostic_report_warnings_p. Use option_enabled and option_name
17516 hooks from context.
17517 (emit_diagnostic): Use permissive_error_option.
17518 (permerror): Likewise.
17519 * diagnostic.h: Don't include options.h.
17520 (struct diagnostic_context): Add n_opts, opt_permissive,
17521 inhibit_warnings, warn_system_headers, option_enabled and
17522 option_name fields. Change classify_diagnostic to a pointer.
17523 * opts-diagnostic.h: New file.
17524 * opts.c: Include opts-diagnostic.h.
17525 (common_handle_option): Set global_dc fields for -Wfatal-errors,
17526 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
17527 (option_name): New function.
17528 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
17529 (c_common_handle_option): Set global_dc->permissive for
17530 -fpermissive.
17531 * c-common.c (c_cpp_error): Save and restore
17532 global_dc->warn_system_headers, not variable warn_system_headers.
17533 * toplev.c: Include opts-diagnostic.h.
17534 (general_init): Update call to diagnostic_initialize. Set
17535 global_dc->show_column, global_dc->option_enabled and
17536 global_dc->option_name.
17537 (process_options): Don't set global_dc fields here.
17538 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
17539 (diagnostic.o, opts.o, toplev.o): Update dependencies.
17540
f024f85d
HS
175412010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
17542
17543 * config/picochip/picochip.md (movsi): Split a movsi from a
17544 const after reload.
17545
e4dfaf72
LB
175462010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
17547
17548 * ggc-zone.c: Update copyright year.
17549 (poison_region): Mark memory for Valgrind as undefined before
17550 memset () call and inaccessible afterwards.
17551 (ggc_pch_total_size): Change type of i to int.
17552
175532010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
17554
17555 * ggc-common.c (ggc_free_overhead): Allow empty slot.
17556
175572010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
17558
17559 * ggc-common.c: Update copyright year.
17560 (ggc_rlimit_bound): Remove prototype. Compile only if
17561 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
17562 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
17563 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
17564 (ggc_min_heapsize_heuristic): Likewise.
17565
630d3fad
RG
175662010-05-26 Richard Guenther <rguenther@suse.de>
17567
17568 PR rtl-optimization/44164
17569 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
17570 no-common access-path disambiguation.
17571 (indirect_ref_may_alias_decl_p): Adjust.
17572 (indirect_refs_may_alias_p): Likewise.
17573 (refs_may_alias_p_1): Likewise.
17574
b9b6c084
SB
175752010-05-26 Steven Bosscher <steven@gcc.gnu.org>
17576
17577 * c-typeck.c: Do not include expr.h.
17578
d347d97e
SB
175792010-05-26 Steven Bosscher <steven@gcc.gnu.org>
17580
17581 * rtl.h (decl_default_tls_model): Move prototype from here...
17582 * output.h: ...to here.
17583 * c-decl.c: Do not include rtl.h.
17584 * c-pragma.c: Likewise.
17585 * c-parser.c: Likewise.
17586 * c-gimplify.c: Likewise. And also not hard-reg-set.
17587 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
17588 FIXME note for it. Add a FIXME note for expr.h.
17589 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
17590 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
17591 defined.
17592
0d65bdbb
JJ
175932010-05-26 Jakub Jelinek <jakub@redhat.com>
17594
17595 PR target/44199
17596 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
17597 or total_size is larger than red zone size for non-V4 ABI, emit a
17598 stack_tie resp. frame_tie insn before stack pointer restore.
17599 * config/rs6000/rs6000.md (frame_tie): New insn.
17600
8f4f502f
EB
176012010-05-25 Eric Botcazou <ebotcazou@adacore.com>
17602
17603 * function.h (struct function): Add can_throw_non_call_exceptions bit.
17604 * lto-streamer-in.c (input_function): Stream it in.
17605 * lto-streamer-out.c (output_function): Stream it out.
17606 * function.c (allocate_struct_function): Set it.
17607 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
17608 for flag_non_call_exceptions.
17609 * cfgbuild.c (control_flow_insn_p): Likewise.
17610 (make_edges): Likewise.
17611 * cfgexpand.c (expand_stack_alignment): Likewise.
17612 * combine.c (distribute_notes): Likewise.
17613 * cse.c (cse_extended_basic_block): Likewise.
17614 * except.c (insn_could_throw_p): Likewise.
17615 * gcse.c (simple_mem): Likewise.
17616 * ipa-pure-const.c (check_call): Likewise.
17617 (check_stmt ): Likewise.
17618 * lower-subreg.c (lower-subreg.c): Likewise.
17619 * optabs.c (emit_libcall_block): Likewise.
17620 (prepare_cmp_insn): Likewise.
17621 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
17622 * postreload.c (rest_of_handle_postreload): Likewise.
17623 * reload1.c (reload_as_needed): Likewise.
17624 (emit_input_reload_insns): Likewise.
17625 (emit_output_reload_insns): Likewise.
17626 (fixup_abnormal_edges): Likewise.
17627 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
17628 * store-motion.c (find_moveable_store): Likewise.
17629 * tree-eh.c (stmt_could_throw_p): Likewise.
17630 (tree_could_throw_p): Likewise.
17631 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17632 * config/arm/arm.c (arm_expand_prologue): Likewise.
17633 (thumb1_expand_prologue): Likewise.
17634 * config/rx/rx.md (cbranchsf4): Likewise.
17635 (cmpsf): Likewise.
17636 * config/s390/s390.c (s390_emit_prologue): Likewise.
17637 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
17638 (inline_forbidden_into_p): New predicate.
17639 (expand_call_inline): Use it to forbid inlining.
17640 (tree_can_inline_p): Likewise.
17641
c962b78d
SB
176422010-05-25 Steven Bosscher <steven@gcc.gnu.org>
17643
17644 * config/i386/i386-c.c: Do not include rtl.h.
17645 * config/i386/t-i386: Update dependencies.
17646
afb67dc2
SB
176472010-05-25 Steven Bosscher <steven@gcc.gnu.org>
17648
17649 * attribs.c: Do not include rtl.h.
17650 * Makefile.in: Update dependencies.
17651
e233a3b2
AS
176522010-05-25 Anatoly Sokolov <aesok@post.ru>
17653
17654 * double-int.h (double_int_and): New.
17655 * combine.c (try_combine): Clean up, use double_int_* and
17656 immed_double_int_const functions.
17657
bc492e47
RO
176582010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17659
17660 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
17661 stderr to /dev/null instead of grep -q.
17662 * configure: Regenerate.
17663
245763e3
SB
176642010-05-25 Steven Bosscher <steven@gcc.gnu.org>
17665
17666 * Makefile.in (EXCEPT_H): Fix typo.
17667
f4a4b582 176682010-05-25 Vladimir Makarov <vmakarov@redhat.com>
4ac293e2
VM
17669
17670 * ira-build.c (update_conflict_hard_reg_costs): New.
17671 (ira_build): Call update_conflict_hard_reg_costs.
17672
60a5d78a
JJ
176732010-05-25 Jakub Jelinek <jakub@redhat.com>
17674
bb9862c6
JJ
17675 PR debug/41371
17676 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
17677 ENABLE_CHECKING.
17678 (intersect_loc_chains): Walk the s2var's loc_chain together
17679 with s1node chain as long as the locations are equal, don't
17680 call find_loc_in_1pdv in that case.
17681
60a5d78a
JJ
17682 PR debug/42801
17683 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
17684 (copy_bind_expr): ... instead of here.
17685 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
17686 if the block hasn't been remapped.
17687 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
17688 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
17689
c946a318
RG
176902010-05-25 Richard Guenther <rguenther@suse.de>
17691
17692 PR middle-end/44069
17693 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
17694 out-of-bounds array accesses.
17695
50ee30d5
RG
176962010-05-25 Richard Guenther <rguenther@suse.de>
17697
17698 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
17699 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
17700 (run_gcc): Re-organize to make cleanup easier.
17701
ca1930ce
AK
177022010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17703
17704 * config/s390/s390.c (optimization_options): Fix and move the
17705 flag_prefetch_loop_arrays override ...
17706 (override_options): ... here.
17707
a13812e2
JM
177082010-05-25 Joseph Myers <joseph@codesourcery.com>
17709
17710 * diagnostic.c: Don't include plugin.h.
17711 (diagnostic_report_diagnostic): Don't handle plugins specially
17712 here. Pass context to internal_error callback.
17713 * diagnostic.h (struct diagnostic_context): Add context parameter
17714 to internal_error callback.
ade52657 17715 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
a13812e2
JM
17716 * plugin.h (struct diagnostic_context): Declare.
17717 (warn_if_plugins, plugins_internal_error_function): Declare.
17718 * toplev.c (general_init): Set global_dc->internal_error.
17719 * Makefile.in (diagnostic.o): Update dependencies.
17720
a691bb08 177212010-05-25 Iain Sandoe <iains@gcc.gnu.org>
9a2d05e0
IS
17722
17723 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
17724 * config/rs6000/t-darwin64: New.
17725 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
17726 build crt2.
17727
8fde8b40
CB
177282010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
17729
17730 PR 44203
17731 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
17732 match the original (and intended) behaviour before r159557. This
17733 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
17734 in two ways.
17735
be6d3f0e
RG
177362010-05-25 Richard Guenther <rguenther@suse.de>
17737
17738 * doc/invoke.texi: Document -Ofast.
17739 * target.h (struct gcc_target): Add handle_ofast.
17740 * target-def.h (TARGET_HANDLE_OFAST): Add.
17741 (TARGET_INITIALIZER): Adjust.
ade52657 17742 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
be6d3f0e
RG
17743 * common.opt (Ofast): Add.
17744
ac5eda13
PB
177452010-05-25 Paolo Bonzini <bonzini@gnu.org>
17746
17747 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
17748 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
17749
177502010-05-25 Paolo Bonzini <bonzini@gnu.org>
6597fd0b
PB
17751
17752 PR target/43610
17753 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
17754 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
17755 false_rtx. Use false_rtx to compute the correct *ptest for reversed
17756 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
17757
9d4545b2
JJ
177582010-05-25 Jakub Jelinek <jakub@redhat.com>
17759
17760 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
17761 DW_OP_minus with negated offset instead of DW_OP_plus.
ade52657 17762 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
9d4545b2 17763
ee4e1706
WG
177642010-05-25 Wei Guozhi <carrot@google.com>
17765
17766 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
17767 tst instruction and a new alternative.
17768 * config/arm/constraints.md (Pu): New constraint.
17769
427188d5
SP
177702010-05-24 Sebastian Pop <sebastian.pop@amd.com>
17771
17772 * function.c (assign_stack_local_1): Initialize variable
17773 to avoid warning when bootstrapping at -O3.
17774
96ee6e08
SB
177752010-05-24 Steven Bosscher <steven@gcc.gnu.org>
17776
17777 * configure.ac (all_lang_makefiles): Remove everything related to it.
17778 * configure: Regenerate.
17779 * Makefile.in: Fix reference to ada Make-lang.in.
17780 Remove support for LANG_MAKEFILES.
17781
1ab55d69
MK
177822010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
17783 Sandra Loosemore <sandra@codesourcery.com>
17784
17785 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
17786 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
17787 description. Add arm_neon_fp16_ok.
17788 (Add Options): Add arm_neon and arm_neon_fp16.
17789
243fbddd
JM
177902010-05-24 Joseph Myers <joseph@codesourcery.com>
17791
17792 * diagnostic.c: Don't include flags.h.
17793 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
ade52657 17794 context parameters. Check flags in the context passed as a parameter.
243fbddd
JM
17795 (diagnostic_build_prefix): Add context parameter. Check
17796 show_column flag in context.
ade52657
UB
17797 (diagnostic_action_after_output): Check fatal_errors flag in context.
17798 (diagnostic_report_current_module): Check show_column flag in context.
243fbddd
JM
17799 (default_diagnostic_starter): Update call to
17800 diagnostic_build_prefix.
ade52657 17801 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
243fbddd
JM
17802 (emit_diagnostic): Pass context to permissive_error_kind.
17803 (permerror): Pass context to permissive_error_kind.
17804 * diagnostic.h (struct diagnostic_context): Add show_column,
17805 pedantic_errors, permissive and fatal_errors fields.
17806 (diagnostic_build_prefix): Update prototype.
17807 * langhooks.c
17808 * toplev.c (process_options): Set flags in global_dc from
17809 flag_show_column, flag_pedantic_errors, flag_permissive,
17810 flag_fatal_errors.
17811 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
17812 to diagnostic_build_prefix.
17813 * Makefile.in (diagnostic.o): Update dependencies.
17814
42f40af4
L
178152010-05-24 H.J. Lu <hongjiu.lu@intel.com>
17816
17817 * config/i386/ia32intrin.h (__crc32q): Define only if
17818 __SSE4_2__ is defined.
17819
1db0429a
IS
178202010-05-24 Iain Sandoe <iains@gcc.gnu.org>
17821
17822 PR target/44132
17823 PR middle-end/43602
17824 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
17825 DECL_VISIBILITY_SPECIFIED.
17826 (emutls_decl): Set DECL_PRESERVE_P and copy
17827 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
17828 (emutls_finalize_control_var): New callback.
17829 (emutls_finish): Finalize emutls control variables.
ade52657 17830 * toplev.c (compile_file): Move the call to emutls_finish ()
1db0429a
IS
17831 before varpool_assemble_pending_decls ().
17832
e72e2da4
DG
178332010-05-24 Daniel Gutson <dgutson@codesourcery.com>
17834
17835 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
17836 added to the preprocessor condition.
17837
b748fbd6
PB
178382010-05-24 Paul Brook <paul@codesourcery.com>
17839
17840 * gengtype-lex.l: Add HARD_REG_SET.
17841 * expr.c (expand_expr_real_1): Record writes to hard registers.
17842 * function.c (rtl_data): Add asm_clobbers.
17843 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
17844 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
17845 Use crtl->asm_clobbers.
17846
9888e9cf
RW
178472010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17848
17849 * doc/makefile.texi (Makefile): Mention stages 'profile'
17850 and 'feedback' for profiledbootstrap.
17851
cf5b989e
L
178522010-05-23 H.J. Lu <hongjiu.lu@intel.com>
17853
17854 PR target/44245
17855 * config/i386/i386.c (def_builtin): Properly check
17856 OPTION_MASK_ISA_64BIT.
17857
dc5027f4
JM
178582010-05-23 Joseph Myers <joseph@codesourcery.com>
17859
17860 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
17861 typedefs with different but compatible types. Allow duplicate
17862 typedefs with the same type except for pedantic non-C1X, but give
17863 warning for variably modified types.
17864 * c-typeck.c (tagged_types_tu_compatible_p,
17865 function_types_compatible_p, type_lists_compatible_p,
17866 comptypes_internal): Add parameter different_types_p; set
17867 *different_types_p for different but compatible types. All
17868 callers changed.
17869 (comptypes_check_different_types): New.
17870 * c-tree.h (comptypes_check_different_types): Declare.
17871
2d1a4cc1
SB
178722010-05-23 Steven Bosscher <steven@gcc.gnu.org>
17873
ade52657 17874 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
2d1a4cc1
SB
17875 * jump.c: Include basic-block.h.
17876 * profile.c: Likewise.
17877 * tree-profile.c: Likewise.
17878 * coverage.c: Likewise.
17879 * basic-block.h (optimize_function_for_size_p): Move to function.h.
17880 (optimize_function_for_speed_p): Likewise.
17881 * function.h (optimize_function_for_size_p,
17882 optimize_function_for_speed_p): Moved here from basic-block.h.
539bac37 17883 * Makefile.in: Update dependencies.
2d1a4cc1 17884
5767217f
RW
178852010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17886
17887 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
17888 before calling make; allow override through $MAKE.
17889 * doc/invoke.texi (Optimize Options): Document override.
17890
7a955d62
AS
178912010-05-23 Anatoly Sokolov <aesok@post.ru>
17892
17893 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
17894 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17895 (rs6000_mode_dependent_address_ptr): Make static.
17896 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17897 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
17898 Remove.
17899
362ff46e 179002010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
7b37a805
ML
17901
17902 PR target/43869
17903 * config/i386/i386.c: Make sure that the correct regparm is passed.
17904
9ecb1730
SB
179052010-05-23 Steven Bosscher <steven@gcc.gnu.org>
17906
17907 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
17908 * sbitmap.c: ...to here to internalize sbitmap element access.
17909 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
17910 Explain why basic-block.h is included.
17911 * function.h: Include tm.h for CUMULATIVE_ARGS.
17912 * Makefile.in: Update dependencies.
17913
7a8cba34
SB
179142010-05-22 Steven Bosscher <steven@gcc.gnu.org>
17915
17916 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
17917 New core types.
17918 * sbitmap.h (struct sbitmap_def): Do not typedef here.
17919 * sbitmap.c: Include sbitmap.h.
17920 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
17921 hard-reg-set.h. Split everything related to regsets out from here...
17922 * regset.h: ...to here. New file.
17923 * df.h: Include regset.h and sbitmap.h.
17924 * tree-flow.h: Likewise.
17925 * cfgloop.h: Likewise.
17926 * except.h: Do not include sbitmap.h. Include hashtab.h.
17927 * cgraph.h: Include vec.h and function.h.
17928 * reload.h (struct insn_chain): Change types of live_throughout
17929 and dead_or_set from regset_head to bitmap_head.
17930 (compute_use_by_pseudos): Be defined also if regset.h is not included.
17931 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
17932 spilled_regs from regset_head to bitmap_head to avoid dependency
17933 in regset.h.
17934 * sel-sched-ir.h: Include regset.h.
17935 * reload.c: Include df.h before reload.h.
17936 * caller-save.c: Likewise.
17937 * reload1.c: Likewise.
17938 * ira.c: Likewise.
17939 (mark_elimination): Update type of r to bitmap, consistent with
17940 DF_LR_IN.
17941 * dominance.c: Include bitmap.h.
17942 * modulo-sched.c: Include df.h.
17943 * cfganal.c: Include bitmap.h and sbitmap.h.
17944 * cfgbuild.c: Include sbitmap.h.
17945 * lcm.c: Include sbitmap.h.
17946 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
17947 * domwalk.c: Include sbitmap.h, exclude ggc.h.
17948 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
17949 * cselib.c: Include bitmap.h.
17950 * tree-optimize.c: Include regset.h.
17951 * stmt.c: Include bitmap.h.
17952 * Makefile.in: Update dependencies.
17953
9f90e80a
JH
179542010-05-22 Jan Hubicka <jh@suse.cz>
17955
17956 * cgraph.h (struct varpool_node): Add same_comdat_group.
17957 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
17958 pointer.
17959 (output_varpool): Update call of lto_output_varpool_node.
17960 (input_varpool): Read same_comdat_group pointer.
17961 (input_varpool_1): Fixup same_comdat_group pointer.
17962 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
17963 group is needed, all are.
17964 * varpool.c (varpool_remove_node): Remove node from same comdat group
17965 linklist too.
17966 (varpool_analyze_pending_decls): Walk same comdat groups.
17967
a2c9fe42
SB
179682010-05-22 Steven Bosscher <steven@gcc.gnu.org>
17969
17970 * rtl.h (union rtunion_def): Remove rt_bit member.
17971 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
17972 * print-rtl (print_rtx): Do not print the member.
17973 * gengtype.c (adjust_field_rtx_def): Do not handle it.
17974 * gengenrtl.c (type_from_format): Likewise.
17975 (accessor_from_format): Likewise.
17976
3b2ce251
JM
179772010-05-22 Joseph Myers <joseph@codesourcery.com>
17978
17979 * dbgcnt.c: Include toplev.h instead of errors.h.
17980 * ira-emit.c: Don't include errors.h.
17981 * ira.c: Include toplev.h instead of errors.h.
17982 * lto-compress.c: Include toplev.h instead of errors.h.
17983 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
17984 ira.o, dbgcnt.o): Update dependencies.
17985
bd9eb5da
RG
179862010-05-22 Richard Guenther <rguenther@suse.de>
17987
17988 * gimple.c (gimple_types_compatible_p): Check type qualifications
17989 before merging pointer to complete and pointer to incomplete type.
17990 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
17991 we use our own resolution algorithm. The gold linker plugin
17992 doesn't do the job we want it to do here.
17993
277e2873
AS
179942010-05-22 Anatoly Sokolov <aesok@post.ru>
17995
17996 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17997 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17998 (sparc_mode_dependent_address_p): New function.
17999
613b1547
SB
180002010-05-21 Steven Bosscher <steven@gcc.gnu.org>
18001
18002 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
18003
18004 * timevar.c: Do not include any core headers.
18005 (timevar_print): De-i18n-ize.
18006 (print_time): Likewise.
18007 * timevar.h (timevar_push, timevar_pop): Make inline functions.
18008
cf835838
JM
180092010-05-21 Joseph Myers <joseph@codesourcery.com>
18010
18011 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
18012 langhooks-def.h.
18013 (diagnostic_initialize): Initialize x_data not last_function.
18014 (diagnostic_report_current_function): Move to tree-diagnostic.c.
18015 (default_diagnostic_starter): Call
18016 diagnostic_report_current_module not
18017 diagnostic_report_current_function.
18018 (diagnostic_report_diagnostic): Initialize x_data not
18019 abstract_origin.
18020 (verbatim): Likewise.
18021 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
18022 x_data.
18023 (struct diagnostic_context): Change last_function to x_data.
18024 (diagnostic_auxiliary_data): Replace with
18025 diagnostic_context_auxiliary_data and
18026 diagnostic_info_auxiliary_data.
18027 (diagnostic_last_function_changed, diagnostic_set_last_function,
18028 diagnostic_report_current_function): Move to tree-diagnostic.h.
18029 (print_declaration, dump_generic_node, print_generic_stmt,
18030 print_generic_stmt_indented, print_generic_expr,
18031 print_generic_decl, debug_c_tree, dump_omp_clauses,
18032 print_call_name, debug_generic_expr, debug_generic_stmt,
18033 debug_tree_chain, default_tree_printer): Move to
18034 tree-pretty-print.h.
18035 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
18036 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
18037 gimple-pretty-print.h.
18038 * pretty-print.c: Don't include tree.h
18039 (pp_base_format): Don't handle %K here.
18040 (pp_base_tree_identifier): Move to tree-pretty-print.c.
18041 * pretty-print.h (text_info): Change abstract_origin to x_data.
18042 (pp_tree_identifier, pp_unsupported_tree,
18043 pp_base_tree_identifier): Move to tree-pretty-print.h.
18044 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
18045 tree-pretty-print.h: New files.
18046 * tree-pretty-print.c: Include tree-pretty-print.h.
18047 (percent_K_format): New. Moved from pretty-print.c.
18048 (pp_base_tree_identifier): Move from pretty-print.c.
18049 * c-objc-common.c: Include tree-pretty-print.h.
18050 (c_tree_printer): Handle %K here.
18051 * langhooks.c: Include tree-diagnostic.h.
18052 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
18053 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
18054 (default_tree_printer): Handle %K using percent_K_format.
18055 (general_init): Use default_tree_diagnostic_starter.
18056 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
18057 (free_lang_data): Use default_tree_diagnostic_starter.
18058 * c-pretty-print.c: Include tree-pretty-print.h.
ade52657
UB
18059 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18060 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
18061 * dwarf2out.c: Include tree-pretty-print.h.
18062 * except.c: Include tree-pretty-print.h.
18063 * gimple-pretty-print.c: Include tree-pretty-print.h and
18064 gimple-pretty-print.h.
18065 * gimplify.c: Include tree-pretty-print.h.
18066 * graphite-poly.c: Include tree-pretty-print.h and
18067 gimple-pretty-print.h.
18068 * ipa-cp.c: Include tree-pretty-print.h.
18069 * ipa-inline.c: Include gimple-pretty-print.h.
ade52657 18070 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
18071 * ipa-pure-const.c: Include gimple-pretty-print.h.
18072 * ipa-struct-reorg.c: Include tree-pretty-print.h and
18073 gimple-pretty-print.h.
18074 * ipa-type-escape.c: Include tree-pretty-print.h.
18075 * print-rtl.c: Include tree-pretty-print.h.
18076 * print-tree.c: Include gimple-pretty-print.h.
18077 * sese.c: Include tree-pretty-print.h.
18078 * tree-affine.c: Include tree-pretty-print.h.
18079 * tree-browser.c: Include tree-pretty-print.h.
18080 * tree-call-cdce.c: Include gimple-pretty-print.h.
ade52657 18081 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
18082 * tree-chrec.c: Include tree-pretty-print.h.
18083 * tree-data-ref.c: Include tree-pretty-print.h and
18084 gimple-pretty-print.h.
18085 * tree-dfa.c: Include tree-pretty-print.h.
18086 * tree-if-conv.c: Include tree-pretty-print.h and
18087 gimple-pretty-print.h.
18088 * tree-inline.c: Include tree-pretty-print.h.
18089 * tree-into-ssa.c: Include tree-pretty-print.h and
18090 gimple-pretty-print.h.
18091 * tree-nrv.c: Include tree-pretty-print.h.
18092 * tree-object-size.c: Include tree-pretty-print.h and
18093 gimple-pretty-print.h.
18094 * tree-outof-ssa.c: Include tree-pretty-print.h and
18095 gimple-pretty-print.h.
18096 * tree-parloops.c: Include tree-pretty-print.h and
18097 gimple-pretty-print.h.
18098 * tree-predcom.c: Include tree-pretty-print.h and
18099 gimple-pretty-print.h.
18100 * tree-scalar-evolution.c: Include tree-pretty-print.h and
18101 gimple-pretty-print.h.
18102 * tree-sra.c: Include tree-pretty-print.h.
18103 * tree-ssa-address.c: Include tree-pretty-print.h.
18104 * tree-ssa-alias.c: Include tree-pretty-print.h.
18105 * tree-ssa-ccp.c: Include tree-pretty-print.h and
18106 gimple-pretty-print.h.
18107 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
18108 * tree-ssa-copy.c: Include tree-pretty-print.h and
18109 gimple-pretty-print.h.
18110 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
18111 * tree-ssa-dce.c: Include tree-pretty-print.h and
18112 gimple-pretty-print.h.
18113 * tree-ssa-dom.c: Include tree-pretty-print.h and
18114 gimple-pretty-print.h.
18115 * tree-ssa-dse.c: Include gimple-pretty-print.h.
18116 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
18117 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
18118 * tree-ssa-live.c: Include tree-pretty-print.h and
18119 gimple-pretty-print.h.
18120 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
18121 gimple-pretty-print.h.
18122 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
18123 gimple-pretty-print.h.
18124 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
18125 gimple-pretty-print.h.
18126 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
18127 gimple-pretty-print.h.
18128 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
18129 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
18130 * tree-ssa-operands.c: Include tree-pretty-print.h and
18131 gimple-pretty-print.h.
18132 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
18133 gimple-pretty-print.h.
18134 * tree-ssa-pre.c: Include tree-pretty-print.h and
18135 gimple-pretty-print.h.
18136 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
18137 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
18138 gimple-pretty-print.h.
18139 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
18140 gimple-pretty-print.h.
18141 * tree-ssa-sink.c: Include gimple-pretty-print.h.
18142 * tree-ssa-ter.c: Include tree-pretty-print.h and
18143 gimple-pretty-print.h.
18144 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
18145 * tree-ssa.c: Include tree-pretty-print.h and
18146 gimple-pretty-print.h.
18147 * tree-stdarg.c: Include gimple-pretty-print.h.
18148 * tree-switch-conversion.c: Include gimple-pretty-print.h.
18149 * tree-tailcall.c: Include tree-pretty-print.h and
18150 gimple-pretty-print.h.
18151 * tree-vect-data-refs.c: Include tree-pretty-print.h and
18152 gimple-pretty-print.h.
18153 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
18154 gimple-pretty-print.h.
18155 * tree-vect-loop.c: Include tree-pretty-print.h and
18156 gimple-pretty-print.h.
18157 * tree-vect-patterns.c: Include gimple-pretty-print.h.
18158 * tree-vect-slp.c: Include tree-pretty-print.h and
18159 gimple-pretty-print.h.
18160 * tree-vect-stmts.c: Include tree-pretty-print.h and
18161 gimple-pretty-print.h.
18162 * tree-vectorizer.c: Include tree-pretty-print.h.
18163 * tree-vrp.c: Include tree-pretty-print.h and
18164 gimple-pretty-print.h.
18165 * value-prof.c: Include tree-pretty-print.h and
18166 gimple-pretty-print.h.
18167 * var-tracking.c: Include tree-pretty-print.h.
18168 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
18169 (tree-diagnostic.o): New dependencies.
18170 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
18171 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
18172 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
18173 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
18174 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
18175 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
18176 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
18177 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
18178 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
18179 tree-ssa-address.o, tree-ssa-loop-niter.o,
18180 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
18181 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
18182 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
18183 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
18184 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
18185 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
18186 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
18187 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
18188 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
18189 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
18190 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
18191 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
18192 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
18193 tree-switch-conversion.o, var-tracking.o, value-prof.o,
18194 cfgexpand.o, pretty-print.o): Update dependencies.
18195
cf4f4175
AT
181962010-05-22 Andreas Tobler <andreast@fgznet.ch>
18197
18198 * tree-ssa-structalias.c: Remove tm_p.h from include.
18199
c6d0f11a
JL
182002010-05-21 Jeff Law <law@redhat.com>
18201
18202 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
18203
d3f28910
JM
182042010-05-21 Jason Merrill <jason@redhat.com>
18205
18206 * tree-eh.c (cleanup_is_dead_in): New.
18207 (lower_try_finally): Don't generate a dead cleanup region.
18208 (lower_cleanup): Likewise.
18209
14db98d4
JJ
182102010-05-21 Jakub Jelinek <jakub@redhat.com>
18211
18212 PR debug/44223
18213 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
18214 unchain each use from the cyclic next_regno_use chain first.
18215
d49b6e1e
SB
182162010-05-21 Steven Bosscher <steven@gcc.gnu.org>
18217
18218 * real: Do not include gmp.h, mpfr.h, and mpc.h.
18219 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
18220 (real_value_negate, real_value_abs): New prototypes.
18221 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
18222 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
18223 new include file for interface between MPFR and REAL_VALUE_TYPE.
18224 * real.c: Include realmpfr.h.
18225 (real_arithmetic2): Remove legacy function.
18226 (real_value_negate): New.
18227 (real_value_abs): New.
18228 (mfpr_from_real, real_from_mpfr): Move from here...
18229 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
18230 * builtins.c: Include realmpfr.h.
18231 * fold-const.c: Include realmpfr.h.
18232 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
18233 (fold_negate_const): Likewise.
18234 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
18235 * toplev.c: Include realmpfr.h.
18236 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
18237 and real_value_negate.
18238 * fixed-value.c (check_real_for_fixed_mode): Likewise.
18239 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
18240 (vfp3_const_double_index): Likewise.
18241 (arm_print_operand): Likewise.
18242 * Makefile.in: Update dependencies.
18243
5b4b1c9a
AK
182442010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18245
18246 * config/s390/s390.c (override_options): Increase the default
18247 of max-completely-peel-times.
18248
7c19c715
JB
182492010-05-21 Julian Brown <julian@codesourcery.com>
18250 Mark Mitchell <mark@codesourcery.com>
18251
18252 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
18253 sibling calls for Thumb-1.
18254 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
18255 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
18256 Thumb-2.
18257 (*call_insn, *call_value_insn): Don't use for Thumb-2.
18258 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
18259 for Thumb-2.
18260 (return): New expander.
18261 (*arm_return): New name for ARM return insn.
18262 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
18263
f4a4b582 182642010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
3943fe02
JS
18265
18266 * config.gcc (sparc64-*-rtems*): New target.
18267
95f6e526
NF
182682010-05-21 Nathan Froyd <froydnj@codesourcery.com>
18269
18270 * tree.c (build_function_decl_skip_args): Fix grammar.
18271 (build_function_type_list_1): Fix typos, adjust formatting.
18272
40013784
SB
182732010-05-21 Steven Bosscher <steven@gcc.gnu.org>
18274
18275 * tree.h: Include real.h and fixed-value.h as basic datatypes.
18276 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
18277 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
18278 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
18279 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
18280 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
18281 tree-pretty-print.c, tree-loop-distribution.c,
18282 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
18283 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
18284 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
18285 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
18286 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
18287 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
18288 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
18289 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
18290 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
18291 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
18292 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
18293 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
18294 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
18295 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
18296 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
18297 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
18298 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
18299 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
18300 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
18301 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
18302 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
18303 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
18304 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
18305 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
18306 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
18307 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
18308 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
18309 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
18310 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
18311 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
18312 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
18313 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
18314 config/score/score7.c, config/score/score.c, config/arm/arm.c,
18315 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
18316 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
ade52657 18317 config/bfin/bfin.c: Clean up redundant includes.
40013784
SB
18318 * Makefile.in: Update accordingly.
18319
0a7561b7
NF
183202010-05-21 Nathan Froyd <froydnj@codesourcery.com>
18321
18322 PR middle-end/44204
18323 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
18324 statement has no arguments.
18325
e1935569
KT
183262010-05-21 Kai Tietz <kai.tietz@onevision.com>
18327
18328 PR/44139
18329 * varasm.c (emutls_decl): Merge attributes to new decl.
18330
46314d3e
EB
183312010-05-21 Eric Botcazou <ebotcazou@adacore.com>
18332
18333 PR middle-end/44101
18334 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
18335 around the uniquized constructor if its type requires a conversion.
18336
f99fcb3b
JJ
183372010-05-21 Jakub Jelinek <jakub@redhat.com>
18338
18339 PR debug/44205
18340 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
18341 at -O0 goto_locus of any of the incoming edges differs from
18342 goto_locus of outgoing edge, or gimple_location of any of the
18343 labels differs.
18344
f4a4b582 183452009-09-14 Vladimir Makarov <vmakarov@redhat.com>
0583835c
VM
18346
18347 * ira.c (ira_non_ordered_class_hard_regs): Define.
ade52657 18348 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
0583835c
VM
18349 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
18350 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
18351 cost of unaligned hard regs when allocating multi-reg pseudos.
18352
9f946bc1
RS
183532010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
18354
18355 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
18356 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
18357 for TARGET_NO_FLOAT.
18358 * config/mips/mips.c (mips_file_start): Expand conditional expression
18359 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
18360 (mips_override_options): Move -mno-float override -msoft-float and
18361 -mhard-float.
18362 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
18363 Condition(TARGET_SUPPORTS_NO_FLOAT).
18364 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
18365 __mips_no_float here.
18366 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
18367 (TARGET_SUPPORTS_NO_FLOAT): Define.
18368 * config/mips/sdemtk.opt: Delete.
18369
69610617
SB
183702010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
18371
ade52657 18372 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
69610617 18373
953c29f7
UB
183742010-05-20 Uros Bizjak <ubizjak@gmail.com>
18375
18376 PR target/43733
18377 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
18378 * configure: Regenerate.
18379 * config.in: Regenerate.
18380 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
18381 instead of sahf only for 64bit targets.
18382
69b45d71
JJ
183832010-05-20 Jakub Jelinek <jakub@redhat.com>
18384
18385 PR debug/44178
18386 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
18387 setup_ref_regs for DEBUG_INSNs.
18388
a14f1878
JH
183892010-05-20 Jan Hubicka <jh@suse.cz>
18390
18391 PR middle-end/44197
18392 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
18393
5797be12
KZ
183942010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
18395
18396 PR bootstrap/43870
18397 * df-scan.c (df_ref_compare): Stabilize sort.
18398
f1ca3117
JJ
183992010-05-20 Jakub Jelinek <jakub@redhat.com>
18400
18401 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
18402 argument. Don't use DW_OP_piece if offset is non-zero,
18403 put offset into second DW_OP_bit_piece argument.
18404 (dw_sra_loc_expr): Adjust callers. For memory expressions
18405 compute offset.
18406
d8ec9c14
HPN
184072010-05-20 Hans-Peter Nilsson <hp@axis.com>
18408
18409 PR target/44202
18410 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
18411 settings for 16-bit-constant "addo" alternative.
18412
951771dc
JW
184132010-05-19 James E. Wilson <wilson@codesourcery.com>
18414
9af157ac
JW
18415 * config/mips/mips-dsp.md (add<DSPV:mode>3,
18416 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
18417
951771dc
JW
18418 PR target/43764
18419 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
18420 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
18421 Use it.
18422
676dd4d4
JM
184232010-05-19 Joseph Myers <joseph@codesourcery.com>
18424
18425 * diagnostic.c (FLOAT, FFS): Don't undefine.
18426 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
18427 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
18428 include ordering.
18429
caba7aaa
RS
184302010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
18431
18432 * combine.c (propagate_for_debug): Call make_compound_operation
18433 on the source value.
18434 (try_combine): When implementing a split chosen by find_split_point,
18435 either copy i2src or set it to null. Assert that i2src is not null
18436 before substituting into CALL_INSN_FUNCTION_USAGE.
18437
1961ffb8
AS
184382010-05-19 Anatoly Sokolov <aesok@post.ru>
18439
18440 * double-int.h (double_int_ior): New function.
18441 * tree.h (build_int_cst_wide_type): Remove.
18442 * tree.c (build_int_cst_wide_type): Remove.
18443 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
18444 of build_int_cst_wide_type.
18445 * stor-layout.c (set_sizetype): (Ditto.).
18446 * dojump.c (do_jump): Use build_int_cstu instead of
18447 build_int_cst_wide_type.
18448
616f1431
EB
184492010-05-19 Eric Botcazou <ebotcazou@adacore.com>
18450
18451 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
18452 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
18453 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
ade52657 18454 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
616f1431
EB
18455 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
18456 propagate the 'data' argument to copy_tree_r.
18457 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
18458 Propagate 'data' argument to walk_tree.
18459 (copy_if_shared): New function.
18460 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
18461 (unmark_visited): New function.
18462 (unshare_body): Call copy_if_shared instead of doing it manually.
18463 (unvisit_body): Call unmark_visited instead of doing it manually.
18464
f311c3b4
NF
184652010-05-19 Nathan Froyd <froydnj@codesourcery.com>
18466
18467 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
18468 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
18469 * hooks.c: Likewise.
18470 * target-def.h (TARGET_FOLD_BUILTIN): Define to
18471 hook_tree_tree_int_treep_bool_null.
ade52657 18472 * target.h (struct gcc_target): Update signature of fold_builtin
f311c3b4
NF
18473 field.
18474 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
18475 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
18476 instead of the call expression.
18477 (fold_builtin_call_array): Pass n and argarray directly.
18478 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
18479 consing a list.
18480 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
18481 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
18482 `i' and use it in place of `arity'.
18483 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
18484 Dereference `args' directly.
18485 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
18486
40f1bdd9
RO
184872010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18488
18489 * doc/sourcebuild.texi (Effective-Target Keywords): Document
18490 3dnow, sse3, sse2.
18491 (Directives): Document optional dg-require-effective-target
18492 selector.
18493
817c2996
RG
184942010-05-19 Richard Guenther <rguenther@suse.de>
18495
18496 PR lto/44196
18497 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
18498
c04b6b38
RG
184992010-05-19 Richard Guenther <rguenther@suse.de>
18500
18501 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
18502 * common.opt (fwhopr=): New.
18503 * opts.c (common_handle_option): Handle OPT_fwhopr.
18504 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
18505 * collect2.c (main): Match -fwhopr*.
18506 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
18507 Execute ltrans stage in parallel when jobs is bigger than 1.
18508
ed104137
RO
185092010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18510
18511 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18512 pentiumpro on Solaris 8/x86 with Sun as.
18513 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
18514 hidden alias bug.
18515 (gcc_cv_as_ix86_quad): Check for .quad directive.
18516 * configure: Regenerate.
18517 * config.in: Regenerate.
18518 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
18519
749aa96d
MJ
185202010-05-19 Martin Jambor <mjambor@suse.cz>
18521
18522 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
18523 also for indirect edges. Actual printing moved...
18524 (ipa_print_node_jump_functions_for_edge): ...here.
18525 (ipa_compute_jump_functions): Renamed to
18526 ipa_compute_jump_functions_for_edge and made static.
18527 (ipa_compute_jump_functions): New function.
18528 (make_edge_direct_to_target): Check if the number of arguments on
18529 the newly direct edge is the same as the number of parametrs of
18530 the callee.
18531 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
18532 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
18533 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18534 analysis functions unconditionally, call the new
18535 ipa_analyze_params_uses on the node instead of every edge.
18536
81f32326
CB
185372010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
18538
431043bd 18539 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
81f32326 18540 to tree.
431043bd 18541 (dump_mem_ref): Adopt debug code to handle a tree as step. This
81f32326
CB
18542 also checks for a constant int vs. non-constant but
18543 loop-invariant steps.
431043bd 18544 (find_or_create_group): Change the sort algorithm to only consider
81f32326 18545 steps that are constant ints.
431043bd 18546 (idx_analyze_ref): Adopt code to handle a tree instead of a
81f32326 18547 HOST_WIDE_INT for step.
431043bd 18548 (gather_memory_references_ref): Handle tree instead of int and be
81f32326 18549 prepared to see a NULL_TREE.
431043bd 18550 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
81f32326 18551 prefetches if the step cannot be calculated at compile time.
431043bd 18552 (issue_prefetch_ref): Issue prefetches for non-constant but
81f32326
CB
18553 loop-invariant steps.
18554
39b27b3a
NF
185552010-05-18 Nathan Froyd <froydnj@codesourcery.com>
18556
18557 Revert:
18558 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
18559
18560 * tree.h (build_call_list): Remove.
18561 * tree.c (build_call_list): Remove.
18562
3fcb9d1b
NF
185632010-05-18 Nathan Froyd <froydnj@codesourcery.com>
18564
18565 * tree.h (build_call_list): Remove.
18566 * tree.c (build_call_list): Remove.
18567
58efc3ac
JH
185682010-05-18 Jan Hubicka <jh@suse.cz>
18569
18570 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
18571
0495bafc
VM
185722010-05-18 Vladimir Makarov <vmakarov@redhat.com>
18573
18574 PR rtl-optimization/43332
18575 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
18576
abdbbf16
AS
185772010-05-18 Anatoly Sokolov <aesok@post.ru>
18578
18579 * tree.h (build_int_cstu): Implement as static inline.
18580 * tree.c (build_int_cstu): Remove function.
18581 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
18582 sign extended.
18583
cf96bae7
RG
185842010-05-18 Richard Guenther <rguenther@suse.de>
18585
18586 PR lto/44143
18587 * lto-wrapper.c (verbose): New variable. Initialize from -v.
18588 (debug): Initialize from -save-temps.
18589 (collect_execute): Print command-line when verbose.
18590 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
18591 for ltrans invocation. Produce -dumpbase flag again.
18592 (process_args): Remove.
18593 (main): Simplify.
18594 * collect2.c (maybe_run_lto_and_relink): Only pass object
18595 files to lto-wrapper.
18596 * gcc.c (LINK_COMMAND_SPEC): Likewise.
18597
80e2a014
JH
185982010-05-18 Jan Hubicka <jh@suse.cz>
18599
18600 * opts.c (decode_options): Do not disable whopr at ipa_cp.
18601 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
18602
174f391c
SB
186032010-05-18 Steven Bosscher <steven@gcc.gnu.org>
18604
18605 PR lto/44184
18606 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
18607 in a GIMPLE_ASM.
18608 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
18609 in a GIMPLE_ASM.
18610
13077931
JJ
186112010-05-18 Jakub Jelinek <jakub@redhat.com>
18612
18613 PR debug/41371
18614 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
18615 rtx_equal_p inline.
18616
02540df4
SB
186172010-05-18 Steven Bosscher <steven@gcc.gnu.org>
18618
18619 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
18620 lto-macho as lto_binary_reader.
18621
18622 * darwin.c (darwin_asm_named_section): Do not add assembler comment
18623 after .section directive; just print it before the directive instead.
18624
36576655
JH
186252010-05-17 Jan Hubicka <jh@suse.cz>
18626
18627 * cgraph.c (cgraph_create_virtual_clone): Only check
18628 versionable_function_p when not in wpa and checking is enabled.
18629 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
18630 there are no more functions to materialize.
18631
922f15c2
JH
186322010-05-17 Jan Hubicka <jh@suse.cz>
18633
18634 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
18635 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
18636 New functions.
18637 (output_cgraph): Call output_cgraph_opt_summary.
18638 (input_cgrpah): Call input_cgraph_opt_summary.
18639 (output_cgraph_opt_summary_p, output_node_opt_summary,
18640 input_node_opt_summary, input_cgraph_opt_section): New functions.
18641 * lto-section-in.c (lto_section_name): Add cgraphopt.
18642 * tree-inline.c (tree_function_versioning): Handle parm_num.
18643 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
18644 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
18645
d3a9b459
CF
186462010-05-17 Changpeng Fang <changpeng.fang@amd.com>
18647
18648 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
18649 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
18650 the insn to prefetch ratio heuristic to loops with known trip count.
18651
8532678c
CF
186522010-05-17 Changpeng Fang <changpeng.fang@amd.com>
18653
18654 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
18655 (schedule_prefetches): Do not generate a prefetch if the unroll factor
18656 is far from what is required by the prefetch.
18657
339f49ec
JH
186582010-05-17 Jan Hubicka <jh@suse.cz>
18659
18660 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
18661 (ipcp_estimate_growth): Likewise.
18662 (ipcp_const_param_count): Likewise.
18663 (ipcp_insert_stage): Likewise.
18664 * ipa-prop.c (visit_load_for_mod_analysis): New function.
18665 (visit_store_addr_for_mod_analysis): Set used flag.
18666 (ipa_detect_param_modifications): Set used flag for SSE params;
18667 update use of walk_stmt_load_store_addr_ops.
18668 (ipa_print_node_params): Print used flag.
18669 (ipa_write_node_info): Stream used flag.
18670 (ipa_read_node_info): Likewise.
18671 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
18672 (ipa_is_param_used): New function.
18673 (lto_ipa_fixup_call_notes): Remove unused declaration.
18674
2433310d
RO
186752010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18676
18677 PR target/44074
18678 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
18679 * configure: Regenerate.
18680 * config.in: Regenerate.
431043bd 18681 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
2433310d
RO
18682 !HAVE_AS_IX86_REP_LOCK_PREFIX.
18683 Don't emit whitespace.
18684 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
18685 (*rep_movsi): Likewise.
18686 (*rep_movsi_rex64): Likewise.
18687 (*rep_movqi): Likewise.
18688 (*rep_movqi_rex64): Likewise.
18689 (*rep_stosdi_rex64): Likewise.
18690 (*rep_stossi): Likewise.
18691 (*rep_stossi_rex64): Likewise.
18692 (*rep_stosqi): Likewise.
18693 (*rep_stosqi_rex64): Likewise.
18694 (*cmpstrnqi_nz_1): Use {%;} after repz.
18695 (*cmpstrnqi_nz_rex_1): Likewise.
18696 (*cmpstrnqi_1): Likewise.
18697 (*cmpstrnqi_rex_1): Likewise.
18698 (*strlenqi_1): Use {%;} after repnz.
18699 (*strlenqi_rex_1): Likewise.
18700 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
18701 (*sync_compare_and_swap<mode>): Likewise.
18702 (sync_double_compare_and_swap<mode>): Likewise.
18703 (*sync_double_compare_and_swapdi_pic): Likewise.
18704 (sync_old_add<mode>): Likewise.
18705 (sync_add<mode>): Likewise.
18706 (sync_sub<mode>): Likewise.
18707 (sync_<code><mode>): Likewise.
18708
b258210c
MJ
187092010-05-17 Martin Jambor <mjambor@suse.cz>
18710
18711 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
18712 otr_token and polymorphic.
18713 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
18714 (cgraph_clone_edge): Copy the above fields.
18715 * tree.c (get_binfo_at_offset): New function.
18716 * tree.h (get_binfo_at_offset): Declare.
18717 * ipa-prop.h (enum jump_func_type): Added known_type jump function
18718 type, reordered items, updated comments.
18719 (union jump_func_value): Added base_type field, reordered fields.
18720 (enum ipa_lattice_type): Moved down in the file.
18721 (struct ipa_param_descriptor): New field polymorphic.
18722 (ipa_is_param_polymorphic): New function.
18723 * ipa-prop.c: Include gimple.h and gimple-fold.h.
18724 (ipa_print_node_jump_functions): Print known type jump functions.
18725 (compute_complex_pass_through): Renamed to...
18726 (compute_complex_assign_jump_func): this.
18727 (compute_complex_ancestor_jump_func): New function.
18728 (compute_known_type_jump_func): Likewise.
18729 (compute_scalar_jump_functions): Create known type and complex ancestor
18730 jump functions.
18731 (ipa_note_param_call): New parameter polymorphic, set the corresponding
18732 flag in the call note accordingly.
18733 (ipa_analyze_call_uses): Renamed to...
18734 (ipa_analyze_indirect_call_uses): this. New parameter target, define
18735 variable var only in the block where it is used.
18736 (ipa_analyze_virtual_call_uses): New function.
18737 (ipa_analyze_call_uses): Likewise.
18738 (combine_known_type_and_ancestor_jfs): Likewise.
18739 (update_jump_functions_after_inlining): Implemented handling of a
18740 number of new jump function types combination.
18741 (print_edge_addition_message): Removed.
18742 (make_edge_direct_to_target): New function.
18743 (try_make_edge_direct_simple_call): Likewise.
18744 (try_make_edge_direct_virtual_call): Likewise.
18745 (update_call_notes_after_inlining): Renamed to...
18746 (update_indirect_edges_after_inlining): this. Moved edge creation for
18747 indirect calls to try_make_edge_direct_simple_call, also calls
18748 try_make_edge_direct_virtual_call for virtual calls.
18749 (ipa_print_node_params): Changed the header message.
18750 (ipa_write_jump_function): Stream also known type jump functions.
18751 (ipa_read_jump_function): Likewise.
18752 (ipa_write_indirect_edge_info): Stream new fields in
18753 cgraph_indirect_call_info.
18754 (ipa_read_indirect_edge_info): Likewise.
18755 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
18756 GIMPLE_FOLD_H.
18757
d5d74497
RO
187582010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18759
18760 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
18761
58a11859
NF
187622010-05-17 Nathan Froyd <froydnj@codesourcery.com>
18763
18764 * tree.h (CALL_EXPR_ARGS): Delete.
18765 (call_expr_arglist): Delete.
18766 * tree.c (call_expr_arglist): Delete.
18767 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
18768 targetm.fold_builtin.
18769 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
18770 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
18771 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
18772 arglist parameter. Use CALL_EXPR_ARG.
18773 (picochip_expand_builtin_3op): Likewise.
18774 (picochip_expand_builtin_2opvoid): Likewise.
18775 (picochip_expand_array_get): Likewise.
18776 (picochip_expand_array_put): Likewise.
18777 (picochip_expand_array_testport): Likewise.
18778 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
18779 rather than arglist.
18780 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
18781 CALL_EXPR_ARGS.
18782 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
18783 than TREE_VALUE and TREE_CHAIN.
18784 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
18785 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
18786 the arglist.
18787
f1de5107
JJ
187882010-05-17 Jakub Jelinek <jakub@redhat.com>
18789
f145213f
JJ
18790 PR bootstrap/42347
18791 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
18792 to have no fallthru edge.
18793
f1de5107
JJ
18794 PR middle-end/44102
18795 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
18796 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
18797 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
18798 add BARRIER after previous bb if needed.
18799
b64fca63 188002010-05-17 Nathan Froyd <froydnj@codesourcery.com>
431043bd 18801
b64fca63 18802 * tree.c (build_function_type_list_1): Remove bogus assert condition.
431043bd 18803
2882bfcc
AM
188042010-05-17 Alan Modra <amodra@gmail.com>
18805
18806 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
18807 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
18808 with copy_reg rtx param.
18809 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
18810 Correct cases where code for ABI_V4 did not initialise the reg
18811 used to access frame. Also leave frame_reg_rtx as sp for large
18812 frames that save no regs.
18813
5feb49f0
MJ
188142010-05-17 Martin Jambor <mjambor@suse.cz>
18815
18816 PR middle-end/44133
18817 * tree-sra.c (create_access_replacement): New parameter rename, mark
18818 the replaement for renaming only when it is true.
18819 (get_access_replacement): Pass true in the rename parameter of
18820 create_access_replacement.
18821 (get_unrenamed_access_replacement): New function.
18822 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
18823 replacement declaration from it.
18824
56731d64
BS
188252010-05-17 Bernd Schmidt <bernds@codesourcery.com>
18826
18827 * function.c (try_fit_stack_local, add_frame_space): New static
18828 functions.
18829 (assign_stack_local_1): Use them. Look for opportunities to use
18830 space previously wasted on alignment.
18831 * function.h (struct frame_space): New.
18832 (struct rtl_data): Add FRAME_SPACE_LIST member.
18833 * reload1.c (something_was_spilled): New static variable.
18834 (alter_reg): Set it.
18835 (reload): Test it in addition to testing if the frame size changed.
18836
24a235c8
CB
188372010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
18838
431043bd
UB
18839 * config/s390/s390.c: Define sane prefetch settings and activate
18840 flag_prefetch_loop_arrays on -O3.
18841 * config/s390/s390.h: Declare that read can use write prefetch.
24a235c8 18842
18252dcf
JJ
188432010-05-17 Jakub Jelinek <jakub@redhat.com>
18844
18845 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
18846 build.
18847
199f1dc4
JH
188482010-05-16 Jan Hubicka <jh@suse.cz>
18849
18850 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
18851 function body; do not check stdarg field of struct function.
18852
ccbbf8a2
JH
188532010-05-16 Jan Hubicka <jh@suse.cz>
18854
18855 * cgraph.c (dump_cgraph_node): Dump versionable flag.
18856 * cgraph.h (cgraph_local_info): Add versionable flag.
18857 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
18858 (ipcp_versionable_function_p): Use it.
18859 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
18860 versionable flag.
18861
91fbf0c7
JH
188622010-05-16 Jan Hubicka <jh@suse.cz>
18863
18864 * cgraph.c (cgraph_clone_node): Take decl argument and insert
18865 clone into hash when it is different from orig.
18866 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
18867 * cgraph.h (cgraph_clone_node): Update prototype.
18868 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
18869 (lto_cgraph_encoder_delete): Delete body map.
18870 (lto_cgraph_encoder_size): Move to header.
ccbbf8a2
JH
18871 (lto_cgraph_encoder_encode_body_p,
18872 lto_set_cgraph_encoder_encode_body): New.
91fbf0c7
JH
18873 (lto_output_node): Do not take written_decls argument; output clone_of
18874 pointer.
18875 (add_node_to): Add include_body_argument; call
18876 lto_set_cgraph_encoder_encode_body on master of the clone.
18877 (add_references): Update use of add_node_to.
18878 (compute_ltrans_boundary): Likewise.
18879 (output_cgraph): Do not create written_decls bitmap.
18880 (input_node): Take nodes argument; stream in clone_of correctly.
18881 (input_cgraph_1): Update use of input_node.
18882 * lto-streamer-out.c (lto_output): Use encoder info to decide
18883 what bodies to output.
18884 * ipa-inline.c (cgraph_clone_inlined_nodes,
18885 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
18886 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
18887 (lto_cgraph_encoder_size): Define here.
18888 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
18889 Declare.
18890
6b87d1b4
RG
188912010-05-16 Richard Guenther <rguenther@suse.de>
18892
18893 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
18894 -fipa-type-escape.
18895 * ipa-type-escape.c (gate_type_escape_vars): Run when
18896 -fipa-struct-reorg runs.
18897 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
18898 * common.opt (fipa-type-escape): Remove.
18899
203a92e3
EB
189002010-05-16 Eric Botcazou <ebotcazou@adacore.com>
18901
18902 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
18903 (decode_options): Likewise.
18904 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
18905
e419f710
JH
189062010-05-16 Jan Hubicka <jh@suse.cz>
18907
18908 * ipa.c (function_and_variable_visibility): Also bring local all
18909 aliases.
18910
2e0c984c
RG
189112010-05-16 Richard Guenther <rguenther@suse.de>
18912
18913 * alias.c (nonoverlapping_memrefs_p): Remove use of
18914 IPA type-escape information.
18915
32912286
JM
189162010-05-16 Joseph Myers <joseph@codesourcery.com>
18917
18918 * c-common.c (c_common_reswords): Add _Static_assert for C.
18919 * c-parser.c (c_token_starts_declaration,
18920 c_parser_next_token_starts_declaration,
18921 c_parser_static_assert_declaration_no_semi,
18922 c_parser_static_assert_declaration): New.
18923 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
18924 Handle static assertions if static_assert_ok.
18925 (c_parser_external_declaration, c_parser_declaration_or_fndef,
18926 c_parser_compound_statement_nostart, c_parser_label,
18927 c_parser_for_statement, c_parser_objc_methodprotolist,
18928 c_parser_omp_for_loop): All callers of
18929 c_parser_declaration_or_fndef changed.
18930 (c_parser_struct_declaration): Handle static assertions.
18931 (c_parser_compound_statement_nostart): Use
18932 c_parser_next_token_starts_declaration and
18933 c_token_starts_declaration to detect start of declarations.
18934 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
18935 Likewise.
18936
a3ca07e3
AS
189372010-05-16 Anatoly Sokolov <aesok@post.ru>
18938
18939 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18940 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18941 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18942 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18943 (mmix_function_outgoing_value): Rename to...
18944 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
18945 (mmix_function_value_regno_p): Make static.
18946 (mmix_libcall_value): New function.
18947 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
18948 mmix_function_value_regno_p): Remove declaration.
18949
29d17485
EB
189502010-05-16 Eric Botcazou <ebotcazou@adacore.com>
18951
18952 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
18953 BUILT_IN_ALLOCA if stack checking is enabled.
18954
a6590c31
RG
189552010-05-16 Richard Guenther <rguenther@suse.de>
18956
18957 * var-tracking.c (vars_copy_1): Inline ...
18958 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
18959 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
18960 (variable_merge_over_cur): Adjust. Merge asserts.
18961 (variable_merge_over_src): Likewise.
18962 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
18963 (variable_post_merge_new_vals): Merge asserts.
18964 (variable_post_merge_perm_vals): Likewise.
18965 (find_mem_expr_in_1pdv): Likewise.
18966 (dataflow_set_different_value): Remove.
18967 (onepart_variable_different_p): Merge asserts.
18968 (variable_different_p): Likewise.
18969 (dataflow_set_different_1): Inline ...
18970 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
18971 (emit_notes_for_differences_1): Merge asserts.
18972
6456e26e
RG
189732010-05-16 Richard Guenther <rguenther@suse.de>
18974
18975 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
18976 * optabs.c (libfunc_decl_hash): Likewise.
18977 * varasm.c (emutls_decl): Likewise.
18978
1d4c5fe9
SB
189792010-05-16 Steven Bosscher <steven@gcc.gnu.org>
18980
18981 * c-decl.c: Don't include gimple.h.
18982 (merge_decls): Do not copy gimple_body.
18983
9feb3d6a
JM
189842010-05-15 Jason Merrill <jason@redhat.com>
18985
18986 * c.opt: Add -fnothrow-opt.
18987
9b3cf76a
JH
189882010-05-15 Jan Hubicka <jh@suse.cz>
18989
29d17485
EB
18990 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
18991 analyzed.
9b3cf76a
JH
18992 * passes.c (ipa_write_summaries): Write all analyzed nodes.
18993
f4ce02c5
SB
189942010-05-15 Steven Bosscher <steven@gcc.gnu.org>
18995
18996 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
18997 * Makefile.in: Add it.
18998 Fix all other Makefile dependencies for changes below.
18999 * tree.h: Include it instead of defining VEC primitives here.
19000 * gimple.h: Likewise.
19001 * rtl.h: Likewise.
19002 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
19003 * except.h: Include vecir.h, break dependence on tree.h.
19004
19005 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
19006 Move from here...
19007 * tree-iterator.c: ...to here.
19008 * tree-iterator.h: Fix file introduction comment. Add extern markers.
19009
19010 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
19011 tm_p.h.
19012 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
19013 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
19014 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
19015 tree-mudflap.h, and target.h.
19016 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
19017 predict.h, tree-inline.h, gimple.h, and langhooks.h.
19018 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
19019 Add FIXME for why gimple.h is still included (should be unnecessary
19020 since GCC 4.5 gimplification unit-at-a-time).
19021 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
19022 * c-pragma.c: Add FIXME for why function.h needs to be included just
19023 for cfun, at front-end level.
19024 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
19025 Do not include ggc.h, but include vecprim.h for VEC(char).
19026 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
19027 Explain why target.h is included.
19028 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
19029 Explain why gimple.h is included.
19030 * c-ppoutput.c: Do not include tm.h.
19031 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
19032 * c-parses.c: Explain why rtl.h is included, and that this (and only
19033 this) is also why tm.h must be included.
19034 Do not include except.h.
19035 * c-lang.c: Do not include ggc.h.
19036
12201e48
UB
190372010-05-15 Uros Bizjak <ubizjak@gmail.com>
19038
19039 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
19040
4bdd0a60
JM
190412010-05-15 Joseph Myers <joseph@codesourcery.com>
19042
19043 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
19044 unions by default if those structs and unions have no tags. Do
19045 not condition anonymous struct and unions handling on flag_iso.
19046 Allow anonymous structs and unions for C1X.
19047 (finish_struct): Do not diagnose lack of named fields when
19048 anonymous structs and unions present for C1X. Accept flexible
19049 array members in structure with anonymous structs or unions but no
19050 directly named fields.
19051 * doc/extend.texi (Unnamed Fields): Update.
19052
d025732d
EB
190532010-05-15 Eric Botcazou <ebotcazou@adacore.com>
19054
19055 * gimple.h (compare_field_offset): Rename into...
19056 (gimple_compare_field_offset): ...this.
19057 * gimple.c (compare_field_offset): Rename into...
19058 (gimple_compare_field_offset): ...this. Compare the full access if
19059 the offset is self-referential.
19060 (gimple_types_compatible_p): Adjust for above renaming.
19061 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
19062 DECL_NONADDRESSABLE_P flag of fields before merging them.
19063
b75bdd29
NF
190642010-05-15 Nathan Froyd <froydnj@codesourcery.com>
19065
19066 * tree.h (ctor_to_list): Delete.
19067 * tree.c (ctor_to_list): Delete.
19068
f3380641
JH
190692010-05-15 Jan Hubicka <jh@suse.cz>
19070
19071 * ipa-reference.c: Include toplev.h
19072 (is_proper_for_analysis): Only add to all_module_statics
19073 if it is allocated.
19074 (write_node_summary_p, stream_out_bitmap,
19075 ipa_reference_write_optimization_summary,
19076 ipa_reference_read_optimization_summary): New.
19077 (struct ipa_opt_pass_d pass_ipa_reference): Add
19078 optimization summary streaming.
12201e48 19079 * lto-cgraph.c (referenced_from_this_partition_p,
f3380641
JH
19080 reachable_from_this_partition_p): New functions.
19081 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
19082 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
19083 * opts.c (decode_options): Enable ipa_reference.
19084 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
19085 * lto-streamer.h (referenced_from_this_partition_p,
19086 reachable_from_this_partition_p): Declare.
19087
9d0baae1
RG
190882010-05-15 Richard Guenther <rguenther@suse.de>
19089
19090 PR tree-optimization/44038
19091 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
19092 taking the address of a V_C_E of a constant.
19093
46c30019
JH
190942010-05-14 Jan Hubicka <jh@suse.cz>
19095
19096 * tree.h (memory_identifier_string): Remove.
19097 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
19098 (ipa_reference_global_vars_info_d): Remove statics_not_read and
19099 statics_not_written.
19100 (ipa_reference_optimization_summary_d): New structure.
19101 (ipa_reference_optimization_summary_t): New type and vector.
19102 (ipa_reference_vars_info_d): Embedd structures instead of using
19103 pointers.
19104 (reference_vars_to_consider): Remove out of GGC space.
19105 (module_statics_escape): Remove.
19106 (global_info_obstack): Rename to ...
19107 (optimization_summary_obstack): ... this one.
19108 (initialization_status_t): Remove.
19109 (memory_identifier_string): Remove.
19110 (get_reference_vars_info): Fix indenting.
19111 (set_reference_vars_info): Likewise.
19112 (get_reference_optimization_summary): New.
19113 (set_reference_optimization_summary): New.
19114 (get_global_reference_vars_info): Remove.
19115 (ipa_reference_get_read_global): Remove.
19116 (ipa_reference_get_written_global): Remove.
19117 (ipa_reference_get_not_read_global): Update.
19118 (ipa_reference_get_not_written_global): Update.
19119 (is_proper_for_analysis): Outlaw addressable.
19120 (propagate_bits): Update for new datastructures.
19121 (analyze_variable): Remove.
19122 (init_function_info): Update for new datastructures.
19123 (clean_function_local_data): Remove.
19124 (clean_function): Remove.
19125 (copy_global_bitmap): Use optimizations_summary_obstack.
19126 (duplicate_node_data): Duplicate optimization summary only.
19127 (remove_node_data): Remove optimization summary only.
19128 (generate_summary): Do not analyze variables; do not compute
19129 module_statics_escape; do not prune solutions by it.
19130 (read_write_all_from_decl): Fix typos in comments.
19131 (propagate): Doscover readonly and nonaddressable first;
19132 update for new datastructures; share global bitmaps.
19133 * ipa-reference.h (ipa_reference_get_read_global,
19134 ipa_reference_get_written_global): Remove.
19135 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
19136 * Makefile.in: Remove ipa-refereference from GT files.
19137
22bf7d17
JJ
191382010-05-14 Jakub Jelinek <jakub@redhat.com>
19139
19140 PR debug/44112
19141 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
19142 for all SYMBOL_REF_DECLs.
19143
4a444e58
JH
191442010-05-14 Jan Hubicka <jh@suse.cz>
19145
19146 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
19147 (varpool_all_refs_explicit_p): New inline function.
19148 * ipa-reference.c: Update comment.
19149 (module_statics_written): Remove.
19150 (get_static_decl): Remove.
19151 (ipa_init): Do not initialize module_statics_written.
19152 (analyze_function): Likewise.
19153 (generate_summary): Likewise; do not compute module_statics_readonly
19154 and do not update variable flags.
19155 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
19156 * ipa.c: Inlucde flags.h
19157 (cgraph_local_node_p): New.
19158 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
19159 promote functions to local.
19160 (ipa_discover_readonly_nonaddressable_vars): New function.
19161 (function_and_variable_visibility): Use cgraph_local_node_p.
19162 * varpool.c (varpool_finalize_decl): Set force_output for
19163 DECL_PRESERVE_P vars.
19164
bc8ddfe6
JH
191652010-05-14 Jan Hubicka <jh@suse.cz>
19166
19167 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
19168
4d2ab9e3
RG
191692010-05-14 Richard Guenther <rguenther@suse.de>
19170
19171 PR tree-optimization/44119
19172 * tree-ssa-pre.c (eliminate): Properly mark replacement of
19173 a PHI node necessary.
19174
9e87b842
EB
191752010-05-14 Eric Botcazou <ebotcazou@adacore.com>
19176
19177 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
19178
786f715d
JM
191792010-05-14 Jason Merrill <jason@redhat.com>
19180
9bb1a81b
JM
19181 PR c++/44127
19182 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
19183 (gimple_call_set_nothrow): New.
19184 * gimple.c (gimple_build_call_from_tree): Call it.
19185 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
19186
786f715d
JM
19187 PR c++/44127
19188 * gimplify.c (gimplify_seq_add_stmt): No longer static.
19189 * gimple.h: Declare it.
19190 * gimple.c (gimple_build_eh_filter): No ops.
19191
19fb0b86
JH
191922010-05-14 Jan Hubicka <jh@suse.cz>
19193
19194 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
19195 nodes already in queue.
9e87b842
EB
19196 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
19197 re-enqueueing node.
19fb0b86 19198
88c04a5d
JJ
191992010-05-14 Jakub Jelinek <jakub@redhat.com>
19200
19201 PR debug/44136
19202 * cfgexpand.c (expand_debug_expr): If non-memory op0
19203 has BLKmode, return NULL.
19204
1133125e
HJ
192052010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
19206
19207 * config.gcc: Add support for --with-cpu option for bdver1.
19208 * config/i386/i386.h (TARGET_BDVER1): New macro.
19209 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
19210 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19211 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
19212 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19213 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
19214 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
19215 (processor_type): Add PROCESSOR_BDVER1.
19216 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
19217 processor_type in config/i386/i386.h.
19218 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
19219 movaps <reg, reg> instead of movapd <reg, reg> when replacing
19220 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
19221 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
19222 to emit packed xor instead of packed double/packed integer
19223 xor for SSE and AVX when moving a zero value.
9e87b842
EB
19224 * config/i386/sse.md: Add check for
19225 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
19226 movapd/movdqa for SSE and AVX.
19227 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
19228 single logical operations i.e and, or and xor instead of packed double
19229 logical operations for SSE and AVX.
12201e48
UB
19230 * config/i386/i386-c.c (ix86_target_macros_internal):
19231 Add PROCESSOR_BDVER1.
1133125e
HJ
19232 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
19233 (has_fma4, has_xop): New.
19234 * config/i386/i386.c (bdver1_cost): New variable.
19235 (m_BDVER1): New macro.
19236 (m_AMD_MULTIPLE): Add m_BDVER1.
19237 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
9e87b842
EB
19238 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
19239 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
19240 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
19241 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
19242 x86_tune_sse_partial_reg_dependency,
19243 x86_tune_sse_unaligned_load_optimal,
19244 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
19245 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
19246 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
19247 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
19248 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1133125e
HJ
19249 Enable/disable for bdver1.
19250 (processor_target_table): Add bdver1_cost.
19251 (cpu_names): Add bdver1.
19252 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
19253 processor_alias_table.
9e87b842
EB
19254 (ix86_expand_vector_move_misalign): Change.
19255 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
19256 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
19257 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
19258 of movupd/movdqu for SSE and AVX.
1133125e
HJ
19259 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
19260 (ix86_tune_adjust_cost): Add code for bdver1.
19261 (standard_sse_constant_opcode): Add check for
19262 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
19263 of packed double xor for SSE and AVX.
19264
e972cc7e
PH
192652010-05-14 Pat Haugen <pthaugen@us.ibm.com>
19266
19267 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
19268 result to unsigned.
19269
6a080096
TG
192702010-05-14 Tristan Gingold <gingold@adacore.com>
19271
19272 * toplev.c (default_debug_hooks): Remove this variable.
19273 (process_options): Remove assignments to default_debug_hooks.
19274
b5023f3c
MJ
192752010-05-14 Martin Jambor <mjambor@suse.cz>
19276
19277 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
19278 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
19279 * langhooks.h (struct lang_hooks_for_decls): Removed field
19280 fold_obj_type_ref.
19281 * tree.c (free_lang_data): Remove assignment to
19282 lang_hooks.fold_obj_type_ref.
19283 * tree.def (OBJ_TYPE_REF): Update comment.
19284
6141b7db
RG
192852010-05-14 Richard Guenther <rguenther@suse.de>
19286
19287 PR tree-optimization/44124
19288 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
19289
e15a8cbe
AM
192902010-05-14 Alan Modra <amodra@gmail.com>
19291
19292 PR target/44075
19293 * config/rs6000/rs6000.c (struct machine_function): Reorder
19294 fields for better packing. Add lr_save_state.
19295 (rs6000_ra_ever_killed): Return lr_save_state if set.
19296 (rs6000_emit_eh_reg_restore): Set lr_save_state.
19297
da405c74
JH
192982010-05-13 Jan Hubicka <jh@suse.cz>
19299
19300 * varpool.c (decide_is_variable_needed): Drop code checking
19301 TREE_SYMBOL_REFERENCED.
19302
152464d2
JH
193032010-05-13 Jan Hubicka <jh@suse.cz>
19304
19305 * final.c (output_addr_const): Do not call mark_decl_referenced.
19306 * cgraphunit.c (process_function_and_variable_attributes): Use
19307 mark_needed_node dirrectly.
19308 (assemble_thunk): Do not call mark_decl_referenced.
19309
32cbdf00
AS
193102010-05-13 Anatoly Sokolov <aesok@post.ru>
19311
19312 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
19313
e4f36d31
JL
193142010-05-13 Jeff Law <law@redhat.com>
19315
19316 * ira-conflicts.c (print_allocno_conflicts): New function broken out
19317 from...
19318 (print_conflicts): Call print_allocno_conflicts.
19319
1fcebc11
JJ
193202010-05-13 Jakub Jelinek <jakub@redhat.com>
19321
19322 PR debug/44104
19323 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
19324 if it is NULL.
19325
917ed773
KT
193262010-05-13 Kai Tietz <kai.tietz@onevision.com>
19327
19328 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
19329 t-mingw-w64 or t-mingw-w32 for multilib configuration.
19330 * config/i386/t-mingw-w32: New.
19331 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
12201e48 19332
1ae6fe9b
MJ
193332010-05-13 Martin Jambor <mjambor@suse.cz>
19334
19335 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
19336 gimple-fold.c).
19337 * gimple-fold.c (get_base_binfo_for_type): New function.
19338 (gimple_get_relevant_ref_binfo): Likewise.
19339 (gimple_fold_obj_type_ref_known_binfo): Likewise.
19340 (gimple_fold_obj_type_ref): Likewise.
19341 (fold_gimple_call): Simplify condition for folding virtual calls
19342 and call gimple_fold_obj_type_ref.
19343 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
19344 (gimple_fold_obj_type_ref_known_binfo): Likewise.
19345
78c7cabb
AS
193462010-05-13 Andreas Schwab <schwab@linux-m68k.org>
19347
19348 * config/rs6000/rs6000-protos.h
19349 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
19350 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
19351 (rs6000_debug_mode_dependent_address)
19352 (rs6000_mode_dependent_address_ptr): Likewise.
19353
823e9473
JJ
193542010-05-13 Jakub Jelinek <jakub@redhat.com>
19355
19356 PR debug/43983
19357 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
19358 by SRA.
19359 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
19360 * tree-sra.c (create_access_replacement): Call unshare_expr before
12201e48 19361 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
823e9473
JJ
19362 * dwarf2out.c: Include tree-flow.h.
19363 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
19364 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
19365 Handle DW_OP_bit_piece.
19366 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
19367 construct_piece_list, adjust_piece_list): New functions.
19368 (add_var_loc_to_decl): Handle SRA optimized variables.
19369 Adjust for var_loc_note to loc field renaming.
19370 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
19371 in VAR_LOCATION note.
19372 (new_loc_descr_op_bit_piece): New function.
19373 (dw_sra_loc_expr): New function.
19374 (dw_loc_list): Use it. Don't handle the last range after the
19375 loop, handle it inside of the loop. Adjust for var_loc_note
19376 to loc field renaming.
19377 (add_location_or_const_value_attribute): Only special case
19378 single entry loc lists if loc is NOTE_P. Adjust for
19379 var_loc_note to loc field renaming.
19380 (dwarf2out_var_location): Don't set newloc->var_loc_note
19381 and newloc->next here.
19382
bd3cdcc0
JH
193832010-05-12 Jan Hubicka <jh@suse.cz>
19384
c46a5e28
EB
19385 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
19386 flag.
bd3cdcc0
JH
19387 * cgraph.h (cgraph_only_called_directly_p,
19388 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
19389 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
19390 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
19391 (assemble
19392 * ipa.c (cgraph_remove_unreachable_nodes): Use
c46a5e28
EB
19393 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
19394 flags.
bd3cdcc0
JH
19395 * tree-inline.c (copy_bb): Check address_taken flag.
19396 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
19397 externally_visible flag.
19398
5116acc6
JM
193992010-05-12 Jason Merrill <jason@redhat.com>
19400
19401 PR bootstrap/44048
19402 PR target/44099
19403 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
19404 * sdbout.c (plain_type_1): Likewise.
19405 * dwarf2out.c (is_base_type): Likewise.
19406 (gen_type_die_with_usage): Likewise. Generate
19407 DW_TAG_unspecified_type for any LANG_TYPE.
19408
5f902d76
JH
194092010-05-12 Jan Hubicka <jh@suse.cz>
19410
19411 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
19412 indrect edges too.
19413 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
19414 (cgraph_clone_edge): Update.
19415 (cgraph_node_remove_callees): Remove indirect calls too.
19416 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
19417 (cgraph_create_indirect_edge): Update prototype.
19418 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
19419 is_proper_for_analysis.
19420 (add_new_function, visited_nodes, function_insertion_hook_holder,
19421 get_local_reference_vars_info, mark_address_taken, mark_address,
19422 mark_load, mark_store, check_asm_memory_clobber, check_call,
19423 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
19424 (ipa_init): Do not initialize visited_nodes;
19425 function_insertion_hook_holder.
19426 (analyze_variable): Rewrite.
19427 (analyze_function): Rewrite.
19428 (copy_local_bitmap): Remove.
19429 (duplicate_node_dat): Do not duplicate local info.
19430 (generate_summary): Simplify to only walk cgraph.
19431 (write_node_summary_p, ipa_reference_write_summary,
19432 ipa_reference_read_summary): Remove.
19433 (propagate): Do not remove function insertion;
19434 generate summary.
19435 (pass_ipa_reference): NULLify summary handling fields.
19436 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
19437 (input_edge): Input ecf_flags.
19438 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
19439 (update_indirect_edges_after_inlining): Ignore edges with unknown
19440 param.
19441
87a0ebfd
ST
194422010-05-12 Sriraman Tallam <tmsriram@google.com>
19443
19444 * implicit-zee.c: New file.
19445 * tree-pass.h (pass_implicit_zee): Declare.
19446 * passes.c (init_optimization_passes): Add zee pass.
19447 * common.opt (fzee): New flag.
19448 * timevar.def (TV_ZEE): Define.
19449 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
19450 and beyond.
19451 * Makefile.in (implicit-zee.o): Add new build file.
19452
01f0a9dc
KH
194532010-05-12 Kazu Hirata <kazu@codesourcery.com>
19454 Nathan Froyd <froydnj@codesourcery.com>
19455
19456 * c-common.c (sync_resolve_params): Remove write-only variable.
19457
cbda7dc6
AS
194582010-05-12 Anatoly Sokolov <aesok@post.ru>
19459
19460 * target.h (struct gcc_target): Add mode_dependent_address_p field.
19461 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
19462 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
19463 * targhooks.c (default_mode_dependent_address_p): New function.
19464 * targhooks.h (default_mode_dependent_address_p): Declare function.
19465 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
19466 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
ade52657 19467 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
cbda7dc6 19468 target hook. Change return type to bool.
ade52657 19469 * recog.h (mode_dependent_address_p): Change return type to bool.
cbda7dc6 19470
1df43907
KH
194712010-05-12 Kazu Hirata <kazu@codesourcery.com>
19472 Nathan Froyd <froydnj@codesourcery.com>
19473
19474 * tree-mudflap.c (build_function_type_0, build_function_type_1,
19475 build_function_type_2, build_function_type_3): Remove.
19476 (mudflap_init): Use build_function_type_list.
19477
f9b36bb3
KH
194782010-05-12 Kazu Hirata <kazu@codesourcery.com>
19479 Nathan Froyd <froydnj@codesourcery.com>
19480
19481 * coverage.c (build_fn_info_value): Call build_constructor instead of
19482 build_constructor_from_list.
19483 (build_ctr_info_value): Likewise.
19484 (build_gcov_info): Likewise.
19485
f88203b0
NF
194862010-05-12 Nathan Froyd <froydnj@codesourcery.com>
19487
19488 * tree.c (build_constructor): Compute TREE_CONSTANT for the
19489 resultant constructor.
19490 (build_constructor_single): Don't set TREE_CONSTANT.
19491 (build_constructor_from_list): Don't compute TREE_CONSTANT.
19492
b34fd25c
JH
194932010-05-12 Jan Hubicka <jh@suse.cz>
19494
19495 * cgraph.h (struct varpool_node): Add aux.
19496 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
19497 * varpool.c (varpool_remove_node): Do not remove initializer.
19498 (varpool_reset_queue): Export.
19499 (varpool_finalize_decl): Volatile vars are forced to be output.
19500 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
19501 replaced decl.
19502 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
19503 process_references, varpool_can_remove_if_no_refs): New functions.
19504 (cgraph_remove_unreachable_nodes): Handle variables too.
19505
49f19b1c
L
195062010-05-12 H.J. Lu <hongjiu.lu@intel.com>
19507
19508 PR target/44088
19509 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
19510
7c2db0d3
JJ
195112010-05-12 Jakub Jelinek <jakub@redhat.com>
19512
f22f4340
JJ
19513 PR middle-end/44085
19514 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
19515 change value of ORT_TASK.
19516 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
19517 (omp_notice_threadprivate_variable): New function.
19518 (omp_notice_variable): Call it for threadprivate variables.
19519 If enclosing ctx is a task, print enclosing task rather than
19520 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
19521 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
19522 if task has untied clause.
19523
7c2db0d3
JJ
19524 PR debug/42278
19525 * dwarf2out.c (base_type_die): Don't add name attribute here.
19526 (modified_type_die): Instead of sizetype use
19527 its underlying original type. If a DW_TAG_base_type doesn't
19528 have name added, add __unknown__.
19529 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
19530 always call force_type_die instead.
19531
623a6941
MK
195322010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
19533
19534 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
19535 for __stack_chk_guard.
19536
056928b2
JJ
195372010-05-11 Jakub Jelinek <jakub@redhat.com>
19538
9d000e83
JJ
19539 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
19540 don't call start_source_file debug hook here...
19541 (finish_options): ... but here, after outputting predefined and
19542 command line defines and undefs.
19543
3b5fda81
JJ
19544 PR middle-end/44071
19545 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
19546 no fallthru edge.
19547 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
19548 optimizing away empty bb with no successors, move over its
19549 footer chain to fallthru predecessor.
19550 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
19551 (rtl_split_edge): For asm goto call patch_jump_insn even if
19552 splitting fallthru edge.
19553
3895ec53
JJ
19554 PR c++/44059
19555 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
19556 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
19557 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
19558 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
19559 on DW.ref.* decls.
19560
056928b2
JJ
19561 PR c++/44062
19562 * c-parser.c (c_parser_expression): Mark LHS of a comma
19563 expression as read if it is a decl, handled component or
19564 COMPOUND_EXPR with that on the RHS.
19565 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
19566 if it is a decl or handled component.
19567
9a809897
JH
195682010-05-11 Jan Hubicka <jh@suse.cz>
19569
19570 * lto-symtab.c (lto_symtab_free): New function.
19571 * lto-streamer.h (lto_symtab_free): Declare.
19572
195732010-05-11 Jan Hubicka <jh@suse.cz>
19574
19575 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
19576 that if function is needed it is reachable.
19577 (lto_output_node): See if it the function is reachable or referenced.
19578 (output_cgraph): Update call of lto_output_node.
19579 * lto-streamer.h (reachable_from_other_partition_p): Declare.
19580
b8053194
JH
195812010-05-11 Jan Hubicka <jh@suse.cz>
19582
19583 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
19584 Mark as used.
19585
1aa14195
JH
195862010-05-11 Jan Hubicka <jh@suse.cz>
19587
19588 PR tree-optimize/44063
c46a5e28
EB
19589 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
19590 queue.
1aa14195
JH
19591 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
19592 limits.
19593 (estimate_function_body_sizes): Compute sizes even when disregarding.
19594
f088f0ae
KT
195952010-05-11 Kai Tietz <kai.tietz@onevision.com>
19596
19597 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
19598
dcda03f4
JH
195992010-05-11 Jan Hubicka <jh@suse.cz>
19600
19601 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
19602 into every boundary.
19603
ece02605
JH
196042010-05-11 Jan Hubicka <jh@suse.cz>
19605
19606 * matrix-reorg.c (matrix_reorg): Rebuild edges.
19607
cc56d170
JH
196082010-05-11 Jan Hubicka <jh@suse.cz>
19609
19610 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
19611 lto_streamer_cache_delete): Put nodes into heap.
979aeb33
JH
19612 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
19613 heap.
cc56d170 19614
99b766fc
JH
196152010-05-11 Jan Hubicka <jh@suse.cz>
19616
19617 * cgraphbuild.c (cgraph_rebuild_references): New.
a2acdf1f
JH
19618 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
19619 out extern inlines.
99b766fc
JH
19620 * cgraph.h (cgraph_rebuild_references): Declare.
19621 * tree-inline.c (tree_function_versioning): Use it.
19622 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
19623
a940b4d9
JH
196242010-05-11 Jan Hubicka <jh@suse.cz>
19625
19626 * cgraph.c: Include ipa-utils.h
19627 (cgraph_create_virtual_clone): Update references.
19628 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
19629
57762e97
CB
196302010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
19631
78c7cabb 19632 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
57762e97
CB
19633 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
19634 cache size.
19635
a8beb3a7
CB
196362010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
19637
78c7cabb 19638 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
a8beb3a7 19639
3f592b38
JJ
196402010-05-11 Jakub Jelinek <jakub@redhat.com>
19641
09b201fc
JJ
19642 * gcc.c (execute): For -### don't quote arguments that
19643 contain just alphanumerics and _/-. characters.
19644 * doc/invoke.texi: Document that change for -###.
19645
3f592b38
JJ
19646 PR debug/44023
19647 * df-problems.c (struct dead_debug): Add to_rescan field.
19648 (dead_debug_init): Clear to_rescan field.
19649 (dead_debug_finish): Rescan all debug insns in to_rescan
19650 bitmap and free the bitmap.
19651 (dead_debug_insert_before): Instead of rescanning debug insns
19652 immediately queue their rescanning until dead_debug_finish.
19653 (df_note_bb_compute): After dead_debug_add do continue instead
19654 of break.
19655
1de12eab
JJ
196562010-05-10 Jakub Jelinek <jakub@redhat.com>
19657
19658 PR debug/44028
19659 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
19660 clear also INSN_REG_USE_LIST.
19661
e472d6bf
RO
196622010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19663
19664 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
19665
6cd174f6
JH
196662010-05-10 Jan Hubicka <jh@suse.cz>
19667
c46a5e28
EB
19668 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
19669 commited change.
6cd174f6 19670
5c4f225f
JH
196712010-05-10 Jan Hubicka <jh@suse.cz>
19672
c46a5e28
EB
19673 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
19674 Allocate encoders.
5c4f225f
JH
19675 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
19676 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
19677 (lto_streamer_cache_create): Init alloc pool.
19678 (lto_streamer_cache_delete): Free alloc pool.
19679 * lto-streamer.h: Include alloc pool.
19680 (lto_streamer_cache_d): Use alloc pool.
19681 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
19682
de61f467
JH
196832010-05-10 Jan Hubicka <jh@suse.cz>
19684
19685 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
19686 * cgraphbuild.c: Include except.h
19687 (record_type_list, record_eh_tables): New function.
19688 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
19689
e4fa83d3
JH
196902010-05-10 Jan Hubicka <jh@suse.cz>
19691
19692 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
19693 __frame_dummy_init_array_entry, force_to_data): Attribute as used
19694 rather than unused.
19695
8a9ecffd
MM
196962010-05-10 Michael Matz <matz@suse.de>
19697
19698 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
19699 (can_reassociate_p): Use FLOAT_TYPE_P.
19700 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
19701 (vect_force_simple_reduction): ... this.
62e59133 19702 * tree-parloops.c (gather_scalar_reductions): Use
8a9ecffd
MM
19703 vect_force_simple_reduction.
19704 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
19705 vect_is_simple_reduction, add modify argument, if true rewrite
19706 "a-b" into "a+(-b)".
19707 (vect_is_simple_reduction, vect_force_simple_reduction): New
19708 functions.
19709 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
19710
197112010-05-10 H.J. Lu <hongjiu.lu@intel.com>
19712 Vladimir Makarov <vmakarov@redhat.com>
46044dd9
L
19713
19714 PR rtl-optimization/44012
19715 * ira-build.c (remove_unnecessary_allocnos): Nullify
19716 regno_allocno_map of the removed allocno.
19717
2e2b183b
RO
197182010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19719
19720 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
19721 to /dev/null.
19722 * configure: Regenerate.
19723
a93e1899
RO
197242010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19725
19726 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
19727 unused.
19728 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
19729 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
19730 support in Sun ld.
19731 * configure: Regenerate.
19732
571943de
RG
197332010-05-10 Richard Guenther <rguenther@suse.de>
19734
19735 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
19736 marked if the entry identifier is marked.
19737
0b7b376d
RG
197382010-05-10 Richard Guenther <rguenther@suse.de>
19739
19740 * c-common.c (struct c_common_attributes): Add fnspec attribute.
19741 (handle_fnspec_attribute): New function.
19742 * gimple.h (gimple_call_return_flags): Declare.
19743 (gimple_call_arg_flags): Likewise.
19744 * gimple.c (gimple_call_arg_flags): New function.
19745 (gimple_call_return_flags): Likewise.
19746 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
19747 New argument flags.
19748 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
19749 return value flags.
19750 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
19751 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
19752 main work to ...
19753 (make_heapvar_for): ... this new function.
19754 (handle_rhs_call): Handle fnspec attribute argument specifiers.
19755 (handle_lhs_call): Likewise.
19756 (find_func_aliases): Adjust.
19757
1755aad0
RG
197582010-05-10 Richard Guenther <rguenther@suse.de>
19759
19760 PR tree-optimization/44050
62e59133 19761 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
1755aad0 19762
333b67a9
WG
197632010-05-10 Wei Guozhi <carrot@google.com>
19764
19765 PR target/42879
19766 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
19767
0fb96aa4
JM
197682010-05-09 Joseph Myers <joseph@codesourcery.com>
19769
19770 PR c/10676
19771 * c-typeck.c (lookup_field): Take a type directly. Update
19772 recursive calls.
19773 (build_component_ref): Update call to lookup_field.
19774 (set_init_label): Use lookup_field to find initialized field.
19775 Handle returned list of fields like a sequence of designators.
19776
3d7a712a
RG
197772010-05-09 Richard Guenther <rguenther@suse.de>
19778
19779 PR middle-end/44024
19780 * fold-const.c (tree_single_nonzero_warnv_p): Properly
19781 handle &FUNCTION_DECL.
19782
492fc0ee
JM
197832010-05-09 Joseph Myers <joseph@codesourcery.com>
19784
19785 PR c/4784
19786 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
19787 structures and unions recursively.
19788 (detect_field_duplicates): Move duplicate detection with a hash to
19789 detect_field_duplicates_hash. Always use a hash if anonymous
19790 structures or unions are present.
19791 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
19792 give errors.
19793
44f276c6
L
197942010-05-09 H.J. Lu <hongjiu.lu@intel.com>
19795
19796 PR target/44046
19797 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
19798 detect Atom, Core 2 and Core i7.
19799
d6205185
RG
198002010-05-09 Richard Guenther <rguenther@suse.de>
19801
19802 * gcc.c (store_arg): Handle temporary file deletion for
19803 joined arguments.
19804
5588864d
RG
198052010-05-09 Richard Guenther <rguenther@suse.de>
19806
19807 PR middle-end/44043
19808 * ipa-inline.c (estimate_function_body_sizes): Return after
19809 disregarding inline limits.
19810
aa34f42c
RG
198112010-05-09 Richard Guenther <rguenther@suse.de>
19812
19813 * gcc.c (store_arg): Revert last change.
19814
844381e5
SL
198152010-05-08 Sandra Loosemore <sandra@codesourcery.com>
19816
19817 PR middle-end/28685
19818 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
19819 (optimize_ops_list): Call it.
19820
43896afb
RG
198212010-05-08 Richard Guenther <rguenther@suse.de>
19822
19823 PR tree-optimization/44030
19824 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
19825 NECESSARY flag if we propagate from a inserted expression.
19826
f56000ed
EB
198272010-05-08 Eric Botcazou <ebotcazou@adacore.com>
19828
19829 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
19830 domain types as equal if they are both PLACEHOLDER_EXPRs.
19831
1522167d
RG
198322010-05-08 Richard Guenther <rguenther@suse.de>
19833
19834 * lto-wrapper.c (run_gcc): Remove linker output from
19835 command line for LTRANS invocation.
19836
c082f9f3
SB
198372010-05-07 Steven Bosscher <steven@gcc.gnu.org>
19838
19839 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
19840 lto-macho as lto_binary_reader.
19841 * target.h (struct gcc_target): New hooks lto_start and lto_end.
19842 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
19843 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
19844 in lto_start and lto_end calls.
19845 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
19846 magic numbers.
19847 (scan_prog_file): Update is_elf_or_coff call.
19848 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
19849
19850 * collect2.c (main): Fix enum comparison.
19851
19852 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
19853 Add prototypes.
19854 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
19855 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
19856 and TARGET_ASM_LTO_END.
19857 * darwin.c: Include obstack.h and lto-streamer.h.
19858 (lto_section_names_offset, lto_section_names_obstack,
19859 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
19860 global variables.
19861 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
19862 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
19863 to a temporary file.
19864 (darwin_asm_lto_end): New function. Restore asm_out_file.
19865 (darwin_asm_named_section): For LTO sections, replace the name with
19866 the offset of the section name in a string table, and build this
19867 table.
19868 (darwin_file_start): Initialize global vars for LTO support.
19869 (darwin_file_end): If output to asm_out_file was redirected, append it
19870 to the proper asm_out_file here. Add the section names section.
19871
18bc5398
SB
198722010-05-07 Steven Bosscher <steven@gcc.gnu.org>
19873
19874 * c-pragma.c (pending_weak_d, pending_weak): New.
19875 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
19876 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
19877 handle_pragma_weak): Update the uses of pending_weaks.
19878
0f590a2d
RW
198792010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19880
19881 PR documentation/44016
19882 * doc/standards.texi (Standards): Link to unversioned
19883 cxx0x_status.html page.
19884
f4a4b582 198852010-05-07 Iain Sandoe <iains@gcc.gnu.org>
3bd5cdeb
IS
19886
19887 PR target/43708
19888 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
19889 in addition to TREE_USED, to avoid "set but unused" warnings.
19890
9bf4598b
CF
198912010-05-07 Changpeng Fang <changpeng.fang@amd.com>
19892
19893 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
19894 (is_loop_prefetching_profitable): Do not insert prefetches
19895 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
19896 times the prefetch ahead distance.
19897
ccacf0e1
CF
198982010-05-07 Changpeng Fang <changpeng.fang@amd.com>
19899
19900 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
19901 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
19902 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
19903 the unroll_factor.
19904
55e5a2eb
CF
199052010-05-07 Changpeng Fang <changpeng.fang@amd.com>
19906
19907 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
19908 a diagnostic info when the insn-to-mem ratio is too small.
19909
f4a4b582 199102010-05-07 Richard Guenther <rguenther@suse.de>
5cd0e96b
RG
19911
19912 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
19913 the linker plugin.
19914 (store_arg): Queue temp_filename for deletion instead of
19915 the whole argument.
19916
48cf395b
RB
199172010-05-07 Richard Guenther <rguenther@suse.de>
19918
19919 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
19920 (run_gcc): Handle LTRANS phase invocation.
62e59133 19921 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
48cf395b 19922
86b2c5b6
JJ
199232010-05-07 Jakub Jelinek <jakub@redhat.com>
19924
19925 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
19926 this is also meaningful on PARM_DECLs and RESULT_DECLs.
19927
c4e1e0b1
RO
199282010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19929
19930 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
19931
a7d4562a
RG
199322010-05-07 Richard Guenther <rguenther@suse.de>
19933
19934 PR tree-optimization/44020
19935 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
19936 code when PRE is not yet initialized.
19937
a6b02ef3
RO
199382010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19939
19940 * config/mips/dbxmdebug.h: Remove.
19941 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
19942
d42ba3b8
SZ
199432010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
19944
19945 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
19946 with null pointer and also warn about ordered comparison of zero with
19947 pointer if -Wextra.
19948
a6733c71
AS
199492010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
19950
19951 * graphite-blocking.c
19952 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
19953 * graphite-clast-to-gimple.c
19954 (clast_to_gcc_expression): Same.
19955 (precision_for_value): Same.
19956 (precision_for_interval): Same.
19957 (gcc_type_for_interval): Same.
19958 (graphite_create_new_guard): Same.
19959 (compute_bounds_for_level): Same.
19960 (graphite_create_new_loop_guard): Same.
19961 * graphite-interchange.c
19962 (build_linearized_memory_access): Same.
19963 (pdr_stride_in_loop): Same.
19964 (memory_strides_in_loop_1): Same.
19965 (memory_strides_in_loop): Same.
19966 (extend_scattering): Same.
19967 (psct_scattering_dim_for_loop_depth): Same.
19968 (pbb_number_of_iterations): Same.
19969 * graphite-poly.h
19970 (debug_iteration_domains): Same.
19971 * graphite-ppl.c
19972 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
19973 (ppl_set_inhomogeneous_gmp): Same.
19974 (ppl_strip_loop): Same.
19975 (ppl_lexico_compare_linear_expressions): Same.
19976 (ppl_read_polyhedron_matrix): Same.
19977 (ppl_max_for_le_pointset): Same.
19978 * graphite-ppl.h
19979 (ppl_read_polyhedron_matrix): Same.
19980 (tree_int_to_gmp): Same.
19981 (gmp_cst_to_tree): Same.
19982 (ppl_set_inhomogeneous): Same.
19983 (ppl_set_inhomogeneous_tree): Same.
19984 (ppl_set_coef): Same.
19985 (ppl_set_coef_tree): Same.
19986 * graphite-sese-to-poly.c
19987 (build_pbb_scattering_polyhedrons): Same.
19988 (build_scop_scattering): Same.
19989 (scan_tree_for_params_right_scev): Same.
19990 (scan_tree_for_params): Same.
19991 (find_params_in_bb): Same.
19992 (find_scop_parameters): Same.
19993 (add_upper_bounds_from_estimated_nit): Same.
19994 (build_loop_iteration_domains): Same.
19995 (add_condition_to_domain): Same.
19996 (pdr_add_memory_accesses): Same.
19997
199982010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
19999
20000 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
20001 CLooG's value_* macros to their respective mpz_* counterparts.
20002 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
20003 (graphite_create_new_loop_guard): Same.
20004 * graphite-interchange.c (build_linearized_memory_access): Same.
20005 (pdr_stride_in_loop): Same.
20006 (memory_strides_in_loop_1): Same.
20007 (1st_interchange_profitable_p): Same.
20008 * graphite-poly.c (extend_scattering): Same.
20009 (psct_scattering_dim_for_loop_depth): Same.
20010 (pbb_number_of_iterations): Same.
20011 (pbb_number_of_iterations_at_time): Same.
20012 * graphite-poly.h (new_1st_loop): Same.
20013 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
20014 (oppose_constraint): Same.
20015 (insert_constraint_into_matrix): Same.
20016 (ppl_set_inhomogeneous_gmp): Same.
20017 (ppl_set_coef_gmp): Same.
20018 (ppl_strip_loop): Same.
20019 (ppl_lexico_compare_linear_expressions): Same.
20020 (ppl_max_for_le_pointset): Same.
20021 (ppl_min_for_le_pointset): Same.
20022 (ppl_build_realtion): Same.
20023 * graphite-ppl.h (gmp_cst_to_tree): Same.
20024 (ppl_set_inhomogeneous): Same.
20025 (ppl_set_inhomogeneous_tree): Same.
20026 (ppl_set_coef): Same.
20027 (ppl_set_coef_tree): Same.
20028 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20029 (build_scop_scattering): Same.
20030 (add_value_to_dim): Same.
20031 (scan_tree_for_params_right_scev): Same.
20032 (scan_tree_for_params_int): Same.
20033 (scan_tree_for_params): Same.
20034 (find_params_in_bb): Same.
20035 (find_scop_parameters): Same.
20036 (add_upper_bounds_from_estimated_nit): Same.
20037 (build_loop_iteration_domains): Same.
20038 (create_linear_expr_from_tree): Same.
20039 (add_condition_to_domain): Same.
20040 (pdr_add_memory_accesses): Same.
20041
14c2101d
JM
200422010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
20043 Jason Merrill <jason@redhat.com>
20044
20045 * c-common.c (c_common_reswords): Add nullptr.
20046 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
20047 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
20048 (gen_type_die_with_usage): Likewise.
20049 * dbxout.c (dbxout_type): Likewise.
20050 * sdbout.c (plain_type_1): Likewise.
20051
ebad5233
JM
200522010-05-06 Jason Merrill <jason@redhat.com>
20053
941f78d1
JM
20054 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
20055 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
20056 ret appropriately.
20057 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
20058
ebad5233
JM
20059 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
20060 stripping WITH_SIZE_EXPR.
20061 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
20062 change.
20063
9aaa1ee8
RO
200642010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20065
20066 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
20067 list of obsolete configurations.
20068 Disabled check for obsolete configurations.
20069 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
20070 Removed support for previous versions.
20071 * config/mips/iris.h: Removed.
20072 * config/mips/iris5.h: Removed.
20073 * config/mips/iris6.h: Merged old iris.h contents.
20074 (TARGET_IRIX): Removed.
20075 (DRIVER_SELF_SPECS): Removed mabi=32.
20076 (IDENT_ASM_OP): Removed undef.
20077 (STARTFILE_SPEC): Removed mabi=32.
20078 (ENDFILE_SPEC): Likewise.
20079 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
20080 (MACHINE_TYPE): Update for IRIX 6.5.
20081 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
20082 TARGET_IRIX by TARGET_IRIX6.
20083 (mips_file_start): Likewise.
20084 (mips_output_external): Remove IRIX 5/6 O32 support.
20085 (mips_output_function_prologue): Likewise.
20086 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
20087 TARGET_IRIX6.
20088 (TARGET_CPU_CPP_BUILTINS): Likewise.
20089 (TARGET_IRIX): Removed.
20090 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
20091 (MULTILIB_DIRNAMES): Removed 32.
20092 (MULTILIB_OSDIRNAMES): Removed ../lib.
62e59133 20093 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
9aaa1ee8 20094 (Specific, mips-sgi-irix5): Document removal.
62e59133 20095 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
9aaa1ee8
RO
20096 Remove references to older IRIX 6 releases and the O32 ABI.
20097
5b8bd3d5
JJ
200982010-05-06 Jakub Jelinek <jakub@redhat.com>
20099
20100 PR bootstrap/43994
20101 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
20102 instead of DF_REF_REAL_REG.
20103
e97580ce
DK
201042010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
20105
20106 PR target/43888
20107 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
20108 handling to still return true for x64 targets.
20109
f24d84cc
MK
201102010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
20111
20112 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
20113
ef38b551
JH
201142010-05-06 Jan Hubicka <jh@suse.cz>
20115
20116 PR tree-optimization/43791
20117 * ipa-inline.c (update_caller_keys): Remove bogus
20118 disregard_inline_limits check.
20119
0ab555de
MM
201202010-05-06 Michael Matz <matz@suse.de>
20121
20122 PR tree-optimization/43984
20123 * tree-ssa-pre.c (inserted_phi_names): Remove.
20124 (inserted_exprs): Change to bitmap.
20125 (create_expression_by_pieces): Set bits, don't append to vector.
20126 (insert_into_preds_of_block): Don't handle inserted_phi_names.
20127 (eliminate): Don't look at inserted_phi_names, remove deleted
20128 insns from inserted_exprs.
62e59133 20129 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
0ab555de
MM
20130 (init_pre, fini_pre): Allocate and free bitmaps.
20131 (execute_pre): Insert insns on edges before elimination.
20132
315a02da
MK
201332010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
20134
20135 * tree.c (initializer_zerop): Handle STRING_CST.
20136
3734d960
MLI
201372010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
20138
20139 PR 40989
20140 * doc/invoke.texi (Wimplicit): Document as C only.
20141 * opts.c (common_handle_option): Add argument kind.
20142 (handle_option): Rename as read_cmdline_option. Factor out code to...
20143 (handle_option): ... here. New.
20144 (handle_options): Rename as read_cmdline_options.
20145 (decode_options): Update call.
20146 (set_option): Use option index instead of option pointer. Classify
20147 diagnostics correctly.
20148 (enable_warning_as_error): Call handle_option.
20149 * opts.h (set_option): Update declaration.
20150 (handle_option): Declare.
62e59133 20151 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3734d960
MLI
20152 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
20153 * c-opts.c (set_Wimplicit): Delete.
20154 (c_family_lang_mask): New static constant.
20155 (c_common_handle_option): Add argument kind. Use handle_option
20156 instead of set_Wimplicit.
20157 (c_common_post_options): warn_implicit and warn_implicit_int
20158 are disabled by default.
20159 * c-common.c (warn_implicit): Do not define here.
20160 * c-common.h (warn_implicit): Do not declare here.
20161 (c_common_handle_option): Update declaration.
20162 * lto-opts.c (lto_reissue_options): Update call to set_option.
20163
2b90475a
RG
201642010-05-06 Richard Guenther <rguenther@suse.de>
20165
20166 PR tree-optimization/43571
20167 * domwalk.c (walk_dominator_tree): Walk the dominator
20168 sons in more optimal order.
20169
e3bdfed6
RG
201702010-05-06 Richard Guenther <rguenther@suse.de>
20171
20172 PR tree-optimization/43934
20173 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
20174 (stmt_cost): Likewise.
20175 (extract_true_false_args_from_phi): New helper.
20176 (determine_max_movement): For PHI nodes verify we can hoist them
20177 and compute their cost.
20178 (determine_invariantness_stmt): Handle PHI nodes.
20179 (move_computations_stmt): Likewise. Hoist PHI nodes in
20180 if-converted form using COND_EXPRs.
62e59133 20181 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
e3bdfed6
RG
20182 (tree_ssa_lim): Likewise.
20183 * tree-flow.h (tree_ssa_lim): Adjust prototype.
20184 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
20185
a81b065a
RG
201862010-05-06 Richard Guenther <rguenther@suse.de>
20187
20188 PR tree-optimization/43987
20189 * tree-ssa-structalias.c (could_have_pointers): For possibly
20190 address-taken variables force pointers to be recorded.
20191 (create_variable_info_for_1): Likewise.
20192 (push_fields_onto_fieldstack): Pass in wheter all fields
20193 must have pointers.
20194 (find_func_aliases): Query types instead of vars whether
20195 they contain pointers where appropriate.
20196
369451ec
JH
201972010-05-06 Jan Hubicka <jh@suse.cz>
20198
20199 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
20200 (record_reference, mark_address, mark_load, mark_store): Record
20201 references.
20202 (record_references_in_initializer): Update call of record_references.
20203 (rebuild_cgraph_edges): Remove all references before rebuiding.
20204 * cgraph.c (cgraph_create_node): Clear ref list.
20205 (cgraph_remove_node): Remove references.
20206 (dump_cgraph_node): Dump references.
20207 (cgraph_clone_node): Clone references.
20208 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
20209 (struct cgraph_node, varpool_node): Add ref_lst.
20210 * ipa-ref.c: New file.
20211 * ipa-ref.h: New file.
20212 * ipa-ref-inline.h: New file.
20213 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
20214 (referenced_from_other_partition_p): New function.
20215 (lto_output_varpool_node): Take set arugment; call
20216 referenced_from_other_partition.
20217 (lto_output_ref): New.
20218 (add_references): New.
20219 (output_refs): New.
62e59133 20220 (output_cgraph): Compute boundary based on references; output refs.
369451ec
JH
20221 (output_varpool): Accept cgraph_node_set argument.
20222 (input_ref): New.
20223 (input_refs): New.
20224 (input_cgraph): Call input_refs.
20225 * lto-section-in.c (lto_section_name): Add refs.
ade52657 20226 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
369451ec
JH
20227 (ipa-ref.o): New file.
20228 * varpool.c (varpool_node): Clear ipa ref list.
20229 (varpool_remove_node): Remove references.
20230 (dump_varpool_node): Dump references.
20231 (varpool_assemble_decl): Only compile finalized ones.
20232 (varpool_extra_name_alias): Initialize ref list.
20233 * lto-streamer.c (lto-get_section_name): Add .refs section.
20234 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
20235 (referenced_from_other_partition_p): Declared.
20236
7d8930a0
IR
202372010-05-06 Ira Rosen <irar@il.ibm.com>
20238
20239 PR tree-optimization/43901
20240 * tree-vect-stmts.c (vectorizable_call): Assert that vector
20241 type is not NULL if it's transformation phase, and return
20242 FALSE if it's analysis.
62e59133
UB
20243 (vectorizable_conversion, vectorizable_operation,
20244 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
7d8930a0 20245
a1c4f19f
AP
202462010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
20247
20248 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20249 Delete.
20250 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20251 New define.
20252 * config/mips/mips-protos.h
20253 (mips_small_register_classes_for_mode_p): Delete prototype.
20254
93b338c3
BS
202552010-05-06 Bernd Schmidt <bernds@codesourcery.com>
20256
20257 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
20258 * config/arm/arm.c (multiple_operation_profitable_p,
20259 compute_offset_order): New static functions.
20260 (load_multiple_sequence, store_multiple_sequence): Use them.
20261 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
20262 memory offsets, not register numbers.
20263 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
20264
50701474
SB
202652010-05-05 Steven Bosscher <steven@gcc.gnu.org>
20266
62e59133 20267 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
50701474
SB
20268 (get_pending_sizes, put_pending_size, put_pending_sizes):
20269 Update the uses of pending_sizes.
20270 * c-decl.c (store_parm_decls): Likewise.
20271 * c-tree.h (struct c_arg_info): Likewise.
20272 * tree.h: Update the prototype for get_pending_sizes and
20273 put_pending_sizes.
20274
564a129d
JM
202752010-05-05 Jason Merrill <jason@redhat.com>
20276
0f559c16
JM
20277 PR debug/43370
20278 * c-common.c (handle_aligned_attribute): Respect
20279 ATTR_FLAG_TYPE_IN_PLACE.
20280
564a129d
JM
20281 PR testsuite/43758
20282 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
20283 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20284 (TARGET_INITIALIZER): Use it.
20285 * c-common.c (attribute_takes_identifier_p): Call it.
20286 * c-common.h: Update prototype.
20287 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
20288 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20289
58c13acc
JJ
202902010-05-05 Jakub Jelinek <jakub@redhat.com>
20291
20292 PR debug/43950
20293 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
20294 DW_ID_down_case for Fortran compilation units.
20295
5b042919
JH
202962010-05-05 Jan Hubicka <jh@suse.cz>
20297
20298 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
20299 handle aliases.
20300
ca361dec
EB
203012010-05-05 Eric Botcazou <ebotcazou@adacore.com>
20302
20303 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
20304 a variable-sized RESULT_DECL.
20305
fa6aeae1
MK
203062010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
20307
20308 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
20309
6d729f28
JM
203102010-05-05 Jason Merrill <jason@redhat.com>
20311
20312 PR c++/43787
20313 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
20314 returns GS_OK.
20315 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
20316
e972a1d3
AO
203172010-05-05 Alexandre Oliva <aoliva@redhat.com>
20318 Jakub Jelinek <jakub@redhat.com>
20319
20320 PR debug/43478
20321 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
20322 (dead_debug_init, dead_debug_finish): New functions.
20323 (dead_debug_add, dead_debug_insert_before): Likewise.
20324 (df_note_bb_compute): Initialize a dead_debug object, add dead
20325 debug uses to it, insert debug bind insns before death insns,
20326 reset debug insns that refer to pending uses at the end.
20327 * rtl.h (make_debug_expr_from_rtl): New prototype.
20328 * varasm.c (make_debug_expr_from_rtl): New function.
20329
2f41ecf5
JH
203302010-05-05 Jan Hubicka <jh@suse.cz>
20331
20332 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
62e59133
UB
20333 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
20334 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
20335 lto_varpool_encoder_deref, lto_varpool_encoder_size,
2f41ecf5
JH
20336 lto_varpool_encoder_encode_initializer_p,
20337 lto_set_varpool_encoder_encode_initializer): New functions.
20338 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
20339 call output_varpool.
20340 (input_varpool_node): Do not always set analyzed.
20341 (input_cgraph_1): Return vector of cgraph nodes.
20342 (input_varpool_1): Return vector of varpools.
20343 (input_cgraph): Free the vectors.
20344 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20345 output only initializers needed.
20346 (lto_output): Only call output_cgraph.
20347 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
20348 * lto-section-out.c (lto_new_out_decl_state): Initialize
20349 state->varpool_node_encoder.
20350 * lto-streamer.h (lto_varpool_encoder_d): New.
62e59133 20351 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2f41ecf5
JH
20352 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
20353 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
20354 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
20355 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
20356 Declare.
20357 (output_varpool, input_varpool): Remove declarations.
20358
9e0546ef
JH
203592010-05-05 Jan Hubicka <jh@suse.cz>
20360
20361 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
20362 with body can prevail.
20363
203642010-05-05 Jan Hubicka <jh@suse.cz>
20365
20366 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
20367 size.
20368
0277fabf
LB
203692010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
20370
62e59133 20371 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
0277fabf
LB
20372
20373 * gengtype.h (erro_at_line): Constify pos argument.
20374
20375 * gengtype.c: Include hashtab.h.
20376 (enum gc_used): Document GC_MAYBE_POINTED_TO.
20377 (error_at_line): Constify pos argument.
20378 (do_typedef): Initialize p->opt field.
20379 (get_file_gtfilename): Fix comment typo.
20380 (struct walk_type_data): Constify line field.
20381 (get_output_file_for_structure): New function.
20382 (write_local_func_for_structure): Constify orig_s argument.
20383 Use get_output_file_for_structure.
20384 (write_func_for_structure): Use get_output_file_for_structure.
20385 (INDENT): New define.
20386 (dump_pair, dump_type, dump_type_list, dump_typekind)
20387 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
20388 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
20389 functions.
20390 (seen_types): New variable.
20391 (main): New variable do_dump. Process "-d" command line option.
20392 Call dump_everything if dump requested.
20393
dbb2a2cb
JJ
203942010-05-05 Jakub Jelinek <jakub@redhat.com>
20395
20396 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
20397 in a temporary instead of invoking the macro multiple times.
20398 (track_expr_p): Likewise.
20399
f4a4b582 204002010-05-04 Neil Vachharajani <nvachhar@google.com>
650cfcab
NV
20401
20402 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
20403 per new semantics.
20404 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
20405 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
20406 conditions for printing notes.
20407 * common.opt (-Wcoverage-mismatch): Allow negative, default to
20408 true, update documentation.
20409 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
650cfcab 20410
97e3c923
JJ
204112010-05-04 Jakub Jelinek <jakub@redhat.com>
20412
20413 PR c/43981
20414 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
20415 on dimen.
20416
ade6a9ac
L
204172010-05-04 H.J. Lu <hongjiu.lu@intel.com>
20418
20419 PR target/43799
62e59133 20420 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
ade6a9ac
L
20421 (*sse_prologue_save_insn1): Likewise.
20422 (SSE prologue save splitter): Likewise.
20423
7ef5e86c
EB
204242010-05-04 Eric Botcazou <ebotcazou@adacore.com>
20425
20426 * tree.c (free_lang_data_in_one_sizepos): New inline function.
20427 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
20428 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
20429 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
20430 all decls. Call it on DECL_FIELD_OFFSET of fields.
20431 (find_decls_types_r): Follow DECL_VALUE_EXPR.
20432 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
20433
6cbd3b6a
MJ
204342010-05-04 Martin Jambor <mjambor@suse.cz>
20435
20436 * tree-sra.c (build_access_from_expr_1): The first parameter type
20437 changed to simple tree.
20438 (build_access_from_expr): Likewise, gsi parameter was eliminated.
20439 (scan_assign_result): Renamed to assignment_mod_result, enum elements
20440 renamed as well.
20441 (build_accesses_from_assign): Removed all parameters except for a
20442 simple gimple statement. Now returns a simple bool.
20443 (scan_function): All non-analysis parts moved to separate functions
20444 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
20445 parameters and updated both callers.
20446 (sra_modify_expr): Removed parameter data.
20447 (sra_modify_function_body): New function.
20448 (perform_intra_sra): Call sra_modify_function_body to modify the
20449 function body.
20450 (replace_removed_params_ssa_names): Parameter data changed into
20451 adjustments vector.
20452 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
20453 changed the parameter dont_convert to convert with the opposite
20454 meaning.
20455 (sra_ipa_modify_assign): Parameter data changed into adjustments
20456 vector, return value changed to bool.
20457 (ipa_sra_modify_function_body): New function.
20458 (sra_ipa_reset_debug_stmts): Updated a comment.
20459 (modify_function): Use ipa_sra_modify_function_body to modify function
20460 body.
20461
2147c71c
L
204622010-05-04 H.J. Lu <hongjiu.lu@intel.com>
20463
20464 PR middle-end/43671
20465 * alias.c (true_dependence): Handle the same VALUE in x and mem.
20466 (canon_true_dependence): Likewise.
20467 (write_dependence_p): Likewise.
20468
85912441
JH
204692010-05-04 Jan Hubicka <jh@suse.cz>
20470
20471 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
20472 * cgraphbuild.c: Include ipa-utils.h
20473 (record_reference_ctx): New struct.
20474 (record_reference): Simplify to work on initializers; not statements.
20475 (mark_address, mark_load, mark_store): New.
20476 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
20477 walk PHI nodes too.
20478 (record_references_in_initializer): Update use of record_reference.
20479 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
20480 walk PHI nodes too.
20481
688a10c2
JH
204822010-05-04 Jan Hubicka <jh@suse.cz>
20483
20484 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
20485 node will be removed anyway.
20486 (lto_varpool_replace_node): Allow also unanalyzed nodes;
20487 relink aliases of node into prevailing node.
20488 * varpool.c (varpool_remove_node): Remove aliases properly;
20489 when removing node, remove all its aliases too; remove DECL_INITIAL
20490 of removed node; ggc_free the varpool node.
20491
27c2cfa6
RG
204922010-05-04 Richard Guenther <rguenther@suse.de>
20493
20494 PR tree-optimization/43879
20495 * tree-ssa-structalias.c (alias_get_name): Use
20496 DECL_ASSEMBLER_NAME if available.
20497 (create_function_info_for): Return the varinfo node.
20498 (ipa_pta_execute): Associate same-body aliases and extra names
20499 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
20500
9c265c4d
KK
205012010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
20502
62e59133 20503 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
9c265c4d 20504
a5c011cd
MP
205052010-05-04 Mikael Pettersson <mikpe@it.uu.se>
20506
20507 PR bootstrap/43964
20508 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
20509 only if HONOR_REG_ALLOC_ORDER is not defined.
20510
622d360e
RG
205112010-05-04 Richard Guenther <rguenther@suse.de>
20512
20513 PR tree-optimization/43949
20514 * tree-vrp.c (extract_range_from_binary_expr): Only handle
20515 TRUNC_MOD_EXPR.
20516
cbb4feb3
JM
205172010-04-26 Jason Merrill <jason@redhat.com>
20518
20519 * c.opt (-fstrict-enums): New.
20520 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
20521
f4a4b582 205222010-05-03 David Ung <davidu@mips.com>
67e67979
DU
20523 James E. Wilson <wilson@codesourcery.com>
20524
e492f63b 20525 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
67e67979
DU
20526 emit the trap instruction before the divide for TUNE_74K.
20527
42db504c
SB
205282010-05-03 Steven Bosscher <steven@gcc.gnu.org>
20529
20530 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
20531 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
20532 based on the above, for new target hook.
20533
20534 * hooks.c (hook_bool_mode_true): New generic hook.
20535 * hooks.h (hook_bool_mode_true): Add prototype.
20536
20537 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
20538 target hook.
20539 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
20540 target hook, set to hook_bool_mode_false.
20541 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
20542 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
20543 with targetm.small_register_classes_for_mode_p.
20544 (find_reusable_reload): Likewise.
20545 (combine_reloads): Likewise.
20546 * reload1.c (reload_as_needed): Likewise.
20547 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
20548 * ifcvt.c (noce_process_if_block, check_cond_move_block,
20549 dead_or_predicable): Likewise.
20550 * regmove.c (optimize_reg_copy_1): Likewise.
20551 * calls.c (prepare_call_address): Likewise.
20552 (precompute_register_parameters): Likewise.
20553
20554 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
20555 hook definition.
20556 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
20557 implementation of the hook that considers all register classes
20558 small except for SH64.
20559 (sh_override_options): Use the new hook.
20560 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
20561 Add prototype.
20562
20563 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
20564 hook definition.
20565 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
20566 implementation of the hook that considers all register classes
20567 small for THUMB1.
20568 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
20569 Add prototype.
20570
20571 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
20572 hook definition.
20573 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
20574 implementation of the hook that considers all register classes
20575 small for MIPS16.
20576 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
20577 Add prototype.
20578
20579 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
20580 hook definition.
20581 * config/m32c/m32c.h: Likewise.
20582 * config/pdp11/pdp11.h: Likewise.
20583 * config/avr/avr.h: Likewise.
20584 * config/xtensa/xtensa.h: Likewise.
20585 * config/m68hc11/m68hc11.h: Likewise.
20586 * config/mn10300/mn10300.h: Likewise.
20587 * config/mcore/mcore.h: Likewise.
20588 * config/h8300/h8300.h: Likewise.
20589 * config/bfin/bfin.h: Likewise.
20590
20591 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
20592 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
20593
e6693cfa
AS
205942010-05-03 Anatoly Sokolov <aesok@post.ru>
20595
20596 * double-int.h (tree_to_double_int): Remove macro.
20597 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
20598 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
20599 (tree_to_double_int): New function.
20600 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
20601 Move ...
20602 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
20603
8eb7bc3c
RG
206042010-05-03 Richard Guenther <rguenther@suse.de>
20605
20606 PR tree-optimization/43971
20607 * tree-ssa-structalias.c (get_constraint_for_1): Fix
20608 constraints in the !flag_delete_null_pointer_checks case.
20609
c4e26da1
JJ
206102010-05-03 Jakub Jelinek <jakub@redhat.com>
20611
20612 PR debug/43972
20613 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
20614 result mode matches original rtl mode.
20615
2dfccd83
DK
206162010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
20617
2385a470 20618 PR target/43888
2dfccd83
DK
20619 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
20620
18fdef20
UB
206212010-05-02 Uros Bizjak <ubizjak@gmail.com>
20622
20623 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
20624 when processing flag options.
20625
7c393241
UB
206262010-05-02 Uros Bizjak <ubizjak@gmail.com>
20627
20628 * gcov-iov.c (main): Change format string placeholder
20629 from %#08x to 0x%08x.
20630 * genchecksum.c (dosum): Change format string placeholder
20631 from %#02x to 0x%02x.
20632
52c307ba
RG
206332010-05-02 Richard Guenther <rguenther@suse.de>
20634
20635 PR tree-optimization/43879
7c393241 20636 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
52c307ba 20637
4896c7b8
BH
206382010-05-02 Bruno Haible <bruno@clisp.org>
20639
20640 * doc/extend.texi (Function Attributes): Fix a typo.
20641
34a47f6f
UB
206422010-05-02 Uros Bizjak <ubizjak@gmail.com>
20643
20644 Revert:
20645 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
20646 placeholder from 0x%x to %#x.
20647 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
7c393241
UB
20648 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
20649 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
20650 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
20651 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
20652 * config/i386/i386.c (ix86_target_string): Ditto.
34a47f6f 20653 * config/i386/i386.c (output_pic_addr_const): Ditto.
7c393241 20654 (print_operand): Ditto.
34a47f6f 20655
35c59d9c
UB
206562010-05-02 Uros Bizjak <ubizjak@gmail.com>
20657
20658 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
20659 placeholder from 0x%x to %#x.
20660 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
20661 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
20662 (ASM_OUTPUT_DEBUG_DATA): Ditto.
20663 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
20664 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
20665 * optc-gen.awk: Ditto.
20666 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
20667 (HOST_WIDE_INT_PRINT_HEX): Ditto.
20668 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
20669 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
35c59d9c 20670
82f81f18
AS
206712010-05-01 Anatoly Sokolov <aesok@post.ru>
20672
20673 * target.h (struct calls): Add function_value_regno_p field.
20674 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
20675 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
20676 * targhooks.c (default_function_value_regno_p): New function.
20677 * targhooks.h (default_function_value_regno_p): Declare function.
20678 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
20679 * builtins.c. (apply_result_size): (Ditto.).
20680 * combine.c. (likely_spilled_retval_p): (Ditto.).
20681 * mode-switching.c. Include 'target.h'.
20682 (create_pre_exit): Use function_value_regno_p hook.
20683 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
20684 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
20685 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
20686
20687 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
20688 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
20689 (ix86_function_value_regno_p): Declare as static, change argument
20690 type to const unsigned int.
20691 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
20692
bab4d587
RG
206932010-05-01 Richard Guenther <rguenther@suse.de>
20694
20695 PR tree-optimization/43949
20696 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
20697 types.
20698 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
20699
3e93ff81
AS
207002010-05-01 Anatoly Sokolov <aesok@post.ru>
20701
20702 * rtl.h (CONST_DOUBLE_P): Define.
20703 (rtx_to_double_int): Declare.
20704 * emit-rtl.c (rtx_to_double_int): New function.
20705 * dwarf2out.c (insert_double): New function.
20706 (loc_descriptor, add_const_value_attribute): Clean up, use
20707 rtx_to_double_int and insert_double functions.
20708
bcbc9564
JW
207092010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
20710
20711 * doc/extend.texi (Inline): Add missing return keyword to examples.
20712 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
20713 "command-line".
20714
ce276b61
EB
207152010-04-30 Eric Botcazou <ebotcazou@adacore.com>
20716
20717 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
20718 the variable part of the offset as well. Use highest_pow2_factor for
20719 all alignment checks.
20720
82677400
RB
207212010-04-30 Richard Guenther <rguenther@suse.de>
20722
20723 PR tree-optimization/43879
20724 * tree-ssa-structalias.c (type_could_have_pointers): Functions
20725 can have pointers.
20726
cd71491e
JH
207272010-04-30 Jan Hubicka <jh@suse.cz>
20728
82677400
RB
20729 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
20730 varpool.
cd71491e
JH
20731 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
20732
ace72c88
JH
207332010-04-30 Jan Hubicka <jh@suse.cz>
20734
82677400
RB
20735 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
20736 New.
ace72c88
JH
20737 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
20738 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
20739 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
20740 cgraph_node_set_needs_ltrans_p): Remove.
20741
b6feb796
SB
207422010-04-30 Steven Bosscher <steven@gcc.gnu.org>
20743
20744 * sdbout.c: Include vec.h, do not include varray.h.
20745 (deferred_global_decls, sdbout_global_decl,
20746 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
20747 * toplev.c: Do not include varray.h.
20748 (dump_memory_report): Do not dump VARRAY statistics.
20749 * gengtype.c (open_base_file): Ignore varray.h.
20750 * Makefile.in: Update for abovementioned changes.
20751 Remove all traces of varray.c and varray.h.
20752 * varray.c: Remove file.
20753 * varray.h: Remove file.
20754
05575e07
JH
207552010-04-30 Jan Hubicka <jh@suse.cz>
20756
20757 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
20758 references.
20759
9c6e0798
JH
207602010-04-30 Jan Hubicka <jh@suse.cz>
20761
20762 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
20763 needed.
20764
47d8a903
RG
207652010-04-30 Richard Guenther <rguenther@suse.de>
20766
20767 * tree-ssa-structalias.c (get_constraint_for_1): Generate
20768 constraints for CONSTRUCTOR.
20769
b6050cb7
RG
207702010-04-30 Richard Guenther <rguenther@suse.de>
20771
20772 PR lto/43946
20773 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
20774 first after all lowering passes.
20775
9aae8d16
SB
207762010-04-30 Steven Bosscher <steven@gcc.gnu.org>
20777
20778 * toplev.c: Include varray.h for statistics dumping.
20779 * tree.h: Do not declare varray_head_tag.
20780 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
20781 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
20782 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
20783 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
20784 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
20785 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
20786 c-common.c, c-common.h, reg-stack.c, basic-block.h,
20787 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
20788 include varray.h.
20789 * Makefile.in: Update for abovementioned changes.
20790
a07ecd2b
JJ
207912010-04-30 Jakub Jelinek <jakub@redhat.com>
20792
20793 PR debug/43942
20794 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
20795
41700fc3
HS
207962010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
20797
20798 * config/picochip/picochip.c (picochip_legitimize_address): Define.
20799 Use this function to do machine-specific conversion.
20800 (picochip_legitimize_reload_address): Likewise.
20801 (picochip_legitimate_address_p): Check valid base register only if
20802 strict.
20803 (picochip_check_conditional_copy): Check for modw only if opnd is
20804 register.
20805 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
20806 to call the function in c.
20807 * config/picochip/picochip-protos.h
20808 (picochip_legitimize_reload_address): Define.
20809 * config/picochip/picochip.md (supported_compare1): Define.
20810
8b4765bf
JH
208112010-04-30 Jan Hubicka <jh@suse.cz>
20812
20813 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
20814 (cgraph_global_info): Remove inlined.
20815 (LTO_cgraph_tag_names): Remove.
20816 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
20817 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
20818 simplify cgraph tags and document.
20819 (lto_output_node): Use only LTO_cgraph_unavail_node and
20820 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
35c59d9c 20821 for_functions_valid, global info, process and output flags.
8b4765bf 20822 (input_overwrite_node): Initialize estimated stack size and
35c59d9c 20823 estimated growth. Do not read flags we no longer store.
8b4765bf
JH
20824 (input_node): Likewise do not read info no longer stored.
20825 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
20826 flag.
20827
4be68d9a
RG
208282010-04-30 Richard Guenther <rguenther@suse.de>
20829
20830 PR tree-optimization/43879
20831 * tree-ssa-structalias.c (get_constraint_for_1): Properly
20832 handle non-zero initializers.
20833
06468254
RG
208342010-04-30 Richard Guenther <rguenther@suse.de>
20835
20836 * builtins.c (fold_builtin_1): Delete free (0).
20837
8b4765bf 208382010-04-29 Jan Hubicka <jh@suse.cz>
49ba8180
JH
20839
20840 * gengtype.c (open_base_files): Add lto-streamer.h
20841 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
20842 (pass_ipa_cp): GGC collect.
20843 * toplev. (compile_file): Do not output symbols.
20844 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
20845 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
20846 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
20847 * lto-section-in.c: Include ggc.h
20848 (lto_new_in_decl_state): Alloc in GGC.
20849 (lto_delete_in_decl_state): Likewise.
35c59d9c
UB
20850 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
20851 Collect.
49ba8180 20852
5a733826
BS
208532010-04-29 Bernd Schmidt <bernds@codesourcery.com>
20854
20855 PR target/42895
20856 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
20857 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
20858 (HONOR_REG_ALLOC_ORDER): Describe new macro.
20859 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
20860 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
20861 account only if HONOR_REG_ALLOC_ORDER is not defined.
20862 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
20863 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
35c59d9c
UB
20864
208652010-04-29 Jon Grant <04@jguk.org>
20866
7c6d86cc
JG
20867 * collect2.c (vflag): Change type from int to bool.
20868 (debug): Likewise.
20869 (helpflag): New global bool.
35c59d9c
UB
20870 (main): Set vflag and debug with boolean, not integer truth values.
20871 Accept new "--help" option and output usage text if found.
7c6d86cc
JG
20872 * collect2.h (vflag): Update prototype.
20873 (debug): Likewise.
35c59d9c 20874
55040b34
L
208752010-04-29 H.J. Lu <hongjiu.lu@intel.com>
20876
716a3481 20877 PR bootstrap/43936
35c59d9c 20878 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
55040b34 20879
46e70c4e
RG
208802010-04-29 Richard Guenther <rguenther@suse.de>
20881
20882 PR bootstrap/43935
20883 * plugin.h (invoke_plugin_callbacks): Annotate arguments
20884 with ATTRIBUTE_UNUSED.
20885
0d0539f0
L
208862010-04-29 H.J. Lu <hongjiu.lu@intel.com>
20887
20888 PR target/43921
20889 * config/i386/i386.c (get_some_local_dynamic_name): Replace
20890 INSN_P with NONDEBUG_INSN_P.
20891 (distance_non_agu_define): Likewise.
20892 (distance_agu_use): Likewise.
20893
8e5f0b49
BS
208942010-04-29 Bernd Schmidt <bernds@codesourcery.com>
20895
f4a4b582 20896 From Dominique d'Humieres <dominiq@lps.ens.fr>
8e5f0b49
BS
20897 PR bootstrap/43858
20898 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
20899 test_set.
20900
35c59d9c 209012010-04-29 Brian Hackett <bhackett1024@gmail.com>
efda3807
BH
20902
20903 * plugin.h (invoke_plugin_callbacks): New inline function.
20904 * plugin.c (flag_plugin_added): New global flag.
20905 (add_new_plugin): Initialize above flag.
20906 (invoke_plugin_callbacks): Rename to ...
20907 (invoke_plugin_callbacks_full): ... this.
20908
2942c502
JH
209092010-04-28 Jan Hubicka <jh@suse.cz>
20910
20911 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
20912 (lto_varpool_replace_node): New.
20913 (lto_symtab_resolve_symbols): Resolve varpool nodes.
20914 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
20915 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
20916 * cgraph.h (varpool_node_ptr): New type.
20917 (varpool_node_ptr): New vector.
20918 (varpool_node_set_def): New structure.
20919 (varpool_node_set): New type.
20920 (varpool_node_set): New vector.
20921 (varpool_node_set_element_def): New structure.
20922 (varpool_node_set_element, const_varpool_node_set_element): New types.
20923 (varpool_node_set_iterator): New type.
20924 (varpool_node): Add prev pointers, add used_from_other_partition,
20925 in_other_partition.
20926 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
20927 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
20928 varpool_get_node, varpool_remove_node): Declare.
20929 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
20930 varpool_node_set_size): New inlines.
20931 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
20932 * tree-pass.h (varpool_node_set_def): Forward declare.
20933 (ipa_opt_pass_d): Summary writting takes vnode sets too.
20934 (ipa_write_optimization_summaries): Update prototype.
20935 * ipa-cp.c (ipcp_write_summary): Update.
20936 * ipa-reference.c (ipa_reference_write_summary): Update.
20937 * lto-cgraph.c (lto_output_varpool_node): New static function.
20938 (output_varpool): New function.
20939 (input_varpool_node): New static function.
20940 (input_varpool_1): New function.
20941 (input_cgraph): Input varpool.
20942 * ipa-pure-const.c (pure_const_write_summary): Update.
20943 * lto-streamer-out.c (lto_output): Update, output varpool too.
20944 (write_global_stream): Kill WPA hack.
20945 (produce_asm_for_decls): Update.
20946 (output_alias_pair_p): Handle variables.
20947 (output_unreferenced_globals): Output only needed partition of varpool.
20948 * ipa-inline.c (inline_write_summary): Update.
35c59d9c
UB
20949 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
20950 cgraph.
2942c502
JH
20951 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
20952 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
20953 varpool_node_set_new, varpool_node_set_add,
20954 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
20955 debug_varpool_node_set): New functions.
20956 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
20957 (execute_one_pass): Process new decls too.
20958 (ipa_write_summaries_2): Pass around vsets.
20959 (ipa_write_summaries_1): Likewise.
20960 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
20961 to add.
20962 (ipa_write_optimization_summaries_1): Pass around vsets.
20963 (ipa_write_optimization_summaries): Likewise.
20964 * varpool.c (varpool_get_node): New.
20965 (varpool_node): Update doubly linked lists.
20966 (varpool_remove_node): New.
20967 (dump_varpool_node): More dumping.
20968 (varpool_enqueue_needed_node): Update doubly linked lists.
20969 (decide_is_variable_needed): Kill ltrans hack.
20970 (varpool_finalize_decl): Kill lto hack.
20971 (varpool_assemble_decl): Skip decls in other partitions.
20972 (varpool_assemble_pending_decls): Update doubly linkes lists.
20973 (varpool_empty_needed_queue): Likewise.
20974 (varpool_extra_name_alias): Likewise.
20975 * lto-streamer.c (lto_get_section_name): Add vars section.
20976 * lto-streamer.h (lto_section_type): Update.
20977 (output_varpool, input_varpool): Declare.
20978
da7f2697
MS
209792010-04-28 Mike Stump <mikestump@comcast.net>
20980
74ca3393 20981 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
da7f2697 20982
91eace2b
EB
209832010-04-28 Eric Botcazou <ebotcazou@adacore.com>
20984
20985 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
20986 record or union type with RECORD_OR_UNION_TYPE_P predicate.
20987 (lto_input_ts_type_tree_pointers): Likewise.
20988 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
20989 (lto_output_ts_type_tree_pointers): Likewise.
20990
8478130d
EB
209912010-04-28 Eric Botcazou <ebotcazou@adacore.com>
20992
20993 Uniquization of constants at the Tree level
20225a9b 20994 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
8478130d
EB
20995 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
20996 bit to the end.
20997 (tree_output_constant_def): Declare.
20225a9b 20998 * gimplify.c (gimplify_init_constructor): When using block copy, first
8478130d 20999 uniquize the constant constructor on the RHS.
20225a9b
EB
21000 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
21001 DECL_IN_CONSTANT_POOL flag.
8478130d 21002 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
20225a9b
EB
21003 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
21004 constant pool.
8478130d
EB
21005 (assemble_variable): Deal with symbols belonging to the tree constant
21006 pool.
21007 (get_constant_section): Add ALIGN parameter and simplify.
21008 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
21009 (assemble_constant_contents): Use the expression of the VAR_DECL.
21010 (output_constant_def_contents): Use the alignment of the VAR_DECL.
21011 (tree_output_constant_def): New global function.
21012 (mark_constant): Use the expression of the VAR_DECL.
20225a9b
EB
21013 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
21014 its expression.
8478130d
EB
21015 (output_object_block): Likewise and assemble the expression.
21016
331c7fcd
EB
210172010-04-28 Eric Botcazou <ebotcazou@adacore.com>
21018
21019 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
21020 hash_tree, eq_tree): New tree hash table.
21021 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
21022 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
21023 lto_orig_address_remove): Reimplement.
21024
34f97b94
XDL
210252010-04-28 Xinliang David Li <davidxl@google.com>
21026
21027 PR c/42643
21028 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
21029 (compute_uninit_opnds_pos): New function.
21030 (is_non_loop_exit_postdominating): New function.
21031 (compute_control_dep_chain): New function.
21032 (find_pdom): New function.
21033 (convert_control_dep_chain_into_preds): New function.
21034 (find_predicates): New function.
21035 (find_control_equiv_block): New function.
21036 (collect_phi_def_edges): New function.
21037 (find_def_preds): New function.
21038 (find_dom): New function.
21039 (dump_predicates): New function.
21040 (get_cmp_code): New function.
21041 (is_value_included_in): New function.
21042 (find_matching_predicate_in_rest_chains): New function.
21043 (use_pred_not_overlap_with_undef_path_pred): New function.
21044 (is_use_properly_guarded): New function.
21045 (normalize_cond_1): New function.
21046 (is_and_or_or): New function.
21047 (normalize_cond): New function.
21048 (is_gcond_subset_of): New function.
21049 (is_subset_of_any): New function.
21050 (is_or_set_subset_of): New function.
21051 (is_and_set_subset_of): New function.
21052 (is_norm_cond_subset_of): New function.
21053 (is_pred_expr_subset_of): New function.
21054 (is_pred_chain_subset_of): New function.
21055 (is_included_in): New function.
21056 (is_superset_of): New function.
21057 (find_uninit_use): New function.
21058 (warn_uninitialized_phi): New function.
21059 (compute_possibly_undefined_names): New function.
21060 (ssa_undefined_value_p): New function.
21061 (execute_late_warn_uninitialized): New function.
21062 * tree-ssa.c (ssa_undefined_value_p): Removed.
21063 (warn_uninit): Changed to extern.
21064 (warn_uninitialized_phi): Removed.
21065 (warn_uninitialized_vars): Changed to extern.
21066 (execute_late_warn_uninitialized): Removed
21067 * tree-flow.h: Add new prototypes.
21068 * timevar.def: Add new time variable.
21069 * Makefile.in: Add new build file.
21070
85fac79c
UB
210712010-04-28 Uros Bizjak <ubizjak@gmail.com>
21072
21073 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
21074 type if available.
21075
902a51a1
RO
210762010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21077
21078 PR target/22224
21079 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
21080
e33c6cd6
MJ
210812010-04-28 Martin Jambor <mjambor@suse.cz>
21082
21083 * cgraph.h (struct cgraph_node): New field indirect_calls.
21084 (struct cgraph_indirect_call_info): New type.
21085 (struct cgraph_edge): Removed field indirect_call. New fields
21086 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
21087 (cgraph_create_indirect_edge): Declare.
21088 (cgraph_make_edge_direct): Likewise.
21089 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
21090 * ipa-prop.h (struct ipa_param_call_note): Removed.
21091 (struct ipa_node_params): Removed field param_calls.
21092 (ipa_create_all_structures_for_iinln): Declare.
21093 * cgraph.c: Described indirect edges and uids in initial comment.
21094 (cgraph_add_edge_to_call_site_hash): New function.
21095 (cgraph_edge): Search also among the indirect edges, use
21096 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
21097 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
21098 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
21099 site hash.
21100 (initialize_inline_failed): Assign a reason to indirect edges.
21101 (cgraph_create_edge_1): New function.
21102 (cgraph_create_edge): Moved some functionality to
21103 cgraph_create_edge_1.
21104 (cgraph_create_indirect_edge): New function.
21105 (cgraph_edge_remove_callee): Add an assert checking for
21106 non-indirectness.
21107 (cgraph_edge_remove_caller): Special-case indirect edges.
21108 (cgraph_remove_edge): Likewise.
21109 (cgraph_set_edge_callee): New function.
21110 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
21111 (cgraph_make_edge_direct): New function.
21112 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
21113 the declaration of the call statement matches.
21114 (cgraph_node_remove_callees): Special-case indirect edges.
21115 (cgraph_clone_edge): Likewise.
21116 (cgraph_clone_node): Clone also the indirect edges.
21117 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
21118 indirect_call, dump count of indirect_calls edges.
21119 * ipa-prop.c (iinlining_processed_edges): New variable.
21120 (ipa_note_param_call): Create indirect edges instead of
21121 creating notes. New parameter node.
21122 (ipa_analyze_call_uses): New parameter node, pass it on to
21123 ipa_note_param_call.
21124 (ipa_analyze_stmt_uses): Likewise.
21125 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
21126 (print_edge_addition_message): Work on edges rather than on notes.
21127 (update_call_notes_after_inlining): Likewise, renamed to
21128 update_indirect_edges_after_inlining.
21129 (ipa_create_all_structures_for_iinln): New function.
21130 (ipa_free_node_params_substructures): Do not free notes.
21131 (ipa_edge_duplication_hook): Propagate bits within
21132 iinlining_processed_edges bitmap.
21133 (ipa_node_duplication_hook): Do not duplicate notes.
21134 (free_all_ipa_structures_after_ipa_cp): Renamed to
21135 ipa_free_all_structures_after_ipa_cp.
21136 (free_all_ipa_structures_after_iinln): Renamed to
62e59133 21137 ipa_free_all_structures_after_iinln.
e33c6cd6
MJ
21138 (ipa_write_param_call_note): Removed.
21139 (ipa_read_param_call_note): Removed.
21140 (ipa_write_indirect_edge_info): New function.
21141 (ipa_read_indirect_edge_info): Likewise.
21142 (ipa_write_node_info): Do not stream notes, do stream information
21143 in indirect edges.
21144 (ipa_read_node_info): Likewise.
21145 (lto_ipa_fixup_call_notes): Removed.
21146 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
21147 * ipa-inline.c (pass_ipa_inline): Likewise.
21148 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
21149 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
21150 * tree-inline.c (copy_bb): Removed an unnecessary double check for
21151 is_gimple_call.
21152 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
21153 edges.
21154 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
21155 (output_cgraph): Stream also indirect edges.
21156 (lto_output_edge): Added capability to stream indirect edges.
21157 (input_edge): Likewise.
21158 (input_cgraph_1): Likewise.
f3d1b157
MJ
21159 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
21160 of indirect edges.
e33c6cd6 21161
18abb35e
RG
211622010-04-28 Richard Guenther <rguenther@suse.de>
21163
21164 PR tree-optimization/43879
21165 PR tree-optimization/43909
21166 * tree-ssa-structalias.c (struct variable_info): Add
21167 only_restrict_pointers flag.
21168 (new_var_info): Initialize it. Increment stats.total_vars here.
62e59133 21169 (create_function_info_for): Do not increment stats.total_vars here.
18abb35e
RG
21170 (get_function_part_constraint): Fix build with C++.
21171 (insert_into_field_list): Remove.
21172 (push_fields_onto_fieldstack): Properly merge fields.
21173 (create_variable_info_for): Split and simplify.
21174 (create_variable_info_for_1): New piece.
21175 (intra_create_variable_infos): Properly make restrict constraints
21176 from parameters.
21177
c718820a
RG
211782010-04-28 Richard Guenther <rguenther@suse.de>
21179
21180 PR c++/43880
35c59d9c 21181 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
c718820a 21182
5dc16b19 211832010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
f4a4b582 21184 Jan Hubicka <hubicka@ucw.cz>
5dc16b19
MLI
21185
21186 * doc/invoke.texi (-Wsuggest-attribute=const,
21187 -Wsuggest-attribute=pure): Document.
21188 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
21189 (function_always_visible_to_compiler_p,
21190 suggest_attribute, warn_function_pure, warn_function_const):
21191 New functions.
21192 (check_call): Improve debug info.
21193 (analyze_function): Do not check availability.
21194 (add_new_function): Check availability.
21195 (propagate): Output warnings.
21196 (skip_function_for_local_pure_const): New function.
21197 (local_pure_const): Use it; output warnings.
21198 * common.opt (Wsuggest-attribute=const,
21199 Wsuggest-attribute=pure): New.
21200
78b41ae2
JJ
212012010-04-27 Jakub Jelinek <jakub@redhat.com>
21202
21203 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
21204 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
21205 or DW_CFA_def_cfa_offset{,_sf}.
21206
62107106
EB
212072010-04-27 Eric Botcazou <ebotcazou@adacore.com>
21208
21209 * tree.h: Fix truncated long macros.
21210
ad211091
KT
212112010-04-27 Kai Tietz <kai.tietz@onevision.com>
21212
21213 * collect2.c (TARGET_64BIT): Redefine to target's default.
21214 * tlink.c: Likewise.
21215 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
21216 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
21217 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
21218 for underscoring __USER_LABEL_PREFIX__.
21219 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
21220 (SUB_LINK_ENTRY32): New.
21221 (SUB_LINK_ENTRY64): New.
85fac79c 21222 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
ad211091
KT
21223 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
21224 (SUB_LINK_ENTRY64): New.
21225 (SUB_LINK_ENTRY): New.
21226 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
21227 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
21228 x64 target is choosen.
21229 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
21230 * configure: Regenerated.
21231 * configure.ac (leading-mingw64-underscores): Option added.
21232
e65bb9be
JH
212332010-04-27 Jan Hubicka <jh@suse.cz>
21234
21235 * doc/invoke.texi (-fipa-profile): Document.
21236 * opts.c (decode_options): Enable ipa-profile at -O1.
21237 * timevar.def (TV_IPA_PROFILE): Define.
21238 * common.opt (fipa-profile): Add.
62107106
EB
21239 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
21240 flag for clones.
e65bb9be
JH
21241 (cgraph_propagate_frequency): Handle only local ones.
21242 * tree-pass.h (pass_ipa_profile): Declare.
21243 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
21244 (pass_ipa_profile): Use TV_IPA_PROFILE.
21245 * ipa.c (ipa_profile): New function.
21246 (gate_ipa_profile): Likewise.
21247 (pass_ipa_profile): New global variable.
21248 * passes.c (pass_ipa_profile): New.
21249
8606c81d
NF
212502010-04-27 Nathan Froyd <froydnj@codesourcery.com>
21251
21252 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
21253
78eaf7bf
MJ
212542010-04-27 Martin Jambor <mjambor@suse.cz>
21255
21256 PR middle-end/43812
21257 * ipa.c (dissolve_same_comdat_group_list): New function.
21258 (function_and_variable_visibility): Call
21259 dissolve_same_comdat_group_list when comdat group contains external or
21260 newly local nodes.
21261 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
21262 lists are circular and that they contain only DECL_ONE_ONLY nodes.
21263
5b56d3bb
EB
212642010-04-27 Eric Botcazou <ebotcazou@adacore.com>
21265
21266 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
21267 (const_hash_1) <VECTOR_CST>: New case.
21268 (compare_constant) <VECTOR_CST>: Likewise.
21269 <ADDR_EXPR>: Deal with LABEL_REFs.
21270 (copy_constant) <VECTOR_CST>: New case.
21271
fa5f5e27
JH
212722010-04-27 Jan Hubicka <jh@suse.cz>
21273
21274 * cgraph.c (cgraph_propagate_frequency): New function.
21275 * cgraph.h (cgraph_propagate_frequency): Declare.
21276 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
21277 cgraph_propagate_frequency.
21278
934f5b42
JJ
212792010-04-27 Jakub Jelinek <jakub@redhat.com>
21280
21281 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
21282
cb751cbd
BS
212832010-04-27 Bernd Schmidt <bernds@codesourcery.com>
21284
21285 PR target/40657
21286 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
21287 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
21288 here to determine which regs to push and how much stack to reserve.
21289
a5027830
JZ
212902010-04-27 Jie Zhang <jie@codesourcery.com>
21291
21292 * doc/gimple.texi (gimple_statement_with_ops): Remove
21293 addresses_taken field.
21294 (gimple_statement_with_memory_ops): Likewise.
21295
d89488ec
JH
212962010-04-27 Jan Hubicka <jh@suse.cz>
21297
21298 * tree-inline.c (eni_inlining_weights): Remove.
21299 (estimate_num_insns): Special case more builtins.
21300
637f1455 213012010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
85fac79c 21302
637f1455
SZ
21303 PR c/32207
21304 * c-typeck.c (build_binary_op): Move forward check for comparison
21305 pointer with null pointer constant and adjust the diagnostic message.
21306
f0423078
DK
213072010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
21308
21309 PR lto/42776
21310 * configure.ac (gcc_cv_as_section_has_align): Set if installed
21311 binutils supports extended .section directive needed by LTO, or
21312 warn if older binutils found.
21313 (LTO_BINARY_READER): New AC_SUBST'd variable.
21314 (LTO_USE_LIBELF): Likewise.
eed023cc 21315 * config.gcc (lto_binary_reader): New target-specific configure
f0423078 21316 variable.
eed023cc 21317 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
f0423078
DK
21318 (LTO_USE_LIBELF): Likewise.
21319 * configure: Regenerate.
21320
21321 * collect2.c (is_elf): Rename from this ...
21322 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
21323 object files in addition to ELF-formatted ones.
21324 (scan_prog_file): Caller updated. Also allow for LTO info marker
21325 symbol to be prefixed or not by an extra underscore.
21326
21327 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
21328 * config/i386/winnt.c: Also #include lto-streamer.h
21329 (i386_pe_asm_named_section): Specify 1-byte section alignment for
21330 LTO named sections.
21331 (i386_pe_asm_output_aligned_decl_common): Add comment.
21332 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
21333
68e87fc9
HPN
213342010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
21335
45c384e3 21336 PR target/43889
68e87fc9
HPN
21337 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
21338 Add missing earlyclobber for second alternative.
21339
823ff7b4
BS
213402010-04-26 Bernd Schmidt <bernds@codesourcery.com>
21341
21342 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
21343 bits for artificial defs at the top of the block.
21344 * fwprop.c (single_def_use_enter_block): Don't call it.
21345
f4a4b582 213462010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
9ec69d2e
JH
21347
21348 PR 43715
eed023cc 21349 * configure.ac: Use "$gcc_cv_nm -g" on darwin
9ec69d2e
JH
21350 instead of "$gcc_cv_objdump -T".
21351 Use "-undefined dynamic_lookup" on darwin.
eed023cc 21352 * configure: Regenerate.
9ec69d2e 21353
b83a701b
JJ
213542010-04-26 Jakub Jelinek <jakub@redhat.com>
21355
21356 PR c/43893
21357 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
21358
8415f317
NF
213592010-04-26 Nathan Froyd <froydnj@codesourcery.com>
21360
21361 * c-parser.c (struct c_token): Move location field up.
21362 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
21363 (struct c_declspecs): Convert typespec_word, storage_class, and
21364 default_int_p into bitfields.
21365 (struct c_declarator): Move loc field up.
21366
448f65db
NF
213672010-04-26 Nathan Froyd <froydnj@codesourcery.com>
21368
21369 * cfgloop.h (struct loop): Move can_be_parallel field up.
21370 * ipa-prop.h (struct ip_node_params): Move bitfields up.
21371 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
21372 down.
21373 (struct iv_cand): Convert pos field into a bitfield.
21374 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
21375 field up.
21376 (struct _stmt_vec_info): Shuffle fields for better packing.
21377
736865e1
EB
213782010-04-26 Eric Botcazou <ebotcazou@adacore.com>
21379
21380 * varasm.c (IN_NAMED_SECTION): Remove guard.
21381 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
21382 (IN_NAMED_SECTION_P): ...this.
21383 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
21384 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
21385
06ec59e6
EB
213862010-04-26 Eric Botcazou <ebotcazou@adacore.com>
21387
21388 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
21389 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
21390 of shadowing it. Fix comments.
21391
5fefcf92
JH
213922010-04-26 Jan Hubicka <jh@suse.cz>
21393
21394 * cgraph.c (cgraph_create_node): Set node frequency to normal.
21395 (cgraph_clone_node): Copy function frequency.
21396 * cgraph.h (node_frequency): New enum
21397 (struct cgraph_node): Add.
21398 * final.c (rest_of_clean_state): Update.
21399 * lto-cgraph.c (lto_output_node): Output node frequency.
21400 (input_overwrite_node): Input node frequency.
21401 * tre-ssa-loop-ivopts (computation_cost): Update.
06ec59e6
EB
21402 * lto-streamer-out.c (output_function): Do not output function
21403 frequency.
21404 * predict.c (maybe_hot_frequency_p): Update and handle functions
21405 executed once.
5fefcf92
JH
21406 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
21407 attribute lookup.
21408 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
06ec59e6
EB
21409 (compute_function_frequency): Set noreturn functions to be executed
21410 once.
5fefcf92
JH
21411 (choose_function_section): Update.
21412 * lto-streamer-in.c (input_function): Do not input function frequency.
06ec59e6
EB
21413 * function.c (allocate_struct_function): Do not initialize function
21414 frequency.
5fefcf92
JH
21415 * function.h (function_frequency): Remove.
21416 (struct function): Remove function frequency.
21417 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
21418 (try_update): Update.
21419 * tree-inline.c (initialize_cfun): Do not update function frequency.
21420 * passes.c (pass_init_dump_file): Update.
21421 * i386.c (ix86_compute_frame_layout): Update.
21422 (ix86_pad_returns): Update.
21423
330af32c
JZ
214242010-04-26 Jie Zhang <jie@codesourcery.com>
21425
21426 PR tree-optimization/43833
21427 * tree-vrp.c (range_int_cst_p): New.
21428 (range_int_cst_singleton_p): New.
21429 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
21430 when both operands are constants. Use range_int_cst_p in
21431 BIT_IOR_EXPR case.
21432
ae2b0888
JH
214332010-04-26 Jan Hubicka <jh@suse.cz>
21434
21435 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
21436
98b2dfbb
RG
214372010-04-26 Richard Guenther <rguenther@suse.de>
21438
21439 PR lto/43080
21440 * gimple.c (gimple_decl_printable_name): Deal gracefully
21441 with a NULL DECL_NAME.
21442
1ae3075b
RG
214432010-04-26 Richard Guenther <rguenther@suse.de>
21444
21445 PR lto/42425
21446 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
21447 if emitting debug information and it is either a function
21448 or a namespace decl.
21449
4b5caab7
IR
214502010-04-26 Ira Rosen <irar@il.ibm.com>
21451
85fac79c
UB
21452 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
21453 determine if the statement is vectorizable, and a macro to access it.
21454 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21455 Skip statements that can't be vectorized. If the analysis fails,
21456 mark the statement as unvectorizable if vectorizing basic block.
4b5caab7 21457 (vect_compute_data_refs_alignment): Likewise.
85fac79c 21458 (vect_verify_datarefs_alignment): Skip statements marked as
4b5caab7 21459 unvectorizable. Add print.
85fac79c
UB
21460 (vect_analyze_group_access): Skip statements that can't be
21461 vectorized. If the analysis fails, mark the statement as
4b5caab7 21462 unvectorizable if vectorizing basic block.
85fac79c
UB
21463 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
21464 * tree-vect-stmts.c (vectorizable_store): Fix the number of
4b5caab7
IR
21465 generated stmts for SLP.
21466 (new_stmt_vec_info): Initialize the new field.
85fac79c 21467 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4b5caab7
IR
21468 statements marked as unvectorizable.
21469
2778d766
JM
214702010-04-25 Joseph Myers <joseph@codesourcery.com>
21471
21472 * c-common.c (flag_isoc1x): New.
21473 (flag_isoc99): Update comment.
21474 * c-common.h (flag_isoc1x): New.
21475 (flag_isoc99): Update comment.
21476 * c-cppbuiltin.c (builtin_define_float_constants): Also define
21477 __<type>_DECIMAL_DIG__.
21478 * c-opts.c (set_std_c1x): New.
21479 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
21480 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
21481 * c.opt (-std=c1x, -std=gnu1x): New options.
21482 * doc/cpp.texi: Mention -std=c1x.
21483 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
21484 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
21485 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
21486 * doc/standards.texi: Mention C1X.
21487 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
21488 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
21489 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
21490 Define for C1X.
21491
3d416346
UB
214922010-04-25 Uros Bizjak <ubizjak@gmail.com>
21493
21494 * config/i386/gmon-sol2.c (_mcleanup): Change format string
21495 placeholder from 0x%x to %#x.
21496 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21497 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21498 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21499 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21500 * config/i386/i386.c (ix86_target_string): Ditto.
21501 (output_pic_addr_const): Ditto.
21502 (print_operand): Ditto.
21503
910ed7dc
PB
215042010-04-25 Paolo Bonzini <bonzini@gnu.org>
21505
21506 * combine.c (find_split_point): Add third argument. Use it
21507 to find nested multiply-accumulate instructions. Adjust calls.
21508 (try_combine): Adjust call to find_split_point.
21509
423b2799
GP
215102010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
21511
21512 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
21513
27d0d96a
BS
215142010-04-24 Bernd Schmidt <bernds@codesourcery.com>
21515
21516 PR tree-optimization/41442
21517 * fold-const.c (merge_truthop_with_opposite_arm): New function.
21518 (fold_binary_loc): Call it.
21519
c7d0de89
MLI
215202010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
21521
3d416346 21522 * toplev.c (general_init): Set default for fdiagnostics-show-option.
c7d0de89 21523 * opts.c (common_handle_option): Allow disabling it.
3d416346
UB
21524 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
21525
915f5921
EB
215262010-04-23 Eric Botcazou <ebotcazou@adacore.com>
21527
21528 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
21529 between modes if both types are integral.
21530
4e708ff7
RG
215312010-04-23 Richard Guenther <rguenther@suse.de>
21532
21533 PR tree-optimization/43572
21534 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
21535
8fd8a06f
RG
215362010-04-23 Richard Guenther <rguenther@suse.de>
21537
21538 PR lto/43455
21539 * tree-inline.c (tree_can_inline_p): Also check compatibility
21540 of return types.
21541
77620011
MJ
215422010-04-23 Martin Jambor <mjambor@suse.cz>
21543
21544 PR tree-optimization/43846
21545 * tree-sra.c (struct access): New flag grp_assignment_read.
21546 (build_accesses_from_assign): Set grp_assignment_read.
21547 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
21548 (enum mark_read_status): New type.
21549 (analyze_access_subtree): Propagate grp_assignment_read, create
21550 accesses also if both direct_read and root->grp_assignment_read.
21551
5c20baf1
MJ
215522010-04-23 Martin Jambor <mjambor@suse.cz>
21553
21554 PR middle-end/43835
21555 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
21556 function does not have type attributes.
21557
c67f69a3
RG
215582010-04-23 Richard Guenther <rguenther@suse.de>
21559
21560 PR lto/42653
21561 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
21562 of FUNCTION_DECLs.
21563
086058c2
LB
215642010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21565
21566 * sese.h (create_if_region_on_edge): Remove.
21567
21568 * sese.c (create_if_region_on_edge): Make static.
21569
21570 * tree-inline.c: Do not include ggc.h.
21571
21572 * expr.c: Do not include ggc.h.
21573
21574 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
21575 dependencies.
21576
fc9c984d
KK
215772010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
21578
21579 PR target/43744
21580 * config/sh/sh.c (find_barrier): Don't emit a constant pool
21581 in the middle of insns for casesi_worker_2.
21582
cf42f095
DE
215832010-04-22 David Edelsohn <edelsohn@gnu.org>
21584
21585 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
21586
215872010-04-22 Ira Rosen <irar@il.ibm.com>
74500b3e 21588
5bdd895c 21589 PR tree-optimization/43842
d5dceab8 21590 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
74500b3e
IR
21591 loop unrolling in update of exit phis. Fix comment.
21592 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
d5dceab8 21593 least two reduction statements in the loop before starting SLP
74500b3e
IR
21594 analysis.
21595
d5f4a527
NC
215962010-04-22 Nick Clifton <nickc@redhat.com>
21597
21598 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
21599
44741f03
AM
216002010-04-22 Alexander Monakov <amonakov@ispras.ru>
21601
21602 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
21603 to simplify a + ~a.
21604
f873b205
LB
216052010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21606
21607 * tree-parloops.c (loop_parallel_p): New argument
21608 parloop_obstack. Pass it down.
21609 (parallelize_loops): New variable parloop_obstack. Initialize it,
21610 pass it down, free it.
21611
21612 * tree-loop-linear.c (linear_transform_loops): Pass down
21613 lambda_obstack.
21614
21615 * tree-data-ref.h (lambda_compute_access_matrices): New argument
21616 of type struct obstack *.
21617
21618 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
21619 scratch_obstack. Initialize it, pass down, free it.
21620
21621 * lambda.h (lambda_loop_new): Remove.
21622 (lambda_matrix_new, lambda_matrix_inverse)
21623 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
21624 argument of type struct obstack *.
21625
21626 * lambda-trans.c (lambda_trans_matrix_new): New argument
21627 lambda_obstack. Pass it down, use obstack allocation for ret.
21628 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
21629 it down.
21630
21631 * lambda-mat.c (lambda_matrix_get_column)
21632 (lambda_matrix_project_to_null): Remove.
21633 (lambda_matrix_new): New argument lambda_obstack. Use obstack
21634 allocation for mat.
21635 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
21636 lambda_obstack.
21637
21638 * lambda-code.c (lambda_loop_new): New function.
21639 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
21640 (lambda_compute_auxillary_space, lambda_compute_target_space)
21641 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
21642 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
21643 (build_access_matrix): New argument lambda_obstack. Use obstack
21644 allocation for am.
21645 (lambda_compute_step_signs, lambda_compute_access_matrices): New
21646 argument lambda_obstack. Pass it down.
21647
b99279f3
BS
216482010-04-22 Bernd Schmidt <bernds@codesourcery.com>
21649
21650 * optabs.h (expand_widening_mult): Declare.
21651
b3be2694
RG
216522010-04-22 Richard Guenther <rguenther@suse.de>
21653
21654 PR tree-optimization/43845
21655 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
21656 lookup the CALL_EXPR function and arguments.
21657
038eab67
NC
216582010-04-22 Nick Clifton <nickc@redhat.com>
21659
21660 * config/stormy16/stormy16.c
d5dceab8 21661 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
038eab67
NC
21662 * config/stormy16/stormy16.h: Tidy up formatting.
21663 (DONT_USE_BUILTIN_SETJMP): Remove definition.
21664 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
21665 (ineqbranchsi): Delete pattern.
21666 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
21667 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
21668 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
21669 stormy16-lib2-ucmpsi2.c.
21670
907deb1a
BS
216712010-04-22 Bernd Schmidt <bernds@codesourcery.com>
21672
21673 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
21674 df_simulate_find_noclobber_defs as appropriate. Keep track of an
21675 extra set merge_set_noclobber, and use it to relax the final test
21676 slightly.
21677 * df.h (df_simulate_find_noclobber_defs): Declare.
21678 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
21679 conditional defs.
21680 (df_simulate_find_noclobber_defs): New function.
21681
6a0447ba
UB
216822010-04-22 Uros Bizjak <ubizjak@gmail.com>
21683
21684 * config/i386/i386.md: Use {} around multi-line preparation statements.
21685
a1e3b3d9
LB
216862010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21687
21688 * c-tree.h (push_init_level, pop_init_level, set_init_index)
21689 (process_init_element): New argument of type struct obstack *.
21690
21691 * c-typeck.c (push_init_level, pop_init_level, set_designator)
21692 (set_init_index, set_init_label, set_nonincremental_init)
21693 (set_nonincremental_init_from_string, find_init_member)
21694 (output_init_element, output_pending_init_elements)
21695 (process_init_element): New argument braced_init_obstack. Pass it
21696 down.
21697 (push_range_stack, add_pending_init): New argument
21698 braced_init_obstack. Use obstack allocation.
21699
21700 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
21701 braced_init_obstack. Pass it down.
21702 (c_parser_braced_init): New variables ret, braced_init_obstack.
21703 Initialize obstack, pass it down and finally free it.
21704
5b58b39b
BS
217052010-04-22 Bernd Schmidt <bernds@codesourcery.com>
21706
21707 PR middle-end/29274
5b58b39b
BS
21708 * tree-pass.h (pass_optimize_widening_mul): Declare.
21709 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
21710 gate_optimize_widening_mul): New static functions.
21711 (pass_optimize_widening_mul): New.
3d416346 21712 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
5b58b39b
BS
21713 <case MULT_EXPR>: Remove support for widening multiplies.
21714 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
21715 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
21716 simplify_gen_unary rather than directly building extensions.
21717 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
21718 WIDEN_MULT_EXPR.
21719 * expmed.c (expand_widening_mult): New function.
21720 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
21721
bc58d7e1
JH
217222010-04-21 Jan Hubicka <jh@suse.cz>
21723
21724 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
21725 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
21726 * lto-wpa-fixup.c: Remove.
21727 * Makefile.in (lto-wpa-fixup.o): Remove.
21728 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
21729 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
21730 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
21731
e792884f
JH
217322010-04-21 Jan Hubicka <jh@suse.cz>
21733
21734 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
21735 add write_optimization_summary, read_optimization_summary.
21736 (ipa_write_summaries_of_cgraph_node_set): Remove.
21737 (ipa_write_optimization_summaries): Declare.
21738 (ipa_read_optimization_summaries): Declare.
21739 * ipa-cp.c (pass_ipa_cp): Update.
21740 * ipa-reference.c (pass_ipa_reference): Update.
21741 * ipa-pure-const.c (pass_ipa_pure_const): Update.
21742 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
21743 Update.
21744 * ipa-inline.c (pass_ipa_inline): Update.
21745 * ipa.c (pass_ipa_whole_program): Update.
21746 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
21747 * passes.c (ipa_write_summaries_1): Do not test wpa.
21748 (ipa_write_optimization_summaries_1): New.
21749 (ipa_write_optimization_summaries): New.
21750 (ipa_read_summaries): Do not test ltrans.
21751 (ipa_read_optimization_summaries_1): New.
21752 (ipa_read_optimization_summaries): New.
21753
ecd03d10
JH
217542010-04-21 Jan Hubicka <jh@suse.cz>
21755
21756 * lto-cgraph.c (lto_output_node): Do not output comdat groups
21757 for boundary nodes.
21758 (output_cgraph): Do not arrange comdat groups for boundary nodes.
21759
71a810c3
JJ
217602010-04-21 Jakub Jelinek <jakub@redhat.com>
21761
21762 PR debug/40040
21763 * dwarf2out.c (add_name_and_src_coords_attributes): Add
21764 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
21765
dd6d1ad7
JH
217662010-04-21 Jan Hubicka <jh@suse.cz>
21767
21768 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
21769
c9945504
JH
217702010-04-21 Jan Hubicka <jh@suse.cz>
21771
21772 * varpool.c (decide_is_variable_needed): Variable is always needed
21773 during ltrans.
21774
e7cfce71
JH
217752010-04-21 Jan Hubicka <jh@suse.cz>
21776
21777 * opts.c (decode_options): Enable pure-const pass for whopr.
21778
0115e6c7
JH
217792010-04-21 Jan Hubicka <jh@suse.cz>
21780
21781 * cgraph.c (dump_cgraph_node): Dump also assembler name.
21782 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
21783 at WPA dumping.
21784 (cgraph_decide_inlining): Do not expect callee to be removed in all
21785 cases.
21786
96c2a0d6
EW
217872010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
21788
21789 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
21790
656ef6bb
UB
217912010-04-21 Uros Bizjak <ubizjak@gmail.com>
21792
21793 * config/i386/i386.md (x86_shrd): Add athlon_decode and
21794 amdfam10_decode attributes.
21795
78db7d92
JJ
217962010-04-21 Jakub Jelinek <jakub@redhat.com>
21797
21798 PR middle-end/43570
21799 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
21800 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
21801 (lower_copyprivate_clauses): Use private var in outer
21802 context instead of original var. Make sure the types
21803 are correct for VLAs.
21804
11152c95
RG
218052010-04-21 Richard Guenther <rguenther@suse.de>
21806
21807 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
21808 to non-pointer objects.
21809
8f65940d
JJ
218102010-04-21 Jakub Jelinek <jakub@redhat.com>
21811
0f2f44c0
JJ
21812 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
21813 last chain entry if it starts with the still current label.
21814 (add_location_or_const_value_attribute): Check that
6a0447ba 21815 loc_list->first->next is NULL instead of comparing ->first with ->last.
0f2f44c0
JJ
21816 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
21817 to add_var_loc_to_decl.
21818
8f65940d 21819 * dwarf2out.c (output_call_frame_info): For dw_cie_version
6a0447ba 21820 >= 4 add also address size and segment size fields into CIE header.
8f65940d
JJ
21821
21822 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
21823 long as address size is the same as sizeof (void *) and
21824 segment size is 0.
21825 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
21826 address size or segment size is unexpected, return DW_EH_PE_omit.
21827 (classify_object_over_fdes): If get_cie_encoding returned
21828 DW_EH_PE_omit, return -1.
21829 (init_object): If classify_object_over_fdes returned -1,
21830 pretend there were no FDEs at all.
21831
2d2d5a91
UB
218322010-04-21 Uros Bizjak <ubizjak@gmail.com>
21833
21834 * config/i386/i386.md (bswap<mode>2): Macroize expander from
21835 bswap{si,di}2 using SWI48 mode iterator.
21836 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
21837 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
21838 set modrm attribute of bswap insn to 0 and remove length attribute.
21839 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
21840 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
21841 set mode attribute to <MODE> and remove length attribute.
21842
4811db8d
JW
218432010-04-20 James E. Wilson <wilson@codesourcery.com>
21844
21845 PR rtl-optimization/43520
21846 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
21847 zero available registers.
21848
3c642f92
KG
218492010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21850
21851 * builtins.c (fold_builtin_cproj): Fold more cases.
21852
43272bf5
KG
218532010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21854
21855 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
21856 (fold_builtin_1): Fold builtin cproj.
21857 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
21858 Use ATTR_CONST_NOTHROW_LIST.
21859
e96ccb30
UB
218602010-04-20 Uros Bizjak <ubizjak@gmail.com>
21861
21862 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
21863 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
21864 ffsi2_no_cmove for !TARGET_CMOVE.
21865 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
21866 (ffssi2): Remove expander.
21867 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
21868 mode iterator.
21869 (ctz<mode>2): Ditto from ctz{si,di}2.
21870 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
21871 mode iterator.
21872 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
21873 mode iterator.
21874
4c0ab69d
JJ
218752010-04-20 Jakub Jelinek <jakub@redhat.com>
21876
21877 * dwarf2out.c (AT_linkage_name): Define.
21878 (clone_as_declaration): Handle DW_AT_linkage_name.
21879 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
21880 of DW_AT_MIPS_linkage_name.
21881 (move_linkage_attr): Likewise.
21882 (dwarf2out_finish): Likewise.
21883
94e85e0a
XDL
218842010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
21885
21886 PR middle-end/41952
e96ccb30 21887 * fold-const.c (fold_comparison): New folding rule.
94e85e0a 21888
4c0ab69d 218892010-04-20 Anatoly Sokolov <aesok@post.ru>
54fb1ae0
AS
21890
21891 * double-int.h (double_int_setbit): Declare.
21892 * double-int.c (double_int_setbit): New function.
21893 * rtl.h (immed_double_int_const): Declare.
21894 * emit-rtl.c (immed_double_int_const): New function.
21895 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
21896 and immed_double_int_const functions.
21897 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
a691bb08 21898 expand_copysign_bit): (Ditto.).
54fb1ae0
AS
21899 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
21900 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
21901 * dojump.c (prefer_and_bit_test): (Ditto.).
21902 * expr.c (convert_modes, reduce_to_bit_field_precision,
21903 const_vector_from_tree): (Ditto.).
21904 * expmed.c (mask_rtx, lshift_value): (Ditto.).
21905
a837268b
JH
219062010-04-20 Jan Hubicka <jh@suse.cz>
21907
21908 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
21909 (dump_cgraph_node): Dump new flags.
e96ccb30
UB
21910 * cgraph.h (struct cgraph_node): Add flags
21911 reachable_from_other_partition and in_other_partition.
21912 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
21913 other partition can not be removed.
21914 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
21915 the other partition must be output; silence sanity checking on
21916 leaking functions bodies from other paritition.
a837268b
JH
21917 * lto-cgraph.c (reachable_from_other_partition_p): New function.
21918 (lto_output_node): Output new flags; do not sanity check that inline
21919 clones are output; drop lto_forced_extern_inline_p code; do not mock
21920 visibility flags at partition boundaries.
21921 (add_node_to): New function.
21922 (output_cgraph): Use it to sort functions so masters appear before
21923 clones.
21924 (input_overwrite_node): Input new flags.
21925 * passes.c (ipa_write_summaries): Do not call
21926 lto_new_extern_inline_states.
74ca3393
EB
21927 * lto-section-out.c (forced_extern_inline,
21928 lto_new_extern_inline_states lto_delete_extern_inline_states,
21929 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
a837268b
JH
21930 * lto-streamer.h (lto_new_extern_inline_states,
21931 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
21932 lto_forced_extern_inline_p): Kill.
21933
3c323b52
RG
219342010-04-20 Richard Guenther <rguenther@suse.de>
21935
21936 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
21937 from vars that can have pointers.
21938 (process_constraint): Dump useless constraints.
21939
b28ae58f
RG
219402010-04-20 Richard Guenther <rguenther@suse.de>
21941
e96ccb30 21942 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
b28ae58f
RG
21943 (dump_sa_points_to_info): Remove asserts.
21944 (init_base_vars): nothing_id isn't an escape point nor does it
21945 have pointers.
21946
1197ce8e
JJ
219472010-04-20 Jakub Jelinek <jakub@redhat.com>
21948
21949 * tree.h (TYPE_REF_IS_RVALUE): Define.
21950 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
21951 should_move_die_to_comdat, prune_unused_types_walk): Handle
21952 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
21953 (modified_type_die, gen_reference_type_die): Emit
21954 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
21955 if TYPE_REF_IS_RVALUE and -gdwarf-4.
21956
72e2cf16
AK
219572010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21958
21959 PR target/43635
21960 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
21961 calls for -fpic -m31 if they have been sibcall optimized.
21962
810d71d0
JW
219632010-04-19 James E. Wilson <wilson@codesourcery.com>
21964
4a863f3a
JW
21965 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
21966 ar.lc fixed and call-used.
21967
810d71d0
JW
21968 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
21969
3ee2243c
JH
219702010-04-19 Jan Hubicka <jh@suse.cz>
21971
21972 * opts.c (decode_options): Disable whpr incompatible passes.
21973 * lto/lto.c (lto_1_to_1_map): Skip clones.
21974 (read_cgraph_and_symbols): Do not mark everything as needed.
21975 (do_whole_program_analysis): Do map only after optimizing;
21976 set proper cgraph_state; use passmanager.
21977
576319a7
DD
219782010-04-19 DJ Delorie <dj@redhat.com>
21979
21980 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
21981 POINTER_PLUS_EXPR and fix them.
21982
578ad141
EW
219832010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
21984
21985 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
21986 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
21987 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
21988 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
21989 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
21990 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
21991 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
21992 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
21993 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
21994 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
21995 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
21996
d321bd2d
EB
219972010-04-19 Eric Botcazou <ebotcazou@adacore.com>
21998
21999 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
22000 (check_cond_move_block): Likewise.
22001 (cond_move_process_if_block): Likewise.
22002 (noce_find_if_block): Improve formatting.
22003 (find_if_header): Pass 0 to memset and tweak conditions.
22004 (cond_exec_find_if_block): Fix long lines and tweak conditions.
22005
74e27d0d
JJ
220062010-04-19 Jakub Jelinek <jakub@redhat.com>
22007
e96ccb30
UB
22008 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
22009 for -gdwarf-4.
74e27d0d 22010
fd2e4e99
JJ
22011 PR middle-end/43337
22012 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
22013 with non-local decl doesn't need chain.
22014
ec995732
VM
220152010-04-19 Vladimir Makarov <vmakarov@redhat.com>
22016
22017 * ira-color.c (allocno_reload_assign): Avoid accumulating
22018 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
22019
acd63801
MJ
220202010-04-19 Martin Jambor <mjambor@suse.cz>
22021
22022 * gimple.h (create_tmp_reg): Declare.
22023 * gimplify.c (create_tmp_reg): New function.
22024 (gimplify_return_expr): Use create_tmp_reg.
22025 (gimplify_omp_atomic): Likewise.
22026 (gimple_regimplify_operands): Likewise.
22027 * tree-dfa.c (make_rename_temp): Likewise.
22028 * tree-predcom.c (predcom_tmp_var): Likewise.
22029 (reassociate_to_the_same_stmt): Likewise.
22030 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
22031 (get_replaced_param_substitute): Likewise.
22032 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
22033 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
22034 * tree-ssa-pre.c (get_representative_for): Likewise.
22035 (create_expression_by_pieces): Likewise.
22036 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
22037 (create_tailcall_accumulator): Likewise.
22038
0b6e2868
MJ
220392010-04-19 Martin Jambor <mjambor@suse.cz>
22040
22041 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
22042 new_stmt.
22043 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
22044
1936a7d4
RG
220452010-04-19 Richard Guenther <rguenther@suse.de>
22046
22047 PR tree-optimization/43796
22048 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
22049 from SCEV in the lattice.
22050 (vrp_visit_phi_node): Dump change.
22051
479881c3
RG
220522010-04-19 Richard Guenther <rguenther@suse.de>
22053
22054 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
22055 * configure: Re-generated.
22056
d53bed0b
RG
220572010-04-19 Richard Guenther <rguenther@suse.de>
22058
22059 PR tree-optimization/43783
22060 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
22061 constant ARRAY_REF operands two and three if possible.
22062
90f775a9
UB
220632010-04-19 Uros Bizjak <ubizjak@gmail.com>
22064
22065 PR target/43766
22066 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
22067
8d9b7be5
JZ
220682010-04-19 Jie Zhang <jie@codesourcery.com>
22069
22070 PR target/43662
90f775a9 22071 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
8d9b7be5 22072
d5dceab8 220732010-04-19 Ira Rosen <irar@il.ibm.com>
b5aeb3bb
IR
22074
22075 PR tree-optimization/37027
e96ccb30 22076 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
b5aeb3bb
IR
22077 and macro to access it.
22078 (vectorizable_reduction): Add argument.
22079 (vect_get_slp_defs): Likewise.
22080 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
22081 statements for possible use in SLP.
22082 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
22083 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
22084 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
22085 add new argument.
22086 (vectorizable_reduction): Likewise.
e96ccb30 22087 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
b5aeb3bb
IR
22088 vect_get_slp_defs.
22089 (vectorizable_type_demotion, vectorizable_type_promotion,
22090 vectorizable_store): Likewise.
22091 (vect_analyze_stmt): Update call to vectorizable_reduction.
22092 (vect_transform_stmt): Likewise.
22093 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
22094 (vect_build_slp_tree): Fix indentation. Check that there are no loads
22095 from different interleaving chains in same node.
22096 (vect_slp_rearrange_stmts): New function.
e96ccb30 22097 (vect_supported_load_permutation_p): Allow load permutations for
b5aeb3bb
IR
22098 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
22099 inside SLP nodes if necessary.
22100 (vect_analyze_slp_instance): Handle reductions.
22101 (vect_analyze_slp): Try to build SLP instances originating from groups
22102 of reductions.
22103 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
22104 (vect_get_constant_vectors): Create initial vectors for reductions
22105 according to reduction code. Add new argument.
e96ccb30 22106 (vect_get_slp_defs): Add new argument, pass it to
b5aeb3bb
IR
22107 vect_get_constant_vectors.
22108 (vect_schedule_slp_instance): Remove SLP tree root statements.
22109
5a2fa9e8
JJ
221102010-04-19 Jakub Jelinek <jakub@redhat.com>
22111
22112 * tree.h (ENUM_IS_SCOPED): Define.
22113 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
22114 for ENUM_IS_SCOPED enums.
22115
3b9e5d95
EB
221162010-04-18 Eric Botcazou <ebotcazou@adacore.com>
22117
22118 * fold-const.c (fold_comparison): Use ssizetype.
22119 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
22120 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
22121 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
22122 * tree-object-size.c (compute_object_sizes): Use size_type_node.
22123
22124 * tree.h (initialize_sizetypes): Remove parameter.
22125 (build_common_tree_nodes): Remove second parameter.
22126 * stor-layout.c (initialize_sizetypes): Remove parameter.
22127 Always create an unsigned type.
22128 (set_sizetype): Assert that the passed type is unsigned and simplify.
22129 * tree.c (build_common_tree_nodes): Remove second parameter.
22130 Adjust call to initialize_sizetypes.
22131 * c-decl.c (c_init_decl_processing): Remove second argument in call to
22132 build_common_tree_nodes.
22133
b3c35965
MK
221342010-04-18 Matthias Klose <doko@ubuntu.com>
22135
22136 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
22137
d5dceab8 221382010-04-18 Ira Rosen <irar@il.ibm.com>
59eefaa6
IR
22139
22140 PR tree-optimization/43771
22141 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
22142 load permutation doesn't have gaps.
22143
07b3ef2e
JH
221442010-04-18 Jan Hubicka <jh@suse.cz>
22145
22146 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
22147 (sse_prologue_save_insn expander): Use new pattern.
22148 (sse_prologue_save_insn1): New pattern and splitter.
22149 (sse_prologue_save_insn): Update to deal also with 64bit aligned
22150 blocks.
90f775a9
UB
22151 * i386.c (setup_incoming_varargs_64): Do not compute jump
22152 destination here.
07b3ef2e 22153 (ix86_gimplify_va_arg): Update alignment needed.
90f775a9 22154 (ix86_local_alignment): Do not align all local arrays to 128bit.
07b3ef2e 22155
6a8cd100
JH
221562010-04-17 Jan Hubicka <jh@suse.cz>
22157
22158 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
22159
9e315505
RE
221602010-04-17 Richard Earnshaw <rearnsha@arm.com>
22161
22162 * arm.md (negdi2): Remove redundant code to force values into a
22163 register.
22164
6f0668cf
RE
221652010-04-17 Richard Earnshaw <rearnsha@arm.com>
22166
22167 * arm/bpabi.S: Add EABI alignment attributes to objects.
22168 * arm/bpabi-v6m.S: Likewise.
22169 * arm/crti.asm: Likewise.
22170 * arm/crtn.asm: Likewise.
22171 * arm/lib1funcs.asm: Likewise.
22172 * arm/libunwind.S: Likewise.
22173
1b78f575
RE
221742010-04-17 Richard Earnshaw <rearnsha@arm.com>
22175
22176 * arm-protos.h (tune_params): New structure.
22177 * arm.c (current_tune): New variable.
22178 (arm_constant_limit): Delete.
22179 (struct processors): Add pointer to the tune parameters.
22180 (arm_slowmul_tune): New tuning option.
22181 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
22182 (all_cores): Adjust to pick up the tuning model.
22183 (arm_constant_limit): New function.
22184 (arm_override_options): Select the appropriate tuning model. Delete
22185 initialization of arm_const_limit.
22186 (arm_split_constant): Use the new constant-limit model.
22187 (arm_rtx_costs): Pick up the current tuning model.
22188 * arm.md (is_strongarm, is_xscale): Delete.
22189 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
22190 for Xscale variant architectures.
22191 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
22192
80d56d04
RR
221932010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22194
1b78f575
RE
22195 * config/arm/arm.c (arm_gen_constant): Remove unused variable
22196 can_shift.
80d56d04
RR
22197 (arm_rtx_costs_1): Remove unused variable extra_cost.
22198 (arm_unwind_emit_set): Use variable offset.
22199 (thumb1_output_casesi): Remove unused variable flags.
22200
6190446b
JL
222012010-04-16 Jeff Law <law@redhat.com>
22202
22203 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
016f9d9d
JL
22204 needing assignment rather than doing a two-phase assignment. Remove
22205 unused variable 'm'.
6190446b 22206
24f8d71e
JJ
222072010-04-16 Jakub Jelinek <jakub@redhat.com>
22208
22209 PR bootstrap/43767
22210 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
22211
f1665f5c
DK
222122010-04-16 Doug Kwan <dougkwan@google.com>
22213
22214 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
22215 (next_operand_entry_id): New static variable.
22216 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
22217 (add_to_ops_vec): Assigned unique ID to operand entry.
3d25c396 22218 (struct oecount_s): New field ID.
f1665f5c
DK
22219 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
22220 (undistribute_ops_list): Assign unique IDs to oecounts.
22221 (init_reassoc): reset next_operand_entry_id.
22222
f638261a
DK
222232010-04-16 Doug Kwan <dougkwan@google.com>
22224
22225 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
22226 missing left parenthesis.
e96ccb30 22227
4a81b412
UB
222282010-04-16 Uros Bizjak <ubizjak@gmail.com>
22229
22230 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
22231 *btdi_rex64 using SWI48 mode iterator.
22232 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
22233 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
22234 *jcc_btdi_mask_rex64.
22235
9d4d1f8e
AS
222362010-04-16 Anatoly Sokolov <aesok@post.ru>
22237
22238 * double-int.h (tree_to_double_int): Convert to macro.
22239 * double-int.c (tree_to_double_int): Remove.
22240
835eb810
JJ
222412010-04-16 Jakub Jelinek <jakub@redhat.com>
22242
22243 PR debug/43762
22244 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
22245 with want_address 2 and in case a single element list might be
22246 possible, call it again with want_address 0.
22247
222482010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
db624ecb 22249
0f6b820c
KP
22250 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
22251 case 'W' print operands for HI mode.
22252 * config/h8300/h8300.h (Y0, Y2) : New constraints.
22253 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
22254 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
22255 * config/h8300/predicate.md (bit_register_indirect_operand): New.
22256
a7494d9e
KP
22257 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
22258
e96ccb30 22259 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8cb81753
KP
22260 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
22261 #xx:3 and #xx:4 mode.
22262
60744089
KP
22263 * config/h8300/h8300.md (inverted load with HImode dest): Add
22264 support for H8300SX.
22265
db624ecb
KP
22266 * config/h8300/predicate.md (bit_operand): Allow immediate values that
22267 satisfy 'U' constraint.
22268
8ccb78f2
RO
222692010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22270
e96ccb30 22271 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8ccb78f2
RO
22272 * configure: Regenerate.
22273 * config.in: Regenerate.
22274 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
22275 works.
22276
bc9c331d
RG
222772010-04-16 Richard Guenther <rguenther@suse.de>
22278
22279 * tree.h (struct tree_decl_minimal): Move pt_uid ...
22280 (struct tree_decl_common): ... here.
22281 (DECL_PT_UID): Adjust.
22282 (SET_DECL_PT_UID): Likewise.
22283 (DECL_PT_UID_SET_P): Likewise.
22284
12de6355
RG
222852010-04-16 Richard Guenther <rguenther@suse.de>
22286
22287 PR tree-optimization/43572
22288 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
22289 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
22290 * tree-flow.h (is_call_clobbered): Remove.
22291 * tree-flow-inline.h (is_call_clobbered): Likewise.
22292 * tree-dfa.c (dump_variable): Do not dump call clobber state.
22293 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
22294 (execute_return_slot_opt): Adjust.
22295 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
22296 check for call clobbered vars here.
22297 (find_tail_calls): Move tailcall verification to the
22298 proper place.
22299
6ab643b5
DN
223002010-04-16 Diego Novillo <dnovillo@google.com>
22301
e96ccb30 22302 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
6ab643b5 22303
f0c6475a
BS
223042010-04-16 Bernd Schmidt <bernds@codesourcery.com>
22305
22306 PR target/40603
22307 * config/arm/arm.md (cbranchqi4): New pattern.
22308 * config/arm/predicates.md (const0_operand,
22309 cbranchqi4_comparison_operator): New predicates.
22310
f0107145
RG
223112010-04-16 Richard Guenther <rguenther@suse.de>
22312
22313 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
22314 (dump_gimple_stmt): Likewise.
22315
f0c6475a 223162010-04-16 Bernd Schmidt <bernds@codesourcery.com>
6ddfdb0f
BS
22317
22318 * recog.h (struct recog_data): New field is_operator.
22319 (struct insn_operand_data): New field is_operator.
22320 * recog.c (extract_insn): Set recog_data.is_operator.
22321 * genoutput.c (output_operand_data): Emit code to set the
22322 is_operator field.
22323 * reload.c (find_reloads): Use it rather than testing for an
22324 empty constraint string.
22325
6ea007e4
BS
22326 PR target/41514
22327 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
22328 If the previous insn is a cbranchsi4_insn with the same arguments,
22329 omit the compare instruction.
22330
3302cfa1
BS
22331 * config/arm/arm.md (addsi3_cbranch): If destination is a high
22332 register, inputs must be low registers and we need a low register
22333 scratch. Handle alternative 2 like alternative 3.
22334
5312b066
JJ
223352010-04-16 Jakub Jelinek <jakub@redhat.com>
22336
22337 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
22338 don't call get_addr on both. If one expression is a VALUE and
22339 the other a REG, check VALUE's locs if the REG isn't among them.
22340
7a296495
CB
223412010-04-16 Christian Bruel <christian.bruel@st.com>
22342
22343 * config/sh/sh.h (sh_frame_pointer_required): New function.
22344 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
22345 (flag_omit_frame_pointer) Set.
22346 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
22347 (rounded_frame_size): Adjust size with outgoing_args_size.
22348 (sh_set_return_address): Must return from stack pointer.
eed023cc 22349 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
7a296495
CB
22350 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
22351 (ACCUMULATE_OUTGOING_ARGS): Define.
22352 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
eed023cc 22353 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
7a296495 22354
7140f0f9
KK
223552010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
22356
22357 PR target/43471
22358 * config/sh/sh.c (sh_legitimize_reload_address): Use
22359 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
22360 Remove a unneeded check for offset_base.
22361
bafaef55
L
223622010-04-15 H.J. Lu <hongjiu.lu@intel.com>
22363
22364 * configure: Regenerated.
22365
e8de8fea
AK
223662010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22367
22368 * config/s390/s390.c (s390_call_save_register_used): Switch back
22369 to HARD_REGNO_NREGS.
22370
038a39d1
RG
223712010-04-15 Richard Guenther <rguenther@suse.de>
22372
22373 * alias.c (alias_set_subset_of): Handle alias-set zero
22374 child properly.
22375
28907f9a
MS
223762010-04-15 Mark Shinwell <shinwell@codesourcery.com>
22377 Julian Brown <julian@codesourcery.com>
22378
22379 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
22380 alternatives according to use of high and low regs.
22381 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
22382 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
22383 optimizing for size on Thumb-2.
22384
3f56ef8b
TS
223852010-04-15 Thomas Schwinge <tschwinge@gnu.org>
22386
22387 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
22388
25a6a873
RG
223892010-04-15 Richard Guenther <rguenther@suse.de>
22390
22391 * tree-ssa-structalias.c (struct variable_info): Add
22392 is_fn_info flag.
22393 (new_var_info): Initialize it.
22394 (dump_constraints): Support printing last added constraints.
22395 (debug_constraints): Adjust.
22396 (dump_constraint_graph): Likewise.
22397 (make_heapvar_for): Check for NULL cfun.
22398 (get_function_part_constraint): New function.
22399 (get_fi_for_callee): Likewise.
22400 (find_func_aliases): Properly implement IPA PTA constraints.
22401 (process_ipa_clobber): New function.
22402 (find_func_clobbers): Likewise.
22403 (insert_into_field_list_sorted): Remove.
22404 (create_function_info_for): Properly allocate vars for IPA mode.
22405 Do not use insert_into_field_list_sorted.
22406 (create_variable_info_for): Properly generate constraints for
22407 global vars in IPA mode.
22408 (dump_solution_for_var): Always dump the solution.
22409 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
22410 (find_what_var_points_to): Adjust.
22411 (pt_solution_set): Change.
22412 (pt_solution_ior_into): New function.
22413 (pt_solution_empty_p): Export.
22414 (pt_solution_includes_global): Adjust.
22415 (pt_solution_includes_1): Likewise.
22416 (pt_solutions_intersect_1): Likewise.
22417 (dump_sa_points_to_info): Check some invariants.
22418 (solve_constraints): Move constraint dumping ...
22419 (compute_points_to_sets): ... here.
22420 (ipa_pta_execute): ... and here.
22421 (compute_may_aliases): Do not re-compute points-to info
22422 locally if IPA info is available.
22423 (ipa_escaped_pt): New global var.
22424 (ipa_pta_execute): Properly implement IPA PTA.
22425 * tree-into-ssa.c (dump_decl_set): Support dumping
22426 decls not in referenced-vars.
22427 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
22428 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
22429 (dump_points_to_solution): Likewise.
22430 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
22431 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
e96ccb30 22432 (remap_gimple_stmt): Reset call clobber/use information if necessary.
25a6a873
RG
22433 (copy_decl_to_var): Copy DECL_PT_UID.
22434 (copy_result_decl_to_var): Likewise.
22435 * tree.c (make_node_stat): Initialize DECL_PT_UID.
22436 (copy_node_stat): Copy it.
22437 * tree.h (DECL_PT_UID): New macro.
22438 (SET_DECL_PT_UID): Likewise.
22439 (DECL_PT_UID_SET_P): Likewise.
22440 (struct tree_decl_minimal): Add pt_uid member.
22441 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
22442 (pt_solution_empty_p): Declare.
22443 (pt_solution_set): Adjust.
22444 (ipa_escaped_pt): Declare.
22445 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
22446 * gimple-pretty-print.c (pp_points_to_solution): New function.
22447 (dump_gimple_call): Dump call clobber/use information.
22448 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
22449 * tree-pass.h (TDF_ALIAS): New dump option.
22450 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
22451 * doc/invoke.texi (-fipa-pta): Update documentation.
22452
cbdd87d4
RG
224532010-04-15 Richard Guenther <rguenther@suse.de>
22454
22455 * Makefile.in (OBJS-common): Add gimple-fold.o.
22456 (gimple-fold.o): New rule.
22457 * tree.h (maybe_fold_offset_to_reference,
22458 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
22459 prototypes ...
22460 * gimple.h: ... here.
22461 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
22462 may_propagate_address_into_dereference): Move prototypes ...
22463 * gimple.h: ... here.
22464 * tree-ssa-ccp.c (get_symbol_constant_value,
22465 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
22466 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
22467 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
22468 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
22469 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
22470 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
22471 gimplify_and_update_call_from_tree): Move ...
22472 * gimple-fold.c: ... here. New file.
22473 (ccp_fold_builtin): Rename to ...
22474 (gimple_fold_builtin): ... this.
22475 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
22476
330db1e3
RG
224772010-04-15 Richard Guenther <rguenther@suse.de>
22478
22479 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
22480 fit_double_type, force_fit_type_double, add_double_with_sign,
22481 neg_double, mul_double_with_sign, lshift_double, rshift_double,
22482 lrotate_double, rrotate_double, div_and_round_double): Move ...
22483 * double-int.c: ... here.
22484 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
22485 add_double, neg_double, mul_double_with_sign, mul_double,
22486 lshift_double, rshift_double, lrotate_double, rrotate_double,
22487 div_and_round_double): Move prototypes ...
22488 * double-int.h: ... here.
22489
f0c6475a 224902010-04-15 Bernd Schmidt <bernds@codesourcery.com>
077668e3
BS
22491
22492 PR target/43742
22493 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
22494 matching constraints to ensure inputs match the output.
22495
fa66fc40
KK
224962010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
22497
22498 PR target/43742
22499 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
e96ccb30 22500 in an input-only operand.
fa66fc40 22501
2bd1333d
AS
225022010-04-15 Anatoly Sokolov <aesok@post.ru>
22503
22504 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
22505 (double_int_not, double_int_lshift, double_int_rshift): Declare.
22506 (double_int_negative_p): Convert to static inline function.
74ca3393 22507 * double-int.c (double_int_lshift, double_int_lshift): New functions.
2bd1333d 22508 (double_int_negative_p): Remove.
e96ccb30 22509 * tree.h (lshift_double, rshift_double):
2bd1333d
AS
22510 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
22511 * fold-const.c (fold_convert_const_int_from_real,
22512 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
22513 (lshift_double): Change type of arith argument to bool.
22514 (rshift_double): Change type of arith argument to bool. Correct
22515 comment.
22516 * expmed.c (mask_rtx, lshift_value): (Ditto.).
22517
f0c6475a 225182010-04-14 Bernd Schmidt <bernds@codesourcery.com>
e96ccb30 22519
31ce8a53
BS
22520 PR target/21803
22521 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
22522 at the start and end of the then/else blocks, and omit them from the
22523 conversion.
22524 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
22525 argument; all callers changed. Pass zero to old_insns_match_p instead.
22526 (flow_find_head_matching_sequence): New function.
22527 (old_insns_match_p): Check REG_EH_REGION notes for calls.
22528 * basic-block.h (flow_find_cross_jump,
22529 flow_find_head_matching_sequence): Declare functions.
22530
943f82e7
JM
225312010-04-14 Jason Merrill <jason@redhat.com>
22532
22533 PR c++/36625
22534 * c-common.c (attribute_takes_identifier_p): New fn.
22535 * c-common.h: Declare it.
22536
feeb8c52
UB
225372010-04-14 Uros Bizjak <ubizjak@gmail.com>
22538
22539 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
22540 splitter condition.
22541 (*udivmod<mode>4): Ditto.
22542
4a5528cc
UB
225432010-04-14 Uros Bizjak <ubizjak@gmail.com>
22544
22545 * config/i386/i386.md (maxmin_int): Rename code attribute from
22546 maxminiprefix and update all users.
22547 (maxmin_float): Ditto from maxminfprefix.
22548 (logic): Ditto from logicprefix.
22549 (absneg_mnemonic): Ditto from absnegprefix.
22550 * config/i386/mmx.md: Update all users of maxminiprefix,
4a81b412 22551 maxminfprefix and logicprefix for rename.
4a5528cc
UB
22552 * config/i386/sse.md: Ditto.
22553 * config/i386/sync.md (sync_<code><mode>): Update for
22554 logicprefix rename.
22555
289fcbbd
MLI
225562010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
22557
22558 PR 42966
22559 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
22560 warnings converted to errors.
22561
d58770e7
UB
225622010-04-14 Uros Bizjak <ubizjak@gmail.com>
22563
22564 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
22565 used insn_type variable.
22566 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
22567 to avoid set-but-not-used warning.
22568
a3f1cee4
UB
225692010-04-14 Uros Bizjak <ubizjak@gmail.com>
22570
22571 * df-core.c (df_ref_debug): Change format string placeholder
22572 from 0x%x to %#x.
22573 * dwarf2asm.c (dw2_asm_output_data_raw,
22574 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
22575 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
22576 * dwarf2out.c (output_cfi, output_cfi_directive,
22577 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
22578 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
22579 Ditto.
22580 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
22581 * print-rtl.c (print_rtx): Ditto.
22582
3eb4dbe3
MM
225832010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22584
22585 PR middle-end/42694
22586 * builtins.c (expand_builtin_pow_root): New function to expand pow
22587 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
22588 series of sqrt and cbrt calls under -ffast-math.
22589 (expand_builtin_pow): Call it.
22590
fc249fe5
MM
225912010-04-14 Michael Matz <matz@suse.de>
22592
22593 PR tree-optimization/42963
22594 * tree-cfg.c (touched_switch_bbs): New static variable.
22595 (group_case_labels_stmt): New function broken out from ...
22596 (group_case_labels): ... here, use the above.
22597 (start_recording_case_labels): Allocate touched_switch_bbs.
22598 (end_recording_case_labels): Deallocate it, call
22599 group_case_labels_stmt.
22600 (gimple_redirect_edge_and_branch): Remember index of affected BB.
22601
0fcbf3ed
UB
226022010-04-14 Uros Bizjak <ubizjak@gmail.com>
22603
22604 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
22605 from insn template.
22606
3f529c2c
UB
226072010-04-14 Uros Bizjak <ubizjak@gmail.com>
22608
22609 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
22610
1ce18dc8
JH
226112010-04-13 Jan Hubicka <jh@suse.cz>
22612
22613 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
22614 of optimized out static functions.
22615 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
22616 cost computation. Also sanity check for overflows.
22617 (update_caller_keys): Update cgraph_edge_badness call; properly
22618 update fibheap and sanity check that it is up to date.
22619 (add_new_edges_to_heap): Update cgraph_edge_badness.
22620 (cgraph_decide_inlining_of_small_function): Likewise;
22621 add sanity checking that badness in heap is up to date;
22622 improve dumping of reason; Update badness of calls to the
22623 offline copy of function currently inlined; dump badness
22624 of functions not inlined because of unit growth limits.
22625
9e9ef331
EB
226262010-04-13 Eric Botcazou <ebotcazou@adacore.com>
22627
22628 PR middle-end/32628
22629 * c-common.c (pointer_int_sum): Disregard overflow that occured only
22630 because of sign-extension change when converting to sizetype here...
22631 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
22632
22633 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
22634 the folding to constants. Remove redundant final conversion.
22635 (fold_binary) <associate>: Do not associate if the re-association of
22636 constants alone overflows.
22637 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
22638 to the end of the list.
22639 (multiple_of_p) <COND_EXPR>: New case.
22640
9db94baa
MLI
226412010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
22642
22643 * opt-functions.awk (opt_sanitized_name): New.
22644 (opt_enum): New.
22645 * optc-gen.awk: Use it
22646 * opth-gen.awk: Use it.
22647
0f2ffb9a
MJ
226482010-04-13 Martin Jambor <mjambor@suse.cz>
22649
22650 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
22651 (sra_modify_assign): Delete stmts loading dead data even if racc has no
22652 children. Call replace_uses_with_default_def_ssa_name to handle
22653 SSA_NAES on lhs.
22654
f78b86c0
MM
226552010-04-13 Michael Matz <matz@suse.de>
22656
22657 PR middle-end/43730
22658 * builtins.c (expand_builtin_interclass_mathfn): Also create
22659 a register if the predicate doesn't match.
22660
0e6229c2
DN
226612010-04-13 Diego Novillo <dnovillo@google.com>
22662
22663 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
22664 * c-pch.c: Include timevar.h.
22665 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
3f529c2c 22666 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
0e6229c2 22667 * ggc-common.c: Include timevar.h.
3f529c2c 22668 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
0e6229c2
DN
22669 * timevar.def (TV_PCH_SAVE): Define.
22670 (TV_PCH_CPP_SAVE): Define.
22671 (TV_PCH_PTR_REALLOC): Define.
22672 (TV_PCH_PTR_SORT): Define.
22673 (TV_PCH_RESTORE): Define.
22674 (TV_PCH_CPP_RESTORE): Define.
22675
143597ff
MM
226762010-04-13 Michael Matz <matz@suse.de>
22677
22678 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
22679 into MINUS_EXPRs.
22680 (can_reassociate_p): New function.
22681 (break_up_subtract_bb, reassociate_bb): Use it.
22682
54c5ec4f
RG
226832010-04-13 Richard Guenther <rguenther@suse.de>
22684
22685 PR bootstrap/43737
22686 * builtins.c (c_readstr): Fix assert.
22687
719938ae
UB
226882010-04-13 Uros Bizjak <ubizjak@gmail.com>
22689
22690 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
22691 when generating cltd insn.
22692
22693 (*ashl<mode>3_1): Remove special handling for register operand 2.
22694 (*ashlsi3_1_zext): Ditto.
22695 (*ashlhi3_1): Ditto.
22696 (*ashlhi3_1_lea): Ditto.
22697 (*ashlqi3_1): Ditto.
22698 (*ashlqi3_1_lea): Ditto.
22699 (*<shiftrt_insn><mode>3_1): Ditto.
22700 (*<shiftrt_insn>si3_1_zext): Ditto.
22701 (*<shiftrt_insn>qi3_1_slp): Ditto.
22702 (*<rotate_insn><mode>3_1): Ditto.
22703 (*<rotate_insn>si3_1_zext): Ditto.
22704 (*<rotate_insn>qi3_1_slp): Ditto.
22705
3e8542ca
RG
227062010-04-13 Richard Guenther <rguenther@suse.de>
22707
22708 * tree-ssa-structalias.c (callused_id): Remove.
22709 (call_stmt_vars): New.
22710 (get_call_vi): Likewise.
22711 (lookup_call_use_vi): Likewise.
22712 (lookup_call_clobber_vi): Likewise.
22713 (get_call_use_vi): Likewise.
22714 (get_call_clobber_vi): Likewise.
22715 (make_transitive_closure_constraints): Likewise.
22716 (handle_const_call): Adjust to do per-call call-used handling.
22717 (handle_pure_call): Likewise.
22718 (find_what_var_points_to): Remove general callused handling.
22719 (init_base_vars): Likewise.
22720 (init_alias_vars): Initialize call_stmt_vars.
22721 (compute_points_to_sets): Process call-used and call-clobbered
22722 vars for call statements.
22723 (delete_points_to_sets): Free call_stmt_vars.
22724
777e1f09
RG
227252010-04-13 Richard Guenther <rguenther@suse.de>
22726
22727 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
22728 Only add RW dependence for dependence distance zero.
22729 Adjust maximal vectorization factor according to dependences.
22730 Move alignment handling ...
22731 (vect_find_same_alignment_drs): ... here. New function.
22732 (vect_analyze_data_ref_dependences): Adjust.
22733 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
22734 (vect_analyze_data_refs): Adjust minimal vectorization factor
22735 according to data references.
22736 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
22737 dependences before determining the vectorization factor.
22738 Analyze alignment after determining the vectorization factor.
22739 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
22740 dependences before alignment.
22741 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
22742 Adjust prototype.
22743 (vect_analyze_data_refs): Likewise.
22744 (MAX_VECTORIZATION_FACTOR): New define.
22745
1a710808
DS
227462010-04-13 Duncan Sands <baldrick@free.fr>
22747
22748 * except.h (lang_eh_type_covers): Remove.
22749 * except.c (lang_eh_type_covers): Likewise.
22750
9602b6a1 227512010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3f529c2c
UB
22752 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22753
eed023cc
EB
22754 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
22755 * config/s390/s390.c: Replace UNTIS_PER_WORD with
3f529c2c 22756 UNITS_PER_LONG where it is ABI relevant.
9602b6a1
AK
22757 (s390_return_addr_rtx): Likewise.
22758 (s390_back_chain_rtx): Likewise.
22759 (s390_frame_area): Likewise.
22760 (s390_frame_info): Likewise.
22761 (s390_initial_elimination_offset): Likewise.
22762 (save_gprs): Likewise.
22763 (s390_emit_prologue): Likewise.
22764 (s390_emit_epilogue): Likewise.
22765 (s390_function_arg_advance): Likewise.
22766 (s390_function_arg): Likewise.
22767 (s390_va_start): Likewise.
22768 (s390_gimplify_va_arg): Likewise.
22769 (s390_function_profiler): Likewise.
22770 (s390_optimize_prologue): Likewise.
22771 (s390_rtx_costs): Likewise.
22772 (s390_secondary_reload): Likewise.
22773 (s390_promote_function_mode): Likewise.
22774 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
22775 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
22776 registers available.
22777 (s390_unwind_word_mode): New function.
22778 (s390_function_value): Split 64 bit values into register pair if
22779 used as return value.
22780 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
22781 function call parameters. Handle parallels.
22782 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
22783 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
22784 (DWARF_CIE_DATA_ALIGNMENT): New macro.
22785 (s390_expand_setmem): Remove unused variable src_addr.
eed023cc 22786 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3f529c2c 22787 deal with 64 bit registers.
eed023cc 22788 * config/s390/s390.h: Define __zarch__ predefined macro.
9602b6a1
AK
22789 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
22790 (UNITS_PER_LONG): New macro.
22791 * libjava/include/s390-signal.h: Define extended ucontext
22792 structure containing the upper halfs of the 64 bit registers.
22793
3b123595
SB
227942010-04-13 Simon Baldwin <simonb@google.com>
22795
22796 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
22797
cb3d597d
EB
227982010-04-13 Eric Botcazou <ebotcazou@adacore.com>
22799
22800 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
22801 rvalue on the RHS if the LHS is of a non-renamable type.
22802 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
22803
4adbd5dd
MK
228042010-04-13 Matthias Klose <doko@ubuntu.com>
22805
22806 * gcc.c (cc1_options): Handle -iplugindir before processing
22807 the cc1 spec. Only add -iplugindir once.
22808 (cpp_unique_options): Add -iplugindir option if -fplugin* options
22809 found.
22810 * common.opt (iplugindir): Remove `Separate' property, initialize.
22811 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
22812 option.
22813 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
22814 (distclean): Remove plugin dir.
22815 * doc/invoke.texi: Document -iplugindir.
22816
228172010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
22818
22819 * doc/plugins.texi (Loading Plugins): Document short
22820 -fplugin=foo option.
22821 (Plugin API): Mention default_plugin_dir_name function.
22822
22823 * gcc.c (find_file_spec_function): Add new declaration.
22824 (static_spec_func): Use it for "find-file".
22825 (find_file_spec_function): Add new function.
22826 (cc1_options): Add -iplugindir option if -fplugin* options found.
22827
22828 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
22829
22830 * plugin.c (add_new_plugin): Updated comment, and handle short
22831 plugin name.
22832 (default_plugin_dir_name): Added new function.
22833
719938ae 22834 * common.opt (iplugindir): New option to set the plugin directory.
4adbd5dd 22835
e0db9cc6
UB
228362010-04-12 Uros Bizjak <ubizjak@gmail.com>
22837
22838 * config/i386/i386.md (any_rotate): New code iterator.
22839 (rotate_insn): New code attribute.
22840 (rotate): Ditto.
22841 (SWIM124): New mode iterator.
22842 (<rotate_insn>ti3): New expander.
22843 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
22844 any_rotate code iterator.
22845 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
22846 using any_rotate code iterator and SWIM124 mode iterator.
22847 (ix86_rotlti3): New insn_and_split pattern.
22848 (ix86_rotrti3): Ditto.
22849 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
22850 ix86_rotl{di,ti}3 patterns.
22851 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
22852 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
22853 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
22854 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
22855 code iterator and SWI mode iterator.
22856 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
22857 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
22858 code iterator.
22859 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
22860 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
22861 (bswap rotatert splitter): Add splitter.
22862 (bswap splitter): Macroize splitter using any_rotate code iterator.
22863 Add insn predicate to split only for TARGET_USE_XCHGB or when
22864 optimizing function for size.
22865
077c8ada
SE
228662010-04-12 Steve Ellcey <sje@cup.hp.com>
22867
22868 * config/pa/pa.c (emit_move_sequence): Remove use of
22869 deleted variable flag_argument_noalias.
22870
c7392d11
RO
228712010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22872
22873 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
22874 configurations.
22875 Add to unsupported targets list.
22876 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
22877 sparc*-sun-solaris2.[567]* from target lists.
22878 * configure: Regenerate.
22879 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
22880 removal.
22881 Remove Solaris 7 patch references.
22882 (Specific, sparc-sun-solaris2.7): Removed.
22883 (sparc-sun-solaris2*): Update Solaris 7 example.
22884 (sparc64-*-solaris2*): Likewise.
22885
8c200350
RO
228862010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22887
22888 * config.build (alpha*-dec-osf4*): Remove.
22889 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
22890 of obsolete configurations.
22891 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
22892 support.
22893 * config/alpha/t-osf4: Renamed to ...
22894 * config/alpha/t-osf5: ... this.
22895 * config/alpha/osf.h: Renamed to ...
22896 * config/alpha/osf5.h: ... this.
22897 Merged old osf5.h contents.
22898 Update comments.
22899 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
22900 (EXTRA_SPECS): Removed.
22901 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
22902 reflect removal of Tru64 UNIX V4.0/V5.0 support.
22903 Document that.
22904
887204da
RO
229052010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22906
22907 * doc/contrib.texi (Contributors, Rainer Orth): Update.
22908
c1b8e139
KT
229092010-04-12 Kai Tietz <kai.tietz@onevision.com>
22910
22911 PR/43702
22912 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
22913 __thiscall convention.
22914
b38bccca
SE
229152010-04-12 Steve Ellcey <sje@cup.hp.com>
22916
22917 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
22918 orig_base.
22919 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
22920
fc2f1f53
SE
229212010-04-12 Steve Ellcey <sje@cup.hp.com>
22922
22923 * function.c (assign_parms_initialize_all): Add unused attribute
22924 to fntype.
22925
d086d311
RG
229262010-04-12 Richard Guenther <rguenther@suse.de>
22927
22928 * gsstruct.def (GSS_CALL): New.
22929 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
22930 * gimple.h: Include tree-ssa-alias.h.
22931 (struct gimple_statement_call): New.
22932 (union gimple_statement_struct_d): Add gimple_call member.
22933 (gimple_call_reset_alias_info): Declare.
22934 (gimple_call_use_set): New function.
22935 (gimple_call_clobber_set): Likewise.
22936 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
22937 * gimple.c (gimple_call_reset_alias_info): New function.
22938 (gimple_build_call_1): Call it.
22939 * lto-streamer-in.c (input_gimple_stmt): Likewise.
22940 * tree-inline.c (remap_gimple_stmt): Likewise.
22941 (expand_call_inline): Remove callused handling.
22942 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
22943 * tree-dfa.c (dump_variable): Likewise.
22944 * tree-parloops.c (parallelize_loops): Likewise.
22945 * tree-ssa.c (init_tree_ssa): Likewise.
22946 (delete_tree_ssa): Likewise.
22947 * tree-flow-inline.h (is_call_used): Remove.
22948 * tree-flow.h (struct gimple_df): Remove callused member.
22949 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
22950 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
22951 (ref_maybe_used_by_call_p_1): Simplify.
22952 (call_may_clobber_ref_p_1): Likewise.
22953 * tree-ssa-structalias.c (compute_points_to_sets): Set
22954 the call stmt used and clobbered sets.
22955 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
22956 (find_tail_calls): Verify the tail call.
22957
af961c7f
RG
229582010-04-12 Richard Guenther <rguenther@suse.de>
22959
22960 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
22961 single-iteration always-inline inlining.
22962 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
e0db9cc6 22963 (cgraph_decide_inlining): Do not handle always-inline specially.
af961c7f
RG
22964 (try_inline): Remove always-inline cycle detection special case.
22965 Do not recurse on always-inlines.
22966 (cgraph_early_inlining): Do not iterate if not optimizing.
22967 (cgraph_gate_early_inlining): remove.
22968 (pass_early_inline): Run unconditionally.
22969 (gate_cgraph_decide_inlining): New function.
22970 (pass_ipa_inline): Use it. Do not run the IPA inliner if
22971 not inlining or optimizing.
22972 (cgraph_decide_inlining_of_small_functions): Also consider
22973 always-inline functions.
22974 (cgraph_default_inline_p): Return true for nodes which should
22975 disregard inline limits.
22976 (estimate_function_body_sizes): Assume zero size and time for
22977 nodes which are marked as disregarding inline limits.
22978 (cgraph_decide_recursive_inlining): Do not perform recursive
22979 inlining on always-inline nodes.
22980
fa8351f8
JJ
229812010-04-12 Jakub Jelinek <jakub@redhat.com>
22982
22983 PR bootstrap/43699
22984 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
22985 for exprs satisfying handled_component_p.
22986
675c873b
EB
229872010-04-12 Eric Botcazou <ebotcazou@adacore.com>
22988
22989 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
22990 non-constant aggregate elements.
22991
22992 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
22993 is a real initialization.
22994
c4712597
SZ
229952010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
22996
22997 PR c/36774
22998 * c-decl.c (start_function): Move forward check for nested function.
22999
6f50eb9c
KK
230002010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
23001
23002 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
23003 * config/sh/sh.c: Include reload.h.
23004 (sh_legitimize_reload_address): New.
23005 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
23006 sh_legitimize_reload_address.
23007
c11c09f9
KP
230082010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
23009
23010 * config/sh/sh.md (*movqi_pop): New insn pattern.
23011 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
23012
d72ebc16
UB
230132010-04-11 Uros Bizjak <ubizjak@gmail.com>
23014
23015 * config/i386/i386.md (any_shiftrt): New code iterator.
23016 (shiftrt_insn): New code attribute.
23017 (shiftrt): Ditto.
e0db9cc6
UB
23018 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
23019 using any_shiftrt code iterator.
d72ebc16 23020 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
e0db9cc6 23021 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
d72ebc16
UB
23022 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
23023 pattern from corresponding peephole2 patterns.
e0db9cc6
UB
23024 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
23025 using any_shiftrt code iterator.
23026 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
23027 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
23028 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
23029 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
23030 *{ashr,lshr}<mode>3_cmp_zext.
23031 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
d72ebc16 23032
59caab22
UB
230332010-04-11 Uros Bizjak <ubizjak@gmail.com>
23034
23035 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
23036 scratch register.
23037 (*lshr<mode>3_cconly): Ditto.
23038
9200ac72
UB
230392010-04-11 Uros Bizjak <ubizjak@gmail.com>
23040
23041 * config/i386/i386.md (lshr<mode>3): Macroize expander from
23042 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23043 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
23044 pattern from *lshr{di,ti}3_1 and corresponding splitters using
23045 DWI mode iterator.
23046 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23047 from corresponding peephole2 patterns.
23048 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
e0db9cc6
UB
23049 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
23050 and *lshrdi3_1_rex64 using SWI mode iterator.
d72ebc16 23051 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
9200ac72
UB
23052 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
23053 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
23054 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
23055 and *lshrdi3_cmp_rex64 using SWI mode iterator.
23056 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
23057 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
23058 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
23059 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
23060 SWI mode iterator.
23061
27431d88
UB
230622010-04-10 Uros Bizjak <ubizjak@gmail.com>
23063
23064 * config/i386/i386.md (ashr<mode>3): Macroize expander from
23065 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23066 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
23067 pattern from *ashr{di,ti}3_1 and corresponding splitters using
23068 DWI mode iterator.
23069 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23070 from corresponding peephole2 patterns.
23071 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
23072 (ashrsi3_cvt): Rename from ashrsi3_31.
23073 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
23074 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
23075 and x86_64_shift_adj_3 using SWI48 mode iterator.
23076 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
e0db9cc6
UB
23077 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
23078 and *ashrdi3_1_rex64 using SWI mode iterator.
d72ebc16 23079 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
27431d88
UB
23080 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
23081 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
23082 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
23083 and *ashrdi3_cmp_rex64 using SWI mode iterator.
23084 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
23085 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
23086 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
23087 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
23088 SWI mode iterator.
59caab22 23089 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
27431d88 23090 * config/i386/i386.c (ix86_split_ashr): Update for renamed
9200ac72 23091 x86_shift<mode>_adj_3 expanders.
27431d88 23092
85c9bcd4
WG
230932010-04-10 Wei Guozhi <carrot@google.com>
23094
23095 PR target/42601
23096 * config/arm/arm.c (arm_pic_static_addr): New function.
23097 (legitimize_pic_address): Call arm_pic_static_addr when it detects
23098 a static symbol.
23099 (arm_output_addr_const_extra): Output expression for new pattern.
23100 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
23101
f0c6475a 231022010-04-10 Bernd Schmidt <bernds@codesourcery.com>
979740a0
BS
23103
23104 * ira-costs.c (record_reg_classes): Ignore alternatives that are
23105 not enabled.
4143fd36
BS
23106
23107 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
23108 * web.c: Include "insn-config.h" and "recog.h".
23109 (union_match_dups): New function.
23110 (web_main): Call it.
23111 (union_defs): Don't try to recognize match_dups.
23112
52c1d580
BS
23113 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
23114 if doing so would replace the entire pattern.
23115
ef0f4a03
UB
231162010-04-09 Uros Bizjak <ubizjak@gmail.com>
23117
23118 PR target/43707
23119 PR target/43709
23120 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
23121 and splitter pattern. Change splitter operand 1 predicate to
23122 nonmemory_operand.
23123
add5d998
MJ
231242010-04-09 Martin Jambor <mjambor@suse.cz>
23125
23126 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
23127 lattices are addresses of CONST_DECLs with the same initial value.
23128 (ipcp_print_all_lattices): Print values of CONST_DECLs.
23129 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
23130
43ba743c 231312010-04-09 Eric Botcazou <ebotcazou@adacore.com>
f0c6475a 23132 Bernd Schmidt <bernds@codesourcery.com>
43ba743c
EB
23133
23134 * loop-invariant.c (replace_uses): New static function.
23135 (move_invariant_reg): Use it to ensure we can replace the uses.
23136
231372010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
c3fd7b4d 23138
27431d88
UB
23139 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
23140 function template.
43ba743c 23141 (picochip_override_options): Enable section anchors only above -O1.
c3fd7b4d
HS
23142 (picochip_reorg): Fixed a couple of build warnings.
23143
fcf52686
RO
231442010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23145
23146 * configure.ac (plugin -rdynamic test): Log result.
23147 * configure: Regenerate.
23148 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
23149 (RDYNAMIC_SPEC): Define.
23150 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
23151
55c4f715
RO
231522010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23153
23154 * configure.ac: Determine Sun ld version numbers.
23155 (comdat_group): Restrict GNU ld version checks to gld.
23156 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
23157 (enable_comdat): Support --enable-comdat.
23158 * configure: Regenerate.
23159 * doc/install.texi (Configuration): Document --enable-comdat.
23160
62e08523
RO
231612010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23162
ef0f4a03 23163 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
62e08523
RO
23164 * config/sol2-gld.h: ... here.
23165 * config.gcc (sparc*-*-solaris2*): Reflect this.
23166 (i[34567]86-*-solaris2*): Use it.
23167
034288ef
SE
231682010-04-09 Steve Ellcey <sje@cup.hp.com>
23169
23170 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
23171 setup_clocks_p.
23172 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
23173
d0b8780d
MLI
231742010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
23175
23176 PR 42965
23177 * diagnostic.c (diagnostic_initialize): Initialize
23178 some_warnings_are_errors.
23179 (diagnostic_finish): New.
23180 (diagnostic_action_after_output): Call it before exiting.
23181 (diagnostic_report_diagnostic): Do not print message here. Set
23182 some_warnings_are_errors.
23183 * diagnostic.h (diagnostic_context): Delete
23184 issue_warnings_are_errors_message. Add some_warnings_are_errors.
23185 (diagnostic_finish): Declare.
23186 * toplev.c (toplev_main): Call it before exit.
23187
93e9807a
JM
231882010-04-09 Jason Merrill <jason@redhat.com>
23189
cb6addf4
JM
23190 PR c++/42623
23191 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
23192 for incomplete type.
23193
93e9807a
JM
23194 PR c++/41788
23195 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
23196 based on a warning flag.
23197
74367220
RG
231982010-04-09 Richard Guenther <rguenther@suse.de>
23199
43ba743c 23200 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
74367220 23201
8351bca7
IS
232022010-04-09 Iain Sandoe <iains@gcc.gnu.org>
23203
23204 PR bootstrap/43684
ef0f4a03 23205 * varasm.c (default_assemble_visibility): Wrap vars that are
8351bca7 23206 set, but unused, by targets without GAS.
ade52657 23207 * config/rs6000/rs6000.c (paired_emit_vector_compare):
8351bca7
IS
23208 Remove set, but unused, vars.
23209 (rs6000_legitimize_tls_address): Likewise.
23210 (altivec_expand_dst_builtin): Likewise.
23211 * config/darwin.c (machopic_classify_symbol): Likewise.
23212 (machopic_indirection_name): Likewise.
ef0f4a03 23213
014753cc
UB
232142010-04-09 Uros Bizjak <ubizjak@gmail.com>
23215
23216 * config/i386/i386.md (DWI): New mode iterator.
23217 (S): New mode attribute.
23218 (shift_operand): Ditto.
23219 (shift_immediate_operand): Ditto.
23220 (ashl_input_operand): Ditto.
23221 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
23222 using SDWIM mode iterator.
23223 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
23224 pattern from *ashl{di,ti}3_1 and corresponding splitters using
23225 DWI mode iterator.
23226 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
23227 from corresponding peephole2 patterns.
23228 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
23229 and x86_64_shift_adj_1 using SWI48 mode iterator.
23230 (x86_shift<mode>_adj_2): Ditto.
23231 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
23232 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
23233 using SWI48 mode iterator.
23234 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
23235 *ashldi3_cmp_rex64 using SWI mode iterator.
23236 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
23237 *ashldi3_cconly_rex64 using SWI mode iterator.
23238 * config/i386/i386.c (ix86_split_ashl): Update for renamed
23239 x86_shift<mode>_adj_{1,2}.
23240 (ix86_split_ashr): Ditto.
23241 (ix86_split_lshr): Ditto.
23242
88dd7150
RG
232432010-04-09 Richard Guenther <rguenther@suse.de>
23244
23245 * target.h (builtin_conversion): Pass in input and output types.
23246 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
23247 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
23248 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
23249 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
23250
23251 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
23252 Handle AVX modes.
23253 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
23254
3f2060fd
RG
232552010-04-09 Richard Guenther <rguenther@suse.de>
23256
23257 PR target/43152
23258 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
23259
b690cc0f
RG
232602010-04-09 Richard Guenther <rguenther@suse.de>
23261
23262 * tree-vectorizer.h (struct _stmt_vec_info): Document
23263 that vectype is the type of the LHS.
59caab22 23264 (supportable_widening_operation, supportable_narrowing_operation):
b690cc0f
RG
23265 Get both input and output vector types as arguments.
23266 (vect_is_simple_use_1): Declare.
23267 (get_same_sized_vectype): Likewise.
23268 * tree-vect-loop.c (vect_determine_vectorization_factor):
23269 Set STMT_VINFO_VECTYPE to the vector type of the def.
23270 (vectorizable_reduction): Adjust.
23271 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
23272 Adjust. Specify the output vector type.
23273 (vect_pattern_recog_1): Adjust.
23274 * tree-vect-stmts.c (get_same_sized_vectype): New function.
23275 (vectorizable_call): Adjust.
23276 (vectorizable_conversion): Likewise.
23277 (vectorizable_operation): Likewise.
23278 (vectorizable_type_demotion): Likewise.
23279 (vectorizable_type_promotion): Likewise.
23280 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
23281 the def.
23282 (vect_is_simple_use_1): New function.
23283 (supportable_widening_operation): Get both input and output
23284 vector types.
23285 (supportable_narrowing_operation): Likewise.
23286 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
23287
3e65f251
KT
232882010-04-09 Kai Tietz <kai.tietz@onevision.com>
23289
23290 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
23291 __thiscall and _thiscall as predefined macros.
23292 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
23293 thiscall attribute handling.
23294 (ix86_comp_type_attributes): Likewise.
23295 (ix86_function_regparm): Likewise.
23296 (ix86_return_pops_args): Likewise.
23297 (init_cumulative_args): Likewise.
23298 (find_drap_reg): Likewise.
23299 (ix86_static_chain): Likewise.
23300 (x86_this_parameter): Likewise.
23301 (x86_output_mi_thunk): Likewise.
23302 (ix86_attribute_table): Add description for thiscall attribute.
014753cc 23303 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3e65f251 23304 * doc/extend.texi: Add documentation for thiscall.
27431d88 23305
dc8d2739
MLI
233062010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
23307
23308 PR c++/28584
23309 * c.opt (Wint-to-pointer-cast): Available in C++.
23310 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
23311
d47d0a8d
EB
233122010-04-08 Eric Botcazou <ebotcazou@adacore.com>
23313
23314 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
23315 * calls.c (expand_call): Pass the function type to aggregate_value_p.
23316 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
23317 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
23318 function type instead. Reorder and simplify checks.
23319
23320 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
23321
dc5ee869
JY
233222010-04-08 Jing Yu <jingyu@google.com>
23323 Zdenek Dvorak <ook@ucw.cz>
23324
23325 PR tree-optimization/42720
23326 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
014753cc
UB
23327 loop unswitch conditions here from ...
23328 (tree_unswitch_single_loop): ... here.
dc5ee869 23329
98c07c54
SP
233302010-04-08 Sebastian Pop <sebastian.pop@amd.com>
23331
23332 * tree-if-conv.c: Fix comments and simplify logic.
23333
6cbcfa9d
SP
233342010-04-08 Sebastian Pop <sebastian.pop@amd.com>
23335
23336 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
23337 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
23338 (main_tree_if_conversion): Update call to tree_if_conversion.
23339
1401cf37
MLI
233402010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
23341
23342 PR 42485
23343 * doc/invoke.texi (-b,-V): Delete.
23344 * doc/tm.texi: Do not mention -b.
23345 * gcc.c (display_help): Delete -b and -V.
23346 (process_command): Delete -b and -V.
23347 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6cbcfa9d 23348
40ac4f73 233492010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
27431d88 23350 Wolfgang Gellerich <gellerich@de.ibm.com>
40ac4f73 23351
014753cc
UB
23352 Implement target hook for loop unrolling
23353 * target.h (loop_unroll_adjust): Add a new target hook function.
23354 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
23355 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
23356 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
23357 (s390_loop_unroll_adjust): Implement the new target hook for s390.
23358 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
23359 target hook.
23360 (decide_unroll_stupid): Likewise.
40ac4f73 23361
07c60ef7
RO
233622010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23363
23364 PR target/43643
23365 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
23366
dd178909
RO
233672010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23368
23369 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
23370 (Specific, *-*-solaris2*): Likewise.
23371 Don't prefer Sun as over GNU as.
23372
cc6ae6a1
WG
233732010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
23374
c46a5e28
EB
23375 * config/s390/s390.c (override_options): Adjust the z10 defaults
23376 for max-unroll-times, max-completely-peeled-insns
23377 and max-completely-peel-times.
cc6ae6a1 23378
adfa3cd3
AK
233792010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23380
23381 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
23382 instructions for z10.
23383 (s390_expand_setmem): Likewise.
23384 (s390_expand_cmpmem): Likewise.
23385
84ae6d7b
RG
233862010-04-08 Richard Guenther <rguenther@suse.de>
23387
23388 PR tree-optimization/43679
23389 * tree-ssa-pre.c (eliminate): Only propagate copies.
23390
5a905a2b
JJ
233912010-04-08 Jakub Jelinek <jakub@redhat.com>
23392
23393 PR bootstrap/43681
23394 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
23395 set but not used variable warning.
23396
7548c1be
WG
233972010-04-08 Wei Guozhi <carrot@google.com>
23398
23399 PR target/41653
23400 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
23401 (arm_size_rtx_costs): Call the new function when optimized for size.
23402
aa847cc8
JJ
234032010-04-08 Jakub Jelinek <jakub@redhat.com>
23404
23405 PR debug/43670
23406 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
23407 op0 is not a MEM, just return NULL instead of assertion
23408 failure.
23409 (discover_nonconstant_array_refs): Don't walk debug stmts.
23410
1dcc82c2
DK
234112010-04-08 Doug Kwan <dougkwan@google.com>
23412
23413 * configure.ac: Recognize gold and do not use its version number
23414 to test ld features.
23415 * configure: Regenerate.
23416
b0aef8a8
MK
234172010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
23418
23419 PR middle-end/40815
23420 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
23421 (negate_value): Move code to push elements to broken_up_substracts ...
23422 (eliminate_plus_minus_pair): ... here. Push operands that have no
23423 negative pair to plus_negates.
23424 (repropagate_negates, init_reassoc, fini_reassoc): Update.
23425
7a50adb7
RW
234262010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23427
2d413304
RW
23428 * doc/install.texi (Configuration): Move description of
23429 --enable-lto, --with-libelf*, --enable-gold from Java section to
23430 general section.
23431
7a50adb7
RW
23432 * doc/generic.texi (Working with declarations)
23433 (Function Properties, C and C++ Trees): Fix typos.
23434 * doc/sourcebuild.texi (Top Level): Likewise.
23435
60d3aec4
JJ
234362010-04-07 Jakub Jelinek <jakub@redhat.com>
23437
ebfbbdc5
JJ
23438 PR c/18624
23439 * tree.h (DECL_READ_P): Define.
23440 (struct tree_decl_common): Add decl_read_flag.
23441 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
23442 a set but not used warning.
23443 (merge_decls): Merge DECL_READ_P flag.
23444 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
23445 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
23446 * c-common.c (handle_used_attribute, handle_unused_attribute):
23447 Likewise.
23448 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
23449 New prototypes.
23450 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
23451 New functions.
23452 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
23453 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
23454 c_parser_binary_expression, c_parser_cast_expression,
23455 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
23456 Call default_function_array_read_conversion instead of
23457 default_function_array_conversion where needed.
23458 (c_parser_unary_expression, c_parser_conditional_expression,
23459 c_parser_postfix_expression_after_primary, c_parser_initelt):
23460 Likewise. Call mark_exp_read where needed.
23461 (c_parser_statement_after_labels, c_parser_asm_operands,
23462 c_parser_typeof_specifier, c_parser_sizeof_expression,
23463 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
23464 where needed.
23465 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
23466 New.
23467 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
23468 (warn_unused_but_set_parameter): Default to warn_unused
23469 && extra_warnings.
23470 * doc/invoke.texi: Document -Wunused-but-set-variable and
23471 -Wunused-but-set-parameter.
23472
60d3aec4
JJ
23473 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
23474 used count variable.
23475 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
23476 when operandN variables aren't used in the body of the expander
23477 or splitter.
23478 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
23479 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
23480 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
23481 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
23482 FOR_EACH_IMM_USE_ON_STMT): Likewise.
23483 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
23484 * tree.c (PROCESS_ARG): Likewise.
23485
87cf0651
SB
234862010-04-07 Simon Baldwin <simonb@google.com>
23487
23488 * diagnostic.h (diagnostic_override_option_index): New macro to
23489 set a diagnostic's option_index.
23490 * c-tree.h (c_cpp_error): Add warning reason argument.
23491 * opts.c (_warning_as_error_callback): New.
23492 (register_warning_as_error_callback): Store callback for
23493 warnings enabled via enable_warning_as_error.
23494 (enable_warning_as_error): Call callback, minor code tidy.
23495 * opts.h (register_warning_as_error_callback): Declare.
23496 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
23497 response to -Werror=.
23498 (c_common_init_options): Register warning_as_error_callback in opts.c.
23499 * common.opt: Add -Wno-cpp option.
23500 * c-common.c (struct reason_option_codes_t): Map cpp warning
23501 reason codes to gcc option indexes.
23502 * (c_option_controlling_cpp_error): New function, lookup the gcc
23503 option index for a cpp warning reason code.
23504 * (c_cpp_error): Add warning reason argument, call
23505 c_option_controlling_cpp_error for diagnostic_override_option_index.
23506 * doc/invoke.texi: Document -Wno-cpp.
23507
2ea9dc64
RG
235082010-04-07 Richard Guenther <rguenther@suse.de>
23509
23510 * ipa-reference.c (mark_load): Use get_base_address.
23511 (mark_store): Likewise.
23512
23513 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
23514 inserting GIMPLE_NOPs into the IL.
23515 * tree-ssa-structalias.c (get_constraint_for_component_ref):
23516 Explicitly strip handled components and indirect references.
59caab22 23517
2ea9dc64
RG
23518 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
23519 folding address expressions.
23520 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
23521 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
23522 operand_equal_p to compare decls.
23523 (ptr_deref_may_alias_decl_p): Likewise.
23524 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
23525 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
23526 Handle reversed comparison ops.
23527 * tree-sra.c (asm_visit_addr): Use get_base_address.
014753cc 23528 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2ea9dc64
RG
23529 * ipa-reference.c (mark_address): Use get_base_address.
23530
95d938ee
RG
235312010-04-07 Richard Guenther <rguenther@suse.de>
23532
23533 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
23534 Propagate constants everywhere.
23535
1a299ae4
JJ
235362010-04-07 Jakub Jelinek <jakub@redhat.com>
23537
23538 PR debug/43516
23539 * tree.c (MAX_INT_CACHED_PREC): Define.
23540 (nonstandard_integer_type_cache): New array.
23541 (build_nonstandard_integer_type): Cache results for precision
23542 <= MAX_INT_CACHED_PREC.
23543
0d3c82d6
RG
235442010-04-07 Richard Guenther <rguenther@suse.de>
23545
23546 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
23547 -fargument-noalias-global, -fargument-noalias-anything): Remove.
23548 * common.opt: Likewise.
014753cc
UB
23549 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
23550 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
0d3c82d6
RG
23551 (nonoverlapping_memrefs_p): Likewise.
23552 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
23553 * opts.c (common_handle_option): Handle OPT_fargument_alias,
23554 OPT_fargument_noalias, OPT_fargument_noalias_anything and
23555 OPT_fargument_noalias_global for backward compatibility.
23556
12bd5a1e
RG
235572010-04-07 Richard Guenther <rguenther@suse.de>
23558
23559 PR tree-optimization/43270
014753cc 23560 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
12bd5a1e
RG
23561 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
23562 * tree-ssa-pre.c (phi_translate_1): Adjust.
23563 (fully_constant_expression): Split out vn_reference handling to ...
23564 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
23565 Fold reads from constant strings.
23566 (vn_reference_lookup): Handle fully constant references.
23567 (vn_reference_lookup_pieces): Likewise.
23568 * Makefile.in (expmed.o-warn): Add -Wno-error.
23569
a7752396
MJ
235702010-04-07 Martin Jambor <mjambor@suse.cz>
23571
23572 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
23573
6392bea6
IS
235742010-04-07 Iain Sandoe <iains@gcc.gnu.org>
23575
23576 PR driver/41594
23577 * gcc.c: Add -static-libstdc++ to list of recognized options.
23578
9af27220
RO
235792010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23580
014753cc 23581 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9af27220 23582
83a416b0
RG
235832010-04-07 Richard Guenther <rguenther@suse.de>
23584
23585 PR middle-end/42617
014753cc
UB
23586 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
23587 bases build simple mem attributes to retain points-to information.
83a416b0 23588
366f945f
RG
235892010-04-07 Richard Guenther <rguenther@suse.de>
23590
23591 PR middle-end/42617
23592 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
23593 preserve points-to related information.
23594
56c47f22
RG
235952010-04-07 Richard Guenther <rguenther@suse.de>
23596
23597 PR middle-end/42617
23598 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
23599 discard plain indirect references.
014753cc 23600 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
56c47f22
RG
23601 * tree.c (tree_nop_conversion): Likewise.
23602
a42f1217
DS
236032010-04-07 Dodji Seketeli <dodji@redhat.com>
23604
23605 PR debug/43628
23606 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
23607
b97b2634
KT
236082010-04-06 Kai Tietz <kai.tietz@onevision.com>
23609
23610 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
23611 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
23612
62ef2431
SP
236132010-04-07 Sebastian Pop <sebastian.pop@amd.com>
23614
23615 * tree-if-conv.c: Fix indentation and comments.
23616
baaa8e96
SP
236172010-04-07 Sebastian Pop <sebastian.pop@amd.com>
23618
23619 * tree-if-conv.c: Sort static functions in topological order.
23620
b6779d81
SP
236212010-04-07 Sebastian Pop <sebastian.pop@amd.com>
23622
23623 * tree-if-conv.c: Fix indentation and comments.
23624
9310a3e2
SP
236252010-04-06 Sebastian Pop <sebastian.pop@amd.com>
23626
23627 PR middle-end/43519
23628 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
014753cc
UB
23629 lang_hooks.types.type_for_size instead of
23630 build_nonstandard_integer_type.
9310a3e2
SP
23631 When converting an unsigned type to signed, double its precision.
23632 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
23633 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
014753cc
UB
23634 (graphite_create_new_loop_guard): When ub + 1 wraps around,
23635 use lb <= ub.
9310a3e2
SP
23636
236372010-04-06 Sebastian Pop <sebastian.pop@amd.com>
23638
23639 PR middle-end/43519
23640 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23641 POINTER_PLUS_EXPR for pointer types.
23642
236432010-04-06 Sebastian Pop <sebastian.pop@amd.com>
23644
23645 PR middle-end/43519
23646 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
23647 * graphite-clast-to-gimple.c: Include langhooks.h.
23648 (max_signed_precision_type): New.
23649 (max_precision_type): Takes two types as arguments.
23650 (precision_for_value): New.
23651 (precision_for_interval): New.
23652 (gcc_type_for_interval): New.
23653 (gcc_type_for_value): New.
23654 (gcc_type_for_clast_term): New.
23655 (gcc_type_for_clast_red): New.
23656 (gcc_type_for_clast_bin): New.
23657 (gcc_type_for_clast_expr): Split up into several functions.
23658 (gcc_type_for_clast_eq): Rewritten.
23659 (compute_bounds_for_level): New.
23660 (compute_type_for_level_1): New.
23661 (compute_type_for_level): New.
23662 (gcc_type_for_cloog_iv): Removed.
23663 (gcc_type_for_iv_of_clast_loop): Rewritten.
23664 (graphite_create_new_loop): Compute the lower and upper bound types
23665 with gcc_type_for_clast_expr.
23666 (graphite_create_new_loop_guard): Same.
23667 (find_cloog_iv_in_expr): Removed.
23668 (compute_cloog_iv_types_1): Removed.
23669 (compute_cloog_iv_types): Removed.
23670 (gloog): Do not call compute_cloog_iv_types.
23671 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
23672 GBB_CLOOG_IV_TYPES.
23673 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
23674 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
23675 (GBB_CLOOG_IV_TYPES): Removed.
23676
236772010-04-06 Sebastian Pop <sebastian.pop@amd.com>
23678
23679 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
23680 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
23681 (detect_commutative_reduction): Same.
23682
a3b9e73c
SP
236832010-04-06 Sebastian Pop <sebastian.pop@amd.com>
23684
23685 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
23686 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
23687 argument.
23688 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
23689 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
23690 (rewrite_commutative_reductions_out_of_ssa): Same.
23691 * passes.c (execute_function_todo): Call verify_ssa for every pass
23692 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
23693 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
23694 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
23695 with an extra argument.
23696 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
23697 verify_ssa only when the extra argument is true.
23698 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
23699 with an extra argument.
23700 (tree_transform_and_unroll_loop): Same.
23701
98b6e9dd
SP
237022010-04-06 Sebastian Pop <sebastian.pop@amd.com>
23703
23704 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
23705 for all the passes of the LNO having LOOP_CLOSED_SSA.
23706 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
23707 * tree-loop-distribution.c (pass_loop_distribution): Same.
23708 * tree-pass.h (TODO_verify_loops): Removed.
23709 * tree-ssa-loop.c (pass_tree_loop_init): Same.
23710 (pass_lim): Same.
23711 (pass_tree_unswitch): Same.
23712 (pass_predcom): Same.
23713 (pass_vectorize): Same.
23714 (pass_linear_transform): Same.
23715 (pass_graphite_transforms): Same.
23716 (pass_iv_canon): Same.
23717 (pass_complete_unroll): Same.
23718 (pass_complete_unrolli): Same.
23719 (pass_parallelize_loops): Same.
23720 (pass_loop_prefetch): Same.
23721 (pass_iv_optimize): Same.
23722
c86a3947
CF
237232010-04-06 Changpeng Fang <changpeng.fang@amd.com>
23724
23725 PR middle-end/32824
23726 * passes.c (init_optimization_passes): Move pass_lim before
23727 pass_copy_prop and pass_dce_loop.
23728
37794981
JJ
237292010-04-06 Jakub Jelinek <jakub@redhat.com>
23730
23731 PR target/43667
23732 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
23733 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
23734 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
23735 MULTI_* defines for 4 argument vpermil2p* builtins.
23736
d079b87f
UB
237372010-04-06 Uros Bizjak <ubizjak@gmail.com>
23738
23739 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
23740 * config/i386/i386.c (x86_maybe_negate_const_int): New.
23741 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
23742 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
23743 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
23744 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
23745 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
23746 Use x86_maybe_negate_const_int to output insn mnemonic.
23747 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
23748 check from instruction predicate. Update comments.
23749 * config/i386/sync.md (sync_add<mode>): Use
23750 x86_maybe_negate_const_int to output insn mnemonic.
b1a0b3b4 23751
d079b87f
UB
237522010-04-06 Jan Hubicka <jh@suse.cz>
23753
23754 PR tree-optimization/42906
23755 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
23756 IGNORE_SELF argument. Set visited_control_parents for fully
23757 processed BBs.
b1a0b3b4
JH
23758 (find_obviously_necessary_stmts): Update call of
23759 mark_control_dependent_edges_necessary.
d079b87f 23760 (propagate_necessity): Likewise. Handle PHI edges more curefully.
b1a0b3b4 23761
6593d123
UB
237622010-04-06 Uros Bizjak <ubizjak@gmail.com>
23763
23764 * config/i386/i386.md: Remove comment about 'e' and 'E'
23765 operand modifier.
23766
56186ac2
RG
237672010-04-06 Richard Guenther <rguenther@suse.de>
23768
23769 PR tree-optimization/43627
23770 * tree-vrp.c (extract_range_from_unary_expr): Widenings
23771 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
23772 not varying.
23773
7d11d368
JJ
237742010-04-06 Jakub Jelinek <jakub@redhat.com>
23775
d3bccded
JJ
23776 * BASE-VER: Change to 4.6.0.
23777
7d11d368
JJ
23778 PR target/43638
23779 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
23780 handling.
23781
eb12d0ae
RG
237822010-04-06 Richard Guenther <rguenther@suse.de>
23783
23784 PR middle-end/43661
23785 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
23786
53b79425
RW
237872010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23788
23789 * doc/invoke.texi (Optimize Options): Document that LTO
23790 won't remove object access purely due to incompatible
23791 declarations.
23792
7e0ec110
MK
237932010-04-04 Matthias Klose <doko@ubuntu.com>
23794
23795 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
23796 Initialize variable.
23797
2b22e382
RG
237982010-04-03 Richard Guenther <rguenther@suse.de>
23799
23800 PR middle-end/42509
23801 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
23802 require a non-NULL MEM_OFFSET.
23803
c75c517d
SB
238042010-04-02 Steven Bosscher <steven@gcc.gnu.org>
23805
d079b87f 23806 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
c75c517d
SB
23807 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
23808 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
23809 config/alpha/predicates.md, config/arm/arm.md,
23810 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
23811 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
23812 config/darwin9.h, config/darwin.c, config/darwin.h,
23813 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
23814 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
23815 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
23816 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
23817 config/mips/mips.md, config/mn10300/mn10300.c,
23818 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
23819 config/rs6000/aix.h, config/rs6000/dfp.md,
23820 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
23821 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
23822 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
23823 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
23824 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
23825 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
23826 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
23827 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
23828 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
23829 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
23830 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
23831 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
23832 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
23833 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
23834 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
23835 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
23836 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
23837 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
23838 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
23839 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
23840 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
23841 opt-functions.awk, opth-gen.awk, params.def, passes.c,
23842 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
23843 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
23844 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
23845 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
23846 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
23847 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
23848 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
23849 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
23850 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
23851 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
23852 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
23853 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
23854 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
23855 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
23856
4d9e8446
RW
238572010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23858
23859 PR other/43620
23860 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
23861 * aclocal.m4: Regenerate.
23862
1cdaa211
RG
238632010-04-02 Richard Guenther <rguenther@suse.de>
23864
23865 PR tree-optimization/43629
23866 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
23867 if we have seen a constant value.
23868
d33da5cd
JM
238692010-04-02 Joseph Myers <joseph@codesourcery.com>
23870
014753cc 23871 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
d33da5cd 23872
2e5505a4
RE
238732010-04-02 Richard Earnshaw <rearnsha@arm.com>
23874
23875 PR target/43469
d079b87f 23876 * arm.c (legitimize_tls_address): Adjust call to
2e5505a4
RE
23877 gen_tls_load_dot_plus_four.
23878 (arm_note_pic_base): New function.
23879 (arm_cannot_copy_insn_p): Use it.
23880 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
23881 constraint.
23882
bdfbd9df
RW
238832010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23884
23885 PR bootstrap/43531
23886
23887 Revert:
23888 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23889
23890 * Makefile.in ($(out_object_file)): Depend on
23891 gt-$(basename $(notdir $(out_file))).h.
23892
f4a4b582 238932010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
2bc40daa 23894
014753cc 23895 * config.gcc (lm32-*-rtems*): Add t-lm32.
2bc40daa 23896
f4a4b582 238972010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
2bc40daa 23898
014753cc
UB
23899 * config.gcc: Add lm32-*-rtems*.
23900 * config/lm32/rtems.h: New file.
2bc40daa 23901
abfb38d7
DK
239022010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
23903
23904 PR target/42609
23905 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
23906
2f43d500
JJ
239072010-04-01 Jakub Jelinek <jakub@redhat.com>
23908
23909 * dwarf2out.c (output_compilation_unit_header): For
23910 -gdwarf-4 use version 4 instead of version 3.
23911 (output_line_info): For version 4 and above emit additional
23912 maximum ops per insn header field.
23913 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
23914
23915 * dwarf2out.c (is_c_family, is_java): Remove.
23916 (lower_bound_default): New function.
23917 (add_bound_info, gen_descr_array_type_die): Use it.
23918
777351a5
DS
239192010-04-01 Dodji Seketeli <dodji@redhat.com>
23920
23921 PR debug/43325
23922 * dwarf2out.c (gen_variable_die): Allow debug info for variable
23923 re-declaration when it happens in a function.
23924
6544865a
AH
239252010-04-01 Aldy Hernandez <aldyh@redhat.com>
23926
23927 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
23928 (cgraph_remove_function_insertion_hook): Same.
23929 (cgraph_call_function_insertion_hooks): Same.
23930
5e9fb3db
RG
239312010-04-01 Richard Guenther <rguenther@suse.de>
23932
23933 PR middle-end/43614
23934 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
23935 and TREE_THIS_VOLATILE.
23936 (copy_ref_info): Likewise.
23937 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
23938 * tree.c (build6_stat): Ignore side-effects of all but arg5
23939 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
23940 TARGET_MEM_REF.
23941
eb258d7f
RG
239422010-04-01 Richard Guenther <rguenther@suse.de>
23943
23944 PR tree-optimization/43607
23945 * ipa-type-escape.c (check_call): Do not access non-existing
23946 arguments.
23947
aa8bfcad
RG
239482010-04-01 Richard Guenther <rguenther@suse.de>
23949
23950 PR middle-end/43602
23951 Revert
f4a4b582
EB
23952 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
23953 Jack Howarth <howarth@bromo.med.uc.edu>
aa8bfcad
RG
23954
23955 * tree-profile.c (tree_init_ic_make_global_vars): Make static
23956 variables TLS.
23957
8c5cfa89
RO
239582010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23959
23960 * doc/install.texi (Prerequisites): Document libelf usability on
23961 IRIX 5/6 and Solaris 2.
23962 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
23963 Update GNU as, GNU ld requirements.
23964 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
23965 Document Sun Studio compiler download.
23966 Update and simplify as, ld recommendations.
23967 (Specific, *-*-solaris2.7): Note obsoletion, removal.
23968
ddcc3550
RO
239692010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23970
9af27220 23971 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
ddcc3550
RO
23972 with_tune_32 to pentium4.
23973
93234e58
UB
239742010-04-01 Uros Bizjak <ubizjak@gmail.com>
23975
23976 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
23977
ef369ad8
RO
239782010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23979
23980 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
23981 obsoletion, removal.
23982 Update IDO URL.
23983 Document GNU as requirement.
23984 Update configure requirements.
014753cc 23985 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
ef369ad8
RO
23986 Recomment IRIX 6.5.18+.
23987 Document IDF/IDL requirement.
23988 Document GNU as requirement.
23989 Document GNU ld bootstrap failure.
23990 Remove freeware.sgi.com reference.
23991
92d80770
RO
239922010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23993
23994 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
23995 UNIX V4.0, V5.0 obsoletion, removal.
23996 Remove --with-gc=simple reference.
23997 Update VM requirements during bootstrap.
23998 Remove -oldas bootstrap description.
23999 Update binutils reference.
24000 Remove comparison failure note.
24001
25d635d9
SP
240022010-03-31 Richard Guenther <rguenther@suse.de>
24003 Zdenek Dvorak <ook@ucw.cz>
24004 Sebastian Pop <sebastian.pop@amd.com>
24005
24006 PR middle-end/43464
24007 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
24008 with multiple arguments.
24009 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
24010
240112010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24012
24013 * graphite-dependences.c (print_pddr): Call print_pdr with an
24014 extra argument.
24015 * graphite-poly.c (debug_pdr): Add an extra argument for the
24016 verbosity level.
24017 (print_pdr): Same.
24018 (print_pbb_domain): Same.
24019 (print_pbb): Same.
24020 (print_scop_context): Same.
24021 (print_scop): Same.
24022 (print_cloog): Same.
24023 (debug_pbb_domain): Same.
24024 (debug_pbb): Same.
24025 (print_pdrs): Same.
24026 (debug_pdrs): Same.
24027 (debug_scop_context): Same.
24028 (debug_scop): Same.
24029 (debug_cloog): Same.
24030 (print_scop_params): Same.
24031 (debug_scop_params): Same.
24032 (print_iteration_domain): Same.
24033 (print_iteration_domains): Same.
24034 (debug_iteration_domain): Same.
24035 (debug_iteration_domains): Same.
24036 (print_scattering_function): Same.
24037 (print_scattering_functions): Same.
24038 (debug_scattering_function): Same.
24039 (debug_scattering_functions): Same.
24040 * graphite-poly.h (debug_pdr): Update declaration.
24041 (print_pdr): Same.
24042 (print_pbb_domain): Same.
24043 (print_pbb): Same.
24044 (print_scop_context): Same.
24045 (print_scop): Same.
24046 (print_cloog): Same.
24047 (debug_pbb_domain): Same.
24048 (debug_pbb): Same.
24049 (print_pdrs): Same.
24050 (debug_pdrs): Same.
24051 (debug_scop_context): Same.
24052 (debug_scop): Same.
24053 (debug_cloog): Same.
24054 (print_scop_params): Same.
24055 (debug_scop_params): Same.
24056 (print_iteration_domain): Same.
24057 (print_iteration_domains): Same.
24058 (debug_iteration_domain): Same.
24059 (debug_iteration_domains): Same.
24060 (print_scattering_function): Same.
24061 (print_scattering_functions): Same.
24062 (debug_scattering_function): Same.
24063 (debug_scattering_functions): Same.
24064
240652010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24066
24067 * graphite-poly.c (print_scattering_function_1): New.
24068 (print_scattering_function): Call it.
24069 (print_scop_params): Remove spaces at the end of lines.
24070 (print_cloog): New.
24071 (debug_cloog): New.
24072 * graphite-poly.h (print_cloog): Declared.
24073 (debug_cloog): Declared.
24074
240752010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24076
24077 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
24078 in loop->header.
24079 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
24080 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
24081 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
24082 to switch between adding the IV bump in loop->latch or in loop->header.
24083
240842010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24085
24086 * graphite-poly.c (print_scattering_function): Pretty print following
24087 the scoplib format.
24088 (print_pdr): Same.
24089 (print_pbb_domain): Same.
24090 (dump_gbb_cases): Same.
24091 (dump_gbb_conditions): Same.
24092 (print_pdrs): Same.
24093 (print_pbb): Same.
24094 (print_scop_params): Same.
24095 (print_scop_context): Same.
24096 (print_scop): Same.
24097 (print_pbb_body): New.
24098 (lst_indent_to): New.
24099 (print_lst): Start new lines with a #.
24100 * graphite-poly.h (pbb_bb): New.
24101 (pbb_index): Use pbb_bb.
24102 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
24103 disjuncts.
24104 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
24105
2080bd29
JJ
241062010-03-31 Jakub Jelinek <jakub@redhat.com>
24107
290d8971
JJ
24108 * dwarf2out.c (size_of_die): For -gdwarf-4 use
24109 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
24110 and 0 instead of 1 for dw_val_class_flag.
24111 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
24112 dw_val_class_range_list, dw_val_class_loc_list,
24113 dw_val_class_lineptr and dw_val_class_macptr, use
24114 DW_FORM_flag_present for dw_val_class_flag and
24115 DW_FORM_exprloc for dw_val_class_loc.
24116 (output_die): For -gdwarf-4 print dw_val_class_loc
24117 size as uleb128 instead of 1 or 2 bytes and don't print
24118 anything for dw_val_class_flag.
24119
109f4af3
JJ
24120 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
24121 instead of cselib_lookup following by tweaking locs->setting_insn.
24122
2080bd29
JJ
24123 PR bootstrap/43596
24124 * cselib.c (cselib_process_insn): Clear cselib_current_insn
24125 even before returning from label, setjmp call or volatile asm
24126 handling.
24127
33283dad
RG
241282010-03-31 Richard Guenther <rguenther@suse.de>
24129
24130 PR middle-end/43600
24131 * cgraphunit.c (cgraph_output_in_order): Do not allocate
24132 temporary data on stack.
24133
a0c21029
RO
241342010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24135
24136 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
24137 (PUSHSECTION_ASM_OP): Remove.
24138 (POPSECTION_ASM_OP): Remove.
24139 (PUSHSECTION_FORMAT): Remove.
24140 * config/sol2.h (PUSHSECTION_FORMAT): Define.
24141 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
24142 * config/sol2.c (solaris_output_init_fini): Use it.
24143
a3f410a2
JZ
241442010-03-31 Jie Zhang <jie@codesourcery.com>
24145
24146 PR 43574
24147 * opt-functions.awk (var_type_struct): Use signed char type
24148 for simple variables.
24149
f0c01ffd
RO
241502010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24151
24152 * config/sol2.c: Include output.h.
24153 (solaris_assemble_visibility): New function.
24154 * config/t-sol2 (sol2.o): Add output.h dependency.
24155 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
24156 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
24157 Redefine.
24158
132b4e82
JJ
241592010-03-31 Jakub Jelinek <jakub@redhat.com>
24160
d8d55ac0
JJ
24161 PR target/43580
24162 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
24163 V2SImode or XFmode on PRE_DEC.
24164
132b4e82
JJ
24165 PR debug/43557
24166 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
24167 BLKmode.
24168
dc12b70e
JZ
241692010-03-31 Jie Zhang <jie@codesourcery.com>
24170
24171 PR 43562
24172 * reload.h (caller_save_initialized_p): Declare.
24173 * toplev.c (backend_init_target): Don't call
93234e58 24174 init_caller_save but set caller_save_initialized_p to false.
dc12b70e
JZ
24175 * caller-save.c (caller_save_initialized_p): Define.
24176 (init_caller_save): Check caller_save_initialized_p.
24177 * ira.c (ira): Call init_caller_save if flag_caller_saves.
24178
4a2f22ff
RO
241792010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24180
24181 PR target/39048
24182 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
24183 and soft-fp/t-softfp to tmake_file.
24184 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
24185 (LIBGCC2_TF_CEXT): Define.
24186 (TF_SIZE): Define.
24187
5847e8da
AO
241882010-03-30 Alexandre Oliva <aoliva@redhat.com>
24189
24190 PR debug/42977
24191 * cselib.c (n_useless_values): Document handling of debug locs.
24192 (n_useless_debug_values, n_debug_values): New variables.
24193 (new_elt_loc_list): Don't add to debug values, keep count.
24194 (promote_debug_loc): New.
24195 (cselib_reset_table): Zero new variables.
24196 (entry_and_rtx_equal_p): Promote debug locs.
24197 (discard_useless_locs): Increment n_useless_debug_values for
24198 debug values.
24199 (remove_useless_values): Adjust n_useless_values and n_debug_values
24200 with n_useless_debug_values.
24201 (add_mem_for_addr): Promote debug locs.
24202 (cselib_lookup_mem): Likewise.
24203 (cselib_lookup_addr): Renamed to...
93234e58 24204 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
5847e8da
AO
24205 (cselib_log_lookup): ... this. Turn into...
24206 (cselib_lookup_addr): ... new wrapper.
24207 (cselib_lookup_from_insn): New.
24208 (cselib_invalidate_regno): Increment n_useless_debug_values for
24209 debug values.
24210 (cselib_invalidate_mem): Likewise.
24211 (cselib_process_insn): Take n_deleted and n_debug_values into
24212 account to guard remove_useless_value call.
24213 (cselib_finish): Zero n_useless_debug_values.
24214 * cselib.h (cselib_lookup_from_insn): Declare.
24215 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
24216 (sched_analyze_2): Likewise.
24217
03a5f060
JJ
242182010-03-30 Jakub Jelinek <jakub@redhat.com>
24219
e9e00885
JJ
24220 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
24221 functions.
24222 (adjust_mems): Replace narrowing SUBREG of expression containing
24223 just PLUS, MINUS, MULT and ASHIFT of registers and constants
24224 with operations in the narrower mode.
24225
03a5f060 24226 PR debug/43593
93234e58
UB
24227 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
24228 regs_invalidated_by_call instead all call_used_reg_set registers.
03a5f060 24229
8533c9d8
SP
242302010-03-30 Sebastian Pop <sebastian.pop@amd.com>
24231
24232 PR middle-end/43430
24233 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
24234 pointer comparisons with types_compatible_p.
24235 * tree-vect-stmts.c (vectorizable_call): Same.
24236 (vectorizable_condition): Same.
24237
a3e7e012
AK
242382010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24239
24240 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
24241 stack check if the mask would be zero.
24242
f4a4b582
EB
242432010-03-30 Seongbae Park <seongbae.park@gmail.com>
24244 Jack Howarth <howarth@bromo.med.uc.edu>
40ae6799
SP
24245
24246 * tree-profile.c (tree_init_ic_make_global_vars): Make static
24247 variables TLS.
24248
2bcba94b
JM
242492010-03-30 Joseph Myers <joseph@codesourcery.com>
24250
24251 PR other/25232
24252 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
24253 and __unordtf2.
24254 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
24255 Include ___unordxf2 and ___unordtf2.
24256 * config/i386/libgcc-glibc.ver: Do not define inheritance from
24257 GCC_4.4.0 here.
24258
15baf7f8
TG
242592010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
24260
24261 * config/lm32/t-lm32: New file.
24262 * config.gcc: Use the above file when targetting lm32.
24263
fba48836
DS
242642010-03-28 Duncan Sands <baldrick@free.fr>
24265
93234e58 24266 * Makefile.in (PLUGIN_HEADERS): Add except.h.
fba48836 24267
49a71bc8
SP
242682010-03-29 Sebastian Pop <sebastian.pop@amd.com>
24269
24270 PR middle-end/43431
24271 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
24272 Improve vectorization cost model diagnostic.
24273
22a8be9e
SP
242742010-03-29 Sebastian Pop <sebastian.pop@amd.com>
24275
24276 PR middle-end/43436
24277 * tree-vect-data-refs.c (vect_analyze_data_refs): When
24278 compute_data_dependences_for_loop returns false, early exit
24279 and output an extra diagnostic for the failed data reference
24280 analysis.
24281
58adb739
RG
242822010-03-29 Richard Guenther <rguenther@suse.de>
24283
24284 PR tree-optimization/43560
93234e58
UB
24285 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
24286 (can_sm_ref_p): Treat stores to readonly locations as trapping.
58adb739 24287
3b34d92c
JZ
242882010-03-29 Jie Zhang <jie@codesourcery.com>
24289
24290 PR 43564
24291 * toplev.c (process_options): Set optimization_default_node
24292 and optimization_current_node.
24293 * opts.c (decode_options): Don't set optimization_default_node
24294 and optimization_current_node.
24295
090f6087
RC
242962010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
24297
24298 * config/rtems.h: Abandon -qrtems_debug.
24299
88cc1e04
JH
243002010-03-28 Jan Hubicka <jh@suse.cz>
24301
24302 PR tree-optimization/43505
24303 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
24304 map should not be copied.
24305
b932b8b1
JDA
243062010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24307
24308 PR middle-end/41674
24309 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
24310 cdtors, set DECL_PRESERVE_P.
24311 * ipa.c (cgraph_externally_visible_p): Return true if declaration
24312 should be preseved.
24313
fb6807b8
UB
243142010-03-27 Uros Bizjak <ubizjak@gmail.com>
24315
24316 PR tree-optimization/43528
24317 * stor-layout.c (place_field): Check that constant fits into
24318 unsigned HWI when skipping calculation of MS bitfield layout.
24319
a9deb256
JH
243202010-03-27 Jan Hubicka <jh@suse.cz>
24321
24322 PR middle-end/43391
24323 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
24324 notice_global_symbol work.
24325
5a9c8a1b
JJ
243262010-03-27 Jakub Jelinek <jakub@redhat.com>
24327
24328 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
24329 instead of dwarf2out_decl.
24330 (struct var_loc_node): Remove section_label field.
24331 (dwarf2out_function_decl): New function.
24332 (dwarf2out_var_location): Don't set section_label field.
24333 (dwarf2out_begin_function): Don't empty decl_loc_table here.
24334
62f7fd21
MM
243352010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
24336
24337 PR tree-optimization/43544
24338 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24339 First argument for builtin vectorized function hook is now a
24340 tree to be able to distinguish between machine specific and
24341 standard builtins.
24342 * targhooks.c (default_builtin_vectorized_function): Ditto.
24343 * targhooks.h (default_builtin_vectorized_function): Ditto.
24344 * target.h (struct gcc_target): Ditto.
24345 * tree-vect-stmts.c (vectorizable_function): Ditto.
24346 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
24347 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
24348 Ditto.
24349
10e76c1a
JM
243502010-03-26 Joseph Myers <joseph@codesourcery.com>
24351
24352 PR c/43381
24353 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
24354 nested binding iff it is a FUNCTION_DECL.
24355 (store_parm_decls_newstyle): Pass nested=true to bind for
24356 FUNCTION_DECLs amongst parameters.
24357
89245ef2
JJ
243582010-03-26 Jakub Jelinek <jakub@redhat.com>
24359
2155f963
JJ
24360 * var-tracking.c (vt_expand_loc_callback): Don't run
24361 cselib_expand_value_rtx_cb in dummy mode if
24362 cselib_dummy_expand_value_rtx_cb returned false.
24363
e80691a0
JJ
24364 * var-tracking.c (emit_note_insn_var_location): For one part
24365 notes with offset 0, don't add EXPR_LIST around the location.
24366 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
24367 add_location_or_const_value_attribute): Adjust for that change.
24368
89245ef2
JJ
24369 PR debug/43540
24370 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
24371 into first operand and location into second.
24372 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
24373 dw_cfi_oprnd_loc for DW_CFA_expression.
24374 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
24375 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
24376 assume first argument is regnum and second argument is location.
24377
c5e43cc4
UB
243782010-03-26 Uros Bizjak <ubizjak@gmail.com>
24379
24380 PR target/42113
24381 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
24382 of scratch register to DImode. Split to DImode comparison operator.
24383 Use SImode subreg of scratch register in the multiplication.
24384 (*cmp_sadd_sidi): Ditto.
24385 (*cmp_ssub_si): Ditto.
24386 (*cmp_ssub_sidi): Ditto.
24387
fb04bb84
UB
243882010-03-26 Uros Bizjak <ubizjak@gmail.com>
24389
24390 PR target/43524
24391 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
24392 Remove invalid assert and wrong comment.
24393
6ca5d1f6
JJ
243942010-03-26 Jakub Jelinek <jakub@redhat.com>
24395
24396 PR debug/43516
24397 * flags.h (final_insns_dump_p): New extern.
24398 * final.c (final_insns_dump_p): New variable.
24399 (rest_of_clean_state): Set it before -fdump-final-insns=
24400 dumping, clear afterwards.
24401 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
24402 MEM_ALIAS_SET on MEMs.
24403
46bc665f
DM
244042010-03-26 David S. Miller <davem@davemloft.net>
24405
24406 * configure.ac: Fix sparc GOTDATA_OP bug check.
24407 * configure: Rebuild.
24408
9fa195b8
AM
244092010-03-26 Alan Modra <amodra@gmail.com>
24410
24411 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
24412
9b7e6950
RO
244132010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24414
24415 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
24416 TLS_SECTION_ASM_FLAG.
24417
d53c73e0
JJ
244182010-03-25 Jakub Jelinek <jakub@redhat.com>
24419
935ec2c9
JJ
24420 PR bootstrap/43511
24421 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
24422 Clear first_function_block_is_cold.
24423
d53c73e0
JJ
24424 PR c/43385
24425 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
24426 argument if the argument is truth_value_p.
24427
871c9abb
MM
244282010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
24429
fb04bb84 24430 * config/rs6000/constraints.md: Update copyright year for my changes.
94ad7adc 24431
871c9abb
MM
24432 PR target/43484
24433 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
24434 used in reg+reg addressing, swap registers.
24435
81ef7e24
JJ
244362010-03-24 Jakub Jelinek <jakub@redhat.com>
24437
6d217c32
JJ
24438 PR debug/43293
24439 * target.h (struct gcc_target): Add code_end hook.
24440 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
24441 if not yet defined.
24442 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
24443 * toplev.c (compile_file): Call targetm.asm_out.code_end
24444 hook before unwind info/debug info output.
24445 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
24446 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
24447 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
24448 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
24449 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
24450 * config/i386/i386.c (ix86_file_end): Renamed to...
24451 (ix86_code_end): ... this. Make static. Don't call
24452 file_end_indicate_exec_stack. Emit unwind info using
24453 final_start_function/final_end_function.
24454 (darwin_x86_file_end): Remove.
24455 (TARGET_ASM_CODE_END): Define.
24456 * config/i386/i386.h (TARGET_ASM_FILE_END,
24457 NEED_INDICATE_EXEC_STACK): Don't define.
24458 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
24459 (TARGET_ASM_FILE_END): Define to darwin_file_end.
24460 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
24461 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
24462
81ef7e24
JJ
24463 PR target/43498
24464 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
24465 at the beginning and final_end_function at the end.
24466 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
24467
f1c26cad
RO
244682010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24469
24470 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
24471 and Sun as TLS syntax.
24472 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
24473 * configure: Regenerate.
24474 * config.in: Regenerate.
24475 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
24476 (default_elf_asm_named_section): Use it.
24477 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
24478 (i386_output_dwarf_dtprel): Likewise.
24479 (output_addr_const_extra): Likewise.
24480 (output_pic_addr_const): Lowercase @GOTTPOFF.
24481 (output_addr_const_extra): Likewise.
24482 (output_pic_addr_const): Lowercase @GOTNTPOFF.
24483 (output_addr_const_extra): Likewise.
24484 (output_pic_addr_const): Lowercase @INDNTPOFF.
24485 (output_addr_const_extra): Likewise.
24486 (output_pic_addr_const): Lowercase @NTPOFF.
24487 (output_addr_const_extra): Likewise.
24488 (output_pic_addr_const): Lowercase @TPOFF.
24489 (output_addr_const_extra): Likewise.
fb04bb84 24490 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
f1c26cad
RO
24491 (*tls_global_dynamic_64): Likewise.
24492 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
24493 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
24494
24495 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
24496 (ASM_OUTPUT_TLS_COMMON): Use it.
24497 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
24498
24499 PR target/38118
fb04bb84 24500 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
f1c26cad
RO
24501 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
24502 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
24503 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
24504 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
24505 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
24506
d2af65b9
RO
245072010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24508
24509 * config/i386/i386.c (override_options): Don't accept
24510 -mtls-dialect=sun any longer.
24511 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
24512 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
24513 (*tls_local_dynamic_base_32_sun): Likewise.
24514 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
24515
d0ed412a
JJ
245162010-03-24 Jakub Jelinek <jakub@redhat.com>
24517
1db0ea00
JJ
24518 PR debug/43508
24519 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
24520 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
24521
3a6191b1
JJ
24522 PR debug/43479
24523 * ira.c (adjust_cleared_regs): New function.
24524 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
24525
d0ed412a
JJ
24526 PR debug/19192
24527 PR debug/43479
24528 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
24529 from gimple_block.
24530 * expr.c (expand_expr_real): Restore previous
24531 curr_insn_source_location and curr_insn_block after
24532 expand_expr_real_1 call.
24533 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
24534 instead of expand_expr_real_1.
24535
478ab26d
VM
245362010-03-23 Vladimir Makarov <vmakarov@redhat.com>
24537
24538 PR rtl-optimization/43413
24539 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
24540 hard regs too.
24541
67b476d1
JW
245422010-03-22 James E. Wilson <wilson@codesourcery.com>
24543
24544 PR target/43348
24545 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
fb04bb84 24546 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
67b476d1 24547
99eaa2e7
L
245482010-03-22 H.J. Lu <hongjiu.lu@intel.com>
24549
fb04bb84
UB
24550 * config/i386/i386.c (ix86_target_string): Add -mfma.
24551 Fix a typo in comment.
99eaa2e7 24552
212066e6
MS
245532010-03-22 Mike Stump <mikestump@comcast.net>
24554
24555 PR target/23071
24556 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
24557 Don't overly align based upon packed packed fields.
24558
ce30e6fd
JM
245592010-03-22 Jason Merrill <jason@redhat.com>
24560
24561 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
24562 Use () rather than [], and move before the element type.
24563
3a1ef68a
RO
245642010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24565
24566 * doc/configfiles.texi (Configuration Files): Removed
24567 fixinc/Makefile*, intl/Makefile.*.
fb04bb84
UB
24568 * doc/makefile.texi: Fixed markup. Abstract from version
24569 control system used.
eed023cc 24570 (Makefile): Removed obsolete java/parse.y example.
3a1ef68a
RO
24571 * doc/sourcebuild.texi: Likewise.
24572 (Top Level): Added config, gnattools, libdecnumber, libgcc,
fb04bb84 24573 libgomp, libssp. Removed fastjar.
3a1ef68a
RO
24574 (Miscellaneous Docs): Clarify location.
24575 Added COPYING3, COPYING3.LIB.
fb04bb84 24576 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3a1ef68a 24577
7f5441df
RO
245782010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24579
24580 PR target/38085
24581 * config/i386/i386.c (x86_function_profiler)
24582 [!NO_PROFILE_COUNTERS]: Fix typo.
24583 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
24584 instead of callq.
24585
d4f3924a 245862010-03-22 Janis Johnson <janis187@us.ibm.com>
f4a4b582 24587 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
d4f3924a
JJ
24588
24589 * doc/sourcebuild.texi (Test Directives): Split into six
24590 subsections, with most of the current text in new subsections
24591 Directives, Selectors, and Final Actions.
24592 (Directives): Split list of test directives into multiple
24593 subsubsections.
24594 (Selectors): Describe use and syntax of selectors.
24595 (Effective-Target Keywords): Describe all existing keywords.
24596 (Add Options): Describe features for dg-add-options.
24597 (Require Support): Describe variants of dg-require-support.
24598 (Final Actions): Describe commands to use in dg-final.
24599
047550e9
MM
246002010-03-22 Michael Matz <matz@suse.de>
24601
24602 PR middle-end/43475
24603 * recog.c (validate_replace_rtx_group): Replace also in
24604 REG_EQUAL and REG_EQUIV notes.
24605
6d7971b8
RG
246062010-03-22 Richard Guenther <rguenther@suse.de>
24607
24608 PR tree-optimization/43390
24609 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
24610 sure vector extracts are type correct.
24611
6af84c85
RG
246122010-03-22 Richard Guenther <rguenther@suse.de>
24613
24614 PR middle-end/40106
24615 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
24616 x * sqrt (x) even when optimizing for size if the target
24617 has native support for sqrt.
24618
539eb459
JJ
246192010-03-22 Jakub Jelinek <jakub@redhat.com>
24620
be36dd85
JJ
24621 * varasm.c (make_decl_rtl_for_debug): Also clear
24622 flag_mudflap for the duration of make_decl_rtl call.
24623
539eb459
JJ
24624 PR debug/43443
24625 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
24626 locs from preserved VALUEs.
24627
19c1be39
JDA
246282010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24629
24630 PR middle-end/42718
24631 * pa.md (movmemsi): Set align to one if zero.
24632 (movmemdi): Likewise.
24633
f8b68ed3
RE
246342010-03-21 Richard Earnshaw <rearnsha@arm.com>
24635
24636 PR target/42321
24637 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
24638 with their corresponding prologue pushes.
24639
941ce52b
AP
246402010-03-20 Andrew Pinski <pinskia@gmail.com>
24641
24642 PR target/43156
24643 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
24644 at the begining or end.
24645 (spu_expand_epilogue): Likewise.
24646
d491d2af
RG
246472010-03-20 Richard Guenther <rguenther@suse.de>
24648
24649 PR rtl-optimization/43438
24650 * combine.c (make_extraction): Properly zero-/sign-extend an
24651 extraction of the low part of a CONST_INT. Also handle
24652 CONST_DOUBLE.
24653
4dd9ee92
MS
246542010-03-19 Mike Stump <mikestump@comcast.net>
24655
24656 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
24657 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
24658 (override_options): Use SUBTARGET32_DEFAULT_CPU.
24659
e49a760f
AP
246602010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
24661
6644642e 24662 PR c/43211
fb04bb84
UB
24663 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
24664 an error.
e49a760f 24665
f0c6475a 246662010-03-19 Bernd Schmidt <bernds@codesourcery.com>
002b2dee
BS
24667
24668 PR rtl-optimization/42258
24669 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
24670 use that may match DEF.
24671
c99102b8
BS
24672 PR target/40697
24673 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
24674 the cost of loading the constant rather than assuming
24675 COSTS_N_INSNS (1).
24676 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
24677 outer code is AND, do the same tests as the andsi3 expander and
24678 return COSTS_N_INSNS (1) if and is cheap.
fdb2c684
BS
24679
24680 * optabs.c (avoid_expensive_constant): Fix formatting.
24681
f9ceed32
MM
246822010-03-19 Michael Matz <matz@suse.de>
24683
24684 PR c++/43116
24685 * attribs.c (decl_attributes): When rebuilding a function pointer
24686 type use the same qualifiers as the original pointer type.
24687
3795eae6
MJ
246882010-03-19 Martin Jambor <mjambor@suse.cz>
24689
24690 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
24691 and is_gimple_ip_invariant_address.
24692
ae0bef88
RR
246932010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24694
24695 Revert
24696 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24697
24698 * config/arm/arm.c (arm_override_options): Turn off
24699 flag_dwarf2_cfi_asm for AAPCS variants.
24700
9abf5d7b
RR
247012010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24702
24703 PR target/43399
24704 * config/arm/arm.c (emit_multi_reg_push): Update comments.
24705 Use PRE_MODIFY instead of PRE_DEC.
24706 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
24707 (vfp_emit_fstmd): Likewise.
24708
8a0b1aa4
MM
247092010-03-19 Michael Matz <matz@suse.de>
24710
24711 PR target/43305
24712 * builtins.c (expand_builtin_interclass_mathfn,
24713 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
24714 if that fails.
24715
3e999e7b
RG
247162010-03-19 Richard Guenther <rguenther@suse.de>
24717
24718 PR tree-optimization/43415
24719 * tree-ssa-pre.c (phi_translate): Split out worker to ...
24720 (phi_translate_1): ... this.
24721 (phi_translate): Move all caching here. Cache all NARY
24722 and REFERENCE translations.
24723
9fd52c6c
DM
247242010-03-19 David S. Miller <davem@davemloft.net>
24725
24726 With help from Eric Botcazou.
24727 * config/sparc/sparc.c: Include dwarf2out.h.
24728 (emit_pic_helper): Delete.
24729 (pic_helper_symbol_name): Delete.
24730 (pic_helper_emitted_p): Delete.
24731 (pic_helper_needed): New.
24732 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
24733 (get_pc_thunk_name): New.
24734 (load_pic_register): Remove 'delay_pic_helper' arg. Use
24735 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
24736 Set pic_helper_needed to true. Don't call emit_pic_helper.
24737 (sparc_expand_prologue): Update load_pic_register call.
24738 (sparc_output_mi_thunk): Likewise.
24739 (sparc_file_end): Emit a hidden comdat symbol for the PIC
24740 thunk if possible. Output CFI information as needed.
24741
f4a4b582
EB
247422010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
24743 Jack Howarth <howarth@bromo.med.uc.edu>
b6010cab
FXC
24744
24745 PR target/36399
48019e3d 24746 * config/i386/i386.h: Fix ABI on darwin x86-32.
b6010cab 24747
b1aa0655
AH
247482010-03-18 Aldy Hernandez <aldyh@redhat.com>
24749
24750 * tree.h: Declare make_decl_rtl_for_debug.
24751 * varasm.c (make_decl_rtl_for_debug): New.
24752 * dwarf2out.c (rtl_for_decl_location): Call it.
24753 * cfgexpand.c (expand_debug_expr): Call it.
24754
f0c12fcc
JJ
247552010-03-18 Jakub Jelinek <jakub@redhat.com>
24756
9a05b749
JJ
24757 PR bootstrap/43399
24758 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
24759 mem_mode.
24760
f0c12fcc
JJ
24761 PR bootstrap/43403
24762 * var-tracking.c (vt_init_cfa_base): Do nothing if
fb04bb84 24763 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
f0c12fcc 24764
e999b0c9
AO
247652010-03-18 Alexandre Oliva <aoliva@redhat.com>
24766
24767 PR debug/42873
24768 * var-tracking.c (canonicalize_vars_star): New.
24769 (dataflow_post_merge_adjust): Use it.
24770
5644a3d0
JJ
247712010-03-18 Jakub Jelinek <jakub@redhat.com>
24772
24773 PR debug/43058
24774 * var-tracking.c (non_suitable_const): New function.
24775 (add_uses): For DEBUG_INSNs with constants, don't record any
24776 value, instead just the constant value itself.
24777 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
24778 is not VAR_LOC_UNKNOWN_P, set var to the constant.
24779 (emit_notes_in_bb): Likewise.
24780 (emit_note_insn_var_location): For onepart variables if
24781 cur_loc is a VOIDmode constant, use DECL_MODE.
24782
8132a837
MJ
247832010-03-18 Martin Jambor <mjambor@suse.cz>
24784
24785 PR middle-end/42450
24786 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
24787 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
24788 all non-clones. Moved call redirection...
fb04bb84 24789 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8132a837
MJ
24790 (cgraph_materialize_all_clones): Dispose of all
24791 combined_args_to_skip bitmaps.
24792 (verify_cgraph_node): Do not check for edges pointing to wrong
24793 nodes in inline clones.
24794 * tree-inline.c (copy_bb): Call
24795 cgraph_redirect_edge_call_stmt_to_callee.
24796 * ipa.c (cgraph_remove_unreachable_nodes): Call
24797 cgraph_node_remove_callees even when there are used clones.
24798
7893d7ac
L
247992010-03-18 H.J. Lu <hongjiu.lu@intel.com>
24800
24801 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
24802
cdfedab1
L
248032010-03-18 H.J. Lu <hongjiu.lu@intel.com>
24804
24805 PR target/43383
24806 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
24807 for 32bit.
24808
c21372c4
MM
248092010-03-18 Michael Matz <matz@suse.de>
24810
24811 PR middle-end/43419
24812 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
24813 into sqrt(x) if we need to preserve signed zeros.
24814
82fa5f8a
L
248152010-03-18 Steven Bosscher <steven@gcc.gnu.org>
24816 Eric Botcazou <ebotcazou@adacore.com>
24817
24818 PR rtl-optimization/43360
24819 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
24820 note if we don't know its invariant status.
24821
eb45755f
MM
248222010-03-18 Michael Matz <matz@suse.de>
24823
24824 PR tree-optimization/43402
24825 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
24826 PHI chains of ssa names registered for update.
24827
60936b22
PB
248282010-03-17 Peter Bergner <bergner@vnet.ibm.com>
24829
24830 PR target/42427
24831 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
24832 non-offsettable and pre_modify update addressing.
24833 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
24834 and "2" alternatives "#".
24835 (*movdd_softfloat32): Make all alternatives "#";
24836 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
24837 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
24838 (*movdf_softfloat32): Make all alternatives "#";
24839 (movdi): Use the new DIFD mode iterator to create a common splitter
24840 for movdi, movdf and movdd patterns.
24841
316fc112
SZ
248422010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
24843
24844 * common.opt (dumpdir): Remove redundant tab.
24845
ec24771f
MJ
248462010-03-17 Martin Jambor <mjambor@suse.cz>
24847
24848 PR tree-optimization/43347
24849 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
24850 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
24851
e33c42db
BS
248522010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
24853
24854 PR rtl-optimization/42216
24855 * regrename.c (create_new_chain): New function, broken out from...
24856 (scan_rtx_reg): ... here. Call it. Handle the case where we are
24857 appending a use to an empty chain.
24858 (build_def_use): Remove previous changes that convert OP_INOUT to
24859 OP_OUT operands; instead detect the case where an OP_INOUT operand
fb04bb84 24860 uses a previously untracked register and create an empty chain for it.
e33c42db 24861
4c4177dc
RW
248622010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24863
24864 * doc/extend.texi (Function Attributes): Rewrite unfinished
24865 sentence in ms_abi documentation.
24866
60ac9511
AM
248672010-03-17 Alan Modra <amodra@gmail.com>
24868
24869 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
24870 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
24871 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
24872 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
24873
e19d1f06
RH
248742010-03-16 Richard Henderson <rth@redhat.com>
24875
24876 PR middle-end/43365
24877 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
24878 (lower_try_finally): Save and restore eh_seq around the expansion
24879 of the try-finally.
24880
c36fed0c
AH
248812010-03-16 Aldy Hernandez <aldyh@redhat.com>
24882
24883 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
24884 statements before splitting block.
24885
f4a4b582 248862010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17a7cb4e
RO
24887
24888 * doc/sourcebuild.texi (Testsuites): Fix markup.
24889 Use pathnames relative to gcc/testsuite.
24890 (Test Directives): Move description of how timeout is determined.
24891 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
24892 (C Tests): Correct gcc.misc-tests directory.
24893 Framework tests now live in gcc.test-framework.
24894
7686fb74
RG
248952010-03-16 Richard Guenther <rguenther@suse.de>
24896
24897 PR middle-end/43379
fb04bb84
UB
24898 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
24899 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7686fb74 24900
7a181764
AH
249012010-03-16 Aldy Hernandez <aldyh@redhat.com>
24902 Alexandre Oliva <aoliva@redhat.com>
24903
24904 PR tree-optimization/42917
24905 * lambda-code.c (remove_iv): Skip debug statements.
24906 (lambda_loopnest_to_gcc_loopnest): Likewise.
24907 (not_interesting_stmt): Debug statements are not interesting.
24908
457eeaae
JJ
249092010-03-16 Jakub Jelinek <jakub@redhat.com>
24910
24911 PR debug/43051
24912 PR debug/43092
24913 * cselib.c (cselib_preserve_constants,
24914 cfa_base_preserved_val): New static variables.
24915 (preserve_only_constants): New function.
24916 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
fb04bb84 24917 clear its REG_VALUES. If cselib_preserve_constants, don't
457eeaae
JJ
24918 empty the whole hash table, but preserve there VALUEs with constants,
24919 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
24920 (cselib_preserve_cfa_base_value): New function.
24921 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
24922 (cselib_init): Change argument to int bitfield. Set
24923 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
24924 is in it.
24925 (cselib_finish): Clear cselib_preserve_constants and
24926 cfa_base_preserved_val.
24927 * cselib.h (enum cselib_record_what): New enum.
24928 (cselib_init): Change argument to int.
24929 (cselib_preserve_cfa_base_value): New prototype.
24930 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
24931 * dse.c (dse_step1): Likewise.
24932 * cfgcleanup.c (thread_jump): Likewise.
24933 * sched-deps.c (sched_analyze): Likewise.
24934 * gcse.c (local_cprop_pass): Likewise.
24935 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
24936 If FN is non-NULL, call the callback always and whenever it returns
24937 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
24938 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
24939 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
24940 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
24941 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
24942 * var-tracking.c: Include recog.h.
24943 (bb_stack_adjust_offset): Remove.
24944 (vt_stack_adjustments): Don't call it, instead just gather the
24945 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
24946 (adjust_stack_reference): Remove.
24947 (compute_cfa_pointer): New function.
24948 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
24949 (struct adjust_mem_data): New type.
24950 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
24951 functions.
24952 (get_address_mode): New function.
24953 (replace_expr_with_values): Use it.
24954 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
24955 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
24956 (adjust_sets): Remove.
24957 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
24958 Use get_address_mode.
24959 (get_adjusted_src): Remove.
24960 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
24961 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
24962 (add_with_sets): Don't call adjust_sets.
24963 (fp_setter, vt_init_cfa_base): New functions.
24964 (vt_initialize): Change return type to bool. Move most of pool etc.
24965 initialization to the beginning of the function from end. Pass
24966 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
24967 If !frame_pointer_needed, call vt_stack_adjustment before mos
24968 vector is filled, call vt_init_cfa_base if argp/framep has been
24969 eliminated to sp. If frame_pointer_needed and argp/framep has
24970 been eliminated to hard frame pointer, set
24971 hard_frame_pointer_adjustment and call vt_init_cfa_base after
24972 encountering fp setter in the prologue. For MO_ADJUST, call
24973 log_op_type before pusing the op into mos vector, not afterwards.
24974 Call adjust_insn before cselib_process_insn/add_with_sets,
24975 call cancel_changes (0) afterwards.
24976 (variable_tracking_main_1): Adjust for vt_initialize calling
24977 vt_stack_adjustments and returning whether it succeeded or not.
24978
7dee65d8
AH
249792010-03-15 Aldy Hernandez <aldyh@redhat.com>
24980
24981 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
24982 debug statements.
24983
6019a098
JJ
249842010-03-15 Jakub Jelinek <jakub@redhat.com>
24985
24986 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
24987 has been set.
24988 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
24989 drap_reg has not been set.
24990
c2172338
MM
249912010-03-15 Michael Matz <matz@suse.de>
24992
24993 PR middle-end/43300
24994 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
24995 use it to expand block copies.
24996 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
24997 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
24998 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
24999
610b64e2
RG
250002010-03-15 Richard Guenther <rguenther@suse.de>
25001
25002 PR tree-optimization/43367
25003 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
25004 elimination check.
25005
610de68d
RB
250062010-03-15 Richard Guenther <rguenther@suse.de>
25007
25008 PR tree-optimization/43317
25009 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
25010
932e2e64
MJ
250112010-03-15 Martin Jambor <mjambor@suse.cz>
25012
610de68d 25013 PR tree-optimization/43141
932e2e64
MJ
25014 * tree-sra.c (create_abstract_origin): New function.
25015 (modify_function): Call create_abstract_origin.
25016
c8c520dd
CD
250172010-03-15 Chris Demetriou <cgd@google.com>
25018
25019 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
25020 wasn't copied.
25021
7f931500
SP
250222010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25023
25024 PR middle-end/43354
25025 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
25026 call insert_out_of_ssa_copy for default definitions.
25027
250282010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25029
25030 * graphite-clast-to-gimple.c (my_long_long): Defined.
25031 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
25032 * graphite-sese-to-poly.c (my_long_long): Defined.
25033 (scop_ivs_can_be_represented): Use it.
25034
250352010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25036
25037 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
25038 graphite-max-bbs-per-function, and loop-block-tile-size.
25039 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
25040 with "maximum".
25041 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
25042
250432010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25044
25045 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
25046 forward declaration.
25047 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
25048 (add_upper_bounds_from_estimated_nit): New.
25049 (build_loop_iteration_domains): Use it.
25050
250512010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25052
25053 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
25054
250552010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25056
25057 PR middle-end/43306
25058 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
25059 should be an INTEGER_CST. Also handle CASE_CONVERT.
25060
250612010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25062
25063 * graphite.c (graphite_initialize): To bound the number of bbs per
25064 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
25065 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
25066 * doc/invoke.texi: Document it.
25067
250682010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25069
25070 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
25071 * graphite-sese-to-poly.h (build_poly_scop): Same.
25072
250732010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25074
25075 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
25076 the number of parameters in the scop. Use as an upper bound
25077 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
25078 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
25079 * doc/invoke.texi: Document it.
25080
929769f4
JQ
250812010-03-13 Jerry Quinn <jlquinn@optonline.net>
25082
25083 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
25084 * doc/c-tree.texi: Remove.
25085 * doc/generic.texi: Merge c-tree.texi here.
25086 * doc/gccint.texi (Trees): Remove menu entry.
25087 (c-tree.texi): Remove @include.
25088 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
25089 * doc/languages.texi (Reading RTL): Ditto.
25090
9c8cab44
SE
250912010-03-12 Steve Ellcey <sje@cup.hp.com>
25092
25093 PR target/42869
25094 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
25095
08f9d725
MM
250962010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
25097
25098 PR middle-end/42431
eed023cc 25099 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
08f9d725
MM
25100 code added to work around reload clobbering CONST insns.
25101
70235ab9
JJ
251022010-03-12 Jakub Jelinek <jakub@redhat.com>
25103
0de3e43f
JJ
25104 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
25105 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
25106 (cselib_preserve_only_values): Remove retain argument, don't
25107 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
25108 * cselib.h (cselib_preserve_only_values): Remove retain argument.
25109 * var-tracking.c (micro_operation): Move insn field before union.
25110 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
25111 (struct variable_tracking_info_def): Remove n_mos field, change
25112 mos into a vector of micro_operations.
25113 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
25114 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
25115 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
25116 changing into a vector.
25117 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
25118 come before all other uops generated by add_stores.
25119 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
25120 argument removal.
25121 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
25122 a vector. Run just one pass over the bbs instead of separate counting
25123 and computation phase.
25124 (vt_finalize): Free VTI (bb)->mos vector instead of array.
25125
70235ab9
JJ
25126 PR debug/43329
25127 * tree-inline.c (remap_decls): Put old_var rather than origin_var
25128 into *nonlocalized_list vector.
25129 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
25130 even if origin is non-NULL.
25131 (gen_variable_die): Likewise.
25132 (process_scope_var): Don't change origin.
25133 (gen_decl_die): Likewise.
25134 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
25135 before adding new edges instead of after it, fix moving over
25136 debug stmts.
25137
7ac22e17
DM
251382010-03-11 David S. Miller <davem@davemloft.net>
25139
77514c73
UB
25140 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
25141 of four.
7ac22e17
DM
25142 * configure: Rebuild.
25143
0e0a1359
MJ
251442010-03-11 Martin Jambor <mjambor@suse.cz>
25145
25146 PR tree-optimization/43257
25147 * tree.c (assign_assembler_name_if_neeeded): New function.
25148 (free_lang_data_in_cgraph): Assembler name assignment moved to the
25149 above new function.
25150 * tree.h (assign_assembler_name_if_neeeded): Declare.
25151 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
25152 the function if needed.
25153
1d9edd01
CD
251542010-03-11 Chris Demetriou <cgd@google.com>
25155
25156 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
25157 include/stdint-gcc.h, and include/stdint.h world-readable.
25158
ff0a0c1d
RG
251592010-03-11 Richard Guenther <rguenther@suse.de>
25160
25161 PR tree-optimization/43255
25162 * tree-vrp.c (process_assert_insertions_for): Do not insert
25163 asserts for trivial conditions.
25164
b509e1fc
AK
251652010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25166
25167 PR tree-optimization/43280
77514c73
UB
25168 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
25169 generation. Move calculation of size out of the if branch.
b509e1fc
AK
25170 (find_bswap): Modify compare number generation.
25171
108ba00b
RG
251722010-03-11 Richard Guenther <rguenther@suse.de>
25173
25174 PR lto/43200
25175 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
25176 (input_gimple_stmt): Fixup handled component types during
25177 operand read. Also fix up decls in ADDR_EXPRs.
25178
f37f5bb9
EB
251792010-03-10 Eric Botcazou <ebotcazou@adacore.com>
25180
25181 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
25182 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
25183
e9fecf0e
JH
251842010-03-10 Jan Hubicka <jh@suse.cz>
25185
25186 PR c/43288
25187 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
25188 * varasm.c (get_variable_section): Don't do that here...
25189 (make_decl_rtl): ... and here.
25190 (do_assemble_alias): Produce decl RTL.
25191 (assemble_alias): Likewise.
25192
23f39b37
JJ
251932010-03-10 Jakub Jelinek <jakub@redhat.com>
25194
25195 PR debug/43290
25196 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
25197 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
25198 of fde->vdrap_reg.
25199 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
25200 (based_loc_descr): Only express drap or vdrap regno based expressions
25201 using DW_OP_fbreg when not optimizing.
25202 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
25203 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
25204 REG_CFA_SET_VDRAP note.
25205
6edd8198
AM
252062010-03-10 Alexander Monakov <amonakov@ispras.ru>
25207
25208 PR tree-optimization/43236
25209 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
25210 error in calculation of base address in reverse iteration case.
25211 (generate_builtin): Take number of latch executions if the statement
25212 is in the latch.
25213
9f698956
AB
252142010-03-10 Andrey Belevantsev <abel@ispras.ru>
25215
25216 PR middle-end/42859
25217 * tree-eh.c: Include pointer-set.h.
25218 (lower_eh_dispatch): Filter out duplicate case labels and
25219 remove the unneeded edge when the label is unused. Return
25220 true when some edges are removed.
25221 (execute_lower_eh_dispatch): When any lowering resulted in
25222 removing an edge, also delete unreachable blocks.
25223
ff4f03c3
JJ
252242010-03-10 Jakub Jelinek <jakub@redhat.com>
25225
25226 PR bootstrap/43287
25227 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
25228 UNSPEC_MACHOPIC_OFFSET.
25229
7b0f476d
AS
252302010-03-09 Andreas Schwab <schwab@linux-m68k.org>
25231
25232 PR target/43294
25233 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
25234 (m68k_delegitimize_address): New function.
25235
3b7998ea
JJ
252362010-03-09 Jakub Jelinek <jakub@redhat.com>
25237
eb1fcdaa
JJ
25238 PR debug/43299
25239 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
25240
69b89883
JJ
25241 PR debug/43299
25242 * var-tracking.c (adjust_sets): New function.
25243 (count_with_sets, add_with_sets): Use it.
25244 (get_adjusted_src): New inline function.
25245 (add_stores): Use it.
25246
3b7998ea
JJ
25247 PR debug/43304
25248 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
25249 call cselib_dummy_expand_value_rtx_cb instead of
25250 cselib_expand_value_rtx_cb.
bded9b70
JJ
25251
25252 PR debug/43293
25253 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
25254 * config/i386/i386.c: Include debug.h and dwarf2out.h.
25255 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
25256 and .cfi_endproc around the pic thunks.
25257 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
25258 all queued unwind info register saves are saved before the call.
25259 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
25260 considered as sp-=4 for unwind info and the pop as sp+=4 which
25261 also clobbers dest, but doesn't actually restore it.
4398467a
JJ
25262
25263 PR debug/43290
25264 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
25265 RTX_FRAME_RELATED_P.
25266
81ad4ac0
JZ
252672010-03-09 Jie Zhang <jie@codesourcery.com>
25268
25269 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
25270 whitespaces in output template.
25271
dc344e87
JZ
252722010-03-09 Jie Zhang <jie@codesourcery.com>
25273
25274 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
25275 out array boundary.
25276
ff12d3a6
JJ
252772010-03-08 Jakub Jelinek <jakub@redhat.com>
25278
25279 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
25280 builtins.exp in a separate job.
25281
b58543c3
SP
252822010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25283
25284 * graphite-sese-to-poly.c (add_param_constraints): Use
25285 lower_bound_in_type and upper_bound_in_type.
25286
252872010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25288
25289 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
25290 instead of unsigned_type_node.
25291
252922010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25293 Reza Yazdani <reza.yazdani@amd.com>
25294
25295 PR middle-end/43065
25296 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
25297 on pointer type parameters.
25298
252992010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
25300
25301 PR middle-end/42644
25302 PR middle-end/42130
25303 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
25304 handle conversions from pointer to integers.
25305 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
77514c73 25306 induction variable, to be able to work with code generated by CLooG.
b58543c3
SP
25307 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
25308 (build_poly_scop): Bail out if we cannot codegen a loop.
25309
253102010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
25311
25312 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
25313 code generation with gloog_error.
25314
253152010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25316
25317 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
25318 Call fold_convert on all the returned values.
77514c73
UB
25319 (expand_scalar_variables_expr): Pass to
25320 expand_scalar_variables_ssa_name the type of the resulting expression.
b58543c3
SP
25321
253222010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25323
25324 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
77514c73
UB
25325 ppl_min_for_le_pointset.
25326 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
b58543c3
SP
25327 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
25328
253292010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25330
25331 * graphite-dependences.c (map_into_dep_poly): Removed.
25332 (dependence_polyhedron_1): Use combine_context_id_scat.
25333
253342010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25335
25336 * graphite-poly.h (struct poly_scattering): Add layout documentation.
25337 (struct poly_bb): Same.
25338 (combine_context_id_scat): New.
25339
253402010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25341
25342 PR middle-end/42326
25343 * sese.c (name_defined_in_loop_p): Return false for default
25344 definitions.
25345
253462010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25347
25348 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
25349 and clean up the logic.
25350
253512010-03-08 Sebastian Pop <sebastian.pop@amd.com>
25352
25353 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
25354 early return.
25355
1feb8238
JJ
253562010-03-08 Jakub Jelinek <jakub@redhat.com>
25357
25358 * var-tracking.c (remove_cselib_value_chains): Define only for
25359 ENABLE_CHECKING.
25360 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
25361 delete_slot_part, emit_notes_for_differences_1): Don't call
25362 remove_cselib_value_chains here.
25363 (set_slot_part, emit_notes_for_differences_2): Don't call
25364 add_cselib_value_chains here.
25365 (preserved_values): New vector.
25366 (preserve_value): New function.
25367 (add_uses, add_stores, vt_add_function_parameters): Use it
25368 instead of cselib_preserve_value.
25369 (changed_values_stack): New vector.
25370 (check_changed_vars_0): New function.
25371 (check_changed_vars_1, check_changed_vars_2): Use it.
25372 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
25373 changed_values_stack VALUEs.
25374 (vt_emit_notes): For all preserved_values call
25375 add_cselib_value_chains. If ENABLE_CHECKING call
25376 remove_cselib_value_chains before verifying value_chains is empty.
25377 Initialize and free changed_values_stack.
25378 (vt_initialize): Initialize preserved_values.
25379 (vt_finalize): Free preserved_values.
25380
cc788fcc
RG
253812010-03-08 Richard Guenther <rguenther@suse.de>
25382
25383 PR tree-optimization/43269
25384 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
25385 region detection.
25386
69c103c7
MJ
253872010-03-08 Martin Jambor <mjambor@suse.cz>
25388
25389 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
25390 (ipa_is_param_called): Removed.
25391 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
25392 (ipa_print_node_params): Do not print the called flag.
25393 (ipa_write_node_info): Do not stream the called flag.
25394 (ipa_read_node_info): Likewise.
25395
864ddef7
JJ
253962010-03-07 Jakub Jelinek <jakub@redhat.com>
25397
25398 PR debug/43176
25399 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
25400 * cselib.c (struct expand_value_data): Add dummy field.
25401 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
25402 dummy to false.
25403 (cselib_dummy_expand_value_rtx_cb): New function.
25404 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
25405 any rtl.
25406 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
25407 * var-tracking.c: Include pointer-set.h.
25408 (variable): Change n_var_parts to char from int. Add
25409 cur_loc_changed and in_changed_variables fields.
25410 (variable_canonicalize): Remove.
25411 (shared_var_p): New inline function.
25412 (unshare_variable): Maintain cur_loc_changed and
25413 in_changed_variables fields. If var was in changed_variables,
25414 replace it there with new_var. Just copy cur_loc instead of
25415 resetting it to something else.
25416 (variable_union): Don't recompute cur_loc. Use shared_var_p.
25417 (dataflow_set_union): Don't call variable_canonicalize.
25418 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
25419 of their DEBUG_EXPR_TREE_DECLs.
25420 (canonicalize_loc_order_check): Verify that cur_loc is NULL
25421 and in_changed_variables and cur_loc_changed is false.
25422 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
25423 and cur_loc_changed. Don't update cur_loc here.
25424 (variable_merge_over_src): Don't call variable_canonicalize.
25425 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
25426 removing loc that is equal to cur_loc, clear cur_loc,
25427 set cur_loc_changed and ensure variable_was_changed is called.
25428 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
25429 compare pointers in cur_loc check, if it is equal to loc,
25430 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
25431 (variable_different_p): Remove compare_current_location argument,
25432 don't compare cur_loc.
25433 (dataflow_set_different_1): Adjust variable_different_p caller.
25434 (variable_was_changed): If dv had some var in changed_variables
25435 already, reset in_changed_variables flag for it and propagate
25436 cur_loc_changed over to the new variable. On empty var
25437 always set cur_loc_changed. Set in_changed_variables on whatever
25438 var is added to changed_variables.
25439 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
25440 Use shared_var_p. When removing loc that is equal to cur_loc,
25441 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
25442 end, don't set it to something else, just call variable_was_changed.
25443 (delete_slot_part): Use shared_var_p. When cur_loc equals to
25444 loc being removed, clear cur_loc and set cur_loc_changed.
25445 Set cur_loc_changed if all locations have been removed.
25446 (struct expand_loc_callback_data): New type.
25447 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
25448 allocated. Always create SUBREGs if simplify_subreg failed.
25449 Prefer to use cur_loc, when that fails and still in
25450 changed_variables (and seen first time) recompute it. Set
25451 cur_loc_changed of variables which had to change cur_loc and
25452 compute elcd->cur_loc_changed if any of the subexpressions used
25453 had to change cur_loc.
25454 (vt_expand_loc): Adjust to pass arguments in
25455 expand_loc_callback_data structure.
25456 (vt_expand_loc_dummy): New function.
25457 (emitted_notes): New variable.
25458 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
25459 that weren't used for any other decl in current
25460 emit_notes_for_changes call call vt_expand_loc_dummy to update
25461 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
25462 first loc_chain location if NULL before. Always use just
25463 cur_loc instead of first loc_chain location. When cur_loc_changed
25464 is false, when not --enable-checking=rtl just don't emit any note.
25465 When rtl checking, compute the note and assert it is the same
25466 as previous note. Clear cur_loc_changed and in_changed_variables
25467 at the end before removing from changed_variables.
25468 (check_changed_vars_3): New function.
25469 (emit_notes_for_changes): Traverse changed_vars to call
25470 check_changed_vars_3 on each changed var.
25471 (emit_notes_for_differences_1): Clear cur_loc_changed and
25472 in_changed_variables. Recompute cur_loc of new_var.
77514c73 25473 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
864ddef7
JJ
25474 (vt_emit_notes): Initialize and destroy emitted_notes.
25475
c4137918
BS
254762010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
25477
25478 PR rtl-optimization/42220
25479 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
25480 Use verify_reg_tracked to determine if we should use OP_OUT rather
25481 than OP_INOUT.
25482 (build_def_use): If we see an in-out operand for a register that we
25483 know nothing about, treat is an output if possible, fail the block if
25484 not.
25485
cd6549e8
AO
254862010-03-06 Alexandre Oliva <aoliva@redhat.com>
25487
25488 PR debug/42897
25489 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
25490 permanently.
25491
aba09491
AO
254922010-03-06 Alexandre Oliva <aoliva@redhat.com>
25493
25494 PR debug/42897
25495 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
25496 uses of relevant DEFs that are dead outside the loop too.
25497
f4a4b582 254982010-03-06 Alexandre Oliva <aoliva@redhat.com>
60d7a09b
AO
25499
25500 * var-tracking.c (dataflow_set_merge): Swap src and src2.
25501 Reverted:
25502 2010-01-13 Jakub Jelinek <jakub@redhat.com>
25503 PR debug/41371
25504 * var-tracking.c (values_to_unmark): New variable.
25505 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
25506 values_to_unmark vector. Moved body to...
25507 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
25508 instead queue it into values_to_unmark vector.
25509 (vt_find_locations): Free values_to_unmark vector.
25510
eeb971c9
EB
255112010-03-05 Eric Botcazou <ebotcazou@adacore.com>
25512
25513 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
25514 (site.exp): Export them when plugins are enabled.
25515
ccc5b640
SP
255162010-03-05 Sebastian Pop <sebastian.pop@amd.com>
25517
25518 PR middle-end/42326
25519 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
25520 that contain scevs.
25521 (chrec_fold_multiply): Same.
25522
3e23fb2e
AP
255232010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
25524
25525 PR c/43248
25526 * c-decl.c (build_compound_literal): Return early if init is
25527 an error_mark_node.
25528
76f76cd0
MJ
255292010-03-04 Martin Jambor <mjambor@suse.cz>
25530
25531 PR tree-optimization/43164
25532 PR tree-optimization/43191
25533 * tree-sra.c (type_consists_of_records_p): Reject records with
25534 zero-size bit-fields at the end.
25535
b2d244d1
MS
255362010-03-04 Mike Stump <mikestump@comcast.net>
25537
25538 * Makefile.in (TAGS): Remove *.y.
25539
9ca87236
RB
255402010-03-04 Richard Guenther <rguenther@suse.de>
25541
25542 PR tree-optimization/40761
25543 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
25544 in reverse order.
25545 (my_rev_post_order_compute): New function.
25546 (init_pre): Call it.
25547
572ae476
CF
255482010-03-04 Changpeng Fang <changpeng.fang@amd.com>
25549
8c0386a4 25550 PR middle-end/43209
9ca87236
RB
25551 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
25552 decrease the cost of an IV candidate when the cost is infinite.
572ae476 25553
f8723eb6
RW
255542010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25555
25556 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
25557 Use '3DNow!' for the extension of that name, ensure normal space
25558 after the string.
25559 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
25560
d8a60d24
JL
255612010-03-03 Jeff Law <law@redhat.com>
25562
25563 * PR middle-end/32693
25564 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
25565 than gen_rtx_SUBREG.
25566 (extract_bit_field_1): Likewise.
25567
8ec49cff
JJ
255682010-03-03 Janis Johnson <janis187@us.ibm.com>
25569
25570 * doc/sourcebuild.texi (Test directives): Document that arguments
25571 include-opts and exclude-opts are now optional for dg-skip-if,
25572 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
25573
2c71ac78
JM
255742010-03-03 Jason Merrill <jason@redhat.com>
25575
25576 PR c++/12909
25577 * cgraph.h (varpool_node): Add extra_name field.
25578 * varpool.c (varpool_extra_name_alias): New.
25579 (varpool_assemble_decl): Emit extra name aliases.
25580 (varpool_mark_needed_node): Look past an extra name alias.
1d5053d6
JM
25581 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
25582 * lto-streamer-in.c (lto_input_tree): Read it.
25583 * lto-streamer-out.c (output_unreferenced_globals): Write it.
2c71ac78 25584
2587aa3b
EB
255852010-03-03 Eric Botcazou <ebotcazou@adacore.com>
25586
25587 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
25588 (sparc*-*-solaris2*): ...this.
25589
db51bb34
JJ
255902010-03-03 Jakub Jelinek <jakub@redhat.com>
25591
7ece48b1
JJ
25592 PR debug/43229
25593 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
25594 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
25595 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
25596 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
25597
0508bed7
JJ
25598 PR debug/43237
25599 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
25600 fallthrough to default handling, just with want_address 0 instead of 2.
25601 For single element lists, add_AT_loc directly, otherwise create an
25602 artificial variable DIE and stick location list to it.
25603
db51bb34
JJ
25604 PR debug/43177
25605 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
25606 (VAL_EXPR_HAS_REVERSE): Define.
25607 (reverse_op): New function.
25608 (add_stores): For reversible operations add an extra MO_VAL_USE.
25609
7428bc26
JM
256102010-03-02 Jason Merrill <jason@redhat.com>
25611
25612 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
25613
d1ced155
EB
256142010-03-02 Eric Botcazou <ebotcazou@adacore.com>
25615
25616 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
25617 (sparc64-*-linux*): Likewise.
25618 (sparc64-*-solaris2*): Include assembler files before linker ones.
25619 (sparc-*-solaris2*): Simplify and reorder to match previous case.
25620 * config/sparc/gas.h: Delete.
25621 * config/sparc/sol2-64.h: Add copyright notice.
25622 * config/sparc/sol2-gas-bi.h: Likewise.
25623 * config/sparc/sol2-gld.h: Likewise.
25624 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
25625 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
25626 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
25627 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
25628 (sparc_elf_asm_named_section): Rename into...
25629 (sparc_solaris_elf_asm_named_section): ...this. Always define.
25630
02d43000
UB
256312010-03-02 Uros Bizjak <ubizjak@gmail.com>
25632
25633 * config/alpha/alpha.c (override_options): Fix -mtune error message.
25634
f6c86fab
JL
256352010-03-02 Jeff Law <law@redhat.com>
25636
4e222e63 25637 PR middle-end/42431
f6c86fab
JL
25638 * reload1.c (rtx_p, substitute_stack): Declare.
25639 (substitute): Record addresses of changed rtxs.
25640 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
25641 Restore the original rtx when complete.
25642 (reload): Free subsitute_stack when complete.
25643
500cdcb0
JJ
256442010-03-02 Janis Johnson <janis187@us.ibm.com>
25645
25646 * doc/gccint.texi (menu): Add Testsuites as a chapter.
25647 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
25648 new chapter.
25649 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
25650 LTO Testing, gcov Testing, profopt Testing, compat Testing,
25651 Torture Tests): Change from subsection to section.
25652
d9a6979d
JJ
256532010-03-02 Jakub Jelinek <jakub@redhat.com>
25654 Steven Bosscher <steven@gcc.gnu.org>
25655
02d43000
UB
25656 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
25657 instead of bb.
d9a6979d 25658
61226dc8
SP
256592010-03-02 Reza Yazdani <reza.yazdani@amd.com>
25660
25661 PR middle-end/42640
25662 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
25663 the assignment from the new induction variable to the assignment
25664 of the value from the original loop PHI function.
25665
15e7a617
JJ
256662010-03-01 Janis Johnson <janis187@us.ibm.com>
25667 Daniel Jacobowitz <dan@codesourcery.com>
25668
25669 * doc/sourcebuild.texi (Test directives): Clarify options to
25670 dg-skip-if.
25671
eb2573ee
RO
256722010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25673
25674 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
25675 Disable cfi directives unless GCC and gas agree on using read-only
25676 .eh_frame sections for 64-bit.
25677 * configure: Regenerate.
25678
12f9ddbc
RG
256792010-03-01 Richard Guenther <rguenther@suse.de>
25680
25681 PR tree-optimization/43220
25682 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
25683 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
25684
f0c10f0f 256852010-03-01 Richard Guenther <rguenther@suse.de>
02d43000 25686 Martin Jambor <mjambor@suse.cz>
f0c10f0f
RG
25687
25688 PR middle-end/41250
25689 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
25690 gimplified parameters.
25691
c40b5400
CB
256922010-03-01 Christian Bruel <christian.bruel@st.com>
25693
25694 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
61226dc8 25695
3c775d2d
L
256962010-03-01 H.J. Lu <hongjiu.lu@intel.com>
25697
25698 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
25699
434c8f4b
RG
257002010-03-01 Richard Guenther <rguenther@suse.de>
25701
25702 PR middle-end/43213
25703 * expr.c (expand_assignment): Use the alias-oracle to tell
25704 if the rhs aliases the result decl.
25705
291c0a12
RO
257062010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25707
25708 PR pch/14940
25709 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
25710 to sol_gt_pch_get_address.
25711 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
25712 64-bit, SPARC and x86.
25713 (sol_gt_pch_get_address): New function.
25714
61226dc8 257152010-03-01 Marco Poletti <poletti.marco@gmail.com>
894e2652
SZ
25716
25717 * toplev.h (inform_n, error_n): Declare.
25718 * diagnostic.c (inform_n, error_n): New function.
25719
6c6366f6
JJ
257202010-03-01 Jakub Jelinek <jakub@redhat.com>
25721
25722 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
25723 has no rtl yet when processing local_decls, queue it and recheck
25724 if deferred stack allocation hasn't assigned it rtl.
25725
826159e5
KK
257262010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
25727
25728 * config/sh/sh.c (unspec_bbr_uid): New.
25729 (gen_block_redirect): Use it instead of INSN_UID.
25730 (gen_far_branch): Likewise.
25731
746ecbcd
L
257322010-02-28 H.J. Lu <hongjiu.lu@intel.com>
25733
25734 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
25735 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
25736
02a9370c
RW
257372010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25738
25739 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
25740 (Warning Options): -Wno-conversion-null is valid for
25741 Objective-C++ as well.
25742 * doc/tm.texi (Named Address Spaces): Likewise.
25743 * doc/plugins.texi (Plugins): Replace TABs with spaces.
25744 * doc/tree-ssa.texi (Tree SSA): Likewise.
25745
91ad7e13
L
257462010-02-27 H.J. Lu <hongjiu.lu@intel.com>
25747
25748 PR bootstrap/43202
25749 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
25750 by default. Don't set the default arch for
25751 i[34567]86-*-darwin*|x86_64-*-darwin*.
25752
55c4eeaa
L
257532010-02-27 H.J. Lu <hongjiu.lu@intel.com>
25754
25755 PR bootstrap/43202
25756 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
25757 default. Set the default 32bit/64bit archs with $with_arch
25758 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
25759
30bc1dca
RG
257602010-02-27 Richard Guenther <rguenther@suse.de>
25761
25762 PR tree-optimization/43186
25763 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
25764 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
25765 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
25766 unroller iterations.
25767
c6b9174f
L
257682010-02-27 H.J. Lu <hongjiu.lu@intel.com>
25769
25770 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
25771 required and i[34567]86-*-* targets don't support 64bit ISA.
25772
2743db69
EB
257732010-02-26 Eric Botcazou <ebotcazou@adacore.com>
25774
25775 PR ada/43096
25776 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
25777 the same alias set.
25778
4d16c0dc
L
257792010-02-26 H.J. Lu <hongjiu.lu@intel.com>
25780
25781 * config.gcc: Set the default arch at least to Prescott for
25782 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
25783 if SSE math is enabled.
25784
0e94b750
MLI
257852010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
25786
25787 * diagnostic.c (diagnostic_initialize): Update.
25788 (diagnostic_report_diagnostic): Test inhibit_notes_p for
25789 informative notes.
25790 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
25791 (diagnostic_inhibit_notes): New.
25792 * toplev.c (process_options): inhibit notes with -fcompare-debug.
25793
7e1542b9
MLI
257942010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
25795
25796 PR c/20631
25797 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
25798 * doc/standards.texi: Likewise.
25799 * doc/extend.texi: Likewise.
25800 * doc/trouble.texi: Likewise.
61226dc8 25801 * doc/cppopts.texi: Likewise.
7e1542b9
MLI
25802 * doc/install.texi: Likewise.
25803 * c.opt (std=c90,std=gnu90): New options.
25804 * c-opts.c (c_common_handle_option): Handle them.
25805
0b901e4c
MLI
258062010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
25807
25808 PR c/24577
25809 * c-decl.c (undeclared_variable): Use an informative note.
25810
37530014
RG
258112010-02-26 Richard Guenther <rguenther@suse.de>
25812
25813 PR tree-optimization/43186
25814 * gimple.h (gimple_fold): Remove.
25815 * gimple.c (gimple_fold): Remove. Inline into single user ...
25816 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
25817 Try harder for conditions.
25818
095c7b3c
JJ
258192010-02-26 Jakub Jelinek <jakub@redhat.com>
25820
25821 PR debug/43190
25822 * function.c (used_types_insert): Don't skip through named pointer
25823 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
25824 and it is different from the main variant's type.
25825
a1e205cf
NC
258262010-02-26 Nick Clifton <nickc@redhat.com>
25827
25828 * config/rx/rx.md (sminsi3): Remove bogus alternative.
25829
a3af5e26
L
258302010-02-26 H.J. Lu <hongjiu.lu@intel.com>
25831
25832 * config.gcc: Support --with-fpmath=sse for x86.
25833
25834 * config/i386/ssemath.h: New.
25835
25836 * doc/install.texi (--with-fpmath=sse): Documented.
25837
2f816591
RG
258382010-02-26 Richard Guenther <rguenther@suse.de>
25839
25840 PR tree-optimization/43188
25841 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
25842 vector types of over-aligned element type.
25843
7ce321b3
L
258442010-02-26 Uros Bizjak <ubizjak@gmail.com>
25845
25846 PR target/43175
25847 * config/i386/i386.c (expand_vec_perm_blend): Use correct
02d43000 25848 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
7ce321b3 25849
b55b184a
JK
258502010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
25851
25852 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
25853
e7140c8d
JJ
258542010-02-26 Jakub Jelinek <jakub@redhat.com>
25855
6764d92c
JJ
25856 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
25857 * var-tracking.c: Include diagnostic.h.
25858 (debug_dv): New function.
25859 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
25860
5a309965
JJ
25861 PR debug/43160
25862 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
25863 (add_value_chain, add_value_chains, remove_value_chain,
25864 remove_value_chains): Handle DEBUG_EXPRs.
25865 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
25866
e7140c8d
JJ
25867 PR debug/43161
25868 * regcprop.c (struct queued_debug_insn_change): New type.
25869 (struct value_data_entry): Add debug_insn_changes field.
25870 (struct value_data): Add n_debug_insn_changes field.
25871 (debug_insn_changes_pool): New variable.
25872 (free_debug_insn_changes, apply_debug_insn_changes,
25873 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
25874 (kill_value_one_regno): Call free_debug_insn_changes if needed.
25875 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
25876 fields.
25877 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
25878 changes for them.
25879 (copyprop_hardreg_forward_1): Don't call apply_change_group for
25880 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
25881 changes, call cprop_find_used_regs via note_stores.
25882 (copyprop_hardreg_forward): When copying vd from predecessor
25883 which has any queued DEBUG_INSN changes, make sure the pointers are
25884 cleared. At the end call df_analyze and then if there are any
25885 DEBUG_INSN changes queued at the end of some basic block for still
25886 live registers, apply them.
25887 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
25888
894b386f
UB
258892010-02-25 Uros Bizjak <ubizjak@gmail.com>
25890
25891 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
25892 (arm*-*-*): Ditto.
25893
3fd77630
L
258942010-02-25 H.J. Lu <hongjiu.lu@intel.com>
25895
25896 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
25897 targets. Set the default with_cpu/with_arch from arch/cpu.
25898 Allow x86-64 and native for with_cpu/with_arch.
25899
4b9c6075
NB
259002010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
25901
25902 * ebitmap.c: Change calls to verify_popcount with calls to
25903 sbitmap_verify_popcount.
25904 (ebitmap_clear_bit): Fixed map->cacheindex test and
25905 map>cache update when bit clearing results in an empty
25906 element.
25907
2fcd8e02
MM
259082010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
25909
25910 PR target/43154
25911 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
25912 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
25913 and support both V2DF and V2DI modes.
25914 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
25915 support both V2DF and V2DI modes.
25916 (general): Delete trailing whitespace from a few patterns.
25917
25918 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25919 V2DF/V2DI interleave high/low builtins.
25920
25921 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
25922 new VSX builtins.
25923
25924 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
25925 interleave high/low functions.
25926
f61ae065
GP
259272010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
25928
25929 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
25930 #pragma extern_prefix.
25931
7d5d39bb
JJ
259322010-02-25 Jakub Jelinek <jakub@redhat.com>
25933
06796564
JJ
25934 PR debug/43166
25935 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
25936 BLKmode, assert op0 is a MEM and just adjust its mode.
25937
7d5d39bb
JJ
25938 PR debug/43165
25939 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
25940 if bitpos isn't multiple of mode's bitsize.
25941
124e0d27
MLI
259422010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
25943
25944 * c.opt (-ftemplate-depth=): New.
25945 (-ftemplate-depth-): Deprecate.
25946 * optc-gen.awk: Handle -ftemplate-depth=.
25947 * opth-gen.awk: Likewise.
25948 * c-opts.c (c_common_handle_option): Likewise.
02d43000 25949 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
124e0d27 25950
0e7750a0
JM
259512010-02-24 Jason Merrill <jason@redhat.com>
25952
25953 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
25954
c26238f4
RO
259552010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25956
25957 * cfg.c (alloc_aux_for_block): Remove inline.
25958 (alloc_aux_for_edge): Likewise.
25959
bef64e0f
RO
259602010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25961
25962 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
25963
68ba2afe
RO
259642010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25965
25966 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
25967 * config/i386/sol2-gas.h: New file.
25968 * config.gcc (i[34567]86-*-solaris2*): Use it.
25969
2d2e923f
MLI
259702010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
25971
25972 PR c/43128
25973 * c-typeck.c (ep_convert_and_check): New.
25974 (build_conditional_expr): Use it.
25975 (build_binary_op): Likewise.
25976
2e957792
JJ
259772010-02-24 Jakub Jelinek <jakub@redhat.com>
25978
a46368b2
JJ
25979 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
25980
2e957792
JJ
25981 PR debug/43150
25982 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
25983 bounds even for -O+.
25984 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
25985 expr needs to have DECL_NAME set.
25986
12a54f54
NC
259872010-02-24 Nick Clifton <nickc@redhat.com>
25988
25989 * config/mep/mep.c: Include gimple.h.
25990 (mep_function_uses_sp): Delete unused function.
25991 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
25992 parameters. Use unsigned integers to count args. Return a
25993 NULL_RTX instead of an error_mark_node. Toidy up formatting.
25994
8f40ad50
JJ
259952010-02-23 Jakub Jelinek <jakub@redhat.com>
25996
25997 PR target/43107
25998 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
25999 greater or equal to nelt instead of 2 * nelt.
26000 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
26001 with nelt - 1.
26002
a3b20e90
JM
260032010-02-23 Jason Merrill <jason@redhat.com>
26004
3adcf52c
JM
26005 PR debug/42800
26006 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
26007 in cfun->local_decls even if they have register types.
26008
a3b20e90
JM
26009 PR c++/42837
26010 * stor-layout.c (place_field): Don't warn about unnecessary
26011 DECL_PACKED if the type is packed.
26012
5ead99fa
JJ
260132010-02-23 Jakub Jelinek <jakub@redhat.com>
26014
26015 PR target/43139
26016 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
26017 GOTOFF relocs, even when the base reg isn't pic pointer.
26018
2a8e30fb
MM
260192010-02-23 Michael Matz <matz@suse.de>
26020
26021 PR debug/43077
26022 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
26023 (expand_gimple_basic_block): Generate and use debug temps if there
26024 are debug uses left after the last real use of TERed ssa names.
26025 Unlink debug immediate uses when they are expanded.
26026
38170f34
MLI
260272010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
26028
26029 PR 43123
26030 * config/i386/i386.c (override_options): Reorganise to provide
26031 better error messages.
26032
0f9c8f56
SP
260332010-02-22 Sebastian Pop <sebastian.pop@amd.com>
26034
26035 PR middle-end/43083
26036 * graphite-scop-detection.c (create_single_exit_edge): Move
26037 the call to find_single_exit_edge to....
26038 (create_sese_edges): ...here. Don't handle multiple edges
26039 exiting the function.
26040 (build_graphite_scops): Don't handle multiple edges
26041 exiting the function.
26042
260432010-02-22 Sebastian Pop <sebastian.pop@amd.com>
26044
26045 PR middle-end/43097
26046 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
26047 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
26048
260492010-02-22 Sebastian Pop <sebastian.pop@amd.com>
26050
26051 PR middle-end/43026
26052 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
26053
a98c2819
MLI
260542010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
26055
26056 PR c++/43126
26057 * c-typeck.c (convert_arguments): Print declaration location.
26058 * c-common.c (validate_nargs): Rename as
26059 builtin_function_validate_nargs.
26060 (check_builtin_function_arguments): Update.
26061
ea2edf88
RG
260622010-02-22 Richard Guenther <rguenther@suse.de>
26063
26064 PR lto/43045
26065 * tree-inline.c (declare_return_variable): Use the type of
26066 the call stmt lhs if available.
26067
669887fc
DS
260682010-02-22 Duncan Sands <baldrick@free.fr>
26069
26070 * passes.c (register_pass): Always consider all pass lists when
26071 ref_pass_instance_number is zero.
26072
9efc83f4
RG
260732010-02-22 Richard Guenther <rguenther@suse.de>
26074
26075 PR tree-optimization/42749
26076 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
26077 parameter. Do arithmetic in the original type.
26078 (update_accumulator_with_ops): Likewise.
26079 (adjust_accumulator_values): Adjust.
26080
0a88561f
AK
260812010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26082
26083 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
26084 (QI to BLKmode splitter): New splitter.
26085
5c91eb02
L
260862010-02-22 H.J. Lu <hongjiu.lu@intel.com>
26087
26088 * config/i386/i386.c (initial_ix86_tune_features): Turn on
26089 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
26090
69e3b47f
RG
260912010-02-22 Richard Guenther <rguenther@suse.de>
26092
26093 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
5c91eb02 26094
45df0e43
HPN
260952010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
26096
26097 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
26098 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
26099 ($(T)crti.o, $(T)crtn.o): Remove rules.
26100
72bd130e
TB
261012010-02-21 Tobias Burnus <burnus@net-b.de>
26102
26103 PR fortran/35259
26104 * doc/invoke.texi (-fassociative-math): Document that this
26105 option is automatically enabled for Fortran.
26106
878ee0ab
DM
261072010-02-20 David S. Miller <davem@davemloft.net>
26108
26109 * configure.ac: Test if linker and assembler properly support
26110 GOTDATA_OP relocations.
26111 * configure: Rebuild.
26112 * config.in: Likewise.
26113 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
26114 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
26115 (movsi_high_pic): Likewise.
26116 (movdi_lo_sum_pic): Likewise.
26117 (movdi_high_pic): Likewise.
26118 (movsi_pic_gotdata_op): New pattern.
26119 (movdi_pic_gotdata_op): Likewise.
26120 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
26121 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
02d43000 26122
78c201a4
UB
261232010-02-20 Uros Bizjak <ubizjak@gmail.com>
26124
26125 PR target/43067
26126 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
26127 attribute to ssemul.
26128 (xop_mulv2div2di3_high): Ditto.
26129
17251338
MLI
261302010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26131
26132 PR c++/35669
26133 * c.opt (Wconversion-null): New option.
26134 * doc/invoke.texi (Wconversion-null): Document.
26135
e7a84854
MLI
261362010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26137
26138 * common.opt (Wlarger-than-): Add Undocumented.
78c201a4 26139
f233f7ed
MS
261402010-02-19 Mike Stump <mikestump@comcast.net>
26141
26142 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
26143
d88900d7
JM
261442010-02-19 Jason Merrill <jason@redhat.com>
26145
26146 PR target/40332
26147 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
26148 * configure: Likewise.
26149
715a4e08
AM
261502010-02-20 Alan Modra <amodra@gmail.com>
26151
26152 PR middle-end/42344
26153 * cgraph.h (cgraph_make_decl_local): Declare.
26154 * cgraph.c (cgraph_make_decl_local): New function.
26155 (cgraph_make_node_local): Use it.
26156 * cgraphunit.c (cgraph_function_versioning): Likewise.
26157 * ipa.c (function_and_variable_visibility): Likewise.
26158
ad3b056c
JJ
261592010-02-19 Jakub Jelinek <jakub@redhat.com>
26160
26161 PR bootstrap/43121
26162 * except.c (sjlj_emit_function_enter): Don't call
26163 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
26164 directly.
26165 * rtl.h (add_reg_br_prob_note): Remove prototype.
26166
58076e21
MLI
261672010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
26168
26169 PR 41779
26170 * c-common.c (conversion_warning): Remove widening conversions
26171 before checking the conversion of integers to reals.
26172
b42186f1
MS
261732010-02-19 Mike Stump <mikestump@comcast.net>
26174
c387e067
MS
26175 PR middle-end/43125
26176 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
26177
b42186f1
MS
26178 PR objc/43061
26179 * cgraphunit.c (process_function_and_variable_attributes): Check
26180 DECL_PRESERVE_P instead of looking up attribute "used".
26181 * ipa-pure-const.c (check_decl): Likewise.
26182 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
26183 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
26184 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
26185 instead of attribute "used".
26186 * config/sol2-c.c (solaris_pragma_init): Likewise.
26187 (solaris_pragma_fini): Likewise.
26188
8ac074e8
JJ
261892010-02-19 Jakub Jelinek <jakub@redhat.com>
26190
25c0cad4
JJ
26191 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
26192 Use XCNEW instead of xcalloc.
26193 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
26194 XNEW instead of xmalloc.
26195 (get_fields): Use XNEWVEC instead of xmalloc.
26196
e19bcb67
JJ
26197 PR debug/43084
26198 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
26199 populate vars array.
26200 (create_new_general_access): For debug stmts just reset value.
26201 (get_stmt_accesses): For accesses within debug stmts just record them
26202 using add_access_to_acc_sites instead of preventing the peeling or
26203 counting them as accesses.
26204
8ac074e8
JJ
26205 PR middle-end/42233
26206 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
26207
c7da0354
RG
262082010-02-19 Richard Guenther <rguenther@suse.de>
26209
26210 PR tree-optimization/42916
26211 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
26212 instructions.
26213
e5dfb95f
AS
262142010-02-19 Andreas Schwab <schwab@linux-m68k.org>
26215
26216 * configure.ac: Replace all uses of changequote in macro arguments
26217 with proper quoting.
26218
2bdd49f4
JJ
262192010-02-19 Jakub Jelinek <jakub@redhat.com>
26220
26221 PR middle-end/42233
26222 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
26223
604d0dbc
RG
262242010-02-19 Richard Guenther <rguenther@suse.de>
26225
26226 PR tree-optimization/42944
26227 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
26228 test for aliasing with errno.
26229
554cf330
JJ
262302010-02-19 Jakub Jelinek <jakub@redhat.com>
26231
40e90eac
JJ
26232 PR middle-end/42233
26233 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
26234 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
26235 * dojump.c: Include output.h.
26236 (inv): New inline function.
26237 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
26238 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
26239 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
26240 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
26241 argument, pass it down to other calls.
26242 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
26243 add REG_BR_PROB note to the conditional jump.
26244 * cfgexpand.c (add_reg_br_prob_note): Removed.
26245 (expand_gimple_cond): Don't call it, add the probability
26246 as last argument to jumpif_1/jumpifnot_1.
26247 * Makefile.in (dojump.o): Depend on output.h.
26248 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
26249 callers.
26250 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
26251 * stmt.c (do_jump_if_equal): Likewise.
26252 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
26253 * loop-unswitch.c (compare_and_jump_seq): Likewise.
26254 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
26255 Likewise.
26256 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
26257 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
26258 jumpifnot_1 callers.
26259 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
26260 callers.
26261 (store_expr): Adjust jumpifnot caller.
26262 (store_constructor): Adjust jumpif caller.
26263
554cf330
JJ
26264 PR middle-end/42233
26265 * gimplify.c (gimple_boolify): For __builtin_expect call
26266 gimple_boolify also on its first argument.
26267
1a242e3c
UB
262682010-02-18 Uros Bizjak <ubizjak@gmail.com>
26269
26270 * configure.ac (gnu-unique-object): Wrap regexps using [] in
26271 changequote block.
26272 (__stack_chk_fail): Ditto. Remove quadrigraphs.
26273 * configure: Regenerated.
26274
86866b28
UW
262752010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26276
26277 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
26278 lang_hooks.types_compatible_p instead of comptypes.
26279
f4a4b582 262802010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
8168ccc0
SH
26281
26282 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
26283 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
26284 if __prefer_thumb__ is defined.
26285
746e119f
MJ
262862010-02-18 Martin Jambor <mjambor@suse.cz>
26287
26288 PR tree-optimization/43066
26289 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
26290 array with zero-sized element type.
26291
82cf0c8c
JJ
262922010-02-18 Jakub Jelinek <jakub@redhat.com>
26293
26294 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
26295 rtx, allocate struct var_loc_node here and return it to the
26296 caller, and only if it is actually needed.
26297 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
26298 move it earlier and return immediately if it returns NULL.
26299
ccb265d6
MP
263002010-02-17 Mikael Pettersson <mikpe@it.uu.se>
26301
26302 * config/sparc/gas.h: New file. Restore
26303 TARGET_ASM_NAMED_SECTION to its ELF default.
26304 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
26305 check !HAVE_GNU_AS.
26306 * config/sparc/sparc.c (sparc_elf_asm_named_section):
26307 Likewise. Add ATTRIBUTE_UNUSED to prototype.
26308 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
26309 after sparc/sysv4.h.
26310
a30f3def
DK
263112010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
26312
26313 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
26314
2f6c5b27
SB
263152010-02-17 Steven Bosscher <steven@gcc.gnu.org>
26316
26317 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
26318 patterns from predicated pattern.
26319
b5e33e04
UB
263202010-02-17 Uros Bizjak <ubizjak@gmail.com>
26321
26322 PR target/43103
26323 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
26324 for insn mnemonic suffix.
26325
a95740b3
RG
263262010-02-17 Richard Guenther <rguenther@suse.de>
26327
26328 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
26329 to loop PHI nodes.
26330
169e464e
JJ
263312010-02-17 Jakub Jelinek <jakub@redhat.com>
26332
26333 PR debug/42918
26334 * caller-save.c (save_call_clobbered_regs): If BB ends with
26335 a DEBUG_INSN, move any notes in between last real insn and the last
26336 DEBUG_INSN after the last DEBUG_INSN.
26337
5498b6d2
JR
263382010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
26339
26340 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
26341 Fix return type. Fix argument type. Explain meaning of return value.
26342
b09bae68
RG
263432010-02-16 Richard Guenther <rguenther@suse.de>
26344
26345 PR tree-optimization/41043
a691bb08 26346 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
b09bae68
RG
26347 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
26348 statements ...
26349 (vrp_visit_phi_node): ... but only for loop PHI nodes.
26350
d5dceab8 263512010-02-16 Ira Rosen <irar@il.ibm.com>
99f51320
IR
26352
26353 PR tree-optimization/43074
26354 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
26355 * tree-vect-loop.c (vect_analyze_loop_operations): Add
26356 vectorizable cycles in hybrid SLP check.
26357 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
26358
f47e08d9
RG
263592010-02-16 Richard Guenther <rguenther@suse.de>
26360
b5e33e04 26361 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
f47e08d9
RG
26362 (true_dependence): If memrefs_conflict_p computes must-alias
26363 trust it. Move TBAA check after offset-based disambiguation.
26364 (canon_true_dependence): Likewise.
26365
ec8c3978
JJ
263662010-02-16 Alexandre Oliva <aoliva@redhat.com>
26367
26368 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
26369 * doc/invoke.texi: Document it.
26370 * var-tracking.c: Include toplev.h and params.h.
26371 (vt_find_locations): Return bool indicating success. Compute
26372 hash sizes unconditionally. Check new parameter, report.
26373 (variable_tracking_main_1): Check vt_find_locations results and
26374 retry. Renamed from...
26375 (variable_tracking_main): ... this. New wrapper to preserve
26376 flag_var_tracking_assignments.
26377 * Makefile.in (var-tracking.o): Adjust dependencies.
26378
f4a4b582
EB
263792010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
26380 Jakub Jelinek <jakub@redhat.com>
3bf6b403
JH
26381
26382 PR target/42854
26383 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
26384 if weak_import attribute is present.
26385 * config/darwin.c (machopic_select_section): Likewise.
26386
a934eb2d
JR
263872010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
26388
26389 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
26390 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
26391 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
26392 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
26393
74ca3393
EB
26394 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
26395 types.
a934eb2d
JR
26396
26397 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
26398 Fix argument types.
26399
26400 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
26401 Rewrite text to refer to the names.
26402
02edd2f6
SP
264032010-02-15 Sebastian Pop <sebastian.pop@amd.com>
26404
26405 * config/i386/i386-builtin-types.def
26406 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
26407 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
26408 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
26409 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
26410 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
26411 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
26412 IX86_BUILTIN_VPERMIL2PS256.
26413 (MULTI_ARG_4_DF2_DI_I): Defined.
26414 (MULTI_ARG_4_DF2_DI_I1): Defined.
26415 (MULTI_ARG_4_SF2_SI_I): Defined.
26416 (MULTI_ARG_4_SF2_SI_I1): Defined.
26417 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
26418 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
26419 __builtin_ia32_vpermil2ps256.
26420 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26421 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26422 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
26423 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26424 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26425 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
26426 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
26427 CODE_FOR_xop_vpermil2v8sf3.
26428 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
26429 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
26430 * config/i386/xopintrin.h (_mm_permute2_pd): New.
26431 (_mm256_permute2_pd): New.
26432 (_mm_permute2_ps): New.
26433 (_mm256_permute2_ps): New.
26434
ac447f25
NC
264352010-02-15 Nick Clifton <nickc@redhat.com>
26436
d079b87f 26437 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
ac447f25
NC
26438 boolean parameters. Use emit_jump_insn when emitting a pop
26439 instruction containing a return insn.
b5e33e04
UB
26440 (push): Use 'true' rather than '1' as second parameter to F.
26441 (h8300_expand_prologue): Likewise.
26442 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
26443 (h8300_expand_epilogue): Likewise.
ac447f25 26444
313333a6
RG
264452010-02-15 Richard Guenther <rguenther@suse.de>
26446
26447 PR middle-end/43068
26448 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
26449 if that is zero.
26450
653958e8
NC
264512010-02-15 Nick Clifton <nickc@redhat.com>
26452
26453 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
26454 delta.
26455
0f667308
MP
264562010-02-14 Marco Poletti <poletti.marco@gmail.com>
26457
26458 * intl.c (fake_ngettext): New function.
26459 * intl.h (fake_ngettext): Declare.
26460 (ngettext): Define macro.
26461 * collect2.c (notice_translated): New function.
26462 (main): Use notice_translated and ngettext.
26463 * collect2.h (notice_translated): Declare.
26464
912eb5a4
SB
264652010-02-14 Steven Bosscher <steven@gcc.gnu.org>
26466
26467 * reorg.c (delete_computation): Comment fixes.
26468 * caller-save.c (setup_save_areas): Idem.
26469 * sel-sched-dump.c (dump_lv_set): Idem.
26470 * rtl.def: Idem.
26471
244e6c5c
AK
264722010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26473
26474 * config/s390/s390.c (s390_sched_init): New function.
26475 (TARGET_SCHED_INIT): Target hook defined.
26476
9ab99933
DK
264772010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
26478 Jack Howarth <howarth@bromo.med.uc.edu>
f4a4b582 26479 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9ab99933
DK
26480
26481 PR target/42982
26482 Partial revert of unintended change in fix for PR41605.
26483 * config/darwin.h: Fix typo.
26484 * config/darwin9.h: Same.
26485
ed5bdeb6
JJ
264862010-02-11 Jakub Jelinek <jakub@redhat.com>
26487
26488 * c-pch.c (pch_init): Clear v.
26489
f432760f
SP
264902010-02-11 Sebastian Pop <sebastian.pop@amd.com>
26491
26492 PR middle-end/42930
26493 * graphite-scop-detection.c (graphite_can_represent_scev): Call
26494 graphite_can_represent_init for MULT_EXPR.
26495
264962010-02-11 Sebastian Pop <sebastian.pop@amd.com>
26497
26498 PR middle-end/42914
26499 PR middle-end/42530
26500 * graphite-sese-to-poly.c (remove_phi): New.
26501 (translate_scalar_reduction_to_array): Call remove_phi.
26502
265032010-02-11 Sebastian Pop <sebastian.pop@amd.com>
26504
26505 PR middle-end/42771
26506 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
26507 * graphite-clast-to-gimple.h (gloog): Update declaration.
26508 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
26509 * graphite-poly.h (struct poly_bb): Add missing comments.
26510 (struct scop): Add poly_scop_p field.
26511 (POLY_SCOP_P): New.
26512 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
26513 * graphite.c (graphite_transform_loops): Build the polyhedral
26514 representation for each scop before code generation.
26515 * sese.c (rename_variables_in_operand): Removed.
26516 (rename_variables_in_expr): Return the renamed expression.
26517 (rename_sese_parameters): New.
26518 * sese.h (rename_sese_parameters): Declared.
26519
6d892147
RG
265202010-02-11 Richard Guenther <rguenther@suse.de>
26521
26522 PR tree-optimization/42998
26523 * tree-ssa-pre.c (create_expression_by_pieces): Treat
26524 POINTER_PLUS_EXPR properly.
26525
04eadb13
SP
265262010-02-11 Sebastian Pop <sebastian.pop@amd.com>
26527 Changpeng Fang <changpeng.fang@amd.com>
26528
26529 PR middle-end/40886
26530 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
26531 the cost of an IV candidate when the IV is used in a test against zero.
26532
26533 * gcc.dg/tree-ssa/ivopts-3.c: New.
26534
91753e21
RG
265352010-02-11 Richard Guenther <rguenther@suse.de>
26536
26537 PR lto/41664
26538 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
26539 pointer-vs-decl case by swapping refs. Handle some cases
26540 of pointer-vs-decl disambiguations more conservatively.
26541 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
26542 to false after expanding.
26543
f68df07c
RG
265442010-02-11 Richard Guenther <rguenther@suse.de>
26545
26546 PR driver/43021
26547 * gcc.c (process_command): Handle LTO file@offset case more
26548 appropriately.
26549
d2d36740
JJ
265502010-02-11 Jakub Jelinek <jakub@redhat.com>
26551
8f6aedba
JJ
26552 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
26553 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
26554 of DEBUG_INSNs.
26555 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
26556
d2d36740
JJ
26557 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
26558 if MEM's mode size isn't DWARF2_ADDR_SIZE.
26559 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
26560 Optimize eq/ne comparisons when both arguments are known to be
26561 zero-extended.
26562 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
26563 Don't mask operands unnecessarily if they are known to be already
26564 zero-extended.
26565
56592e03
VM
265662010-02-10 Vladimir Makarov <vmakarov@redhat.com>
26567
26568 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
26569 instead of loop.
26570
5418fe84
RG
265712010-02-10 Richard Guenther <rguenther@suse.de>
26572
26573 PR tree-optimization/43017
26574 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
26575 for wrapping signed arithmetic.
26576
92e8e53a
JJ
265772010-02-10 Jakub Jelinek <jakub@redhat.com>
26578
26579 PR debug/43010
26580 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
26581 if no debug info should be emitted for it.
26582
bd55b817
KK
265832010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
26584
26585 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
26586 note when flag_exceptions is set.
26587
2ab43a52
DS
265882010-02-10 Duncan Sands <baldrick@free.fr>
26589
26590 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
26591
d977cb9c
RG
265922010-02-10 Richard Guenther <rguenther@suse.de>
26593
26594 PR c/43007
26595 * tree.c (get_unwidened): Handle constants.
26596 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
26597
563cb662
MJ
265982010-02-10 Martin Jambor <mjambor@suse.cz>
26599
26600 PR lto/42985
26601 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
26602 check for variable argument counts independently.
26603
9e3c399e
CB
266042010-02-10 Christian Bruel <christian.bruel@st.com>
26605
26606 PR target/42841
26607 * config/sh/sh.c (find_barrier): Increase length for non delayed
26608 conditional branches.
01305d24 26609
e938feb4
CB
266102010-02-10 Christian Bruel <christian.bruel@st.com>
26611
26612 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
01305d24 26613
cbb1ab10
JJ
266142010-02-10 Jakub Jelinek <jakub@redhat.com>
26615
26616 * builtins.c (set_builtin_user_assembler_name): Also handle
26617 ffs if int is smaller than word.
26618
b09495c1
VM
266192010-02-09 Vladimir Makarov <vmakarov@redhat.com>
26620
26621 PR middle-end/42973
26622 * ira-conflicts.c (get_dup): Remove.
26623 (process_reg_shuffles): Add new parameter. Use it as an
26624 additional guard for copy generation.
26625 (add_insn_allocno_copies): Rewrite.
26626
57257f0d
AM
266272010-02-09 Alexander Monakov <amonakov@ispras.ru>
26628
26629 * common.opt (fsched2-use-traces): Preserved for backward
26630 compatibility.
26631 * doc/invoke.texi: Remove the documentation about option
26632 -fsched2-use-traces.
26633 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
26634 flag_sched2_use_traces.
26635 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
26636 the backward compatibility flag section.
26637
72d182d3
RG
266382010-02-09 Richard Guenther <rguenther@suse.de>
26639
26640 PR tree-optimization/43008
26641 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
26642 make HEAP variables initialized from global memory if they
26643 are not known builtin functions.
26644 (find_func_aliases): Adjust.
26645
9605a606
RG
266462010-02-09 Richard Guenther <rguenther@suse.de>
26647
26648 PR tree-optimization/43000
26649 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
26650 arithmetic manually.
26651
8d9eca14
JJ
266522010-02-08 Jakub Jelinek <jakub@redhat.com>
26653
26654 PR tree-optimization/42931
26655 * tree-loop-linear.c (try_interchange_loops): Don't call
26656 double_int_mul if estimated_loop_iterations failed.
26657
d3545524
MJ
266582010-02-08 Martin Jambor <mjambor@suse.cz>
26659
26660 PR middle-end/42898
26661 * tree-sra.c (build_accesses_from_assign): Do not mark in
26662 should_scalarize_away_bitmap if stmt has volatile ops.
26663 (sra_modify_assign): Do not process assigns piecemeal if if stmt
26664 has volatile ops.
26665
8a9a2486
JR
266662010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
26667
26668 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
26669
7bf25dd6
AN
266702010-02-07 Adam Nemet <adambnmet@gmail.com>
26671
26672 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
26673 before the pattern.
26674
a46edbff
AP
266752010-02-07 Andrew Pinski <pinskia@gmail.com>
26676
26677 PR middle-end/42946
26678 * df-core.c (df_finish_pass): Change type of saved_flags to int.
26679
86da963e
SP
266802010-02-07 Sebastian Pop <sebastian.pop@amd.com>
26681
26682 PR middle-end/42988
26683 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
26684 to unknown_dependence.
26685 (graphite_legal_transform_dr): Handle the unknown_dependence.
26686 (graphite_carried_dependence_level_k): Same.
26687
266882010-02-07 Sebastian Pop <sebastian.pop@amd.com>
26689
26690 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
26691
997ac87b
RG
266922010-02-07 Richard Guenther <rguenther@suse.de>
26693
26694 PR middle-end/42991
26695 * expr.c (get_inner_reference): Always initialize *pbitsize.
26696
cb6b911a
RG
266972010-02-07 Richard Guenther <rguenther@suse.de>
26698
26699 PR middle-end/42956
26700 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
26701 new ARRAY_REFs on variable size element or minimal index arrays.
26702 Complete.
26703 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
26704 gimple_fold_indirect_ref.
26705
b761dbe6
RE
267062010-02-06 Richard Earnshaw <rearnsha@arm.com>
26707
26708 PR target/42957
26709 * arm.c (arm_override_options): Just return if the user has specified
26710 an invalid fpu name.
26711
b2469a9b
JM
267122010-02-03 Jason Merrill <jason@redhat.com>
26713
26714 PR c++/42870
26715 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
26716 i386_pe_maybe_record_exported_symbol.
26717
1f65437d
SE
267182010-02-05 Steve Ellcey <sje@cup.hp.com>
26719
26720 PR target/42924
26721 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
26722 (pa_delegitimize_address): New function.
26723
126edba2
OS
267242010-02-05 Ozkan Sezer <sezeroz@gmail.com>
26725
26726 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
26727 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
26728
532df904
RG
267292010-02-05 Richard Guenther <rguenther@suse.de>
26730
26731 PR lto/42762
26732 * lto-streamer-in.c (get_resolution): Deal with references
26733 to undefined functions.
26734
5c95f07b
RG
267352010-02-05 Richard Guenther <rguenther@suse.de>
26736
b5e33e04 26737 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
5c95f07b
RG
26738 (fold_const_aggregate_ref): Likewise.
26739 (ccp_fold_stmt): Substitute loads.
26740 (maybe_fold_reference): Verify types before substituting.
26741 Unshare properly.
26742 (fold_gimple_assign): Unshare properly.
b5e33e04 26743 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
5c95f07b 26744
64aa00b1
NF
267452010-02-05 Nathan Froyd <froydnj@codesourcery.com>
26746
26747 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
26748 for rs6000_gen_cell_microcode.
26749
b0f19292
RG
267502010-02-04 Richard Guenther <rguenther@suse.de>
26751
26752 PR rtl-optimization/42952
26753 * dse.c (const_or_frame_p): Remove MEM handling.
26754
f7eb48b5
NC
267552010-02-04 Nick Clifton <nickc@redhat.com>
26756
26757 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
26758 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26759 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
26760 (mn10300_asm_output_mi_thunk): New function.
26761 (mn10300_can_output_mu_thunk): New function.
26762 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
26763 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
26764 (FUNCTION_ARG): Delete incorrect comment.
26765
2aac1924
JM
267662010-02-03 Jason Merrill <jason@redhat.com>
26767
26768 PR c++/40138
26769 * fold-const.c (operand_equal_p): Handle erroneous types.
26770
3e5f930f 267712010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
07738b87
KP
26772
26773 * config/h8300/h8300.md (can_delay): Fix attibute condition.
26774
a7f3e500
VM
267752010-02-03 Vladimir Makarov <vmakarov@redhat.com>
26776
3e5f930f 26777 PR rtl-optimization/42941
a7f3e500
VM
26778 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
26779 of xmalloc.
26780
59d49708
JM
267812010-02-03 Jason Merrill <jason@redhat.com>
26782
26783 PR c++/35652
26784 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
26785
5440c0e7
AO
267862010-02-03 Alexandre Oliva <aoliva@redhat.com>
26787
26788 PR debug/42896
02d43000 26789 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
5440c0e7
AO
26790 (cselib_reset_table): Renamed from...
26791 (cselib_reset_table_with_next_value): ... this.
26792 (cselib_get_next_uid): Renamed from...
26793 (cselib_get_next_unknown_value): ... this.
26794 * cselib.c (next_uid): Renamed from...
26795 (next_unknown_value): ... this.
26796 (cselib_clear_table): Adjust.
26797 (cselib_reset_table): Adjust. Renamed from...
26798 (cselib_reset_table_with_next_value): ... this.
26799 (cselib_get_next_uid): Adjust. Renamed from...
26800 (cselib_get_next_unknown_value): ... this.
26801 (get_value_hash): Use hash.
26802 (cselib_hash_rtx): Likewise.
26803 (new_cselib_val): Adjust. Set and dump uid.
26804 (cselib_lookup_mem): Pass next_uid as hash.
26805 (cselib_subst_to_values): Likewise.
26806 (cselib_log_lookup): Dump uid.
26807 (cselib_lookup): Pass next_uid as hash. Adjust.
26808 (cselib_process_insn): Adjust.
26809 (cselib_init): Initialize next_uid.
26810 (cselib_finish): Adjust.
26811 (dump_cselib_table): Likewise.
26812 * dse.c (canon_address): Dump value uid.
26813 * print-rtl.c (print_rtx): Print value uid.
26814 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
26815 (dvuid): New type.
26816 (dv_uid): New function, sort of renamed from...
26817 (dv_htab_hash): ... this, reimplemented in terms of it and...
26818 (dv_uid2hash): ... this. New.
26819 (variable_htab_eq): Drop excess assertions.
26820 (tie_break_pointers): Removed.
26821 (canon_value_cmp): Compare uids.
26822 (variable_post_merge_New_vals): Print uids.
26823 (vt_add_function_parameters): Adjust.
26824 (vt_initialize): Reset table. Adjust.
26825
e3c70387
RG
268262010-02-03 Richard Guenther <rguenther@suse.de>
26827
26828 PR tree-optimization/42944
b5e33e04 26829 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
e3c70387
RG
26830 (call_may_clobber_ref_p_1): Likewise. Properly handle
26831 malloc and calloc clobbering errno.
26832
4cad6dba
SB
268332010-02-03 Steven Bosscher <steven@gcc.gnu.org>
26834
26835 * doc/invoke.texi: Fix name of sched1 dump.
26836
26837 * opts.c (decode_options): Set flag_tree_switch_conversion
26838 only conditionally on optimize >= 2.
26839
26840 * gcse.c: Assorted comment fixes in pass description.
26841
693ee8cf
AG
268422010-02-03 Anthony Green <green@moxielogic.com>
26843
26844 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
26845 nop padding in order to maintain alignment of storage location of
26846 target function address.
26847 (moxie_trampoline_init): Store target function address at newly
26848 aligned location.
26849 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
26850 to 32.
26851 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
26852
bf8e3b77
RG
268532010-02-03 Richard Guenther <rguenther@suse.de>
26854
26855 PR middle-end/42927
26856 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
26857
bde17fdc
RO
268582010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26859
26860 * config.gcc: Reenable check for obsolete targets.
26861 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
26862 mips-sgi-irix6.[0-4]*.
26863
c9c27b72
NC
268642010-02-02 Nick Clifton <nickc@redhat.com>
26865
26866 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
26867 constant size of 4 as being the same as 0.
26868 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
26869 can take values in the range 0..4.
26870
fc15bd03
JH
268712010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
26872
26873 PR java/41991
26874 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
26875 as _darwin10_Unwind_FindEnclosingFunction().
26876 * libgcc-libsystem.ver: New.
26877
6eeea7a7
VM
268782010-02-01 Vladimir Makarov <vmakarov@redhat.com>
26879
26880 PR target/41399
26881 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
26882 implicitly set registers.
26883
87d05b44
RE
268842010-02-01 Richard Earnshaw <rearnsha@arm.com>
26885
26886 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
26887 (arm_override_options): Allow automatic selection of the thread
26888 pointer register if thumb2.
26889 (legitimize_pic_address): Improve code sequences for Thumb2.
26890 (arm_call_tls_get_addr): Likewise.
26891 (legitimize_tls_address): Likewise.
26892 * arm.md (pic_load_addr_arm): Delete. Replace with ...
26893 (pic_load_addr_32bit): ... this. New named pattern.
26894 * thumb2.md (pic_load_addr_thumb2): Delete.
26895 (pic_load_dot_plus_four): Delete.
26896 (tls_load_dot_plus_four): New named pattern.
26897
cb717ac4
RO
268982010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26899
26900 PR libgomp/29986
26901 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
26902 Document fix for TLS bug.
26903
44f89620
RG
269042010-01-31 Richard Guenther <rguenther@suse.de>
26905
26906 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
26907 conservatively correct.
26908
747b0aed
JDA
269092010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26910
26911 PR target/42850
26912 Revert:
26913 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26914
26915 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
26916
362c6d2f
KG
269172010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26918
26919 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
26920
8370a62a
KT
269212010-01-31 Kai Tietz <kai.tietz@onevision.com>
26922
26923 * config.gcc: Adjust order of makefile fragments for mingw targets.
26924
61c7cbf8
RG
269252010-01-31 Richard Guenther <rguenther@suse.de>
26926
26927 PR middle-end/42898
26928 * gimplify.c (gimplify_init_constructor): For volatile LHS
26929 initialize a temporary.
26930
b0a69d20
MK
269312010-01-31 Matthias Klose <doko@ubuntu.com>
26932
26933 * configure.ac: Fix __stack_chk_fail check for cross builds configured
26934 --with-headers
26935 * configure: Regenerate.
26936
55eb4dab
EB
269372010-01-29 Eric Botcazou <ebotcazou@adacore.com>
26938
26939 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
26940 the same alias set and their sizes different constantness.
26941 (aliasing_component_refs_p): Revert 2009-10-24 change.
26942
f9e06dbc
RO
269432010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26944
26945 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
26946 unused.
26947
eb6b98c7
RG
269482010-01-29 Richard Guenther <rguenther@suse.de>
26949
26950 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
26951 Assert we successfully updated the call.
26952
c23cd1d6
JJ
269532010-01-29 Jakub Jelinek <jakub@redhat.com>
26954
26955 PR rtl-optimization/42889
26956 * df.h (df_set_bb_dirty_nonlr): New prototype.
26957 * df-core.c (df_set_bb_dirty_nonlr): New function.
26958 * df-scan.c (df_insn_rescan): Call it instead of
26959 df_set_bb_dirty for DEBUG_INSNs.
26960
38bc76da
RG
269612010-01-29 Richard Guenther <rguenther@suse.de>
26962
26963 PR middle-end/37448
26964 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
26965 quadratic behavior in most cases.
26966
d819472d
UB
269672010-01-28 Uros Bizjak <ubizjak@gmail.com>
26968
26969 PR target/42891
26970 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
26971 in the call to gen_x86_movsicc_0_m1.
26972
3ed7d068
RG
269732010-01-28 Richard Guenther <rguenther@suse.de>
26974
26975 PR tree-optimization/42871
01305d24 26976 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
3ed7d068 26977
830bc550
RG
269782010-01-28 Richard Guenther <rguenther@suse.de>
26979
26980 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
26981 into call arguments.
26982
28e5ca15
RB
269832010-01-28 Richard Guenther <rguenther@suse.de>
26984
26985 PR middle-end/42883
26986 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
26987 the forwarder if the destination is an EH landing pad.
26988
269892010-01-28 Razya Ladelsky <razya@il.ibm.com>
8adfe01d 26990
d819472d 26991 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
8adfe01d
RL
26992 block list passed to gimple_duplicate_sese_tail.
26993 (parallelize_loops): Avoid parallelization when the function
26994 has_nonlocal_label.
26995 Avoid parallelization when the preheader is IRREDUCIBLE.
26996 Try to optimize when estimated_loop_iterations_int is unresolved.
26997 Add the loop's location to the dump file.
28e5ca15 26998 * tree-cfg.c (add_phi_args_after_redirect): Remove.
8adfe01d
RL
26999 (gimple_duplicate_sese_tail): Remove the check for the latch.
27000 Redirect nexits to the exit block.
27001 Remove handling of the incoming edges to the latch.
27002 Redirect the backedge from the copied latch to the exit bb.
27003
3d952fb7
MM
270042010-01-28 Michael Matz <matz@suse.de>
27005
27006 PR target/42881
27007 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
27008 Wrap force_reg into a sequence, emit it before user.
27009
4fc2b1aa
ST
270102010-01-28 Stephen Thomas <stephen.thomas@arm.com>
27011
27012 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
27013 (arm_rev): New.
27014 (arm_legacy_rev): Likewise.
27015 (thumb_legacy_rev): Likewise.
27016
0f277ad4
JJ
270172010-01-27 Jakub Jelinek <jakub@redhat.com>
27018
27019 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
27020 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
27021 on MEM's address failed, try avoid_constant_pool_reference and
27022 recurse if it returned something different.
27023 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
27024 address, try avoid_constant_pool_reference and recurse if it
27025 returned something different.
27026 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
27027 address and avoid_constant_pool_reference returned something
27028 different, don't set have_address.
27029
fb4cbb9f
AO
270302010-01-27 Alexandre Oliva <aoliva@redhat.com>
27031
27032 PR debug/42861
27033 * var-tracking.c (val_store): Add modified argument, obey it.
27034 Adjust callers.
27035 (count_uses): Move down logging of main.
27036 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
27037 don't need resolution.
27038 (emit_notes_in_bb): Likewise.
27039
e87da263
RG
270402010-01-27 Richard Guenther <rguenther@suse.de>
27041
27042 PR middle-end/42878
27043 * tree-inline.c (remap_decl): Delay remapping of SSA name
27044 default definitions until we need them.
27045
c6d99cad
JJ
270462010-01-27 Jakub Jelinek <jakub@redhat.com>
27047
9a78eb71
JJ
27048 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27049 (rs6000_delegitimize_address): New function.
27050
e8d8f497
JJ
27051 * config/s390/s390.c (s390_delegitimize_address): Call
27052 delegitimize_mem_from_attrs.
27053
c6d99cad
JJ
27054 PR middle-end/42874
27055 * tree-inline.c (cannot_copy_type_1): Removed.
27056 (copy_forbidden): Don't forbid copying of functions containing
27057 records/unions with variable length fields.
27058
4f6fee0f
CB
270592010-01-27 Christian Bruel <christian.bruel@st.com>
27060
27061 Revert:
27062 PR target/42841
27063 * config/sh/sh.c (find_barrier): Increase length for non delayed
27064 conditional branches.
d819472d 27065
cdf6bfb7
MK
270662010-01-27 Matthias Klose <doko@ubuntu.com>
27067
27068 * configure.ac (gnu-unique-object): Fix ldd version check.
27069 * configure: Regenerate.
27070
31b21739
RO
270712010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27072
27073 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
27074 HAVE_GNU_AS value.
27075 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
27076 Test for HAVE_GNU_AS value.
27077
dc4f0670
RO
270782010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27079
27080 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
27081 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
27082 INT64_TYPE): Define.
27083 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
27084 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
27085 INT_LEAST64_TYPE): Define.
27086 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
27087 UINT_LEAST64_TYPE): Define.
27088 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
27089 INT_FAST64_TYPE): Define.
27090 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
27091 UINT_FAST64_TYPE): Define.
27092 (INTMAX_TYPE, UINTMAX_TYPE): Define.
27093 (INTPTR_TYPE, UINTPTR_TYPE): Define.
27094 (SIG_ATOMIC_TYPE): Define.
27095
a099f7d4
RG
270962010-01-26 Richard Guenther <rguenther@suse.de>
27097
27098 * df-scan.c (df_scan_set_bb_info): Remove assert.
27099 (df_insn_rescan_debug_internal): Merge asserts.
27100 (df_install_ref): Likewise.
27101 (df_mark_reg): Use bitmap_set_range.
27102 (df_hard_reg_used_p): Remove assert.
27103 (df_hard_reg_used_count): Likewise.
27104
0d9b0371
RG
271052010-01-26 Richard Guenther <rguenther@suse.de>
27106
27107 PR rtl-optimization/42685
27108 * web.c (web_main): Ignore DEBUG_INSNs.
27109
7a241624
JR
271102010-01-26 Joern Rennecke <amylaar@spamcop.net>
27111
27112 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
27113
27114 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
27115 Fix types of fndecl and arglist parameters.
27116
3333cd50
RG
271172010-01-26 Richard Guenther <rguenther@suse.de>
27118
27119 PR middle-end/42806
27120 * tree-eh.c (unsplit_eh): Skip debug insns.
27121
7f657dde
RG
271222010-01-26 Richard Guenther <rguenther@suse.de>
27123
27124 PR tree-optimization/42250
27125 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
27126
057dd91d
JJ
271272010-01-26 Jakub Jelinek <jakub@redhat.com>
27128
27129 PR fortran/42866
27130 * omp-low.c (expand_omp_sections): Only use single_pred if
27131 l2_bb is single_pred_p.
27132
69b18163
CB
271332010-01-25 Christian Bruel <christian.bruel@st.com>
27134
27135 PR target/42841
27136 * config/sh/sh.c (find_barrier): Increase length for non delayed
27137 conditional branches.
27138 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
27139
00f88f07
DM
271402010-01-24 David S. Miller <davem@davemloft.net>
27141
31b21739 27142 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
00f88f07 27143 define if not using GAS.
31b21739 27144 * config/sparc/sparc.c (sparc_elf_asm_named_section):
00f88f07
DM
27145 Likewise. Delete SECTION_MERGE code, which is only applicable
27146 when using GAS.
27147
d147cbd9
MM
271482010-01-24 Mark Mitchell <mark@codesourcery.com>
27149
27150 PR c++/42748
27151 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
27152 mangling of va_list in system headers.
27153
a90352a0
TM
271542010-01-23 Toon Moene <toon@moene.org>
27155
27156 * tree-predcom.c (combine_chains): Return NULL, not false.
27157
e96d7dd7
JR
271582010-01-23 Joern Rennecke <amylaar@spamcop.net>
27159
27160 * tree-loop-distribution.c (distribute_loop): Fix declaration and
27161 initialization of variable res to agree with return type.
27162
65c0a517
SE
271632010-01-22 Steve Ellcey <sje@cup.hp.com>
27164
27165 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
27166 * tree-sra.c: Add include of expr.h.
27167
c47987fa
JJ
271682010-01-22 Jakub Jelinek <jakub@redhat.com>
27169
27170 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
27171 insert the debug stmt on the single non-EH edge from the stmt.
27172
002cda0a
RH
271732010-01-22 Richard Henderson <rth@redhat.com>
27174
27175 PR tree-opt/42833
27176 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
27177 the RHS until after generate_subtree_copies has insertted its
27178 code before the current statement.
27179
728d406c
JR
271802010-01-22 Joern Rennecke <amylaar@spamcop.net>
27181
27182 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
27183
45bbb86d
JR
27184 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
27185
7744b697
MJ
271862010-01-21 Martin Jambor <mjambor@suse.cz>
27187
27188 PR tree-optimization/42585
27189 * tree-sra.c (struct access): New field grp_total_scalarization.
27190 (dump_access): Dump the new field.
27191 (should_scalarize_away_bitmap): New variable.
27192 (cannot_scalarize_away_bitmap): Likewise.
27193 (sra_initialize): Allocate new bitmaps.
27194 (sra_deinitialize): Free new bitmaps.
27195 (create_access_1): New function.
27196 (create_access): Parts moved to create_access_1.
27197 (type_consists_of_records_p): New function.
27198 (completely_scalarize_record): Likewise.
27199 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
27200 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
27201 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
27202 access.
27203 (analyze_all_variable_accesses): Completely scalarize small eligible
27204 records.
27205
fff08961
MJ
272062010-01-21 Martin Jambor <mjambor@suse.cz>
27207
27208 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
27209
a288b143
AH
272102010-01-21 Andrew Haley <aph@redhat.com>
27211
d819472d
UB
27212 * gcc.c (process_command): Move lang_specific_driver before
27213 setting cc_libexec_prefix.
a288b143 27214
4e62a017
RG
272152010-01-21 Richard Guenther <rguenther@suse.de>
27216
27217 PR middle-end/19988
27218 * fold-const.c (negate_expr_p): Pretend only negative
27219 real constants are easily negatable.
27220
ebf0bf7f
JJ
272212010-01-20 Janis Johnson <janis187@us.ibm.com>
27222 Jason Merrill <jason@redhat.com>
27223
27224 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
27225 (TYPE_TRANSPARENT_AGGR): this, for union and record.
27226 * calls.c (initialize argument_information): Handle it.
27227 * c-common.c (handle_transparent_union_attribute): Use new name.
27228 * c-decl.c (finish_struct): Ditto.
27229 * c-typeck.c (type_lists_compatible_p): Ditto.
27230 (convert_for_assignment): Use new name and also handle record.
27231 * function.c (aggregate_value_p): Handle it.
27232 (pass_by_reference): Ditto.
27233 (assign_parm_data_types): Ditto.
27234 * print-tree.c (print_node): Ditto.
27235 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
27236 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
27237 * tree.c (first_field): New fn.
27238
907c6efd
DK
272392010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
27240
27241 PR target/42818
27242 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
27243 even when linking statically, for now.
27244
f827f659
AO
272452010-01-20 Alexandre Oliva <aoliva@redhat.com>
27246
27247 PR debug/42715
27248 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
27249 without a cselib val.
27250 (count_uses): Accept MO_VAL_SET with no val on stores.
27251 (add_stores): Likewise.
27252
a85caf9e
JJ
272532010-01-20 Jakub Jelinek <jakub@redhat.com>
27254
27255 * var-tracking.c (check_value_val): Add a compile time assertion.
27256 (dv_is_decl_p): Simplify.
27257 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
27258 gcc_assert if ENABLE_CHECKING.
27259
4a4d4c08
AO
272602010-01-20 Alexandre Oliva <aoliva@redhat.com>
27261
27262 PR debug/42782
27263 * var-tracking.c: Include tree-flow.h.
27264 (mem_dies_at_call): New.
27265 (dataflow_set_preserve_mem_locs): Use it.
27266 (dataflow_set_remove_mem_locs): Likewise.
27267 (dump_var): Renamed from dump_variable. Adjust all callers.
27268 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
27269 * Makefile.in (var-tracking.o): Adjust deps.
27270
50e87e30
JR
272712010-01-20 Joern Rennecke <amylaar@spamcop.net>
27272
27273 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
27274
e9a8afaa
RG
272752010-01-20 Richard Guenther <rguenther@suse.de>
27276
27277 PR tree-optimization/42717
27278 * tree-ssa-dce.c (get_live_post_dom): Remove.
27279 (forward_edge_to_pdom): Take an arbitrary edge to copy
27280 degenerate PHI args from.
27281 (remove_dead_stmt): Use the first post-dominator even if it
27282 does not contain live statements as redirection destination.
27283
be2fd187
RG
272842010-01-20 Richard Guenther <rguenther@suse.de>
27285
27286 * tree-inline.c (estimate_num_insns): Handle EH builtins.
27287
1124098b
JJ
272882010-01-20 Jakub Jelinek <jakub@redhat.com>
27289
27290 * sel-sched.c (create_speculation_check): Remove set but not used
27291 variable twin.
27292 (try_transformation_cache): Remove set but not used variable ds.
27293 (calculate_privileged_insns): Remove set but not used variables
27294 cur_insn and min_spec_insn.
27295 (find_best_expr): Remove set but not used variable avail_n.
27296 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
27297 variable e.
27298 * cgraphunit.c (assemble_thunk): Remove set but not used variable
27299 false_label.
27300 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
27301 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
27302 new_scop_exit_edge.
27303
83a5ef25
FW
273042010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
27305
27306 PR bootstrap/42786
27307 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
27308 cpu types. Add support for *-sse3 cpu types.
27309 (x86_64-*-*): Ditto.
27310
b5c0899b
JJ
273112010-01-20 Jakub Jelinek <jakub@redhat.com>
27312
27313 PR middle-end/42803
27314 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
27315 argument, call initializer_constant_valid_p_1 instead of
27316 initializer_constant_valid_p, pass CACHE to it, return NULL
27317 immediately if first call returns NULL.
27318 (initializer_constant_valid_p_1): New function.
27319 (initializer_constant_valid_p): Use it.
27320
5f8f3f94
TQ
273212010-01-20 Thomas Quinot <quinot@adacore.com>
27322
27323 * tree.def (PLACEHOLDER_EXPR): Fix comment.
27324
80c35b40
JJ
273252010-01-20 Jakub Jelinek <jakub@redhat.com>
27326
27327 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
27328 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
27329 (loc_list_from_tree): Don't handle unsigned division. Handle
27330 signed modulo using DW_OP_{over,over,div,mul,minus}.
27331 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
27332 modulo instead of signed.
27333
c72ea086
DD
273342010-01-20 DJ Delorie <dj@redhat.com>
27335
27336 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
27337 (Fpa): Pass it
27338 (h8300_emit_stack_adjustment): Propogate it.
27339 (push): Pass it.
27340 (h8300_expand_prologue): Likewise.
27341 (h8300_expand_epilogue): Likewise.
27342
b61b1f17
MM
273432010-01-19 Michael Matz <matz@suse.de>
27344
27345 PR tree-optimization/41783
27346 * tree-data-ref.c (toplevel): Include flags.h.
27347 (dump_data_dependence_relation): Also dump the inputs if the
27348 result will be unknown.
27349 (split_constant_offset_1): Look through some conversions.
27350 * tree-predcom.c (determine_roots_comp): Restart a new chain if
27351 the offset from last element is too large.
27352 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
27353 (reassociate_to_the_same_stmt): Handle vector registers.
27354 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
27355 (e.g. conversions).
31b21739 27356 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
b61b1f17
MM
27357 wide_prolog_niters argument, emit widening instructions.
27358 (vect_do_peeling_for_alignment): Adjust caller, use widened
27359 variant of the iteration cound.
27360 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
27361
b3d7e191
RR
273622010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27363
b61b1f17
MM
27364 PR target/38697
27365 * config/arm/neon-testgen.m (emit_automatics): New parameter
b3d7e191
RR
27366 features. Adjust for Fixed_return_reg feature.
27367 (test_intrinsic): Call emit_automatics with new feature.
b61b1f17 27368 * config/arm/neon.ml: Update copyright years.
b3d7e191
RR
27369 (features): New Fixed_return_reg feature.
27370 (ops): Update feature for Vget_low.
27371
2178b0f9
JJ
273722010-01-19 Jakub Jelinek <jakub@redhat.com>
27373
d6600130
JJ
27374 PR tree-optimization/42719
27375 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
27376 stmt uses.
27377
2178b0f9
JJ
27378 PR debug/42728
27379 * fwprop.c (all_uses_available_at): Return false if def_set dest
27380 is a REG that is used in def_insn.
27381
ab7e224a
JR
273822010-01-19 Joern Rennecke <amylaar@spamcop.net>
27383
27384 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
27385
27386 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
27387 Add argument names.
27388
27389 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
27390
f7154d49
JR
27391 * target.h (struct gcc_target) <secondary_reload>: Change type
27392 of last argument to secondary_reload_info *.
27393
f249b405
UB
273942010-01-18 Uros Bizjak <ubizjak@gmail.com>
27395
27396 PR target/42774
27397 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
27398 memory references with unaligned offsets. Remove CQImode handling.
27399 (unaligned_memory_operand): Return 1 for memory references with
27400 unaligned offsets. Remove CQImode handling.
27401
e23817b3
RG
274022010-01-18 Richard Guenther <rguenther@suse.de>
27403
27404 PR middle-end/39954
27405 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
27406 builtin calls.
27407
1cfd38be
RG
274082010-01-18 Richard Guenther <rguenther@suse.de>
27409
27410 PR tree-optimization/42781
27411 * tree-ssa-structalias.c (find_what_var_points_to): Skip
b5e33e04 27412 restrict processing only if the original variable was artificial.
1cfd38be 27413
72392b81
JR
274142010-01-18 Joern Rennecke <amylaar@spamcop.net>
27415
27416 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
27417 find number of popped argument bytes.
27418
27419 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
27420 Fix the text that describes the return value for invalid insns.
27421
27422 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
27423
27424 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
27425 Clarify what 'cost of the -dependence' is. Fix quoting.
27426
0678ade0
JR
27427 * toplev.c (default_get_pch_validity): Rename argument to "sz".
27428 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
27429
e5165811
JJ
274302010-01-17 Jakub Jelinek <jakub@redhat.com>
27431
27432 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
27433 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
27434
3b3f318a
RG
274352010-01-17 Richard Guenther <rguenther@suse.de>
27436
27437 PR middle-end/42248
27438 * function.c (split_complex_args): Take a VEC to modify.
27439 (assign_parms_augmented_arg_list): Build a VEC instead of
27440 a chain of PARM_DECLs.
27441 (assign_parms_unsplit_complex): Take a VEC of arguments.
27442 Do not fixup unmodified parms.
27443 (assign_parms): Deal with the VEC.
27444 (gimplify_parameters): Likewise.
27445
8eacd016
RG
274462010-01-17 Richard Guenther <rguenther@suse.de>
27447
27448 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
27449 node existence check.
27450 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
27451 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
27452 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
27453 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
27454 (gimple_execute_on_growing_pred): Likewise.
27455
9adf0570
RG
274562010-01-17 Richard Guenther <rguenther@suse.de>
27457
27458 PR tree-optimization/42773
27459 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
27460 (compute_antic_aux): Likewise.
27461 (compute_partial_antic_aux): Likewise.
27462
a90110c3
JZ
274632010-01-17 Jie Zhang <jie.zhang@analog.com>
27464
27465 PR debug/42767
27466 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
27467 and US_TRUNCATE.
27468
914d25dc
JR
274692010-01-17 Joern Rennecke <amylaar@spamcop.net>
27470
27471 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
27472 appearance.
27473
27474 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
27475 Fix markup for strict argument.
27476
27477 (TARGET_SCHED_REORDER2): Fix argument types.
27478
27479 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
27480 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
27481
27482 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
27483 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
27484
27485 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
27486 Add argument name.
27487
27488 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
27489 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
27490 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
27491 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
27492 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
27493
27494 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
27495
27496 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
27497
27498 (TARGET_ASM_RELOC_RW_MASK): Add return type.
27499 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
27500
27501 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
27502
27503 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
27504 Use prototype.
27505
27506 (TARGET_ASM_NAMED_SECTION): Fix argument list.
27507
27508 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
27509 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
27510
27511 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
27512
27513 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
27514
27515 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
27516 referring to it. Fix language.
27517
27518 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
27519
27520 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
27521
27522 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
27523
27524 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
27525
27526 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
27527 '@var{stream}. Remove stray 'and'.
27528
27529 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
27530
27531 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
27532
27533 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
27534
31b21739 27535 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
914d25dc
JR
27536 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
27537
27538 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
27539 Fix description of return value.
27540 Rename argument "sz" to "len."
27541
27542 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
27543 Clarify meaning of 'true' return value.
27544
27545 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
27546
27547 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
27548 rep_mode versus mode_rep.
27549
27550 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
27551
27552 (TARGET_BUILTIN_DECL): Fix name.
27553
27554 (TARGET_COMMUTATIVE_P): Fix type of first argument.
27555
27556 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
27557
27558 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
27559
27560 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
27561
27562 (TARGET_RELAXED_ORDERING): Use @deftypevr.
27563
27564 (TARGET_GET_DRAP_RTX): Note that this is a hook.
27565 Clarify language.
27566
5eb7ce91
JR
27567 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
27568 Rename argument tm_fn to md_fn.
27569
d2143a2f
JR
27570 (TARGET_OPTION_PRINT): Fix argument list.
27571
8f7fd2da
HJ
275722010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
27573
27574 PR target/42664
27575 * config/i386/i386.c (ix86_fixup_binary_operands):
27576 Revert FMA4 fixup of operands.
27577
2fdb618d
RW
275782010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27579
27580 PR gcc/42525
27581 * Makefile.in (write_entries_to_file, install-plugin):
27582 Use \012 instead of \n with tr.
27583
636cf8b1
RS
275842010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
27585
27586 * configure.ac (HAVE_AS_REF): New C macro.
27587 * configure: Regenerate.
27588 * config.in: Likewise.
27589 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
27590 if HAVE_AS_REF.
27591 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
27592 if HAVE_AS_REF.
27593
b6fd8800
JR
275942010-01-16 Joern Rennecke <amylaar@spamcop.net>
27595
27596 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
27597
27598 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
27599
27600 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
27601
27602 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
27603
27604 (TARGET_IN_SMALL_DATA_P): Fix argument type.
27605
27606 (TARGET_BINDS_LOCAL_P): Fix argument type.
27607
27608 (TARGET_ASM_FILE_END): Use prototype.
27609
27610 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
27611
27612 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
27613
27614 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
27615
27616 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
27617
27618 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
27619 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
27620
27621 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
27622 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
27623
27624 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
27625 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
27626 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
27627 (TARGET_ADDR_SPACE_CONVERT): Likewise.
27628
27629 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
27630
27631 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
27632
27633 (TARGET_INIT_BUILTINS): Use prototype.
27634
27635 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
27636 Put 'const char *' in braces. Fix parameter types.
27637 (TARGET_INVALID_CONVERSION): Fix parameter types.
27638 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
27639 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
27640
27641 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
27642 Fix argument type.
27643
27644 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
27645
27646 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
27647
9ddb66ef
JR
276482010-01-15 Joern Rennecke <amylaar@spamcop.net>
27649
27650 * doc/tm.texi (TARGET_HELP): Fix return type.
27651
27652 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
27653 in braces. Fix argument types.
27654
27655 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
27656
27657 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
27658
27659 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
27660
27661 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
27662 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
27663
27664 (TARGET_MANGLE_TYPE): Fix argument types.
27665
27666 (TARGET_IRA_COVER_CLASSES): Use prototype.
27667
27668 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
27669
27670 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
27671
27672 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
27673
27674 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
27675
27676 (TARGET_CALLEE_COPIES): Fix argument types.
27677
27678 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
27679
27680 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
27681
27682 (TARGET_FUNCTION_VALUE): Fix argument types.
27683
27684 (TARGET_RETURN_IN_MSB): Fix argument type.
27685
27686 (TARGET_RETURN_IN_MEMORY): Fix argument types.
27687
27688 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
27689
27690 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
27691
27692 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
27693 agree with return type.
27694
27695 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
27696
4a62494d
JY
276972010-01-15 Jing Yu <jingyu@google.com>
27698
27699 PR rtl-optimization/42691
27700 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
27701 a pseudo to a constant and are merged, and adjust comments.
27702
a1b5171b
EB
277032010-01-15 Eric Botcazou <ebotcazou@adacore.com>
27704
27705 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
27706
1197e789
RG
277072010-01-15 Richard Guenther <rguenther@suse.de>
27708
27709 PR middle-end/42739
27710 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
27711 labels of computed or non-local gotos to the destination.
27712 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
27713 landing pad label is the first label.
27714
cbe80ff8
RG
277152010-01-15 Richard Guenther <rguenther@suse.de>
27716
27717 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
27718
c919858d
MM
277192010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
27720
27721 PR target/42747
27722 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
27723 to allow generation of the xssqrtdp instruction on power7.
27724 (sqrtdf2_fpr): Ditto.
27725
5b1cbe14
JJ
277262010-01-14 Jakub Jelinek <jakub@redhat.com>
27727
ef5d1181
JJ
27728 PR middle-end/42674
27729 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
27730 functions with noreturn attribute.
27731
5b1cbe14
JJ
27732 PR c++/42608
27733 * varasm.c (declare_weak): Add weak attribute to decl if it
27734 doesn't have one already.
27735 (assemble_external): Only add decls to weak_decls if they also
27736 have weak attribute.
27737
7d2a8452
AO
277382010-01-14 Alexandre Oliva <aoliva@redhat.com>
27739
27740 * var-tracking.c (var_reg_delete): Don't delete the association
27741 between REGs and values or one-part variables if the register
27742 isn't clobbered.
27743
d17af147
JJ
277442010-01-14 Jakub Jelinek <jakub@redhat.com>
27745
27746 PR debug/42657
27747 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
27748 because its first operand is a non-localized variable.
27749
2f3cdcf5
MJ
277502010-01-14 Martin Jambor <mjambor@suse.cz>
27751
27752 PR tree-optimization/42706
27753 * tree-sra.c (encountered_recursive_call): New variable.
27754 (encountered_unchangable_recursive_call): Likewise.
27755 (sra_initialize): Initialize both new variables.
27756 (callsite_has_enough_arguments_p): New function.
27757 (scan_function): Call decl and flags check only for IPA-SRA, check
27758 whether there is a recursive call and whether it has enough arguments.
27759 (all_callers_have_enough_arguments_p): New function.
27760 (convert_callers): Look for recursive calls only when
27761 encountered_recursive_call is set.
27762 (ipa_early_sra): Bail out either if
27763 !all_callers_have_enough_arguments_p or
27764 encountered_unchangable_recursive_call.
27765
c02e2d5c
AM
277662010-01-14 Alexander Monakov <amonakov@ispras.ru>
27767
27768 * sel-sched.c: Add 2010 to copyright years.
27769 * sel-sched-ir.c: Likewise.
27770 * sel-sched-ir.h: Likewise.
27771
92e97cdd
MJ
277722010-01-14 Martin Jambor <mjambor@suse.cz>
27773
27774 PR tree-optimization/42714
27775 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
27776 constructors specially.
27777
a0463099
AK
277782010-01-14 Andi Kleen <ak@linux.intel.com>
27779
27780 * config/i386/drivers-i386.c (detect_caches_intel):
27781 Add l2sizekb parameter and fill in.
27782 (host_detect_local_cpu): Add l2sizekb, fill in.
27783 Add Atom small cache heuristic.
27784
277852010-01-14 Andi Kleen <ak@linux.intel.com>
27786
27787 * config/i386/drivers-i386.c (detect_caches_cpuid4):
27788 Add level3 parameter and fill in.
27789 (detect_caches_intel): Handle level3 cache.
27790
277912010-01-14 Andi Kleen <ak@linux.intel.com>
27792
27793 * config/i386/drivers-i386.c (host_detect_local_cpu):
27794 Fix core duo detection.
27795
277962010-01-14 Andi Kleen <ak@linux.intel.com>
27797
27798 * config/i386/drivers-i386.c (host_detect_local_cpu):
27799 Fix Atom detection.
27800
dd6739e3
AM
278012010-01-14 Alexander Monakov <amonakov@ispras.ru>
27802
27803 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
27804 (rs6000_variable_issue_1): this. Use...
27805 (rs6000_variable_issue): here. Reimplement. Print debug info.
27806
7898b93b
AM
278072010-01-14 Alexander Monakov <amonakov@ispras.ru>
27808
a0463099
AK
27809 * sel-sched-ir.c (sel_restore_other_notes): Rename to
27810 sel_restore_notes. Update all callers. Call reemit_notes
27811 for all insns.
7898b93b 27812
65b659ff
AB
278132010-01-14 Andrey Belevantsev <abel@ispras.ru>
27814
27815 PR rtl-optimization/42246
27816 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
27817 loops.
27818
c6486552
AB
278192010-01-14 Andrey Belevantsev <abel@ispras.ru>
27820
27821 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
27822 all successors is the same as number of successors in current region.
27823
f07013eb
AM
278242010-01-14 Alexander Monakov <amonakov@ispras.ru>
27825
27826 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
27827 to rename is not separable. Otherwise check that its LHS is not NULL.
27828
a9ced68b
AM
278292010-01-14 Alexander Monakov <amonakov@ispras.ru>
27830
27831 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
27832
0c94f956
AM
278332010-01-14 Alexander Monakov <amonakov@ispras.ru>
27834
27835 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
27836 available registers when failed to discover LHS register class.
27837 Fix indentation. Update comment.
27838
136e01a3
AB
278392010-01-14 Andrey Belevantsev <abel@ispras.ru>
27840 Alexander Monakov <amonakov@ispras.ru>
27841
27842 PR rtl-optimization/42389
27843 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
27844 to can_issue_more.
27845 (advance_state_on_fence): Likewise.
27846 (sel_target_adjust_priority): Print debug output only when
27847 sched_verbose >= 4, not 2.
27848 (get_expr_cost): Do not issue all unique insns on the next cycle.
27849 (fill_insns): Initialize can_issue_more from the value saved
27850 with the fence.
27851 * sel-sched-ir.c (flist_add): New parameter issue_more.
27852 Init FENCE_ISSUE_MORE with it.
27853 (merge_fences): Likewise.
27854 (init_fences): Update call to flist_add.
27855 (add_to_fences, add_clean_fence_to_fences)
27856 (add_dirty_fence_to_fences): Likewise.
27857 (move_fence_to_fences): Update call to merge_fences.
27858 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
27859 sched groups.
27860 * sel-sched-ir.h (struct _fence): New field issue_more.
27861 (FENCE_ISSUE_MORE): New accessor macro.
27862
762bffba
AB
278632010-01-14 Andrey Belevantsev <abel@ispras.ru>
27864
27865 PR rtl-optimization/42388
27866 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
27867 that have no predecessors nor successors. Do not call move_bb_info
27868 for empty blocks outside of current region.
27869
14f30b87
AM
278702010-01-14 Alexander Monakov <amonakov@ispras.ru>
27871
27872 PR rtl-optimization/42294
27873 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
27874 * sel-sched.c (move_exprs_to_boundary): Transitively add all
27875 originators' originators.
27876
8ec4d0ad
AM
278772010-01-14 Alexander Monakov <amonakov@ispras.ru>
27878
27879 PR rtl-optimization/39453
27880 PR rtl-optimization/42246
27881 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
27882 for pipelining_p.
27883 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
27884
b59ab570
AM
278852010-01-14 Andrey Belevantsev <abel@ispras.ru>
27886 Alexander Monakov <amonakov@ispras.ru>
27887
27888 PR middle-end/42245
27889 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
27890 (maybe_tidy_empty_bb): ... here. Make static. Add new
27891 argument. Update all callers.
27892 (tidy_control_flow): ... and here. Recompute topological order
27893 of basic blocks in region if necessary.
27894 (sel_redirect_edge_and_branch): Change return type. Return true
27895 if topological order might have been invalidated.
27896 (purge_empty_blocks): Export and move from...
27897 * sel-sched.c (purge_empty_blocks): ... here.
27898 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
c02e2d5c 27899 (maybe_tidy_empty_bb): Delete prototype.
b59ab570
AM
27900 (purge_empty_blocks): Declare.
27901
f4a4b582 279022010-01-14 Andrey Belevantsev <abel@ispras.ru>
0666ff4e 27903
b59ab570 27904 PR rtl-optimization/42249
0666ff4e
AB
27905 * sel-sched.c (try_replace_dest_reg): When chosen register
27906 and original register is the same, do not bail out early, but
27907 still check all original insns for validity of replacing destination
27908 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
27909 in this case.
27910
5f8d5023
JJ
279112010-01-14 Jakub Jelinek <jakub@redhat.com>
27912
27913 PR c/42721
a0463099 27914 Port from no-undefined-overflow branch:
5f8d5023
JJ
27915 2009-03-09 Richard Guenther <rguenther@suse.de>
27916
a0463099 27917 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
5f8d5023 27918
429c98c9
RG
279192010-01-14 Richard Guenther <rguenther@suse.de>
27920
27921 PR lto/42665
b5e33e04 27922 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
429c98c9 27923
cd481d83
IR
279242010-01-14 Ira Rosen <irar@il.ibm.com>
27925
27926 PR tree-optimization/42709
27927 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
27928 as scalar type in creation of constant vector operand.
27929
453897b4
RW
279302010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27931
27932 PR testsuite/42414
27933 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
27934 (check-parallel-%): Match `testsuite' directory component only
27935 at the end.
27936
5bc69b92
SZ
279372010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
27938
27939 PR translation/39521
27940 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
27941 strings with _().
27942
5db959b6
RG
279432010-01-13 Richard Guenther <rguenther@suse.de>
27944
27945 PR tree-optimization/42730
27946 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
27947 offset zero.
27948
9540f5ef
SE
279492010-01-13 Steve Ellcey <sje@cup.hp.com>
27950
27951 PR target/pr42542
27952 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
27953 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
27954 them signed.
27955
84fb8ff5
BS
279562010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
27957
27958 * config/bfin/libgcc-bfin.ver: Regenerate based on current
27959 libgcc-std.ver. Add entries for ___smulsi3_highpart and
27960 ___umulsi3_highpart.
27961
6cca15ea
BS
27962 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
27963 rather than schedule_insns if the pass is enabled.
27964
19656178
MJ
279652010-01-13 Martin Jambor <mjambor@suse.cz>
27966
27967 PR tree-optimization/42704
27968 * tree-sra.c (sra_modify_assign): Do not delete assignments to
27969 SSA_NAMEs.
27970
6dc93b16
MJ
279712010-01-13 Martin Jambor <mjambor@suse.cz>
27972
27973 PR tree-optimization/42703
27974 * tree-sra.c (analyze_access_subtree): Check that we can build a
27975 reference to the original data within the aggregate.
27976
1d21a8e5
RG
279772010-01-13 Richard Guenther <rguenther@suse.de>
27978
27979 PR tree-optimization/42705
b5e33e04 27980 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
1d21a8e5 27981
48f30f62
RG
279822010-01-13 Richard Guenther <rguenther@suse.de>
27983
27984 PR middle-end/42716
27985 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
27986
9e73c690
JJ
279872010-01-13 Jakub Jelinek <jakub@redhat.com>
27988
27989 PR debug/41371
27990 * var-tracking.c (values_to_unmark): New variable.
27991 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
27992 values_to_unmark vector. Moved body to...
27993 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
27994 instead queue it into values_to_unmark vector.
27995 (vt_find_locations): Free values_to_unmark vector.
27996
dc2f28c5
WG
279972010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
27998
27999 * config/s390/s390.c (override_options): Set
28000 default of max-pending-list-length to 256
28001
688a482d
RG
280022010-01-13 Richard Guenther <rguenther@suse.de>
28003
28004 PR lto/42678
28005 * tree-pass.h (PROP_gimple_lcx): New.
28006 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
28007 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
28008 before the final cleanup_eh.
28009 (dump_properties): Dump PROP_gimple_lcx.
28010 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
28011 (tree_lower_complex_O0): Remove.
28012 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
28013 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
28014 tree_lower_complex, schedule TODO_update_ssa.
28015 * lto-streamer-out.c (output_function): Stream the functions
28016 properties.
28017 * lto-streamer-in.c (input_function): Likewise.
28018 (lto_read_body): Do not override them here.
28019
e616f54d
JM
280202010-01-12 Joseph Myers <joseph@codesourcery.com>
28021
28022 PR c/42708
28023 * c-typeck.c (build_c_cast): Fold value cast to union type before
28024 wrapping it in a CONSTRUCTOR.
28025
b4ab701f
JJ
280262010-01-12 Jakub Jelinek <jakub@redhat.com>
28027
28028 PR rtl-optimization/42699
28029 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
28030 involved.
28031
4dde664f
RO
280322010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28033
28034 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28035 SUBTARGET_WARN_UNUSED_SPEC): Move ...
28036 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28037 SUBTARGET_WARN_UNUSED_SPEC): ... here
28038 * config/mips/iris5.h (LIBGCC_SPEC): Define.
28039
24fe19c3
JB
280402010-01-12 Julian Brown <julian@codesourcery.com>
28041
a0463099 28042 * config/arm/neon-schedgen.ml (Utils): Don't try to
24fe19c3 28043 open missing module.
a0463099 28044 (find_with_result): New.
24fe19c3 28045
082ab5ff
JJ
280462010-01-12 Jakub Jelinek <jakub@redhat.com>
28047
4942b76b
JJ
28048 PR debug/42662
28049 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
28050 sharing when canonicalizing ({lt,ge}u (plus a b) b).
28051
082ab5ff
JJ
28052 PR tree-optimization/42645
28053 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
28054 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
28055 decl_map, set processing_debug_stmt to -1 and return name without
28056 any remapping.
28057
977f7997
DK
280582010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
28059
28060 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
28061 binutils version, and reword target configuration description.
28062
2685baa1
AH
280632010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
28064
a0463099 28065 * config/avr/avr.h (LINKER_NAME): Remove.
2685baa1 28066
3767f512
JJ
280672010-01-11 Janis Johnson <janis187@us.ibm.com>
28068
28069 PR target/42416
28070 * config/rs6000/rs6000.c (rs6000_override_options): On targets
28071 that support VSX, warn for -mno-altivec if vsx is not disabled,
28072 and disable vsx.
28073
f94e1d66
JM
280742010-01-11 Joseph Myers <joseph@codesourcery.com>
28075 Shujing Zhao <pearly.zhao@oracle.com>
a0463099 28076
f94e1d66
JM
28077 PR translation/42469
28078 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
28079 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
28080 character between option name and help text.
28081 * c.opt (imultilib): Likewise.
28082
06bfe1d0
RAE
280832010-01-10 Rafael Avila de Espindola <espindola@google.com>
28084
28085 * lto-streamer-out.c (output_unreferenced_globals): Output static
28086 variables.
28087
c21f33b6
SB
280882010-01-10 Steven Bosscher <steven@gcc.gnu.org>
28089
28090 PR rtl-optimization/42621
28091 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
28092 optimizing for size.
28093 (duplicate_computed_gotos): Remove now-redundant check.
28094
30ce157e
SE
280952010-01-10 Steve Ellcey <sje@cup.hp.com>
28096
28097 PR target/37454
28098 * configure.ac: Save and restore LDFLAGS and LIBS
28099 * configure: Regenerate.
28100
ab996409
RG
281012010-01-10 Richard Guenther <rguenther@suse.de>
28102
28103 PR middle-end/42667
28104 * builtins.c (fold_builtin_strlen): Add type argument and
28105 convert the resulting length to it.
28106 (fold_builtin_1): Adjust.
28107
7234a615
JJ
281082010-01-09 Jakub Jelinek <jakub@redhat.com>
28109
28110 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
28111 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
28112 1 insn.
28113 (num_insns_constant_wide): Adjust for that change.
28114
994ae26c
AO
281152010-01-09 Alexandre Oliva <aoliva@redhat.com>
28116
28117 PR debug/42631
28118 * web.c (union_defs): Add used argument, to combine uses of
28119 uninitialized regs.
28120 (entry_register): Adjust type and tests of used argument.
28121 (web_main): Widen used for new use. Pass it to union_defs.
28122 * df.h (union_defs): Adjust prototype.
28123
60c48e4c
AO
281242010-01-09 Alexandre Oliva <aoliva@redhat.com>
28125
28126 PR debug/42630
28127 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
28128 uses in new incoming argument. Free body.
28129 (reset_debug_uses_in_loop): New.
28130 (analyze_insn_to_expand_var): Call the latter if the former found
28131 anything. Fix whitespace. Reject invalid dest overlaps before
28132 going through all insns in the loop.
28133
bb956f3e
AO
281342010-01-09 Alexandre Oliva <aoliva@redhat.com>
28135
28136 PR debug/42629
28137 * haifa-sched.c (dying_use_p): Debug insns don't count.
28138
5de8da9b
AO
281392010-01-09 Alexandre Oliva <aoliva@redhat.com>
28140
28141 PR middle-end/42363
28142 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
28143 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
28144 (verify_gimple_call): Reject LHS in noreturn calls.
28145
684f25f4
AO
281462010-01-09 Alexandre Oliva <aoliva@redhat.com>
28147
28148 PR debug/42604
28149 PR debug/42395
28150 * tree-vect-loop-manip.c (adjust_info): New type.
28151 (adjust_vec): New pointer to vector.
28152 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
28153 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
28154 (slpeel_update_phis_for_duplicate_loop): Use them.
28155 (slpeel_update_phi_nodes_for_guard1): Likewise.
28156 (slpeel_update_phi_nodes_for_guard2): Likewise.
28157 (slpeel_tree_peel_loop_to_edge): Likewise.
28158 (vect_update_ivs_after_vectorizer): Likewise.
28159
0e00563c
AO
281602010-01-09 Alexandre Oliva <aoliva@redhat.com>
28161
28162 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
28163 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
28164
0ce659eb
AO
281652010-01-09 Alexandre Oliva <aoliva@redhat.com>
28166
28167 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
28168 bogus uninitialized warning.
28169
73c865fa
RG
281702010-01-09 Richard Guenther <rguenther@suse.de>
28171
28172 PR middle-end/42512
28173 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
28174 the evolution is compatible with the initial condition.
28175
bd5c3aa5
JJ
281762010-01-09 Jakub Jelinek <jakub@redhat.com>
28177
28178 * gcc.c (process_command): Update copyright notice dates.
28179 * gcov.c (print_version): Likewise.
28180 * gcov-dump.c (print_version): Likewise.
28181 * mips-tfile.c (main): Likewise.
28182 * mips-tdump.c (main): Likewise.
28183
58f0ea2f
AH
281842010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
28185
28186 PR target/41885
2685baa1 28187 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
58f0ea2f
AH
28188 (rotlhi3): Delete.
28189 (rotlhi3_8): Delete.
28190 (rotlsi3): Delete.
28191 (rotlsi3_8): Delete.
28192 (rotlsi3_16): Delete.
28193 (rotlsi3_24): Delete.
28194 (rotl<mode>3): New.
28195 (*rotw<mode>3): New.
28196 (*rotb<mode>3): New.
2685baa1 28197 * config/avr/avr.c (avr_rotate_bytes): New function.
a0463099 28198 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
58f0ea2f 28199
601fc26e
SE
282002010-01-08 Steve Ellcey <sje@cup.hp.com>
28201
28202 PR target/37454
28203 * configure.ac: Modify -rdynamic check.
28204 * configure: Regenerate.
28205
6a62ca52
DD
282062010-01-08 DJ Delorie <dj@redhat.com>
28207
28208 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
28209 register popping order.
28210
c59449fa
RG
282112010-01-08 Richard Guenther <rguenther@suse.de>
28212
28213 PR lto/42528
28214 * c.opt (fsigned-char): Also let LTO handle this option.
28215 (funsigned-char): Likewise.
28216
f68a75df
RG
282172010-01-07 Richard Guenther <rguenther@suse.de>
28218
28219 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
28220 (gimple_op): Likewise.
28221 (gimple_op_ptr): Likewise.
28222 (gimple_assign_set_lhs): Remove gcc_assert.
28223 (gimple_assign_set_rhs1): Likewise.
28224 (gimple_assign_set_rhs2): Likewise.
28225 (gimple_call_set_lhs): Likewise.
28226 (gimple_call_set_fn): Likewise.
28227 (gimple_call_set_fndecl): Likewise.
28228 (gimple_call_fndecl): Likewise.
28229 (gimple_call_return_type): Likewise.
28230 (gimple_call_set_chain): Likewise.
28231 (gimple_call_num_args): Likewise.
28232 (gimple_call_set_arg): Likewise.
28233 (gimple_cond_set_code): Likewise.
28234 (gimple_cond_set_lhs): Likewise.
28235 (gimple_cond_set_rhs): Likewise.
28236 (gimple_cond_set_true_label): Likewise.
28237 (gimple_cond_set_false_label): Likewise.
28238 (gimple_label_set_label): Likewise.
28239 (gimple_goto_set_dest): Likewise.
28240 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
28241 (gimple_debug_bind_get_value): Likewise.
28242 (gimple_debug_bind_get_value_ptr): Likewise.
28243 (gimple_debug_bind_set_var): Likewise.
28244 (gimple_debug_bind_set_value): Likewise.
28245 (gimple_debug_bind_reset_value): Likewise.
28246 (gimple_debug_bind_has_value_p): Likewise.
28247 (gimple_return_retval_ptr): Remove gcc_assert.
28248 (gimple_return_retval): Likewise.
28249 (gimple_return_set_retval): Likewise.
28250 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
28251 (safe_referenced_var_iterator): Remove.
28252 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
28253 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
28254 (fill_referenced_var_vec): Remove.
28255 (first_readonly_imm_use): Remove redundant gcc_assert.
28256 (phi_arg_index_from_use): Combine gcc_asserts.
28257 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
28258 (first_imm_use_stmt): Remove redundant gcc_assert.
28259 * tree-cfg.c (verify_gimple_call): Verify function and chain
28260 operands. Verify arguments.
28261 (verify_types_in_gimple_stmt): Verify condition code and labels.
28262
617531d9
RG
282632010-01-07 Richard Guenther <rguenther@suse.de>
28264
28265 PR tree-optimization/42641
28266 * sese.c (rename_map_elt_info): Use the SSA name version, do
28267 not hash pointers.
28268
4139c7ef
JJ
282692010-01-07 Jakub Jelinek <jakub@redhat.com>
28270
28271 PR tree-optimization/42625
28272 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
b5e33e04 28273 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
4139c7ef 28274
01094033
DS
282752010-01-07 Duncan Sands <baldrick@free.fr>
28276
28277 * Makefile.in (PLUGIN_HEADERS): Add version.h.
28278
4b9ed9aa
UB
282792010-01-07 Uros Bizjak <ubizjak@gmail.com>
28280
28281 PR target/42511
28282 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
28283 note itself is not function_invariant_p.
28284
f50f5566
SB
282852009-01-07 Steven Bosscher <steven@gcc.gnu.org>
28286
28287 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
28288 Do not add the DF_NOTE problem.
28289 * store-motion.c (execute_rtl_store_motion): Likewise.
28290
d05fe940
MJ
282912010-01-07 Martin Jambor <mjambor@suse.cz>
28292
28293 PR tree-optimization/42157
28294 * tree-sra.c (compare_access_positions): Stabilize sort if both
28295 accesses have integer types, return zero immediately if they are the
28296 same.
28297
e67271bd
RH
282982010-01-06 Richard Henderson <rth@redhat.com>
28299
28300 PR middle-end/41883
28301 * haifa-sched.c (add_to_note_list): Merge into ...
28302 (concat_note_lists): ... here, and ...
28303 (unlink_other_notes, rm_other_notes): Merge into...
28304 (remove_notes): ... here. Create REG_SAVE_NOTEs for
a0463099 28305 NOTE_INSN_EPILOGUE_BEG.
e67271bd 28306
6209a13e
RG
283072010-01-06 Richard Guenther <rguenther@suse.de>
28308
28309 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
28310 not inline regular functions into always-inline functions.
28311
5f75e477
NC
283122010-01-06 Nick Clifton <nickc@redhat.com>
28313
28314 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
28315 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
28316 used together.
28317 (OVERRIDE_OPTIONS): Delete.
28318 (OPTIMIZATION_OPTIONS): Define.
28319 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
28320 * config/rx/rx.c (rx_handle_option): Issue an error message if
28321 -mcpu=rx200 and -fpu are used together.
28322 (rx_set_optimization_options): New function. Issue an error
28323 message if an optimization attribute attempts to reset the FPU/
28324 math optimization pairing.
28325 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
28326 * config/rx/rx.opt: Set the default to 32-bit doubles.
28327 * config/rx/t-rx: Add multilibs for -nofpu option.
28328 * doc/invoke.texi: Update documentation of RX options.
28329
13de9095
RG
283302010-01-06 Richard Guenther <rguenther@suse.de>
28331
28332 * tree-ssa-pre.c (name_to_id): New global.
28333 (alloc_expression_id): Simplify SSA name handling.
28334 (lookup_expression_id): Likewise.
28335 (init_pre): Zero name_to_id.
28336 (fini_pre): Free it.
28337
786c3fbc
UB
283382010-01-06 Uros Bizjak <ubizjak@gmail.com>
28339
28340 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
28341
fa1a4144
L
283422010-01-05 H.J. Lu <hongjiu.lu@intel.com>
28343
28344 PR target/42542
28345 * config/i386/sse.md (smaxv2di3): New.
28346 (umaxv2di3): Likewise.
28347 (sminv2di3): Likewise.
28348 (uminv2di3): Likewise.
28349
208384fd
EB
283502010-01-05 Eric Botcazou <ebotcazou@adacore.com>
28351
28352 PR target/42564
28353 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
28354 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
28355 (legitimize_tls_address): Likewise.
28356 (sparc_tls_referenced_p): Likewise.
28357 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
28358 and adjust calls to legitimize_pic_address.
28359 (legitimate_constant_p) Use sparc_tls_referenced_p.
28360 (legitimate_pic_operand_p): Likewise.
28361 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
28362 (sparc_tls_symbol_ref_1): Delete.
28363 (sparc_tls_referenced_p): Make static, recognize specific patterns.
28364 (legitimize_tls_address): Make static, handle CONST patterns.
28365 (legitimize_pic_address): Make static, remove unused parameter and
28366 adjust recursive calls.
28367 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
28368 and adjust call to legitimize_pic_address.
28369 (sparc_output_mi_thunk): Likewise.
28370
4b9ed9aa 283712010-01-05 Paolo Bonzini <bonzini@gnu.rg>
43d4b97d
L
28372 H.J. Lu <hongjiu.lu@intel.com>
28373
28374 PR target/42542
28375 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
28376 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
28377 operands to make them signed.
28378
931c6b3e
UB
28379 Revert:
28380 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
28381
28382 PR target/42542
28383 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28384 GTU to GT for V4SI and V2DI.
28385
28386 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28387 (umin<mode>3): Removed.
28388 (uminv8hi3): New.
43d4b97d
L
28389 (uminv4si3): Likewise.
28390
9bf4cdf5
MJ
283912010-01-05 Martin Jambor <mjambor@suse.cz>
28392
28393 PR tree-optimization/42462
28394 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
28395 current_function_decl to helper functions and macros.
28396
6a4d4e8a
RO
283972010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28398
28399 PR bootstrap/41771
28400 * flags.h: Don't include real.h.
28401 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
28402 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
28403 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
28404 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
28405 * dominance.c: Update copyright.
28406 * gimple.c (walk_gimple_op): Remove inline.
28407 * tree-ssa-reassoc.c: Include real.h.
28408 * Makefile.in (FLAGS_H): Remove $(REAL_H).
28409 (tree-ssa-reassoc.o): Depend on $(REAL_H).
28410
105249d1
NC
284112010-01-05 Nick Clifton <nickc@redhat.com>
28412
28413 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
28414 register to push into the stack frame when the accumulator has to
28415 be saved during interrupts.
28416
bc3c12a2
EF
284172010-01-05 Eric Fisher <joefoxreal@gmail.com>
28418
28419 * doc/invoke.texi: Remove the documentation about option
28420 -Wunreachable-code.
28421 * common.opt (Wunreachable-code): Preserved for backward
28422 compatibility.
28423 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
28424 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
28425 the backward compatibility flag section.
28426
1befacc8
RG
284272010-01-05 Richard Guenther <rguenther@suse.de>
28428
28429 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
28430
566f27e4
JJ
284312010-01-05 Jakub Jelinek <jakub@redhat.com>
28432
7604eb4e
JJ
28433 PR other/42611
28434 * cfgexpand.c (expand_one_var): Diagnose too large variables.
28435
566f27e4
JJ
28436 PR tree-optimization/42508
28437 * tree-sra.c (convert_callers): Check for recursive call
28438 by comparing cgraph nodes instead of decls.
28439 (modify_function): Call ipa_modify_formal_parameters also
28440 on all same_body aliases.
28441
28442 * cgraphunit.c (cgraph_materialize_all_clones): Compare
28443 cgraph nodes when checking for same_body aliases.
28444
5f5126d6
RG
284452010-01-05 Richard Guenther <rguenther@suse.de>
28446
28447 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
28448 allocation and lookup.
28449 (get_or_alloc_expr_for_constant): Likewise.
28450 (phi_translate): Sink allocation.
28451
a7d04a53
RG
284522010-01-04 Richard Guenther <rguenther@suse.de>
28453
28454 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
28455 a new entry only if needed.
28456 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
28457 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
28458 hashtable lookup.
28459 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
28460 the result array.
28461 (phi_translate): Handle CONSTANTs early.
28462
caee6ca1
MJ
284632010-01-04 Martin Jambor <mjambor@suse.cz>
28464
28465 PR tree-optimization/42398
28466 * tree-sra.c (struct access): Removed flag grp_different_types.
28467 (dump_access): Do not dump the removed flag.
28468 (sort_and_splice_var_accesses): Do not set the removed flag.
28469 (sra_modify_expr): Check for type compatibility directly.
28470
438789ff
MJ
284712010-01-04 Martin Jambor <mjambor@suse.cz>
28472
28473 PR tree-optimization/42366
28474 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
28475 edges with variable number of parameters.
28476 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
28477 flag instead of asserting it.
28478 (ipa_read_node_info): Read uses_analysis_done flag.
28479
9708c51d
RG
284802010-01-04 Richard Guenther <rguenther@suse.de>
28481
28482 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
28483 iterative_hash_* as intended.
28484 (vn_reference_compute_hash): Likewise. Simplify hashing
28485 SSA names.
28486 (vn_reference_lookup_2): Likewise.
28487 (vn_nary_op_compute_hash): Likewise.
28488 (vn_phi_compute_hash): Likewise.
28489 (expressions_equal_p): Remove strange code.
28490 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
28491 (pre_expr_hash): Likewise. Simplify hashing SSA names.
28492 (bitmap_insert_into_set_1): Take value-id as parameter.
28493 (add_to_value): Pass it.
28494 (bitmap_insert_into_set): Likewise.
28495 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
28496
94b90527
JJ
284972010-01-04 Jakub Jelinek <jakub@redhat.com>
28498
28499 PR driver/42442
28500 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
28501 (do_self_spec): For switches with SWITCH_IGNORE set set also
28502 SWITCH_IGNORE_PERMANENTLY.
28503 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
28504 of SWITCH_IGNORE.
28505
785ca514
RAE
285062010-01-04 Rafael Avila de Espindola <espindola@google.com>
28507
28508 * lto-streamer-out.c (output_unreferenced_globals): Output the full
28509 tree of an unreferenced global var.
28510
22554cf9
L
285112010-01-04 H.J. Lu <hongjiu.lu@intel.com>
28512
28513 PR target/42542
28514 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28515 GTU to GT for V4SI and V2DI.
28516
28517 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28518 (umin<mode>3): Removed.
28519 (uminv8hi3): New.
28520 (uminv4si3): Likewise.
28521
7152f51e
L
285222010-01-04 H.J. Lu <hongjiu.lu@intel.com>
28523
28524 PR lto/42581
28525 * collect2.c (main): Turn on trace in collect2 if -v is passed
28526 to gcc with LTO.
28527
f4262155
JQ
285282010-01-03 Jerry Quinn <jlquinn@optonline.net>
28529
28530 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
28531 description of expression operand.
28532
55bcd32b
AJ
285332010-01-03 Andrew Jenner <andrew@codesourcery.com>
28534
28535 * configure.ac: Add install-html to target_list for Make-hooks.
28536 * configure: Regenerate.
28537 * fortran/Make-lang.in (F95_HTMLFILES): New.
28538 (fortran.html): Use it.
28539 (fortran.install-html): New.
28540 * Makefile.in (install-html): Add lang.install-html.
28541 * java/Make-lang.in (JAVA_HTMLFILES): New.
28542 (java.html): Use it.
28543 (java.install-html): New.
28544 * objc/Make-lang.in (objc.install-html): New.
28545 * objcp/Make-lang.in (obj-c++.install-html): New.
28546 * cp/Make-lang.in (c++.install-html): New.
28547 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
28548 * lto/Make-lang.in (lto.install-html): New.
28549
f0d61983
L
285502010-01-03 H.J. Lu <hongjiu.lu@intel.com>
28551
28552 PR lto/42520
28553 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
28554
2ad1dda0
SB
285552009-01-03 Steven Bosscher <steven@gcc.gnu.org>
28556
28557 PR rtl-optimization/41862
28558 * store-motion.c (store_killed_in_insn, compute_store_table,
28559 remove_reachable_equiv_notes, replace_store_insn,
28560 build_store_vectors): Ignore all DEBUG_INSNs.
28561
d7fb0a6d
L
285622010-01-03 H.J. Lu <hongjiu.lu@intel.com>
28563
28564 PR lto/41564
28565 * common.opt: Add dumpdir.
28566
28567 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
28568 isn't specified.
28569 (option_map): Add --dumpdir.
28570
28571 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
28572
28573 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
28574
28575 * opts.c (decode_options): Try dump_dir_name first if
28576 dump_base_name isn't an absolute path.
28577 (common_handle_option): Handle OPT_dumpdir.
28578
28579 * toplev.c (dump_dir_name): New.
28580 (print_switch_values): Also ignore -dumpdir.
28581
28582 * toplev.h (dump_dir_name): New.
28583
ba1ee228
RG
285842010-01-03 Richard Guenther <rguenther@suse.de>
28585
28586 PR tree-optimization/42589
28587 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
28588 double-word expansion of bswap32.
28589
b0de17ef
SB
285902010-01-03 Steven Bosscher <steven@gcc.gnu.org>
28591
28592 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
28593 with BLOCK_FOR_INSN.
28594 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
28595 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
28596 noce_process_if_block): Likewise.
28597 * gcse.c (compute_local_properties, insert_expr_in_table,
28598 insert_set_in_table, canon_list_insert, find_avail_set,
28599 pre_insert_copy_insn): Likewise.
28600
28601 * basic-block.h (BLOCK_NUM): Move from here...
28602 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
28603
a19eb9d2
RG
286042010-01-03 Richard Guenther <rguenther@suse.de>
28605
28606 PR tree-optimization/42438
28607 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
28608 contains_may_not_return_call flag.
28609 (BB_MAY_NOTRETURN): New.
28610 (valid_in_sets): Trapping nary operations are not valid
28611 in blocks that may not return.
b5e33e04 28612 (insert_into_preds_of_block): Remove check for trapping expressions.
a19eb9d2
RG
28613 (compute_avail): Compute also BB_MAY_NOTRETURN.
28614
c41b7b13
GP
286152010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
28616
28617 * doc/invoke.texi: Add 2010 to copyright years.
28618
4900aa61
EB
286192010-01-03 Eric Botcazou <ebotcazou@adacore.com>
28620
28621 * config/sparc/sparc.c: Fix formatting nits.
28622
711a778c 286232010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
77102854 28624 Alexander Monakov <amonakov@ispras.ru>
711a778c
GP
28625
28626 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
28627
1d86f5e9
RG
286282010-01-02 Richard Guenther <rguenther@suse.de>
28629
28630 PR middle-end/42577
28631 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
28632 (simplify_switch_using_ranges): Mark to be removed edges
28633 as non-executable.
28634
91e1a80a
JDA
286352010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
28636
b86799ba
JDA
28637 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
28638
91e1a80a
JDA
28639 * collect2.c (scan_libraries): Add missing argument in call to
28640 scan_prog_file.
28641
286422010-01-02 Uros Bizjak <ubizjak@gmail.com>
28643
28644 PR target/42448
28645 * config/alpha/predicates.md (aligned_memory_operand): Return false
28646 for CQImode.
28647 (unaligned_memory_operand): Return true for CQImode.
28648 * config/alpha/alpha.c (get_aligned_mem): Assert that location
28649 doesn not cross aligned SImode word boundary.
28650
286512010-01-02 Anatoly Sokolov <aesok@post.ru>
28652
28653 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
28654 Remove.
28655 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
28656 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
28657
286582010-01-02 Richard Guenther <rguenther@suse.de>
28659
28660 PR lto/41597
28661 * toplev.c (compile_file): Emit LTO marker properly. Change
28662 it to __gnu_lto_v1.
28663 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
5a013dc4 28664
aecd4d81
RG
286652010-01-01 Richard Guenther <rguenther@suse.de>
28666
28667 PR debug/42455
02143d0b 28668 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
aecd4d81 28669
e4a95933
RG
286702010-01-01 Richard Guenther <rguenther@suse.de>
28671
28672 PR c/42570
28673 * c-decl.c (grokdeclarator): For zero-size arrays force
28674 structural equality checks as layout_type does.
28675
0bdf1263
L
286762010-01-01 H.J. Lu <hongjiu.lu@intel.com>
28677
28678 * builtins.c: Update copyright to 2010.
28679
91539475 286802010-01-01 H.J. Lu <hongjiu.lu@intel.com>
8589115b
DK
28681
28682 PR lto/42531
91539475 28683 * lto-streamer-out.c (produce_asm): Revert the last change.
8589115b
DK
28684 (copy_function): Likewise.
28685
91539475
L
28686 * lto-streamer.c (lto_get_section_name): Skip any leading
28687 asterisk in name.
20cdc2be 28688
91539475 286892010-01-01 Richard Guenther <rguenther@suse.de>
cf9eb565 28690
91539475
L
28691 PR middle-end/42559
28692 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
28693 for LABEL_DECLs.
ad41bd84
JM
28694
28695\f
91539475 28696Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
28697
28698Copying and distribution of this file, with or without modification,
28699are permitted in any medium without royalty provided the copyright
28700notice and this notice are preserved.