]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR debug/23205 ([C++/unit-at-a-time] stabs debug info omitted for global const...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
e44dbbe1
RO
12011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2
3 * config.gcc (i[3456x]86-*-netware*): Remove.
4
5 * gthr-nks.h: Remove.
6 * configure.ac (enable_threads): Remove nks.
7 * configure: Regenerate.
8
9 * config/i386/i386.c (ix86_encode_section_info): Remove netware
10 reference.
11 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
12 <netware.h> reference.
13
14 * config/i386/netware-libgcc.c,
15 gcc/config/i386/netware-libgcc.def,
16 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
17 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
18 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
19 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
20
21 * doc/extend.texi (Function Attributes,
22 callee_pop_aggregate_return): Remove i?86-netware reference.
23 * doc/install.texi (Configuration, --enable-threads): Remove nks.
24
fd862017
JDA
252011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26
27 PR target/49746
28 Revert:
29 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30
31 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
32 patterns.
33
1ff24749
EB
342011-07-17 Eric Botcazou <ebotcazou@adacore.com>
35
36 PR middle-end/49732
37 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
38
a4a2c37d
MK
392011-07-16 Matthias Klose <doko@ubuntu.com>
40
41 * doc/install.texi: Document --enable-static-libjava.
42
ea6136a2
RH
432011-07-15 Richard Henderson <rth@redhat.com>
44
45 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
46 Replace all three arguments by returning a VEC of edges.
47 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
48 pointers and counts.
49 (fix_edges_for_rarely_executed_code): Merge ...
50 (rest_of_handle_partition_blocks): ... into...
51 (partition_hot_cold_basic_blocks): ... here. Return todo items if
52 any work was performed.
53 (pass_partition_blocks): Clear todo_flags_finish.
54
6545e33e
PC
552011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
56 Jakub Jelinek <jakub@redhat.com>
57 Jonathan Wakely <jwakely.gcc@gmail.com>
58
59 PR libstdc++/49745
60 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
61 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
62
6feeed06
JM
632011-07-15 Jason Merrill <jason@redhat.com>
64
65 PR testsuite/49741
66 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
67 rather than --tool_opts.
68
44762055
BS
692011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
70
71 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 72 corresponding gtype.state.
44762055 73
1be0310c
JDA
742011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
75
76 PR target/49723
77 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
78
12c5ffe5
EB
792011-07-15 Eric Botcazou <ebotcazou@adacore.com>
80
81 PR target/48220
82 * doc/md.texi (Standard Names): Document window_save.
83 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
84 expand_debug_expr and expand_debug_source_expr. If the target has
85 a window_save instruction, adjust the ENTRY_VALUE_EXP.
86 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
87 SSA_NAME_VAR is a parameter.
88 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
89 * var-tracking.c (parm_reg_t): New type and associated vector type.
90 (windowed_parm_regs): New variable.
91 (adjust_insn): If the target has a window_save instruction and this
92 is the instruction, make its effect on parameter registers explicit.
93 (next_non_note_insn_var_location): New function.
94 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
95 (vt_add_function_parameter): If the target has a window_save insn,
96 adjust the incoming RTL and record that in windowed_parm_regs.
97 (vt_finalize): Free windowed_parm_regs.
98
bcead286
BS
992011-07-15 Bernd Schmidt <bernds@codesourcery.com>
100
101 * doc/invoke.texi (C6X Options): New section.
102 * doc/md.texi (TI C6X family): New section.
103 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
104 tic6x-*-uclinux.
105 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
106 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
107 Provide C6X definitions.
108 * config/c6x/c6x.md: New file.
109 * config/c6x/constraints.md: New file.
110 * config/c6x/predicates.md: New file.
111 * config/c6x/c6x-sched.md.in: New file.
112 * config/c6x/c6x-sched.md: New file.
113 * config/c6x/gensched.sh: New file.
114 * config/c6x/c6x-mult.md.in: New file.
115 * config/c6x/genmult.sh: New file.
116 * config/c6x/c6x-mult.md: New file.
117 * config/c6x/sync.md: New file.
118 * config/c6x/c6x-protos.h: New file.
119 * config/c6x/sfp-machine.h: New file.
120 * config/c6x/c6x.c: New file.
121 * config/c6x/c6x.h: New file.
122 * config/c6x/crti.s: New file.
123 * config/c6x/crtn.s: New file.
124 * config/c6x/lib1funcs.asm: New file.
125 * config/c6x/c6x-modes.def: New file.
126 * config/c6x/genopt.sh: New file.
127 * config/c6x/c6x.opt: New file.
128 * config/c6x/c6x-tables.opt: New file.
129 * config/c6x/c6x-opts.h: New file.
130 * config/c6x/c6x-isas.def: New file.
131 * config/c6x/elf.h: New file.
132 * config/c6x/elf-common.h: New file.
133 * config/c6x/uclinux-elf.h: New file.
134 * config/c6x/t-c6x: New file.
135 * config/c6x/t-c6x-elf: New file.
136 * config/c6x/t-c6x-uclinux: New file.
137 * config/c6x/t-c6x-softfp: New file.
138 * config/c6x/gtd.c: New file.
139 * config/c6x/gtf.c: New file.
140 * config/c6x/ltd.c: New file.
141 * config/c6x/ltf.c: New file.
142 * config/c6x/ged.c: New file.
143 * config/c6x/gef.c: New file.
144 * config/c6x/led.c: New file.
145 * config/c6x/lef.c: New file.
146 * config/c6x/eqd.c: New file.
147 * config/c6x/eqf.c: New file.
148 * config/c6x/libgcc-c6xeabi.ver: New file.
149
aef0e7a8
BS
150 Revert
151 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
152 PR rtl-optimization/11320
153 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
154 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
155 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
156 current_sched_info->compute_jump_reg_dependencies. Record which
157 registers are used and which registers are set by the jump.
158 Clear deps->reg_conditional_sets after a barrier.
159 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
160 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
161 (init_deps): Initialize reg_conditional_sets.
162 (free_deps): Clear reg_conditional_sets.
163 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
164 Mark registers live on entry of the fallthrough block and conditionally
165 set as set by the jump. Mark registers live on entry of non-fallthrough
166 blocks as used by the jump.
167 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
168 Mark new parameters as unused.
169
9bed2f0d
AP
1702011-07-14 Andrew Pinski <pinskia@gmail.com>
171
172 PR tree-opt/49309
173 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
174 Use fold_build2_loc instead of build2.
175 Use the correct type for the new tree.
176
1f88caaa
BS
1772011-07-14 Bernd Schmidt <bernds@codesourcery.com>
178
179 PR rtl-optimization/11320
180 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
181 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
182
d772f97c 1832011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 184
d772f97c
GJL
185 PR target/49487
186 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
187 of REG.
188 (*rotw<mode>): Use const_int_operand for operand2.
189 Use match_scatch for operand3.
190 (*rotb<mode>): Ditto
191 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
192
1a5d20a4
RG
1932011-07-14 Richard Guenther <rguenther@suse.de>
194
195 PR tree-optimization/49651
196 * tree-ssa-structalias.c (get_constraint_for_1): Properly
197 handle dereferences with subvariables.
198
5fbcc0ed
RG
1992011-07-14 Richard Guenther <rguenther@suse.de>
200
201 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
202 (fold_stmt_1): Do it here directly on gimple and as a first thing.
203
fbf3fee2
RG
2042011-07-14 Richard Guenther <rguenther@suse.de>
205
206 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
207 not bool_var when folding bool_var != 1 or bool_var == 0.
208
b953c2b8
BS
2092011-07-14 Bernd Schmidt <bernds@codesourcery.com>
210
211 * haifa-sched.c (schedule_insns): Remove outdated comment.
212 (schedule_block): When computing a known value for TODO_SPEC,
213 just set it rather than using logical operations.
214 (try_ready): Likewise. Use a local variable rather than a
215 pointer to TODO_SPEC. Reorder an if statement to move the
216 easy case to the then block.
217 * sched-deps.c (dep_spec_p): New static function.
218 (update_dep): Use it to decide whether to call
219 change_spec_dep_to_hard.
220 (get_back_and_forw_lists): Use it.
221 (sd_resolve_dep): Likewise.
222 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
223 (haifa_note_mem_dep): Likewise.
224 (check_dep): Likewise.
225 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
226 (sched_free_deps): Free in two passes.
227
1f098f07
RS
2282011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
229
230 PR middle-end/49736
231 * expr.c (all_zeros_p): Undo bogus part of last change.
232
73059910
MK
2332011-07-14 Matthias Klose <doko@ubuntu.com>
234
235 * doc/extend.texi (optimize attribute): Fix typo.
236
bd5d002e
RG
2372011-07-14 Richard Guenther <rguenther@suse.de>
238
239 * gimplify.c (gimplify_expr): Only do required conversions.
240
eb1dcdff
GJL
2412011-07-14 Georg-Johann Lay <avr@gjlay.de>
242
243 PR target/43746
244 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
245 i.e. use default_elf_select_section.
246 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
247 (READONLY_DATA_SECTION_ASM_OP): Remove.
248 (TARGET_ASM_NAMED_SECTION): Move from here...
249 * config/avr/avr.c: ...to here.
250 (avr_asm_init_sections): Set unnamed callback of
251 readonly_data_section.
252 (avr_asm_named_section): Make static.
253
d31fb329
RO
2542011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
255
256 PR bootstrap/49739
257 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtp
258 rec80.o crtfastmath.o for Linux/x86.
259
26965010
BS
2602011-07-14 Bernd Schmidt <bernds@codesourcery.com>
261
262 * haifa-sched.c: Include "hashtab.h"
263 (sched_no_dce): New global variable.
264 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
265 SHADOW_P): New macros.
266 (last_clock_var, cycle_issued_insns): Move declarations.
267 (must_backtrack): New static variable.
268 (struct delay_pair): New structure.
269 (delay_htab, delay_htab_i2): New static variables.
270 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
271 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
272 functions.
273 (dep_cost_1): If delay pairs exist, try to look up the insns and
274 use the correct pair delay if we find them.
275 (rank-for_schedule): Tweak priority for insns that must be scheduled
276 soon to avoid backtracking.
277 (queue_insn): Detect conditions which force backtracking.
278 (ready_add): Likewise.
279 (struct sched_block_state): Add member shadows_only_p.
280 (struct haifa_save_data): New structure.
281 (backtrack_queue): New static variable.
282 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
283 unschedule_insns_until, restore_last_backtrack_point,
284 free_topmost_backtrack_point, free_backtrack_queue,
285 estimate_insn_tick, estimate_shadow_tick): New functions.
286 (prune_ready_list): New arg shadows_only_p. All callers changed.
287 If true, remove everything that isn't SHADOW_P. Look up delay
288 pairs and estimate ticks to avoid scheduling the first insn too
289 early.
290 (verify_shadows): New function.
291 (schedule_block): Add machinery to enable backtracking.
292 (sched_init): Take sched_no_dce into account when setting
293 DF_LR_RUN_DCE.
294 (free_delay_pairs): New function.
295 (init_h_i_d): Initialize INSN_EXACT_TICK.
296 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
297 * sched-deps.c (sd_unresolve_dep): New function.
298 * sched-int. (struct haifa_sched_info): New fields save_state
299 and restore_state.
300 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
301 feeds_backtrack_insn and shadow_p.
302 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
303 (sched_no_dce): Declare variable.
304 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
305 sd_unresolve_dep): Declare functions.
306 * modulo-sched.c (sms_sched_info): Clear the two new fields.
307 * sched-rgn.c (rgn_const_sched_info): Likewise.
308 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
309 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
310 (ebb_sched_info): Add them for the two new fields.
311 (add_deps_for_risky_insns): Call add_delay_dependencies.
312
1db75f6c
MM
3132011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
314
315 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
316 Rename -mr11.
317 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
318 (rs6000_call_indirect_aix): Ditto.
319 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
320 (call_indirect_aix<ptrsize>_internal): Ditto.
321 (call_indirect_aix<ptrsize>_nor11): Ditto.
322 (call_indirect_aix<ptrsize>_internal2): Ditto.
323 (call_value_indirect_aix<ptrsize>): Ditto.
324 (call_value_indirect_aix<ptrsize>_internal): Ditto.
325 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
326 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
327 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
328
e2995714
JM
3292011-07-13 Jason Merrill <jason@redhat.com>
330
331 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
332
4dfe3ad5
UW
3332011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
334
335 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
336 * config/spu/spu.md ("clrsb<mode>2"): New expander.
337
dddc6762
TS
3382011-07-13 Thomas Schwinge <thomas@schwinge.name>
339
340 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
341 * configure: Regenerate.
342
b4d80e56
UW
3432011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
344
345 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
346 (asm_file_start): Remove.
347 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
348 free_bb_for_insn around code that modifies insns before
349 restarting df analysis.
350
9e34e53f
RO
3512011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
352
353 PR target/49541
354 * config/sol2.h (LIB_SPEC): Simplify.
355 Move LIB_THREAD_LDFLAGS_SPEC ...
356 (LINK_SPEC): ... here.
357
51564684
BS
3582011-07-13 Bernd Schmidt <bernds@codesourcery.com>
359
360 * haifa-sched.c (struct sched_block_state): New.
361 (schedule_block): Move some local variables into such a structure.
362
b3fe1584
RO
3632011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
364
365 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
366 * config/i386/t-crtpc: Remove.
367 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
368 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
369 tmake_file.
370 (x86_64-*-darwin*): Likewise.
371 (i[34567]86-*-linux*): Likewise.
372 (x86_64-*-linux*): Likewise.
373
374 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
375 Handle -mpc32, -mpc64, -mpc80.
376
35d8090d
RO
3772011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
378
379 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
380 * config/alpha/t-crtfm: Remove.
381 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
382 * config/i386/t-crtfm: Remove.
383 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
384 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
385 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
386 * config/sparc/t-crtfm: Remove.
387
388 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
389 (alpha*-*-freebsd*): Likewise.
390 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
391 (x86_64-*-darwin*): Likewise.
392 (i[34567]86-*-linux*): Likewise.
393 (x86_64-*-linux*): Likewise.
394 (x86_64-*-mingw*): Likewise.
395 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
396 (ia64*-*-freebsd*): Likewise.
397 (ia64*-*-linux*): Likewise.
398 (mips64*-*-linux*): Likewise.
399 (mips*-*-linux*): Likewise.
400 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
401 (sparc64-*-linux*): Likewise.
402 (sparc64-*-freebsd*): Likewise.
403
e141542e
RO
4042011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
405
406 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
407 * config/darwin-crt3.c: Move to ../libgcc/config.
408 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
409 ($(T)crt3$(objext)): Remove.
410 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
411 ($(T)crt2$(objext)): Remove.
412 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
413 (powerpc64-*-darwin*): Likewise.
414
72fbc381
L
4152011-07-13 H.J. Lu <hongjiu.lu@intel.com>
416
417 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode
418 != Pmode.
419
420 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
421 (addsi_1_zext): This.
422
727a65e6
BS
4232011-07-13 Bernd Schmidt <bernds@codesourcery.com>
424
425 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
426 * doc/tm.texi: Regenerate.
427 * target.def (mergeable_rodata_prefix: New defhookpod.
428 * varasm.c (mergeable_string_section, mergeable_constant_section):
429 Use it. Allocate name with alloca.
430
cb77b6cf
L
4312011-07-13 H.J. Lu <hongjiu.lu@intel.com>
432
433 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
434
36fc3799
RS
4352011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
436
437 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
438 overlap check.
439
953d0c90
RS
4402011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
441
442 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
443 (count_type_elements): Delete.
444 (complete_ctor_at_level_p): Declare.
445 * expr.c (flexible_array_member_p): New function, split out from...
446 (count_type_elements): ...here. Make static. Replace allow_flexarr
447 parameter with for_ctor_p. When for_ctor_p is true, return the
448 number of elements that should appear in the top-level constructor,
449 otherwise return an estimate of the number of scalars.
450 (categorize_ctor_elements): Replace p_must_clear with p_complete.
451 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
452 (complete_ctor_at_level_p): New function, borrowing union logic
453 from old categorize_ctor_elements_1.
454 (mostly_zeros_p): Return true if the constructor is not complete.
455 (all_zeros_p): Update call to categorize_ctor_elements.
456 * gimplify.c (gimplify_init_constructor): Update call to
457 categorize_ctor_elements. Don't call count_type_elements.
458 Unconditionally prevent clearing for variable-sized types,
459 otherwise rely on categorize_ctor_elements to detect
460 incomplete initializers.
461
9111c715
RG
4622011-07-13 Richard Guenther <rguenther@suse.de>
463
464 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
465 the final type is integral.
466
a19af9c4
BS
4672011-07-13 Bernd Schmidt <bernds@codesourcery.com>
468
469 * sched-int.h (struct _dep): Add member cost.
470 (DEP_COST, UNKNOWN_DEP_COST): New macros.
471 * sched-deps.c (init_dep_1): Initialize DEP_COST.
472 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
473 (sched_change_pattern): Reset it for dependent insns.
474
2d1efe2d
RO
4752011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
476
477 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
478 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
479 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
480 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
481 (CRT0_S, MCRT0_S): Remove.
482 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
483 Remove.
484 (s-crt0): Remove.
485 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
486
e84a58ff
EB
4872011-07-12 Eric Botcazou <ebotcazou@adacore.com>
488
489 * cse.c (insert_with_costs): Put semi-colon after empty loop body
490 on the next line.
491 * emit-rtl.c (push_to_sequence): Likewise.
492 * haifa-sched.c (max_issue): Likewise.
493 * matrix-reorg.c (add_allocation_site): Likewise.
494 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
495 * reload.c (alternative_allows_const_pool_ref): Likewise.
496 * sched-rgn.c (rgn_add_block): Likewise.
497 (rgn_fix_recovery_cfg): Likewise.
498 * tree.c (attribute_list_contained): Likewise.
499
3a4ffde6
UB
5002011-07-12 Uros Bizjak <ubizjak@gmail.com>
501
502 * config/i386/i386.c: Tidy processor feature bitmasks.
503 (m_P4_NOCONA): New.
504
10b75750
AP
5052011-07-12 Andrew Pinski <pinskia@gmail.com>
506
507 PR rtl-opt/49474
508 * cprop.c (find_implicit_sets): Correct the condition.
509
4f42d714
RH
5102011-07-12 Richard Henderson <rth@redhat.com>
511
512 PR target/49713
513 * dwarf2out.h (dwarf_frame_regnum): Remove.
514 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
515 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
516 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
517 (execute_dwarf2_frame): Initialize them.
518 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
519 users of the macros with the variables.
520 (expand_builtin_dwarf_sp_column): Revert last change.
521 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
522 result of DWARF_FRAME_REGNUM into a local variable.
523
3a5e4ad6
RH
5242011-07-12 Richard Henderson <rth@redhat.com>
525
526 PR target/49714
527 * config/i386/i386.c (x86_output_mi_thunk): Use
528 machopic_indirect_call_target instead of machopic_indirection_name
529 directly.
530
9e9bd455
LG
5312011-07-12 Laurent GUERBY <laurent@guerby.net>
532 Eric Botcazou <ebotcazou@adacore.com>
533
534 * prefix.h: Wrap up in extern "C" block.
535
4d652a18
HJ
5362011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
537
538 AMD bdver2 Enablement
539 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
540 (case ${target}): Add bdver2.
541 * config/i386/driver-i386.c (host_detect_local_cpu): Let
542 -march=native recognize bdver2 processors.
543 * config/i386/i386-c.c (ix86_target_macros_internal): Add
544 bdver2 def_and_undef
545 * config/i386/i386.c (struct processor_costs bdver2_cost): New
546 bdver2 cost table.
547 (m_BDVER2): New definition.
548 (m_AMD_MULTIPLE): Includes m_BDVER2.
549 (initial_ix86_tune_features): Add bdver2 tuning.
550 (processor_target_table): Add bdver2 entry.
551 (static const char *const cpu_names): Add bdver2 entry.
552 (ix86_option_override_internal): Add bdver2 instruction sets.
553 (ix86_issue_rate): Add bdver2.
554 (ix86_adjust_cost): Add bdver2.
555 (has_dispatch): Add bdver2.
556 * config/i386/i386.h (TARGET_BDVER2): New definition.
557 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
558 (enum processor_type): Add PROCESSOR_BDVER2.
559 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
560 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
561 description.
562
5756d08c
RH
5632011-07-12 Richard Henderson <rth@redhat.com>
564
565 PR target/49714
566 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
567 destination address in memory on some paths.
568
123148b5
BS
5692011-07-12 Bernd Schmidt <bernds@codesourcery.com>
570
571 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
572 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
573 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
574 * function.c (locate_and_pad_parm): Take it into account.
575 * target.def (function_arg_round_boundary): New hook.
576 * targhooks.c (default_function_arg_round_boundary): New function.
577 * targhooks.h (default_function_arg_round_boundary): Declare.
578 * doc/tm.texi: Regenerate.
579
b7a83ad8
RG
5802011-07-12 Richard Guenther <rguenther@suse.de>
581
582 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
583 Do not perform no-op changes.
584
12c4ecb1
RS
5852011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
586
587 * config/arm/predicates.md (neon_struct_operand): Make a normal
588 predicate.
589 (neon_struct_or_register_operand): New predicate.
590 * config/arm/neon.md (movmisalign<mode>): Replace predicates
591 with neon_struct_or_register_operand.
592 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
593 neon_struct_operand instead of memory_operand.
594
ab079773
MJ
5952011-07-12 Martin Jambor <mjambor@suse.cz>
596
597 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
598 * cgraph.c (cgraph_get_node_or_alias): Removed.
599 (change_decl_assembler_name): Changed all calls to
600 cgraph_get_node_or_alias to a call to cgraph_get_node.
601 (cgraph_make_decl_local): Likewise.
602 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
603 * varasm.c (default_binds_local_p_1): Likewise.
604 (decl_binds_to_current_def_p): Likewise.
605
d5fed62d
JJ
6062011-07-12 Jakub Jelinek <jakub@redhat.com>
607
608 PR tree-optimization/49712
609 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
610
c0b6224a
BS
6112011-07-11 Bernd Schmidt <bernds@codesourcery.com>
612
613 * genautomata.c (add_arc): Return void. All callers changed.
614 (make_automaton): Remove dead code.
615
7263c6d7
RH
6162011-07-11 Richard Henderson <rth@redhat.com>
617
618 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
619 (DW_FRAME_POINTER_REGNUM): New.
620 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
621 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
622 (dwf_regno): New.
623 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
624 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
625 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
626 Use it.
627 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
628 * dwarf2out.h (dwarf_frame_regnum): New.
629 (struct cfa_loc): Document the domain of the reg member.
630
f9610d20
UB
6312011-07-11 Uros Bizjak <ubizjak@gmail.com>
632
633 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
634 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
635
96ae7458
JJ
6362011-07-11 Jakub Jelinek <jakub@redhat.com>
637
638 PR debug/49676
639 * dwarf2out.c (int_shift_loc_descriptor): New function.
640 (int_loc_descriptor): If shorter, emit i as
641 (i >> shift), shift, DW_OP_shl for suitable shift value.
642 Similarly, try to optimize large negative values using
643 DW_OP_neg of a positive value if shorter.
644 (size_of_int_shift_loc_descriptor): New function.
645 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
646 changes.
647 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
648 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
649 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
650 is shorter.
651 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
652 addend as added DW_OP_plus if it is shorter.
653
feffaec4
RO
6542011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
655
656 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
657 (DTORS_SECTION_ASM_OP): Define.
658
2d8d5935
RO
6592011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
660
661 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
662 * config/t-dfprules: Move to ../libgcc/config.
663 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
664 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
665 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
666 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
667 Likewise.
668 (i[34567]86-*-cygwin*): Likewise.
669 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
670 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
671 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
672 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
673 D64PBIT_FUNCS, D128PBIT_FUNCS.
674
dcc95c20
RG
6752011-07-11 Richard Guenther <rguenther@suse.de>
676
677 * tree-vrp.c (simplify_conversion_using_ranges): Manually
678 translate the source value-range through the conversion chain.
679
28164eed
RS
6802011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
681
682 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
683
f3054223
AL
6842011-07-11 Arthur Loiret <aloiret@debian.org>
685
686 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
687 a bi-arch compiler defaulting to 31-bit. In this case:
688 (tmake_file): Add s390/t-linux64.
689 * doc/install.texi: Add s390-linux to the list of targets supporting
690 --enable-targets=all.
691
bd5ab709
AL
6922011-07-11 Arthur Loiret <aloiret@debian.org>
693 Matthias Klose <doko@debian.org>
694
695 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
696 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
697 (tm_file): Add mips/linux64.h.
698 (tmake_file): Add mips/t-linux64.
699 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
700 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
701 instead of hardcoded mabi=n32.
702 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
703 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
704 convention.
705
d3b7e946
AK
7062011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
707
708 * passes.c (init_optimization_passes): Add invariant motion pass
709 after induction variable optimization.
710
7e4ec472 7112011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 712
7e4ec472
GJL
713 PR target/39633
714 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
715 offsets 1..5 set cc0 in a usable way.
716
0e65e631
RG
7172011-07-11 Romain Geissler <romain.geissler@gmail.com>
718
719 * tree.h (call_expr_arg): Remove.
720 (call_expr_argp): Likewise.
721
18970372
EB
7222011-07-11 Eric Botcazou <ebotcazou@adacore.com>
723
724 * config/sparc/sparc.md (save_register_window_1): Rename to...
725 (window_save): ...this.
726 * config/sparc/sparc.c (emit_save_register_window): Rename to...
727 (emit_window_save): ...this.
728 (sparc_expand_prologue): Adjust to above renaming.
729
9e419e38
L
7302011-07-10 H.J. Lu <hongjiu.lu@intel.com>
731
732 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
733 of movabs for x32.
734
3db72de3
RH
7352011-07-10 Richard Henderson <rth@redhat.com>
736
737 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
738 run final, instead of emitting text directly.
739
a1f91bca
L
7402011-07-10 H.J. Lu <hongjiu.lu@intel.com>
741
742 * config/i386/i386.c (ix86_option_override_internal): Turn on
743 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
744 small PIC models for TARGET_X32.
745
a50023f9
HPN
7462011-07-10 Hans-Peter Nilsson <hp@axis.com>
747
9a0b29f0
HPN
748 PR target/49684
749 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
750 $(LIBGCC2_CFLAGS).
751
a50023f9
HPN
752 PR bootstrap/49680
753 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
754 stray notes and debug insns by using prev_nonnote_nondebug_insn
755 instead of PREV_INSN.
756
948d330e
RH
7572011-07-09 Richard Henderson <rth@redhat.com>
758
759 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
760 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
761 * dwarf2out.c: ... here.
762 (output_all_cfis): Remove.
763 (dwarf2out_switch_text_section): Use output_cfis directly.
764 (size_of_locs): Export.
765 (output_loc_sequence, output_loc_sequence_raw): Export.
766 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
767 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
768 output_cfa_loc_raw): Move to ...
769 * dwarfcfi.c: ... here.
770 * dwarf2out.h: Update decls.
771
db42e39d
RH
7722011-07-09 Richard Henderson <rth@redhat.com>
773
774 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
775 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
776 * dwarf2cfi.c: ... here.
777 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
778 (DWARF_ROUND, DWARF_CIE_ID): Remove.
779 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
780 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
781 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
782
a8e5c0e7
RH
7832011-07-09 Richard Henderson <rth@redhat.com>
784
785 * dwarf2cfi.c (cie_return_save): New.
786 (queue_reg_save): Use compare_reg_or_pc.
787 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
788 (dwarf2out_frame_debug_expr): Likewise.
789 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
790 (initial_return_save): Likewise.
791 (execute_dwarf2_frame): Save and restore initial return save from
792 the cie to the fde.
793 * config/mips/mips.c (mips_frame_set): Remove special case for
794 DWARF_FRAME_RETURN_COLUMN.
795
4a8ee122
RH
7962011-07-09 Richard Henderson <rth@redhat.com>
797
798 * dwarf2cfi.c (lookup_cfa): Remove.
799 (execute_dwarf2_frame): Assert queues are empty on entry.
800 Setup initial cfa directly, not via lookup_cfa.
801 Don't clear args_size state here.
802
3edb53aa
RH
8032011-07-09 Richard Henderson <rth@redhat.com>
804
805 * dwarf2cfi.c (add_cfi_vec): New.
806 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
807 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
808 (execute_dwarf2_frame): Set add_cfi_vec.
809
ded49a7f
RH
8102011-07-09 Richard Henderson <rth@redhat.com>
811
812 * defaults.h (ASM_COMMENT_START): Move here...
813 * dwarf2asm.c: ... from here.
814 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
815 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
816 * varasm.c: Likewise.
817
45fba6d1
RH
8182011-07-09 Richard Henderson <rth@redhat.com>
819
820 PR debug/49686
821 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
822 (create_cfi_notes): ... do it here instead.
823
5b696ba2
JJ
8242011-07-09 Jakub Jelinek <jakub@redhat.com>
825
826 PR debug/49676
827 * dwarf2out.c (size_of_int_loc_descriptor): New function.
828 (address_of_int_loc_descriptor): Use it.
f9610d20 829 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 830
8662b2ba
RH
8312011-07-09 Richard Henderson <rth@redhat.com>
832
833 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
834 (prologue, epilogue): New.
835 (return, *rts): New.
836 (blockage, setd, seti): New.
837 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
838 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
839 (pdp11_saved_regno): New.
840 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
841 generate rtl instead of text.
842 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
843 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
844 * config/pdp11/pdp11-protos.h: Update.
845
28b21ebb
RH
8462011-07-09 Richard Henderson <rth@redhat.com>
847
848 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
849 try to insert an rtl prologue here.
850 (rs6000_output_function_epilogue): Similarly.
851 * config/rs6000/rs6000.md (prologue): Emit a barrier to
852 satisfy !TARGET_SCHED_PROLOG.
853 (epilogue, sibcall_epilogue): Likewise.
854
0a222ba7
EB
8552011-07-09 Eric Botcazou <ebotcazou@adacore.com>
856
857 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
858 (FP_REG_P): Delete.
859 (IN_OR_GLOBAL_P): Likewise.
860
2fda8e14
JM
8612011-07-08 Jason Merrill <jason@redhat.com>
862
4063e61b
JM
863 PR c++/45437
864 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
865 compound assignment.
866
2fda8e14
JM
867 * cgraph.c (cgraph_add_to_same_comdat_group): New.
868 * cgraph.h: Declare it.
869 * ipa.c (function_and_variable_visibility): Make sure thunks
870 have the right visibility.
871
830f11fe
RH
8722011-07-08 Richard Henderson <rth@redhat.com>
873
874 PR bootstrap/49680
875 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
876 any tablejump vector.
877
965b2557
RH
878 PR bootstrap/49680
879 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
880 end of the prologue.
881
70db9095
JJ
8822011-07-08 Jakub Jelinek <jakub@redhat.com>
883
884 PR target/49621
885 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 886 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
887 * config/rs6000/vector.md (vector_select_<mode>,
888 vector_select_<mode>_uns): Change second operand of NE to
889 CONST0_RTX (<MODE>mode) instead of const0_rtx.
890 * config/rs6000/altivec.md (*altivec_vsel<mode>,
891 *altivec_vsel<mode>_uns): Expect second operand of NE to be
892 zero_constant of the corresponding vector mode.
893 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
894 Likewise.
895
e92c5020
SP
8962011-07-08 Sebastian Pop <sebastian.pop@amd.com>
897
898 * graphite-dependences.c (build_alias_set_powerset): Remove
899 continue from loop, add one more assert.
900
3e4f8484 9012011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 902
3e4f8484
GJL
903 PR target/46779
904 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
905 In particular, allow 8-bit values in r28 and r29.
906 (avr_hard_regno_scratch_ok): Disallow any register that might be
907 part of the frame pointer.
908 (avr_hard_regno_rename_ok): Same.
909 (avr_legitimate_address_p): Don't allow SUBREGs.
910
0094f21b
JB
9112011-07-08 Julian Brown <julian@codesourcery.com>
912
913 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
914 big-endian mode.
915 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
916 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
917 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
918 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
919 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
920 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
921 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
922 registers in big-endian mode.
923
9ae60101
BS
9242011-07-08 Bernd Schmidt <bernds@codesourcery.com>
925
926 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
927 in terms of another.
928 (write_attr_value): Write a cast if necessary.
929
c0a6a1ef
BS
930 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
931 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
932 (REG_WORDS_BIG_ENDIAN): Document.
933 * doc/tm.texi: Regenerate.
934 * reload.c (operands_match_p): Take it into account.
935 (reload_adjust_reg_for_mode): Likewise.
936 * rtlanal.c (subreg_get_info): Likewise.
937
b862187a
RG
9382011-07-08 Richard Guenther <rguenther@suse.de>
939
940 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
941 folding.
942
e8e8c74b
KT
9432011-07-08 Kai Tietz <ktietz@redhat.com>
944
945 * fold-const.c (fold_truth_andor): Factored out truth_andor
946 label from fold_binary as function.
947 (fold_binary_loc): Replace truth_andor lable
948 by function fold_truth_andor.
949
6c3cb698
KY
9502011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
951
952 PR middle-end/49519
953 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
954 check if address is stored in register. If so - give up.
955 (check_sibcall_argument_overlap_1): Do not perform check of
956 overlapping when it is call to address.
957
7d8d6d73 9582011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 959
7d8d6d73
GJL
960 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
961 of magic '31'.
962
69660a70
BS
9632011-07-08 Bernd Schmidt <bernds@codesourcery.com>
964
965 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
966 GET_MODE_BITSIZE where appropriate.
967 (widen_leading, expand_parity, expand_ctz, expand_ffs,
968 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
969 expand_float, expand_fix): Likewise.
970 * expr.c (convert_move, convert_modes, expand_expr_real_2,
971 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
972 * stor-layout.c (get_mode_bounds): Likewise.
973 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
974 Likewise.
975 * convert.c (convert_to_integer): Likewise.
976 * expmed.c (expand_shift_1): Likewise.
977
86cdf393
BS
978 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
979 a bitsize.
980
0d44736e
BS
981 * optabs.c (expand_binop): Tighten conditions for doubleword
982 expansions.
f9610d20 983 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
984 * stor-layout.c (get_best_mode): Skip modes that have lower
985 precision than bitsize.
986 * recog.c (simplify_while_replacing): Assert that bitsize and
987 precision are the same.
988
2c50b2c3
RO
9892011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
990
991 * Makefile.in (LIBGCOV): Remove.
992 (libgcc.mvars): Remove LIBGCOV.
993 * libgov.c: Move to ../libgcc.
994
a039d7c2
RO
9952011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
996
997 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
998
e923ef41
MJ
9992011-07-08 Martin Jambor <mjambor@suse.cz>
1000
1001 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
1002 is too big for total scalarization.
1003
b709e189
RH
10042011-07-07 Richard Henderson <rth@redhat.com>
1005
1006 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
1007 (DBX_DEBUGGING_INFO): Undef.
1008
2867fa7c
RH
10092011-07-07 Richard Henderson <rth@redhat.com>
1010
1011 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
1012 Handle some opcodes specially for debugging.
1013 * print-rtl.c: Include dwarf2out.h
1014 (print_rtx): Handle NOTE_INSN_CFI.
1015 * Makefile.in (print-rtl.o): Update.
1016
7644b3c7
RH
10172011-07-07 Richard Henderson <rth@redhat.com>
1018
1019 * tree-pass.h (pass_dwarf2_frame): Declare.
1020 * passes.c (init_optimization_passes): Add it.
1021 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
1022 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
1023 make static, do not call add_cfis_to_fde.
1024 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
1025 dwarf2out_frame_init): Merge into...
1026 (execute_dwarf2_frame): ... here. New function.
1027 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
1028 saved_do_cfi_asm to a tri-state variable.
1029 (gate_dwarf2_frame, pass_dwarf2_frame): New.
1030 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
1031 if it has yet to be done. Don't call dwarf2cfi_function_init.
1032 * dwarf2out.h, debug.h: Update decls.
1033 * final.c (final_start_function): Don't call
1034 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
1035 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
1036 * toplev.c (lang_dependent_init): Likewise.
1037
a518b996
RH
10382011-07-07 Richard Henderson <rth@redhat.com>
1039
1040 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
1041 FDE_TABLE_INCREMENT): Replace with...
1042 (fde_vec): ... this, a new vector.
1043 (current_fde): Remove. Replace all users with cfun->fde.
1044 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
1045 (size_of_aranges, dwarf2out_finish): Likewise.
1046 (dwarf2out_alloc_current_fde): Break out from ...
1047 (dwarf2out_begin_prologue): ... here.
1048 (dwarf2out_frame_init): Remove.
1049 * dwarf2cfi.c: Update all users of current_fde.
1050 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
1051 * dwarf2out.h: Update decls.
1052 (dw_fde_node): Add fde_index member.
1053 * function.h (struct function): Add fde member.
1054
89e25f95
BS
10552011-07-07 Bernd Schmidt <bernds@codesourcery.com>
1056 Richard Henderson <rth@redhat.com>
1057
1058 * dwarf2cfi.c (add_cfi): Remove.
1059 (dwarf2out_cfi_label): Remove force argument. Only generate the
1060 label name.
1061 (add_fde_cfi): Simplify the different code paths.
1062 (add_cie_cfi): New.
1063 (old_cfa, old_cfa_remember): New.
1064 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
1065 (last_reg_save_label): Remove.
1066 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
1067 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
1068 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
1069 dwarf2out_frame_debug_cfa_expression,
1070 dwarf2out_frame_debug_cfa_restore,
1071 dwarf2out_frame_debug_cfa_window_save,
1072 dwarf2out_frame_debug_expr): Remove label parameter.
1073 (cfi_label_required_p, add_cfis_to_fde): New.
1074 (dwarf2out_frame_debug_after_prologue): New.
1075 (dwarf2cfi_frame_init): Initialize old_cfa.
1076 (dwarf2out_frame_debug_restore_state): Likewise.
1077 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
1078 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
1079 * final.c (final_start_function): Call
1080 dwarf2out_frame_debug_after_prologue.
1081
bc5612ed
BS
10822011-07-07 Bernd Schmidt <bernds@codesourcery.com>
1083 Richard Henderson <rth@redhat.com>
1084
1085 * dwarf2cfi.c (cfi_insn): New.
1086 (dwarf2out_cfi_label): Don't emit cfi label here.
1087 (add_fde_cfi): Create a NOTE_INSN_CFI.
1088 (dwarf2out_frame_debug): Setup cfi_insn.
1089 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
1090 (dwarf2out_cfi_begin_epilogue): Make static.
1091 (dwarf2out_frame_debug_restore_state): Make static.
1092 * dwarf2out.c (output_cfi_directive): Make static.
1093 (dwarf2out_emit_cfi): New.
1094 * dwarf2out.h: Update.
1095 * final.c (final): Remove CFI notes.
1096 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
1097 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
1098 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
1099 * insn-notes.def (NOTE_INSN_CFI): New.
1100 (NOTE_INSN_CFI_LABEL): New.
1101 * rtl.h (union rtunion_def): Add rt_cfi member.
1102 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
1103
647a1567
RH
11042011-07-07 Richard Henderson <rth@redhat.com>
1105
1106 * dwarf2cfi.c: New file.
1107 * Makefile.in (OBJS): Add it.
1108 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
1109 * gengtype.c (open_base_files): Include dwarf2out.h.
1110 * coretypes.h (enum var_init_status): Move from ...
1111 * rtl.h: ... here.
1112 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
1113 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
1114 expand_builtin_dwarf_sp_column, init_return_column_size,
1115 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
1116 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
1117 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
1118 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
1119 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
1120 compute_barrier_args_size, dwarf2out_args_size,
1121 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
1122 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
1123 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
1124 queue_reg_save, dwarf2out_flush_queued_reg_saves,
1125 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
1126 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
1127 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
1128 dwarf2out_frame_debug_cfa_expression,
1129 dwarf2out_frame_debug_cfa_restore,
1130 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
1131 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
1132 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
1133 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
1134 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
1135 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
1136 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
1137 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
1138 dw_loc_descr_node): Move to dwarf2out.h.
1139 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
1140 mem_loc_descriptor): Export.
1141 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
1142 (dwarf2out_frame_init): Extract CIE generation code to
1143 dwarf2cfi_frame_init.
1144
b286d9ed
EB
11452011-07-07 Eric Botcazou <ebotcazou@adacore.com>
1146
1147 PR target/49660
1148 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
1149 MASK_V8PLUS, remove commented out flag and reorder.
1150
c4603e7c
JJ
11512011-07-07 Jakub Jelinek <jakub@redhat.com>
1152
1153 PR c/49644
1154 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
1155 one non-complex and one complex argument, call c_save_expr on both
1156 operands.
1157
81361831
MJ
11582011-07-07 Martin Jambor <mjambor@suse.cz>
1159
1160 PR middle-end/49495
1161 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
1162 (verify_cgraph_node): Some functinality moved to
1163 verify_edge_corresponds_to_fndecl, call it.
1164
1e4b2746
JM
11652011-07-07 Joseph Myers <joseph@codesourcery.com>
1166
1167 * config.gcc (*local*): Remove.
1168 * doc/install-old.texi: Don't mention local configurations.
1169
d7ff1e11
JJ
11702011-07-07 Jakub Jelinek <jakub@redhat.com>
1171
1172 PR debug/49522
1173 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
1174 referencing debug insns that have been reset.
1175 (dead_debug_insert_before): Don't assert reg is non-NULL,
1176 instead return immediately if it is NULL.
1177
2492731a
JM
11782011-07-07 Joseph Myers <joseph@codesourcery.com>
1179
f9610d20 1180 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 1181
9d9c740d
BS
11822011-07-07 Bernd Schmidt <bernds@codesourcery.com>
1183
1184 * hw-doloop.c: New file.
1185 * hw-doloop.h: New file.
1186 * Makefile.in (OBJS): Add hw-doloop.o.
1187 (hw-doloop.o): New rule.
1188 ($(obj_out_file)): Add hw-doloop.h dependency.
1189 * config/bfin/bfin.c: Include "hw-doloop.h".
1190 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
1191 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
1192 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
1193 type changed to hwloop_info. Return bool, true if the loop was
1194 successfully optimized. Remove code that was moved to
1195 hw-doloop.c, and adjust other parts.
1196 (hwloop_fail): New static function, containing parts that used
1197 to be in bfin_optimize_loop.
1198 (bfin_discover_loop, bfin_discover_loops, free_loops,
1199 bfin_reorder_loops): Remove.
1200 (hwloop_pattern_reg): New static function.
1201 (bfin_doloop_hooks): New variable.
1202 (bfin_reorg_loops): Remove most code, call reorg_loops.
1203 * config/bfin/bfin.md (doloop_end splitter): Also enable if
1204 loop counter is a memory_operand.
1205
f0ea7581
L
12062011-07-07 H.J. Lu <hongjiu.lu@intel.com>
1207
f9610d20 1208 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
1209
1210 * configure.ac: Mention x86-64 for --with-multilib-list.
1211 * configure: Regenerated.
1212
1213 * config/i386/gnu-user64.h (SPEC_64): Support x32.
1214 (SPEC_32): Likewise.
1215 (ASM_SPEC): Likewise.
1216 (LINK_SPEC): Likewise.
1217 (TARGET_THREAD_SSP_OFFSET): Likewise.
1218 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
1219 (SPEC_X32): New.
1220
1221 * config/i386/i386.h (TARGET_X32): New.
1222 (TARGET_LP64): New.
1223 (LONG_TYPE_SIZE): Likewise.
1224 (POINTER_SIZE): Likewise.
1225 (POINTERS_EXTEND_UNSIGNED): Likewise.
1226 (OPT_ARCH64): Support x32.
1227 (OPT_ARCH32): Likewise.
1228
1229 * config/i386/i386.opt (mx32): New.
1230
1231 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
1232 (GLIBC_DYNAMIC_LINKERX32): Likewise.
1233 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
1234 (GLIBC_DYNAMIC_LINKERX32): Likewise.
1235
1236 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
1237 (BIONIC_DYNAMIC_LINKERX32): Likewise.
1238 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
1239
1240 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
1241
f9610d20 1242 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
1243
1244 * doc/invoke.texi: Document -mx32.
1245
38460025
RS
12462011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
1247
1248 * doc/invoke.texi (mwords-little-endian): Deprecate.
1249 * config/arm/arm.opt (mwords-little-endian): Likewise.
1250 * config/arm/arm.c (arm_option_override): Warn about the deprecation
1251 of -mwords-little-endian.
1252
3f125532
RS
12532011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
1254
1255 * reload1.c (choose_reload_regs): Use mode sizes to check whether
1256 an old reload register completely defines the required value.
1257
bbc210ab
RG
12582011-07-07 Richard Guenther <rguenther@suse.de>
1259
1260 * fold-const.c (fold_unary_loc): Do not strip sign-changes
1261 for NEGATE_EXPR.
1262
29c5134a
RG
12632011-07-07 Richard Guenther <rguenther@suse.de>
1264
1265 * tree-vrp.c (simplify_conversion_using_ranges): New function.
1266 (simplify_stmt_using_ranges): Call it.
1267
0816a42a
KT
12682011-07-07 Kai Tietz <ktietz@redhat.com>
1269
1270 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
1271 (lookup_logical_inverted_value): Likewise.
1272 (simplify_bitwise_binary_1): Likewise.
1273 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
1274
3ce9f090
JM
12752011-07-07 Joseph Myers <joseph@codesourcery.com>
1276
1277 * gcc.c (%[Spec]): Don't document.
1278 (struct spec_list): Update comment.
1279 (do_spec_1): Don't handle %[Spec].
1280 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
1281
41dfca87
JM
12822011-07-07 Joseph Myers <joseph@codesourcery.com>
1283
1284 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
1285 default based on TARGET_ASM_NAMED_SECTION.
1286 * common/common-target.def (have_named_sections): Default to true.
1287 * common/config/default-common.c: Don't include tm.h.
1288 * common/config/picochip/picochip-common.c
1289 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
1290 * common/config/m32c/m32c-common.c: Remove.
1291 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
1292 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1293 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1294 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 1295 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
1296 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
1297 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 1298
19c44640
JJ
12992011-07-07 Jakub Jelinek <jakub@redhat.com>
1300
1301 PR middle-end/49640
f9610d20
UB
1302 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
1303 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 1304
891a2e42
RO
13052011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1306
1307 PR libmudflap/49550
1308 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
1309
fbdd5d87
RO
13102011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1311
1312 PR target/39150
1313 * configure.ac (gcc_cv_as_hidden): Also accept
1314 x86_64-*-solaris2.1[0-9]*.
1315 (gcc_cv_as_cfi_directive): Likewise.
1316 (gcc_cv_as_comdat_group_group): Likewise.
1317 (set_have_as_tls): Likewise.
1318 * configure: Regenerate.
1319 * config.gcc (i[34567]86-*-solaris2*): Also handle
1320 x86_64-*-solaris2.1[0-9]*.
1321 * config.host (i[34567]86-*-solaris2*): Likewise.
1322 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
1323 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
1324 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
1325 (TARGET_LD_EMULATION): Use it.
1326 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
1327 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
1328 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
1329 (ASM_CPU64_DEFAULT_SPEC): Define.
1330 (ASM_CPU_SPEC): Use %(asm_cpu_default).
1331 (ASM_SPEC): Redefine.
1332 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
1333 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 1334 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
1335 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
1336 configuration.
1337 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
1338
fcf7471a
RO
13392011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1340
1341 * config/sol2.h (ASM_SPEC): Split into ...
1342 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
1343 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
1344 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
1345 (ASM_SPEC): Use ASM_SPEC_BASE.
1346 * config/sparc/sol2.h (ASM_SPEC): Redefine.
1347
1e6a67d1 13482011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 1349
1e6a67d1
GJL
1350 * config/avr/avr.md (*reload_insi): Change predicate #1 to
1351 const_int_operand. Ditto for peep2 producing this insn.
1352 Add argument to output_reload_insisf call.
1353 (*movsi,*movsf): Add argument to output_movsisf call.
1354 (*reload_insf): New insn and new peep2 to produce it.
1355 * config/avr/avr-protos.h (output_movsisf): Change prototype.
1356 (output_reload_insisf): Change prototype.
1357 * config/avr/avr.c (avr_asm_len): New function.
1358 (output_reload_insisf): Rewrite.
1359 (output_movsisf): Change prototype. output_reload_insisf for
1360 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
1361 (adjust_insn_length): Add argument to output_movsisf and
1362 output_reload_insisf call.
1363
6a4bdc79
BS
13642011-07-07 Bernd Schmidt <bernds@codesourcery.com>
1365
1366 * emit-rtl.c (paradoxical_subreg_p): New function.
1367 * rtl.h (paradoxical_subreg_p): Declare.
1368 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
1369 apply_distributive_law, simplify_comparison, simplify_set): Use it.
1370 * cse.c (record_jump_cond, cse_insn): Likewise.
1371 * expr.c (force_operand): Likewise.
1372 * rtlanal.c (num_sign_bit_copies1): Likewise.
1373 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
1374 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
1375 (push_reload): Use precision to check for paradoxical subregs.
1376 * expmed.c (extract_bit_field_1): Likewise.
1377
46c9550f
BS
1378 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
1379 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
1380 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
1381 simplify_set, simplify_logical, expand_compound_operation,
1382 make_extraction, force_to_mode, if_then_else_cond, extended_count,
1383 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
1384 record_value_for_reg): Likewise.
1385 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
1386 * simplify-rtx. c (simplify_unary_operation_1,
1387 simplify_binary_operation_1, simplify_const_relational_operation):
1388 Likewise.
1389
5511bc5a
BS
1390 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
1391 instead of GET_MODE_BITSIZE where appropriate.
1392 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
1393 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
1394 init_num_sign_bit_copies_in_rep): Likewise.
1395 * cse.c (fold_rtx, cse_insn): Likewise.
1396 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
1397 * simplify-rtx.c (simplify_unary_operation_1,
1398 simplify_const_unary_operation, simplify_binary_operation_1,
1399 simplify_const_binary_operation, simplify_ternary_operation,
1400 simplify_const_relational_operation, simplify_subreg): Likewise.
1401 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
1402 simplify_if_then_else, simplify_set, expand_compound_operation,
1403 expand_field_assignment, make_extraction, if_then_else_cond,
1404 make_compound_operation, force_to_mode, make_field_assignment,
1405 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
1406 extended_count, try_widen_shift_mode, simplify_shift_const_1,
1407 simplify_comparison, record_promoted_value, simplify_compare_const,
1408 record_dead_and_set_regs_1): Likewise.
1409
d58c1a38
BS
1410 Revert:
1411 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
1412 shift_truncation_mask hook instead of performing modulo by width.
1413 Compare against mode precision, not bitsize.
d58c1a38 1414 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 1415 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 1416
76594d53
MM
14172011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1418
1419 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
1420 declaration.
1421 (rs6000_save_toc_in_prologue_p): Ditto.
1422
1423 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
1424 up the static chain (r11) during indirect function calls.
1425 (-msave-toc-indirect): New undocumented debug switch.
1426
1427 * config/rs6000/rs6000.c (struct machine_function): Add
1428 save_toc_in_prologue field to note whether the prologue needs to
1429 save the TOC value in the reserved stack location.
1430 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
1431 to save the TOC in the prologue, do so.
1432 (rs6000_trampoline_init): Don't allow creating AIX style
1433 trampolines if -mno-r11 is in effect.
1434 (rs6000_call_indirect_aix): New function to create AIX style
1435 indirect calls, adding support for -mno-r11 to suppress loading
1436 the static chain, and saving the TOC in the prologue instead of
1437 the call body.
1438 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
1439 TOC in the prologue.
1440
1441 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
1442 register numbers.
1443 (TOC_REGNUM): Ditto.
1444 (STATIC_CHAIN_REGNUM): Ditto.
1445 (ARG_POINTER_REGNUM): Ditto.
1446 (SFP_REGNO): Delete, unused.
1447 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
1448 function descriptor offsets.
1449 (TOC_SAVE_OFFSET_64BIT): Ditto.
1450 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
1451 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
1452 (AIX_FUNC_DESC_SC_32BIT): Ditto.
1453 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
1454 (ptrload): New mode attribute for the appropriate load of a pointer.
1455 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
1456 (call_indirect_aix64): Ditto.
1457 (call_value_indirect_aix32): Ditto.
1458 (call_value_indirect_aix64): Ditto.
1459 (call_indirect_nonlocal_aix32_internal): Ditto.
1460 (call_indirect_nonlocal_aix32): Ditto.
1461 (call_indirect_nonlocal_aix64_internal): Ditto.
1462 (call_indirect_nonlocal_aix64): Ditto.
1463 (call): Rewrite AIX indirect function calls. Add support for
1464 eliminating the static chain, and for moving the save of the TOC
1465 to the function prologue.
1466 (call_value): Ditto.
1467 (call_indirect_aix<ptrsize>): Ditto.
1468 (call_indirect_aix<ptrsize>_internal): Ditto.
1469 (call_indirect_aix<ptrsize>_internal2): Ditto.
1470 (call_indirect_aix<ptrsize>_nor11): Ditto.
1471 (call_value_indirect_aix<ptrsize>): Ditto.
1472 (call_value_indirect_aix<ptrsize>_internal): Ditto.
1473 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1474 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1475 (call_nonlocal_aix32): Relocate in the rs6000.md file.
1476 (call_nonlocal_aix64): Ditto.
1477
1478 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
1479 -mno-r11 documentation.
1480
49d6830d
JW
14812011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
1482
1483 PR other/49658
1484 * doc/extend.texi (Compound Literals): Fix typo.
1485
c884924f
JG
14862011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
1487
f9610d20 1488 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 1489
bf588455
BS
14902011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
1491
1492 * configure.ac (plugin-version.h): Generate
1493 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
1494 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
1495 macros.
1496
1497 * configure: Regenerate.
1498
1499 * doc/plugins.texi (Building GCC plugins): Mention
1500 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
1501
d0edd768
BS
15022011-07-06 Bernd Schmidt <bernds@codesourcery.com>
1503
1504 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
1505 * combine.c (make_extraction, gen_lowpart_or_truncate,
1506 apply_distributive_law, simplify_comparison,
1507 reg_truncated_to_mode, record_truncated_value): Use it.
1508 * cse.c (notreg_cost): Likewise.
1509 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
1510 * expr.c (convert_move, convert_modes): Likewise.
1511 * optabs.c (expand_binop, expand_unop): Likewise.
1512 * postreload.c (move2add_last_label): Likewise.
1513 * regmove.c (optimize_reg_copy_3): Likewise.
1514 * rtlhooks.c (gen_lowpart_general): Likewise.
1515 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1516
e5cabdfb
JM
15172011-07-06 Joseph Myers <joseph@codesourcery.com>
1518
1519 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
1520
2d0c270f
BS
15212011-07-06 Bernd Schmidt <bernds@codesourcery.com>
1522
1523 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
1524 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
1525 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
1526 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
1527 simplify_const_binary_operation, simplify_const_relational_operation):
1528 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
1529 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
1530 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
1531 simplify_shift_const_1, simplify_comparison): Likewise.
1532 * expr.c (convert_modes): Likewise.
1533 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 1534 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
1535 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
1536
f9c08345
BS
1537 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
1538
6d6c9525
RG
15392011-07-06 Richard Guenther <rguenther@suse.de>
1540
1541 PR tree-optimization/49645
1542 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
1543 register variables.
1544 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
1545 in type qualification here ...
1546 (copy_reference_ops_from_ref): ... not here.
1547 (vn_reference_lookup_3): ... or here.
1548 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
1549 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
1550
d1a6ec10
ILT
15512011-07-06 Ian Lance Taylor <iant@google.com>
1552
1553 * doc/install.texi (Configuration): It's
1554 --enable-gnu-indirect-function, not --enable-indirect-function.
1555
ff3e08af
BS
15562011-07-06 Bernd Schmidt <bernds@codesourcery.com>
1557
1558 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
1559 shift_truncation_mask hook instead of performing modulo by width.
1560 Compare against mode precision, not bitsize.
ff3e08af 1561 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 1562 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 1563
a369b639
L
15642011-07-06 H.J. Lu <hongjiu.lu@intel.com>
1565
1566 PR middle-end/47383
1567 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
1568 address computation and convert to address_mode if needed.
1569
1a072294
RG
15702011-07-06 Richard Guenther <rguenther@suse.de>
1571
1572 * tree.c (build_common_tree_nodes_2): Merge with
1573 build_common_tree_nodes.
1574 * tree.h (build_common_tree_nodes): Adjust prototype.
1575 (build_common_tree_nodes_2): Remove.
1576 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
1577 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
1578
f2c3a8ce
JJ
15792011-07-05 Jakub Jelinek <jakub@redhat.com>
1580
1581 PR tree-optimization/49618
1582 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
1583 t recurse on the decl.
1584 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
1585 return true if expr isn't known to be defined in current
1586 TU or some other LTO partition.
1587
3aa439ed
MM
15882011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
1589
1590 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
1591 override CASE_VALUES_THRESHOLD.
1592
1593 * stmt.c (toplevel): Include params.h.
1594 (case_values_threshold): Use the --param case-values-threshold
1595 value if non-zero, otherwise use machine dependent value.
1596 (expand_case): Use case_values_threshold.
1597
1598 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
1599
1600 * doc/invoke.texi (--param case-values-threshold): Document.
1601
49956667
RH
16022011-07-05 Richard Henderson <rth@redhat.com>
1603
1604 * dwarf2out.c (dwarf2out_cfi_label): Make static.
1605 (dwarf2out_flush_queued_reg_saves): Make static.
1606 (dwarf2out_reg_save): Remove.
1607 (dwarf2out_return_save): Remove.
1608 (dwarf2out_return_reg): Remove.
1609 (dwarf2out_reg_save_reg): Remove.
1610 (dwarf2out_def_cfa): Merge into ...
1611 (dwarf2out_frame_init): ... here.
1612 * dwarf2out.h, tree.h: Remove declarations as necessary.
1613
9f2ff8e5
RH
16142011-07-05 Richard Henderson <rth@redhat.com>
1615
c2b40eba
RH
1616 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
1617 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1618 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
1619 the alloc insn.
1620
7d3c6cd8
RH
1621 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
1622 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
1623 (process_epilogue): Don't call dwarf2out_def_cfa.
1624
5f740973
RH
1625 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
1626 indicate the return address save.
1627 (process_cfa_register): Likewise.
1628
a1880147
RH
1629 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
1630 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
1631
9f2ff8e5
RH
1632 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
1633 for ar.pfs save at alloc insn.
1634
ddc6e7d6
RH
16352011-07-05 Richard Henderson <rth@redhat.com>
1636
1637 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
1638 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1639 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
1640 stack pointer save.
1641 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
1642 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
1643 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
1644 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
1645
a3515605
RH
16462011-07-05 Richard Henderson <rth@redhat.com>
1647
1648 * config/vax/vax.md (define_c_enum unspecv): New. Define the
1649 VUNSPEC_* constants here instead of via define_constants.
1650 (VUNSPEC_PEM): New constant.
1651 (procedure_entry_mask): New insn.
1652 (prologue): New expander.
1653 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
1654 (vax_expand_prologue): Rename from vax_output_function_prologue;
1655 emit rtl instead of text.
1656 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
1657 (print_operand): Add 'x' prefix.
1658
a7adbbcb
L
16592011-07-05 H.J. Lu <hongjiu.lu@intel.com>
1660
1661 PR middle-end/47715
1662 * calls.c (precompute_register_parameters): Promote the function
1663 argument before checking non-legitimate constant.
1664
cec11ec4
SP
16652011-07-05 Sebastian Pop <sebastian.pop@amd.com>
1666
1667 PR tree-optimization/47654
1668 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
1669 (lst_do_strip_mine_loop): Return an int.
1670 (lst_do_strip_mine): Same.
1671 (scop_do_strip_mine): Same.
1672 (scop_do_block): Loop blocking should strip-mine at least two loops.
1673 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
1674 (scop_do_interchange): Same.
1675 * graphite-poly.h (scop_do_interchange): Update declaration.
1676 (scop_do_strip_mine): Same.
1677
9b0d314a
SP
16782011-07-05 Sebastian Pop <sebastian.pop@amd.com>
1679
1680 * graphite-clast-to-gimple.c (precision_for_value): Removed.
1681 (precision_for_interval): Removed.
1682 (gcc_type_for_interval): Use mpz_sizeinbase.
1683
81d6d080
SP
16842011-07-05 Sebastian Pop <sebastian.pop@amd.com>
1685
1686 * graphite-ppl.h (value_max): Correct computation of max.
1687
369e3430
SP
16882011-07-05 Sebastian Pop <sebastian.pop@amd.com>
1689
1690 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
1691
fce5dddd
RG
16922011-07-05 Richard Guenther <rguenther@suse.de>
1693
1694 * c-decl.c (c_init_decl_processing): Defer building common
1695 tree nodes to c_common_nodes_and_builtins.
1696
12037899
RL
16972011-07-05 Razya Ladelsky <razya@il.ibm.com>
1698
1699 PR tree-optimization/49580
f9610d20 1700 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 1701 the loop's number of iterations.
f9610d20
UB
1702 * tree-parloops.c (transform_to_exit_first_loop): Add the
1703 handling of the loop's number of iterations before the call
12037899 1704 to gimple_duplicate_sese_tail.
28b21ebb 1705 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
1706 condition stmt to the preheader instead of iters_bb.
1707
509a31f8
L
17082011-07-05 H.J. Lu <hongjiu.lu@intel.com>
1709
1710 PR rtl-optimization/47449
1711 * fwprop.c (forward_propagate_subreg): Don't propagate hard
1712 register nor zero/sign extended hard register.
1713
39becbac
RG
17142011-07-05 Richard Guenther <rguenther@suse.de>
1715
1716 PR tree-optimization/49518
1717 PR tree-optimization/49628
1718 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
1719 irrelevant and invariant data-references.
1720 (vect_analyze_data_ref_access): For invariant loads clear the
1721 group association.
1722
15923c25
JJ
17232011-07-04 Jakub Jelinek <jakub@redhat.com>
1724
af421d9c
JJ
1725 PR rtl-optimization/49619
1726 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
1727 pass VOIDmode as op0_mode to recursive call, and return temp even
1728 when different from tor, just if it is not IOR of the original
1729 PLUS arguments.
1730
707f9919
JJ
1731 PR rtl-optimization/49472
1732 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
1733 negating MULT, negate the second operand instead of first.
1734 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
1735 a NEG and the other is MULT, don't attempt to optimize by negation
1736 of the MULT operand if it only moves the NEG operation around.
707f9919 1737
15923c25
JJ
1738 PR debug/49602
1739 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
1740 get_current_def return value if it can't be trusted to be
1741 the current value of the variable in the current bb.
1742
0d5e0c1b
UB
17432011-07-04 Uros Bizjak <ubizjak@gmail.com>
1744
1745 PR target/49600
1746 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1747 general register to memory for !TARGET_INTER_UNIT_MOVES.
1748
db297e20
GJL
17492011-07-04 Georg-Johann Lay <avr@gjlay.de>
1750
1751 PR target/44643
1752 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1753 instead of TREE_READONLY.
1754
f451d14d
GJL
17552011-07-04 Georg-Johann Lay <avr@gjlay.de>
1756
1757 * doc/extend.texi (AVR Built-in Functions): Update documentation
1758 of __builtin_avr_fmul*.
0d5e0c1b 1759 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
1760 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
1761 * config/avr/avr.md (fmul): Rename to fmul_insn.
1762 (fmuls): Rename to fmuls_insn.
1763 (fmulsu): Rename to fmulsu_insn.
1764 (fmul,fmuls,fmulsu): New expander.
1765 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
1766 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
1767 * config/avr/libgcc.S (__fmul): New function.
1768 (__fmuls): New function.
1769 (__fmulsu,__fmulsu_exit): New function.
1770
30f1e6de
RG
17712011-07-04 Richard Guenther <rguenther@suse.de>
1772
1773 PR tree-optimization/49615
1774 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1775 basic-block index check.
1776
6dab9931
GJL
17772011-07-04 Georg-Johann Lay <avr@gjlay.de>
1778
1779 * longlong.h (count_leading_zeros, count_trailing_zeros,
1780 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1781 resp. 64.
1782
b5066d8b
IR
17832011-07-03 Ira Rosen <ira.rosen@linaro.org>
1784
1785 PR tree-optimization/49610
1786 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1787 a basic block.
1788
bc712852
EB
17892011-07-02 Eric Botcazou <ebotcazou@adacore.com>
1790 Olivier Hainque <hainque@adacore.com>
1791 Nicolas Setton <setton@adacore.com>
1792
1793 * tree.h (TYPE_ARTIFICIAL): New flag.
1794 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
1795 the DIE of the type if it is artificial.
1796 (gen_array_type_die): Likewise.
1797 (gen_enumeration_type_die): Likewise.
1798 (gen_struct_or_union_type_die): Likewise.
1799 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
1800 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
1801
8b1bdcc5
JJ
18022011-07-01 Jakub Jelinek <jakub@redhat.com>
1803
1804 * tree-object-size.c (pass_through_call): Handle
1805 BUILT_IN_ASSUME_ALIGNED.
1806
06e88d73
MJ
18072011-07-01 Martin Jambor <mjambor@suse.cz>
1808
1809 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1810
6bbec3e1
L
18112011-07-01 H.J. Lu <hongjiu.lu@intel.com>
1812
1813 PR middle-end/48016
1814 * explow.c (update_nonlocal_goto_save_area): Use proper mode
1815 for stack save area.
1816 * function.c (expand_function_start): Likewise.
1817
e8fdf1cd
RG
18182011-07-01 Richard Guenther <rguenther@suse.de>
1819
1820 PR middle-end/49596
1821 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1822 may have unknown refs.
1823
80d3dd38
KT
18242011-07-01 Kai Tietz <ktietz@redhat.com>
1825
1826 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1827
179fc656
RO
18282011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1829
1830 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
1831 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
1832 (Specific, mips-sgi-irix6): Likewise.
1833
14a393a3
RO
18342011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1835
1836 PR libmudflap/49549
1837 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1838
3aecd443
JJ
18392011-07-01 Jakub Jelinek <jakub@redhat.com>
1840
1841 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1842 [idx]= and [idx1 ... idx2]= before initializers if needed for
1843 array initializers.
1844
7474f719
CL
18452011-07-01 Chen Liqin <liqin.gcc@gmail.com>
1846
1847 * config.gcc (score-*-elf): Remove score7.o.
1848 * config/score/t-score-elf: Likewise.
1849 * config/score/score.c: Merge score7 to score.c and
1850 remove forwarding functions.
1851 * config/score/score7.c: Deleted.
1852 * config/score/score7.h: Deleted.
1853
ab70d825
RG
18542011-07-01 Richard Guenther <rguenther@suse.de>
1855
1856 PR tree-optimization/49603
0d5e0c1b 1857 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 1858
1ac93f10
MJ
18592011-06-30 Martin Jambor <mjambor@suse.cz>
1860
1861 * tree-sra.c (struct access): Rename total_scalarization to
1862 grp_total_scalarization
1863 (completely_scalarize_var): New function.
1864 (sort_and_splice_var_accesses): Set total_scalarization in the
1865 representative access.
1866 (analyze_access_subtree): Propagate total scalarization accross the
1867 tree, no holes in totally scalarized trees, simplify coverage
1868 computation.
1869 (analyze_all_variable_accesses): Call completely_scalarize_var instead
1870 of completely_scalarize_record.
1871
97f309c3
RH
18722011-06-30 Richard Henderson <rth@redhat.com>
1873
1874 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
1875 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
1876 * config/i386/i386.c: Don't include dwarf2out.h.
1877 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
1878 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
1879 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
1880 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
1881 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
1882
ef284364
RH
18832011-06-30 Richard Henderson <rth@redhat.com>
1884
1885 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
1886 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1887 * final.c (final_scan_insn): Look for it, and invoke
1888 dwarf2out_frame_debug before the insn if found.
1889
c8412f97
RH
18902011-06-30 Richard Henderson <rth@redhat.com>
1891
1892 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1893 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1894
e3f903d8
RH
18952011-06-30 Richard Henderson <rth@redhat.com>
1896
1897 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
1898 Define a vector of this type.
1899 (regs_saved_in_regs): Use a VEC.
1900 (num_regs_saved_in_regs): Remove.
1901 (compare_reg_or_pc): New.
1902 (record_reg_saved_in_reg): Split out from...
1903 (dwarf2out_flush_queued_reg_saves): ... here.
1904 (clobbers_queued_reg_save): Update for VEC.
1905 (reg_saved_in): Likewise.
1906 (dwarf2out_frame_debug_init): Likewise.
1907 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
1908 (dwarf2out_frame_debug_cfa_register): Likewise.
1909
e2c9010a
EB
19102011-06-30 Eric Botcazou <ebotcazou@adacore.com>
1911
1912 PR tree-optimization/49572
1913 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
1914 type of the RHS instead of that of the LHS for the expression type.
1915
dbb07bbc
EB
19162011-06-30 Eric Botcazou <ebotcazou@adacore.com>
1917
1918 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1919 unconditionally.
1920
1565af08
RG
19212011-06-30 Richard Guenther <rguenther@suse.de>
1922
1923 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
1924 * tree-ssa-structalias.c (create_variable_info_for): Do not
1925 add initial constraints for non-var-decls. Properly handle
1926 globals in other ltrans partitions.
1927 (intra_create_variable_infos): Manually create constraints for
1928 the fake no-alias parameter.
1929 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
1930 and assert there are no clones.
1931
42373e0b
RG
19322011-06-30 Richard Guenther <rguenther@suse.de>
1933
1934 PR tree-optimization/46787
1935 * tree-data-ref.c (dr_address_invariant_p): Remove.
1936 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 1937 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
1938 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
1939 invariant loads.
1940
7aa62ea1
MJ
19412011-06-30 Martin Jambor <mjambor@suse.cz>
1942
1943 PR tree-optimization/49094
1944 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1945 (build_accesses_from_assign): Use it.
1946
f60f32b3
JJ
19472011-06-30 Jakub Jelinek <jakub@redhat.com>
1948
d9048d16
JJ
1949 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1950 handling of BUILT_IN_ASSUME_ALIGNED.
1951
f60f32b3
JJ
1952 PR debug/49364
1953 * dwarf2out.c (output_abbrev_section): Don't return early
1954 if abbrev_die_table_in_use is 1.
1955 (dwarf2out_finish): Instead don't call output_abbrev_section
1956 nor emit abbrev_section_label in that case.
1957
7cce15d4
NC
19582011-06-30 Nick Clifton <nickc@redhat.com>
1959
1960 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1961 for the V850E.
1962
ce7e54ff
JJ
19632011-06-30 Jakub Jelinek <jakub@redhat.com>
1964
1965 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1966 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1967
83197f37
IR
19682011-06-30 Ira Rosen <ira.rosen@linaro.org>
1969
1970 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1971 both pattern and original statements if necessary.
1972 (vect_transform_loop): Likewise.
1973 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
1974 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
1975 Mark the pattern statement only if the original statement doesn't
1976 have its own uses.
1977 (process_use): Call vect_mark_relevant with additional parameter.
1978 (vect_mark_stmts_to_be_vectorized): Likewise.
1979 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
1980 (vect_analyze_stmt): Handle both pattern and original statements
1981 if necessary.
1982 (vect_transform_stmt): Don't store vectorized pattern statement
1983 in the original statement.
1984 (vect_is_simple_use_1): Use related pattern statement only if the
1985 original statement is irrelevant.
1986 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1987
dbb07bbc 19882011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 1989
dbb07bbc
EB
1990 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1991 option.
1992 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1993 entry.
5c0d88e6
CF
1994 (TARGET_AVX128_OPTIMAL): New definition.
1995 * config/i386/i386.c (initial_ix86_tune_features): Initialize
1996 X86_TUNE_AVX128_OPTIMAL entry.
1997 (ix86_option_override_internal): Enable the generation
1998 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
1999 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
2000 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
2001
931050d0
EB
20022011-06-29 Eric Botcazou <ebotcazou@adacore.com>
2003
2004 PR tree-optimization/49539
2005 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
2006 names by means of stmt_references_abnormal_ssa_name.
2007 (associate_plusminus): Call can_propagate_from before propagating
2008 from definition statements.
2009 (ssa_forward_propagate_and_combine): Remove superfluous newline.
2010
dfedbe40
RG
20112011-06-29 Richard Guenther <rguenther@suse.de>
2012
2013 * doc/invoke.texi: Document -scev dump modifier.
2014 * tree-pass.h (TDF_SCEV): New dump flag.
2015 * tree-dump.c (dump_option_value_in): Add scev.
2016 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
2017 * tree-scalar-evolution.c: Likewise.
2018
3a86cfeb
NS
20192011-06-29 Nathan Sidwell <nathan@codesourcery.com>
2020
2021 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
2022 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
2023 (__gnu_unwind_pr_common): Reconstruct additional indirection
2024 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 2025
f3678bfb
UW
20262011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2027
2028 PR rtl-optimization/49114
2029 * reload.c (struct replacement): Remove SUBREG_LOC member.
2030 (push_reload): Do not set it.
2031 (push_replacement): Likewise.
2032 (subst_reload): Remove dead code.
2033 (copy_replacements): Remove assertion.
2034 (copy_replacements_1): Do not handle SUBREG_LOC.
2035 (move_replacements): Likewise.
2036 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
2037 Detect subregs via recursive descent instead of via SUBREG_LOC.
2038
433ba0a5 20392011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 2040
433ba0a5
GJL
2041 * config/avr/avr.c (avr_encode_section_info): Dispatch to
2042 default_encode_section_info.
2043
73f6eabc
RS
20442011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
2045
2046 PR tree-optimization/49545
2047 * builtins.c (get_object_alignment_1): Update function comment.
2048 Do not use DECL_ALIGN for functions, but test
2049 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
2050 * fold-const.c (get_pointer_modulus_and_residue): Don't check
2051 for functions here.
2052 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2053
a0f33d3a
JJ
20542011-06-29 Jakub Jelinek <jakub@redhat.com>
2055
2056 PR debug/49567
0d5e0c1b
UB
2057 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
2058 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 2059
946c8b23 20602011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 2061
946c8b23 2062 PR target/34734
0d5e0c1b 2063 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
2064 about uninitialized data attributed 'progmem' from here...
2065 (avr_encode_section_info): ...to this new function.
2066 (TARGET_ENCODE_SECTION_INFO): New define.
2067 (avr_section_type_flags): For data in ".progmem.data", remove
2068 section flag SECTION_WRITE.
2069
9a63dee4 20702011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 2071
9a63dee4
GJL
2072 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
2073 _xmulhisi3_exit.
2074 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
2075 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
2076 (__umulhisi3): Ditto.
2077 * config/avr/avr.md (mulhisi3): New insn expender.
2078 (umulhisi3): New insn expender.
2079 (*mulhisi3_call): New insn.
2080 (*umulhisi3_call): New insn.
2081
4374ce45
JM
20822011-06-28 Joseph Myers <joseph@codesourcery.com>
2083
2084 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
2085
94759030
RH
20862011-06-28 Richard Henderson <rth@redhat.com>
2087
2088 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
2089 all code and arguments that handled pushes. Update all callers.
2090
d018b46e
RH
20912011-06-28 Richard Henderson <rth@redhat.com>
2092
2093 * config/arm/arm.c (arm_output_function_prologue): Don't call
2094 thumb1_output_function_prologue.
2095 (arm_expand_prologue): Avoid dead store.
2096 (number_of_first_bit_set): Use ctz_hwi.
2097 (thumb1_emit_multi_reg_push): New.
2098 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
2099 to emit the entire prologue as rtl.
2100 (thumb1_output_interwork): Split out from
2101 thumb1_output_function_prologue.
2102 (thumb1_output_function_prologue): Remove.
2103 (arm_attr_length_push_multi): Handle thumb1.
2104 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
2105 (prologue_thumb1_interwork): New.
2106 (*push_multi): Allow thumb1; use push_mult_memory_operand.
2107 * config/arm/predicates.md (push_mult_memory_operand): New.
2108
97269a23
EB
21092011-06-28 Eric Botcazou <ebotcazou@adacore.com>
2110
2111 * config/sparc/sync.md (*stbar): Delete.
2112 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
2113
4a9206ce
EB
21142011-06-28 Eric Botcazou <ebotcazou@adacore.com>
2115
2116 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
2117
6138f9bd
RO
21182011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2119
2120 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
2121 (TARGET_64BIT_DEFAULT): Define.
2122 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
2123 of tm_file.
2124 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
2125
a7d0d30f
JM
21262011-06-28 Joseph Myers <joseph@codesourcery.com>
2127
2128 * common.opt (in_lto_p): New Variable entry.
2129 * flags.h (in_lto_p): Move to common.opt.
2130 * gcc.c: Include params.h.
2131 (set_option_handlers): Also use common_handle_option and
2132 target_handle_option.
0d5e0c1b 2133 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
2134 * opts.c (debug_type_names): Move from toplev.c.
2135 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
2136 (common_handle_option): Return early in the driver for some options.
2137 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
2138 opts pointer.
a7d0d30f
JM
2139 * toplev.c (in_lto_p): Move to common.opt.
2140 (debug_type_names): Move to opts.c.
2141 * Makefile.in (OBJS): Remove opts.o.
2142 (OBJS-libcommon-target): Add opts.o.
2143 (gcc.o): Update dependencies.
2144
420863a9
KT
21452011-06-28 Kai Tietz <ktietz@redhat.com>
2146
0d5e0c1b 2147 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 2148
0498a2be
RR
21492011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2150
2151 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
2152 with '=' constraint modifier.
2153 (*divdf3_vfp): Likewise.
2154 ("*mulsf3_vfp"): Likewise.
2155 ("*muldf3_vfp"): Likewise.
2156 ("*mulsf3negsf_vfp"): Likewise.
2157 ("*muldf3negdf_vfp"): Likewise.
2158
4a68b724
NC
21592011-06-28 Nick Clifton <nickc@redhat.com>
2160
2161 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
2162 relaxation when performing an incremental link.
2163
72a32729
KT
21642011-06-28 Kai Tietz <ktietz@redhat.com>
2165
2166 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
2167 within BB from last to first.
2168
88a00ef7
JM
21692011-06-28 Joseph Myers <joseph@codesourcery.com>
2170
2171 * genattr-common.c: New. Based on genattr.c.
2172 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
2173 (MOSTLYCLEANFILES): Add insn-attr-common.h.
2174 (opts.o): Update dependencies.
2175 (.PRECIOUS): Add insn-attr-common.h.
2176 (simple_rtl_generated_h): Add insn-attr-common.h.
2177 (build/genattr-common.o): New.
2178 (genprogrtl): Add attr-common.
2179 * genattr.c (main): Include insn-attr-common.h. Don't generate
2180 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 2181 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 2182
880962ac
GJL
21832011-06-28 Georg-Johann Lay <avr@gjlay.de>
2184
4a68b724 2185 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 2186 avr-*-* and avr-*-rtems* targets.
4a68b724 2187
880962ac
GJL
2188 * config/avr/elf.h: New file.
2189 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
2190 (TARGET_ASM_SELECT_SECTION): Define.
2191 (INIT_SECTION_ASM_OP): Undefine.
2192 (FINI_SECTION_ASM_OP): Undefine.
2193 (READONLY_DATA_SECTION_ASM_OP): Undefine.
2194 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
2195 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
2196 * config/avr/avr.h:
2197 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
2198 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
2199 (MAX_OFILE_ALIGNMENT): Move to elf.h.
2200 (STRING_LIMIT): Move to elf.h.
2201 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
2202 (ASM_DECLARE_OBJECT_NAME): Remove.
2203 (ESCAPES): Remove.
2204 (ASM_OUTPUT_SKIP): Remove.
2205 (DWARF2_DEBUGGING_INFO): Remove.
2206 (OBJECT_FORMAT_ELF): Remove.
2207 (USER_LABEL_PREFIX): Remove.
2208 (ASM_OUTPUT_EXTERNAL): Remove.
2209 (ASM_OUTPUT_ASCII): Remove.
2210 (TYPE_ASM_OP): Remove.
2211 (SIZE_ASM_OP): Remove.
2212 (WEAK_ASM_OP): Remove.
2213 (STRING_ASM_OP): Remove.
2214 (SET_ASM_OP): Remove.
2215 (ASM_WEAKEN_LABEL): Remove.
2216 (TYPE_OPERAND_FMT): Remove.
2217 (ASM_DECLARE_FUNCTION_SIZE): Remove.
2218 (ASM_FINISH_DECLARE_OBJECT): Remove.
2219 (NO_DOLLAR_IN_LABEL): Remove.
2220 (ASM_GENERATE_INTERNAL_LABEL): Remove.
2221 (ASM_OUTPUT_CASE_LABEL): Remove.
2222 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
2223 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
2224 (gas_output_ascii): Remove.
2225 (gas_output_limited_string): Remove.
2226 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
2227 * config/avr/avr-protos.h
2228 (gas_output_ascii): Remove prototye.
2229 (gas_output_limited_string): Remove prototype.
2230
a1b5eb93
RE
22312011-06-27 Richard Earnshaw <rearnsha@arm.com>
2232
2233 PR target/48637
2234 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
2235 asm operands.
2236
310e71a8
JH
22372011-06-27 Jan Hubicka <jh@suse.cz>
2238
4a9206ce
EB
2239 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
2240 node instead of references in node.
310e71a8 2241
171da07a
RH
22422011-06-27 Richard Henderson <rth@redhat.com>
2243
2244 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
2245 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
2246 inside ifdef.
2247
dc2a58da
JJ
22482011-06-27 Jakub Jelinek <jakub@redhat.com>
2249
56300785
JJ
2250 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
2251
45d439ac
JJ
2252 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
2253 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
2254 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
2255 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
2256 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
2257 (evaluate_stmt, execute_fold_all_builtins): Handle
2258 BUILT_IN_ASSUME_ALIGNED.
2259 * tree-ssa-dce.c (propagate_necessity): Likewise.
2260 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2261 call_may_clobber_ref_p_1): Likewise.
2262 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
2263 (expand_builtin_assume_aligned): New function.
2264 * doc/extend.texi (__builtin_assume_aligned): Document.
2265
dc2a58da
JJ
2266 PR debug/49544
2267 * cselib.c (promote_debug_loc): If cselib_preserve_constants
2268 and l has two DEBUG_INSN owned locs instead of just one, adjust
2269 the second location's setting_insn too.
2270
0d72f628
RO
22712011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2272
2273 PR libmudflap/38738
2274 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
2275
bebd619e
NC
22762011-06-27 Nick Clifton <nickc@redhat.com>
2277
0d5e0c1b
UB
2278 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
2279 bit position of highest bit set into a count of the high zero bits.
bebd619e 2280
353b39fa
EB
22812011-06-27 Eric Botcazou <ebotcazou@adacore.com>
2282
2283 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
2284
a7af037b
EB
22852011-06-27 Eric Botcazou <ebotcazou@adacore.com>
2286
2287 PR lto/48492
2288 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
2289 to a NULL parent.
2290
1c86160a
RG
22912011-06-27 Richard Guenther <rguenther@suse.de>
2292
2293 PR tree-optimization/49394
2294 * passes.c (execute_one_pass): Restore current_pass after
2295 applying IPA transforms.
2296
5da49a9d
KT
22972011-06-27 Kai Tietz <ktietz@redhat.com>
2298
2299 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
2300 out of type precision after operation.
0d5e0c1b
UB
2301 (find_bswap): Take for limit value the integer auto-promotion
2302 into account.
5da49a9d 2303
9242213f
EB
23042011-06-27 Eric Botcazou <ebotcazou@adacore.com>
2305
2306 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
2307 forward scan as well.
2308
db8b22ef
TG
23092011-06-27 Tristan Gingold <gingold@adacore.com>
2310
2311 PR target/44241
2312 * config/vms/vms-protos.h: New file.
2313 * config/vms/vms-crtlmap.map: New file.
2314 * config/vms/vms.c: New file.
2315 * config/vms/make-crtlmap.awk: New file.
2316 * config/vms/vms-crtl.h: File removed.
2317 * config/vms/vms-crtl-64.h: File removed.
2318 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
2319 * config/alpha/vms64.h: Do not include vms-crtl-64.h
2320 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
2321 clear some builtins on VMS. Calls vms_patch_builtins.
2322 (avms_asm_output_external): Remove.
2323 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
2324 (struct crtl_name_spec): Remove
2325 (DO_CTRL_NAMES): Remove.
2326 * config/ia64/vms.h (struct crtl_name_spec): Remove
2327 (DO_CTRL_NAMES): Remove.
2328 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
2329 clear some builtins on VMS. Calls vms_patch_builtins.
2330 (ia64_asm_output_external): Remove DO_CRTL_NAME.
2331 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 2332 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 2333
b213221d
TG
23342011-06-27 Tristan Gingold <gingold@adacore.com>
2335
2336 * config/alpha/alpha.c (alpha_end_function): Always generate .end
2337 directive on VMS.
2338
157b9300
EB
23392011-06-27 Eric Botcazou <ebotcazou@adacore.com>
2340
2341 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
2342 the function receives nonlocal gotos.
2343
ccbf5bb4
RG
23442011-06-27 Richard Guenther <rguenther@suse.de>
2345
2346 PR tree-optimization/49536
2347 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2348 For non-scalar inner types use a scalar type according to
2349 the scalar inner mode.
2350
fe4cd14b
RG
23512011-06-27 Richard Guenther <rguenther@suse.de>
2352
2353 PR tree-optimization/49365
2354 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
2355
afc3f22f
RS
23562011-06-27 Richard Guenther <rguenther@suse.de>
2357
2358 PR tree-optimization/49169
2359 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
2360 the alignment of function decls.
2361
92590751 23622011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
2363
2364 PR target/47997
2365 * config/darwin.c (darwin_mergeable_string_section): Place string
2366 constants in '.cstring' rather than '.const' when CF/NSStrings are
2367 active.
2368
605354f3
EB
23692011-06-26 Eric Botcazou <ebotcazou@adacore.com>
2370
2371 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
2372 (emit_save_register_window): Likewise.
2373 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
2374 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
2375 Swap back %o7/%i7 in register naming.
2376
0e9197f5
IS
23772011-06-25 Iain Sandoe <iains@gcc.gnu.org>
2378
2379 PR driver/49371
2380 * config/darwin.c (darwin_override_options): Improve warning when
2381 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
2382 is given with fpie/fPIE.
2383 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
2384 * config/darwin9.h (PIE_SPEC): New.
53461199 2385
605354f3 23862011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
2387
2388 * timevar.c (timevar_print): Increase width for display of timevar
2389 name.
2390
f796c438
JJ
23912011-06-24 Jakub Jelinek <jakub@redhat.com>
2392
2393 PR c++/46400
2394 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
2395 instead of TYPE_CHAIN for chain_next for types.
2396
a7289eaf
RH
23972011-06-24 Richard Henderson <rth@redhat.com>
2398
2399 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
2400 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
2401 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
2402 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
2403 (sparc_flat_expand_prologue): Emit individual instructions
2404 instead of one of the above.
2405
c4b9a87e
ER
24062011-06-24 Easwaran Raman <eraman@google.com>
2407
2408 PR rtl-optimization/49429
2409 PR target/49454
2410 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
2411 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
2412 used to copy y into x.
2413 * calls.c (initialize_argument_information): Mark
2414 an argument addressable if it is passed by invisible reference.
2415 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
2416 if it is passed by reference.
2417
5ac6c59e
L
24182011-06-24 H.J. Lu <hongjiu.lu@intel.com>
2419
2420 PR rtl-optimization/49504
2421 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
2422 subtraction of a pointer in Pmode if pointers extend unsigned.
2423 (num_sign_bit_copies1): Likewise.
5ac6c59e 2424
b807e627
MJ
24252011-06-24 Martin Jambor <mjambor@suse.cz>
2426
2427 PR tree-optimizations/49516
2428 * tree-sra.c (sra_modify_assign): Choose the safe path for
2429 aggregate copies if we also did scalar replacements.
2430
9a1ea4b9
RR
24312011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2432
2433 PR target/49335
2434 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 2435 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 2436
949cfd0a
AK
24372011-06-24 Andi Kleen <ak@linux.intel.com>
2438
2439 * tree-sra.c (type_internals_preclude_sra_p): Add msg
2440 parameter. Split up ifs and report reason in *msg.
2441 (reject): Add.
2442 (find_var_candiate): Add msg variable.
2443 Split up ifs and report reason to reject.
2444 (find_param_candidates): Add msg variable.
2445 Pass msg to type_internals_preclude_sra_p.
2446
49e9c661 24472011-06-23 Jeff Law <law@redhat.com>
ad3577df 2448
b0c11403
JL
2449 PR middle-end/48770
2450 * reload.h (reload): Change to return a bool.
2451 * ira.c (ira): If requested by reload, run a fast DCE pass after
2452 reload has completed. Fix comment typo.
2453 * reload1.c (need_dce): New file scoped static.
2454 (reload): Set reload_completed here. Return whether or not a DCE
2455 pass after reload is needed.
2456 (delete_dead_insn): Set need_dce as needed.
2457
ad3577df
JL
2458 PR middle-end/49465
2459 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
2460 to detect threading through joiner block. If there was already
2461 an edge to the new target, then do not change the PHI nodes.
2462
7cf64710
JJ
24632011-06-23 Jakub Jelinek <jakub@redhat.com>
2464
2465 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
2466 get_pointer_alignment to see if base isn't sufficiently aligned.
2467
febb1302
JH
24682011-06-23 Jan Hubicka <jh@suse.cz>
2469
2470 PR tree-optimize/49373
2471 * tree-pass.h (all_late_ipa_passes): Declare.
2472 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
2473 (cgraph_optimize): Execute late passes; remove unreachable funcions
2474 after materialization.
2475 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
2476 LTOing.
febb1302
JH
2477 * passes.c (all_late_ipa_passes): Declare.
2478 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
2479 (init_optimization_passes): Move ipa_pta to late passes; schedule
2480 fixup_cfg at beggining of all_passes.
febb1302
JH
2481 (apply_ipa_transforms): New function.
2482 (execute_one_pass): When doing simple ipa pass, apply all transforms.
2483
4c77620d
JM
24842011-06-23 Joseph Myers <joseph@codesourcery.com>
2485
2486 * params.c: Include common/common-target.h. Don't include tm.h.
2487 (lang_independent_params): Move from toplev.c.
2488 (global_init_params): New.
2489 * params.h (global_init_params): Declare.
2490 * target.def (default_params): Move to common-target.def.
2491 * toplev.c (lang_independent_options): Remove.
2492 (lang_independent_params): Move to params.c.
2493 (general_init): Use global_init_params.
2494 * common/common-target.def (option_default_params): Move from
2495 target.def.
2496 * common/config/ia64/ia64-common.c: Include params.h.
2497 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2498 from ia64.c.
2499 * common/config/rs6000/rs6000-common.c: Include params.h.
2500 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2501 from rs6000.c.
2502 * common/config/sh/sh-common.c: Include params.h.
2503 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2504 from sh.c.
2505 * common/config/spu/spu-common.c: Include params.h.
2506 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
2507 from spu.c.
2508 * config/ia64/ia64.c (ia64_option_default_params,
2509 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
2510 * config/rs6000/rs6000.c (rs6000_option_default_params,
2511 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
2512 * config/sh/sh.c (sh_option_default_params,
2513 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
2514 * config/spu/spu.c (spu_option_default_params,
2515 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
2516 * Makefile.in (OBJS): Remove params.o.
2517 (OBJS-libcommon-target): Add params.o.
2518 (params.o, $(common_out_object_file)): Update dependencies.
2519 * doc/tm.texi: Regenerate.
2520
6aad1e38
AM
25212011-06-23 Alan Modra <amodra@gmail.com>
2522
2523 PR bootstrap/49383
2524 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
2525 invocation for 2011-06-09 changes.
2526
4fb489e7
JJ
25272011-06-22 Jakub Jelinek <jakub@redhat.com>
2528
fb79f500
JJ
2529 PR libgomp/49490
2530 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
2531 use n ceil/ nthreads size for the first n % nthreads threads in the
2532 team instead of all threads except for the last few ones which
fb79f500
JJ
2533 get less work or none at all.
2534
4fb489e7
JJ
2535 PR debug/49496
2536 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
2537 uses.
2538
9c7c9f10
RG
25392011-06-22 Richard Guenther <rguenther@suse.de>
2540
2541 PR tree-optimization/49493
2542 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
2543 Refer to the alias target of variables.
2544 (associate_varinfo_to_alias_1): Remove.
2545 (ipa_pta_execute): Do not associate aliases with anything.
2546 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
2547 (cgraph_function_node): Likewise.
2548 (cgraph_function_or_thunk_node): Likewise.
2549 (varpool_variable_node): Likewise.
2550
7cf13d1f
NS
25512011-06-22 Nathan Sidwell <nathan@codesourcery.com>
2552
0d5e0c1b 2553 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
2554 * config.gcc (arm*-*-linux*): Default to gnu tls.
2555 (arm*-*-*): Add --with-tls option.
2556 (all_defaults): Add 'tls'.
2557
78a8eb4e
RH
25582011-06-22 Richard Henderson <rth@redhat.com>
2559
2560 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
2561 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
2562 (dwarf2out_frame_debug_cfa_window_save): Rename from
2563 dwarf2out_window_save; make static.
2564 * tree.h (dwarf2out_window_save): Don't declare.
2565
2566 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
2567 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2568 (emit_save_register_window): Rename from gen_save_register_window;
2569 emit the insn and add REG_CFA_* notes.
2570 (sparc_expand_prologue): Update to match.
2571 * config/sparc/sparc.md (save_register_window_1): Simplify from
2572 save_register_window<P:mode>.
2573
3b4c46d7
L
25742011-06-22 H.J. Lu <hongjiu.lu@intel.com>
2575
2576 PR target/49497
2577 * config/i386/i386.md (*lea_general_2): Always allow SImode.
2578 (*lea_general_2_zext): Likewise.
2579 (imul to lea peepholes): Use const359_operand and check
2580 TARGET_PARTIAL_REG_STALL.
2581
2582 * config/i386/predicates.md (const359_operand): New.
2583
4399cf59
MM
25842011-06-22 Michael Matz <matz@suse.de>
2585
2586 * cgraphunit.c (assemble_thunk): Use correct return type.
2587
31a0c825 25882011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 2589 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
2590
2591 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
2592 (neon_output_shift_immediate): Ditto.
2593 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
2594 prototype.
2595 (neon_output_shift_immediate): Ditto.
2596 * config/arm/neon.md (vashl<mode>3): Modified constraint.
2597 (vashr<mode>3_imm): New insn pattern.
2598 (vlshr<mode>3_imm): Ditto.
2599 (vashr<mode>3): Modified constraint.
2600 (vlshr<mode>3): Ditto.
2601 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
2602 predicate.
2603 (imm_for_neon_rshift_operand): Ditto.
2604 (imm_lshift_or_reg_neon): Ditto.
2605 (imm_rshift_or_reg_neon): Ditto.
2606
2607 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
2608
ddb555ed
JJ
26092011-06-22 Jakub Jelinek <jakub@redhat.com>
2610
36dc1a88
JJ
2611 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
2612 builtin calls even if likelyvalue is not CONSTANT.
2613 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
2614 Return get_value_for_expr of first operand
2615 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
2616 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2617 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
2618 their non-checking counterparts.
2619 (call_may_clobber_ref_p_1): Likewise.
2620 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
2621 like their non-checking counterparts.
2622 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2623 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
2624 like their non-checking counterparts.
2625 (find_func_clobbers): Likewise.
2626 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
2627 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
2628
41cd4957
JJ
2629 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
2630 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
2631 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
2632 of base type reference as argument.
2633 (resolve_addr_in_expr): Likewise. Fix keep computation.
2634 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
2635 (convert_descriptor_to_mode): ... this. For wider types convert to
2636 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
2637 (typed_binop): New function.
2638 (scompare_loc_descriptor, ucompare_loc_descriptor,
2639 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
2640 default to unsigned type instead of signed.
2641
ddb555ed
JJ
2642 PR debug/47858
2643 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
2644 (gimple_build_debug_source_bind_stat): New prototype.
2645 (gimple_build_debug_source_bind): Define.
2646 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
2647 gimple_debug_source_bind_get_value,
2648 gimple_debug_source_bind_get_value_ptr,
2649 gimple_debug_source_bind_set_var,
2650 gimple_debug_source_bind_set_value): New inlines.
2651 * gimple.c (gimple_build_debug_source_bind_stat): New function.
2652 * gimple-pretty-print.c (dump_gimple_debug): Handle
2653 GIMPLE_DEBUG_SOURCE_BIND.
2654 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
2655 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2656 * tree-parloops.c (eliminate_local_variables,
2657 separate_decls_in_region): Likewise.
2658 (separate_decls_in_region_debug): Renamed from
2659 separate_decls_in_region_debug_bind. Handle
2660 gimple_debug_source_bind_p.
2661 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
2662 prototypes.
2663 (DECL_HAS_DEBUG_ARGS_P): Define.
2664 (struct tree_function_decl): Add has_debug_args_flag field.
2665 * tree.c (debug_args_for_decl): New variable.
2666 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
2667 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
2668 (rewrite_debug_stmt_uses): New function.
2669 (rewrite_stmt): Use it to rewrite debug stmt uses.
2670 * rtl.def (DEBUG_PARAMETER_REF): New.
2671 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
2672 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
2673 DEBUG_PARAMETER_REF.
2674 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
2675 * print-rtl.c (print_rtx): Likewise.
2676 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
2677 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
2678 debug stmts in the first bb.
2679 * tree-inline.c (remap_ssa_name): If remapping default def
2680 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
2681 a source bind debug stmt.
2682 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
2683 (maybe_move_debug_stmts_to_successors): Likewise.
2684 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
2685 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
2686 debug args vector from old_decl to new_decl.
2687 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
2688 or modified parameters, add debug bind stmts before call
0d5e0c1b 2689 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
2690 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
2691 on DECL_DEBUG_EXPRs from debug args vector.
2692 (expand_debug_source_expr): New function.
2693 (expand_debug_locations): Use it for source bind insns.
2694 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
2695 * var-tracking.c (prepare_call_arguments): Add debug args
2696 to call_arguments if any.
2697 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
2698 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
2699 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
2700 (get_ref_die_offset, parameter_ref_descriptor): New functions.
2701 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
2702 (gen_subprogram_die): Handle parameters identified by
2703 DEBUG_PARAMETER_REF.
2704
ccdc2164
NS
27052011-06-22 Nathan Sidwell <nathan@codesourcery.com>
2706
2707 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
2708 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
2709 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
2710 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
2711 (arm_tls_descseq_addr): New.
2712 (legitimize_tls_address): Add tlsdesc support.
2713 (arm_cannot_copy_insn_p): Check for tlscall.
2714 (arm_emit_tls_decoration): Likewise.
2715 * config/arm/arm.h (TARGET_GNU2_TLS): New.
2716 (OPTION_DEFAULT_SPECS): Add with-tls support.
2717 * config/arm/arm.md (R1_REGNUM): Define.
2718 (tlscall): New.
2719 * config/arm/arm.opt (tls_type): New enumeration type and values.
2720 (mtls-dialect): New switch.
2721 * config/arm/arm-opts.h (enum tls_type): New.
2722
70e41a6a
NP
27232011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
2724
2725 * attribs.c (register_attribute): Added assert to check that all
2726 attribute specs are registered with a name that is not empty and
2727 does not start with '_'.
2728 (decl_attributes): Avoid the lookup of the "naked" attribute spec
2729 if the function has no attributes.
2730 * tree.c (is_attribute_with_length_p): Removed.
2731 (is_attribute_p): Removed.
0d5e0c1b 2732 (private_is_attribute_p): New.
70e41a6a
NP
2733 (private_lookup_attribute): New.
2734 (lookup_attribute): Removed.
2735 (lookup_ident_attribute): New.
2736 (remove_attribute): Require the first argument to be in the form
2737 'text', not '__text__'. Updated asserts.
2738 (merge_attributes): Use lookup_ident_attributes instead of
2739 lookup_attribute.
2740 (merge_dllimport_decl_attributes): Use remove_attribute.
2741 (attribute_list_contained): Likewise.
2742 (attribute_list_equal): Immediately return 1 if the arguments are
2743 identical pointers.
2744 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
2745 'int'. Require the first argument to be in the form 'text', not
2746 '__text__'. Require the second argument to be an identifier.
2747 (lookup_attribute): Made inline. Require the first argument to be
2748 in the form 'text', not '__text__'.
2749 (private_is_attribute_p, private_lookup_attribute): New.
2750 Updated comments.
0d5e0c1b 2751
e0a8ecf2
AM
27522011-06-21 Andrew MacLeod <amacleod@redhat.com>
2753
2754 * builtins.c: Add sync_ or SYNC__ to builtin names.
2755 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
2756 * omp-low.c: Add sync_ or SYNC__ to builtin names.
2757
663827d3 27582011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 2759
663827d3
GJL
2760 PR target/33049
2761 * config/avr/avr.md (extzv): New expander.
2762 (*extzv): New insn.
2763 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
2764 * config/avr/constraints.md (C04): New constraint.
2765 * doc/md.texi (Machine Constraints): Document it.
2766
146aef0b
JJ
27672011-06-21 Jakub Jelinek <jakub@redhat.com>
2768
2769 PR middle-end/49489
2770 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
2771 unsignedp argument instead of 1 for clrsb_optab.
2772 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
2773 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
2774 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
2775 * optabs.c (widen_leading): Call widen_operand and expand_unop
2776 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 2777 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 2778
c0503294
GJL
27792011-06-21 Georg-Johann Lay <avr@gjlay.de>
2780
2781 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2782
3801c801
BS
27832011-06-21 Bernd Schmidt <bernds@codesourcery.com>
2784
0bddee8e
BS
2785 * gensupport.c (add_define_attr): New static function.
2786 (is_predicable): Allow multi-alternative lists for the "predicable"
2787 attribute.
2788 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
2789 (process_one_cond_exec): Call alter_attrs_for_insn.
2790 * doc/md.texi (Defining Attributes): Mention some standard names.
2791 (Conditional Execution): Update documentation for "predicable".
2792
3801c801
BS
2793 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
2794 __builtin_clrsbll): Document.
2795 * doc/rtl.texi (clrsb): New entry.
2796 * optabs.c (widen_leading): Renamed from widen_clz. New argument
2797 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
2798 (expand_unop): Handle clrsb_optab.
2799 (init_optabs): Initialize it.
2800 * optabs.h (enum optab_index): New entry OTI_clrsb.
2801 (clrsb_optab): Define.
2802 * genopinit.c (optabs): Add an entry for it.
2803 * builtins.c (expand_builtin): Handle clrsb builtin functions.
2804 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
2805 BUILT_IN_CLRSBLL): New.
2806 * rtl.def (CLRSB): New code.
2807 * dwarf2out.c (mem_loc_descriptor): Handle it.
2808 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2809 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
2810 and popcount.
2811 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
2812 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
2813 (__ctzDI2): Move declaration.
2814 * config/bfin/bfin.md (clrsbsi2): New expander.
2815 (signbitssi2): Use the CLRSB rtx.
2816 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
2817 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
2818
55f01229
RG
28192011-06-21 Richard Guenther <rguenther@suse.de>
2820
637c11bd 2821 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 2822
5181cd6a
IR
28232011-06-21 Ira Rosen <ira.rosen@linaro.org>
2824
2825 PR tree-optimization/49478
2826 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2827 with constant operand.
2828
e4ee3d70
RG
28292011-06-21 Richard Guenther <rguenther@suse.de>
2830
2831 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 2832
7b7ec6c5
RG
28332011-06-21 Richard Guenther <rguenther@suse.de>
2834
2835 PR tree-optimization/49483
2836 * tree-vect-stmts.c (vectorizable_assignment): Also handle
2837 VIEW_CONVERT_EXPR conversions.
2838
1b916ca6
JM
28392011-06-21 Joseph Myers <joseph@codesourcery.com>
2840
2841 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
2842 * config/avr/avr-tables.opt: New file (generated).
2843 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
2844 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
2845 avr-mcus.def.
2846 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
2847 (avr_option_override): Don't process -mmcu= argument here. Set
2848 avr_current_device using avr_mcu_index.
637c11bd 2849 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
2850 * config/avr/avr.opt (mmcu=): Use Enum.
2851 * config/avr/t-avr (avr-devices.o): Update dependencies.
2852 ($(srcdir)/config/avr/avr-tables.opt): New.
2853 * target.def (help): Remove.
2854 * doc/tm.texi.in (TARGET_HELP): Remove.
2855 * doc/tm.texi: Regenerate.
2856 * opts.c: Don't include target.h.
2857 (common_handle_option): Don't call targetm.help.
2858 * system.h (TARGET_HELP): Poison.
2859 * Makefile.in (opts.o): Update dependencies.
2860
7ecfa34f
RO
28612011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2862
2863 * config/usegld.h: New file.
2864 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
2865 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 2866 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
2867 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
2868 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
2869 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
2870 Define.
7ecfa34f
RO
2871 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
2872 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
2873 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
2874 (STACK_CHECK_STATIC_BUILTIN): Define.
2875 * config/sol2.opt (compat-bsd): Remove.
2876 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
2877 * config/sol2-bi.h: New file.
2878 * config/sol2-gld.h: Remove.
2879 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
2880 (NO_DBX_BNSYM_ENSYM): Remove.
2881 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2882 (STACK_CHECK_STATIC_BUILTIN): Remove.
2883 Test USE_GLD instead of TARGET_GNU_LD.
2884 * config/i386/sol2-10.h: Rename to ...
2885 * config/i386/sol2-bi.h .. this.
2886 (SUBTARGET_EXTRA_SPECS): Redefine.
2887 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
2888 (MULTILIB_DEFAULTS): Remove.
2889 (DEFAULT_ARCH32_P): Define.
2890 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
2891 (ARCH64_SUBDIR): Define.
2892 Test USE_GLD instead of TARGET_GNU_LD.
2893 (I386_EMULATION): Rename to ...
2894 (ARCH32_EMULATION): ... this.
2895 (X86_64_EMULATION): Rename to ...
2896 (ARCH64_EMULATION): ... this.
2897 (TARGET_LD_EMULATION): Remove.
2898 (LINK_ARCH_SPEC): Remove.
2899 * config/i386/sol2-gas.h: Remove.
2900 * config/i386/t-sol2-10: Rename to ...
2901 * config/i386/t-sol2-64: ... this.
2902 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
2903 (AS_SPARC64_FLAG): Define.
2904 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
2905 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
2906 depending on TARGET_CPU_DEFAULT.
2907 (CPP_CPU_SPEC): Redefine.
2908 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
2909 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
2910 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
2911 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
2912 ASM_ARCH_DEFAULT_SPEC): Redefine.
2913 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2914 LINK_ARCH_DEFAULT_SPEC.
2915 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
2916 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
2917 (ARCH64_SUBDIR): Define.
2918 (LINK_ARCH64_SPEC): Redefine.
2919 (CC1_SPEC): Redefine.
2920 (OPTION_DEFAULT_SPECS): Redefine.
2921 (MULTILIB_DEFAULTS): Define.
2922 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
2923 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
2924 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
2925 (NO_DBX_BNSYM_ENSYM): Remove.
2926 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2927 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
2928 (TARGET_ASM_NAMED_SECTION): Likewise.
2929 (STACK_CHECK_STATIC_BUILTIN): Remove.
2930 * config/sparc/sol2-bi.h: Remove.
2931 * config/sparc/sol2-gas-bi.h: Remove.
2932 * config/sparc/sol2-gas.h: Remove.
2933 * config/sparc/sol2-gld-bi.h: Remove.
2934 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
2935 common parts ...
2936 (*-*-solaris2*): ... here.
2937
4b583c43 29382011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 2939
4b583c43 2940 PR other/43564
637c11bd
UB
2941 * ipa-inline.c (can_inline_edge_p): Check
2942 !DECL_DISREGARD_INLINE_LIMITS.
2943
3bb556ad 29442011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 2945
3bb556ad
CB
2946 PR middle-end/49139
2947 * cgraphunit.c (process_function_and_variable_attributes): warn when
2948 always_inline functions that are not inline.
637c11bd
UB
2949 * ipa-inline-transform.c (inline_transform): Always call
2950 optimize_inline.
2951 * tree-inline.c (tree_inlinable_function_p): Use error instead
2952 of sorry.
3bb556ad 2953 (expand_call_inline): Likewise.
637c11bd 2954
f1ee724c
JJ
29552011-06-21 Jakub Jelinek <jakub@redhat.com>
2956
2957 * Makefile.in (dg_target_exps): Set.
2958 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
2959 instead of 7, try to divide it more evenly.
2960
29612011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 2962
931050d0 2963 PR target/49089
97ef5ae6
CF
2964 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
2965 (avx256_split_unaligned_store): New definition.
2966 (ix86_option_override_internal): Enable avx256 unaligned load/store
2967 splitting only when avx256_split_unaligned_load/store is set.
2968
998c75b6
BS
29692011-06-20 Bernd Schmidt <bernds@codesourcery.com>
2970
2971 * regrename.c (scan_rtx_reg): Handle the case where we write to an
2972 open chain in a smaller mode without failing the entire block.
2973
83a8cbda
L
29742011-06-20 H.J. Lu <hongjiu.lu@intel.com>
2975
2976 PR middle-end/47725
2977 * combine.c (cant_combine_insn_p): Don't check zero/sign
2978 extended hard registers.
2979
3a769784
AM
29802011-06-21 Alan Modra <amodra@gmail.com>
2981
2982 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
2983 CONST high part large-toc address.
2984 (rs6000_tls_referenced_p): Make static.
2985 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
2986
d1e32c4a
L
29872011-06-20 H.J. Lu <hongjiu.lu@intel.com>
2988
2989 PR middle-end/47725
2990 * combine.c (cant_combine_insn_p): Check zero/sign extended
2991 hard registers.
2992
c2954af9
RR
29932011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2994
2995 PR target/49385
2996 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2997 one of the operands is a register.
2998
a95015b6
KT
29992011-06-20 Kai Tietz <ktietz@redhat.com>
3000
637c11bd
UB
3001 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
3002 operations in combination with binary and.
a95015b6 3003
49a30d00
BS
30042011-06-20 Bernd Schmidt <bernds@codesourcery.com>
3005
3006 * regrename.c (do_replace): Don't update notes.
3007
3bae1d98
AM
30082011-06-20 Alan Modra <amodra@gmail.com>
3009
3010 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
3011 of toc-relative address in CONST.
3012 (rs6000_delegitimize_address): Recognize changed address.
3013 (rs6000_legitimize_reload_address): Likewise.
3014 (rs6000_emit_move): Don't force these constants to memory.
3015 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
3016 toc-relative address in CONST.
3017 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
3018 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
3019
10937b0c
L
30202011-06-18 H.J. Lu <hongjiu.lu@intel.com>
3021
637c11bd 3022 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
3023 (count_trailing_zeros): Likewise.
3024
0c587260
L
30252011-06-18 H.J. Lu <hongjiu.lu@intel.com>
3026
3027 PR other/49325
3028 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
3029 .init_array can be used with .ctors on targets.
3030 * configure: Regenerated.
3031
c020c92b
EB
30322011-06-18 Eric Botcazou <ebotcazou@adacore.com>
3033
3034 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
3035 if the element type is volatile.
3036
cd35bcf7
JH
30372011-06-18 Jan Hubicka <jh@suse.cz>
3038
3039 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
3040 extra name aliases.
3041 (lto_symtab_resolve_can_prevail_p): Likewise.
3042 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
3043 * cgraphbuild.c (record_reference): Remove extra body alias code.
3044 (mark_load): Likewise.
3045 (mark_store): Likewise.
3046 * cgraph.h (varpool_node): Remove extra_name filed;
3047 add alias_of and extraname_alias.
3048 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
3049 (varpool_alias_aliased_node): New inline function.
3050 (varpool_variable_node): New function.
3051 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
3052 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
3053 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
3054 (input_varpool_node): Likewise.
3055 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
3056 (varpool_externally_visible_p): Remove extra body alias code.
3057 (function_and_variable_visibility): Likewise.
3058 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
3059 (ipa_pta_execute): Use it.
3060 * varpool.c (varpool_remove_node): Remove extra name alias code.
3061 (varpool_mark_needed_node): Likewise.
3062 (varpool_analyze_pending_decls): Analyze aliases.
3063 (assemble_aliases): New functoin.
3064 (varpool_assemble_decl): Use it.
3065 (varpool_create_variable_alias): New function.
3066 (varpool_extra_name_alias): Rewrite.
3067 (varpool_for_node_and_aliases): New function.
3068
c96b4102
JJ
30692011-06-18 Jakub Jelinek <jakub@redhat.com>
3070
3071 PR target/49411
3072 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
3073 last_arg_constant and last argument doesn't match its predicate,
3074 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
3075 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
3076 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
3077 spelling of error message.
3078 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
3079 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
3080 const_0_to_255_operand instead of const_int_operand.
3081
3082 Revert:
3083 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3084
3085 * config/i386/sse.md (blendbits): Remove mode attribute.
3086 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
3087 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
3088 Check integer value of operand 3 in insn constraint.
3089
9a2091cd
HPN
30902011-06-17 Hans-Peter Nilsson <hp@axis.com>
3091
3092 PR rtl-optimization/48542
3093 * reload.c (find_equiv_reg): Stop looking when finding a
3094 setjmp-type call.
3095 * reload1.c (reload_as_needed): Invalidate all reload
3096 registers when crossing a setjmp-type call.
3097
361b51c0
JL
30982011-06-16 Jeff Law <law@redhat.com>
3099
3100 * tree-ssa-threadupdate.c (struct redirection_data): New field
3101 intermediate_edge.
3102 (THREAD_TARGET2): Define.
637c11bd 3103 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
3104 (lookup_redirection_data): Drop useless argument. Extract the
3105 outgoing_edge and intermediate edge from E. Callers updated.
3106 (copy_phi_args, update_destination_phis): New functions.
3107 (fix_duplicate_block_edges): Likewise.
3108 (create_edge_and_update_destination_phis): Duplicate all the edges
3109 hung off e->aux. Use copy_phi_args.
3110 (create_duplicates): Use fix_duplicate_block_edges.
3111 (fixup_template_block): Likewise.
3112 (redirect_edges): If necessary, redirect the joiner block's incoming
3113 edge to the duplicate of the joiner block.
3114 (thread_block): Don't muck up loops when threading through a joiner
3115 block.
637c11bd 3116 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
3117 (mark_threaded_blocks, register_jump_thread): Likewise.
3118 * tree-flow.h (register_jump_thread): Add new argument. Callers
3119 updated.
3120 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
3121 (thread_across_edge): Handle threading through a joiner block.
637c11bd 3122
ee460e75
MJ
31232011-06-16 Martin Jambor <mjambor@suse.cz>
3124
3125 PR tree-optimization/49343
3126 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
3127 calculate offset, provide 2nd operand for the new COMPONENT_REF.
3128
a285ba2e
IS
31292011-06-16 Iain Sandoe <iains@gcc.gnu.org>
3130
3131 * config/darwin-protos.h (machopic_select_rtx_section): Move to
3132 inside RTX_CODE ifdef.
3133
0703f020
TV
31342011-06-16 Tom de Vries <tom@codesourcery.com>
3135
3136 PR target/45098
637c11bd
UB
3137 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
3138 Disallow NULL pointer for pointer arithmetic.
0703f020 3139
900c07da
RR
31402011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3141
3142 PR target/49398
3143 Revert.
3144 2011-06-10 Wei Guozhi <carrot@google.com>
3145
3146 PR target/45335
3147 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
3148 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
3149 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
3150 related peephole2.
3151 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
3152 related peephole2.
3153 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
3154 (arm_legitimate_ldrd_p): New prototype.
3155 (arm_output_ldrd): New prototype.
3156 * config/arm/arm.c (arm_check_ldrd_operands): New function.
3157 (arm_legitimate_ldrd_p): New function.
3158 (arm_output_ldrd): New function.
3159
c020c92b 31602011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
3161
3162 PR middle-end/46500
3163 * doc/tm.texi.in: Update Copyright date.
3164 * doc/tm.texi: Regenerate.
3165 * targhooks.c (default_setup_incoming_varargs): Replace
3166 CUMULATIVE_ARGS* argument type with cumulative_args_t.
3167 (default_pretend_outgoing_varargs_named): Likewise.
3168 (hook_pass_by_reference_must_pass_in_stack): Likewise.
3169 (hook_callee_copies_named): Likewise.
3170 (default_function_arg_advance): Likewise.
3171 (default_function_arg): Likewise.
3172 (default_function_incoming_arg): Likewise.
3173 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
3174 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
3175 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
3176 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
3177 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
3178 * targhooks.h (default_setup_incoming_varargs): Likewise.
3179 (default_pretend_outgoing_varargs_named): Likewise.
3180 (hook_pass_by_reference_must_pass_in_stack): Likewise.
3181 (hook_callee_copies_named): Likewise.
3182 (default_function_arg_advance): Likewise.
3183 (default_function_arg): Likewise.
3184 (default_function_incoming_arg): Likewise.
3185 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
3186 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
3187 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
3188 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
3189 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
3190 * target.def (pass_by_reference): Likewise.
3191 (setup_incoming_varargs, strict_argument_naming): Likewise.
3192 (pretend_outgoing_varargs_named, callee_copies): Likewise.
3193 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
3194 (function_incoming_arg): Likewise.
3195 * target.h: Don't include "tm.h" .
3196 (cumulative_args_t): New typedef.
3197 [GCC_TM_H] (get_cumulative_args): New static inline function.
3198 [GCC_TM_H] (pack_cumulative_args): Likewise.
3199 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
3200 argument type with cumulative_args_t.
3201 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
3202 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
3203 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
3204 (frv_arg_partial_bytes, frv_function_arg): Likewise.
3205 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
3206 (frv_function_arg_1): Likewise.
3207 * config/s390/s390.c (s390_pass_by_reference): Likewise.
3208 (s390_function_arg_advance, s390_function_arg): Likewise.
3209 * config/m32c/m32c.c (m32c_function_arg): Likewise.
3210 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
3211 (m32c_strict_argument_naming): Likewise.
3212 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
3213 (spu_function_arg_advance): Likewise.
3214 (spu_setup_incoming_varargs): Likewise. Make static.
3215 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
3216 Remove prototype.
3217 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
3218 CUMULATIVE_ARGS* argument type with cumulative_args_t.
3219 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
3220 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
3221 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
3222 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
3223 (mep_pass_by_reference, mep_function_arg): Likewise.
3224 (mep_function_arg_advance): Likewise.
3225 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
3226 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
3227 (m32r_function_arg, m32r_function_arg_advance): Likewise.
3228 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
3229 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
3230 (ix86_function_arg, ix86_pass_by_reference): Likewise.
3231 (ix86_setup_incoming_varargs): Likewise.
3232 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
3233 (sh_strict_argument_naming): Likewise.
3234 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
3235 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
3236 (sh_function_arg_advance, sh_function_arg): Likewise.
3237 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
3238 (pdp11_function_arg_advance): Likewise.
3239 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
3240 Likewise.
3241 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
3242 * config/avr/avr.c (avr_function_arg): Likewise.
3243 (avr_function_arg_advance): Likewise.
3244 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
3245 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
3246 (xtensa_function_arg_1): Likewise.
637c11bd
UB
3247 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
3248 Likewise.
d5cc9181
JR
3249 (xstormy16_function_arg): Likewise.
3250 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
3251 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
3252 (fr30_function_arg_advance): Likewise.
3253 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3254 (lm32_function_arg, lm32_function_arg_advance): Likewise.
3255 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
3256 (moxie_function_arg, moxie_function_arg_advance): Likewise.
3257 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
3258 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
3259 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
3260 (cris_function_arg, cris_function_incoming_arg): Likewise.
3261 (cris_function_arg_advance, cris_function_arg_1): Likewise.
3262 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
3263 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
3264 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
3265 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
3266 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
3267 (mn10300_arg_partial_bytes): Likewise.
3268 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
3269 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
3270 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
3271 (ia64_function_arg_1): Likewise.
3272 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
3273 (m68k_function_arg): Likewise.
3274 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
3275 (rs6000_function_arg, setup_incoming_varargs): Likewise.
3276 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
3277 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
3278 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
3279 (picochip_arg_advance): Likewise.
3280 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
3281 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
3282 (mcore_function_arg_advance): Likewise.
3283 * config/score/score.c (score_pass_by_reference): Likewise.
3284 (score_function_arg_advance): Likewise.
3285 (score_arg_partial_bytes): Likewise. Make static.
3286 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
3287 * config/arm/arm.c (arm_arg_partial_bytes): Replace
3288 CUMULATIVE_ARGS* argument type with cumulative_args_t.
3289 (arm_function_arg, arm_function_arg_advance): Likewise.
3290 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
3291 * config/pa/pa.c (pa_pass_by_reference): Likewise.
3292 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
3293 (pa_function_arg): Likewise.
3294 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
3295 (mips_function_arg, mips_function_arg_advance): Likewise.
3296 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
3297 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
3298 * config/vax/vax.c (vax_function_arg): Likewise.
3299 (vax_function_arg_advance): Likewise.
3300 * config/h8300/h8300.c (h8300_function_arg): Likewise.
3301 (h8300_function_arg_advance): Likewise.
3302 * config/v850/v850.c (v850_pass_by_reference): Likewise.
3303 (v850_strict_argument_naming, v850_function_arg): Likewise.
3304 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
3305 (v850_setup_incoming_varargs): Likewise.
3306 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
3307 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
3308 (mmix_function_arg, mmix_pass_by_reference): Likewise.
3309 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
3310 with const void *.
3311 * config/bfin/bfin.c (setup_incoming_varargs): Replace
3312 CUMULATIVE_ARGS* argument type with cumulative_args_t.
3313 (bfin_function_arg_advance, bfin_function_arg): Likewise.
3314 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
3315 * calls.c (emit_call_1): Change type of args_so_far to
3316 cumulative_args_t. Changed all callers.
3317 (initialize_argument_information): Likewise.
3318 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
3319 * dse.c (get_call_args): Likewise.
3320 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3321 * function.c (pass_by_reference, reference_callee_copied): Likewise.
3322 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
3323 New member args_so_far_v. Changed all users.
3324 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
3325 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3326 * config/mips/mips.c (mips_output_args_xfer): Likewise.
3327 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
3328 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
3329 * config/microblaze/microblaze.c (microblaze_expand_prologue):
3330 Likewise.
d5cc9181
JR
3331 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
3332 m32r_pass_by_reference.
3333
51312233
IR
33342011-06-16 Ira Rosen <ira.rosen@linaro.org>
3335
3336 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
3337 argument to be a VEC of statements.
637c11bd
UB
3338 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
3339 assert that pattern statements have to have their vector type set.
51312233
IR
3340 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
3341 Change the first argument to be a VEC of statements. Update
3342 documentation.
3343 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
3344 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
3345 (vect_recog_widen_mult_pattern): Change the first argument to be a
3346 VEC of statements. Update documentation. Check that the constant is
3347 INTEGER_CST. Support multiplication by a constant that fits an
3348 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
3349 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
3350 call. Handle additional pattern statements if necessary.
3351
fd4df33d
NC
33522011-06-16 Nick Clifton <nickc@redhat.com>
3353
3354 PR target/49427
3355 * config.gcc: Set cpu_type to v850 for any V850 architecture.
3356 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
3357 md_file, extra_modes, out_file and extra_options are these are all
3358 deduced from cpu_type.
3359
fbd05da0
GJL
33602011-06-16 Georg-Johann Lay <avr@gjlay.de>
3361
3362 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
3363 truncation mask to 63.
3364
0ad8bb3b
GJL
33652011-06-16 Georg-Johann Lay <avr@gjlay.de>
3366
3367 PR target/49313
3368 PR target/29524
3369 * longlong.h: Add AVR support:
3370 (count_leading_zeros): New macro.
3371 (count_trailing_zeros): New macro.
3372 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
3373 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
3374 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
3375 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
3376 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
3377 (LIB2FUNCS_EXCLUDE): Add _clz.
3378 * config/avr/libgcc.S (XCALL): Move up in file.
3379 (XJMP): New C Macro.
3380 (DEFUN): New asm macro.
3381 (ENDF): New asm macro.
3382 (__ffssi2): New function.
3383 (__ffshi2): New function.
3384 (__loop_ffsqi2): New function.
3385 (__ctzsi2): New function.
3386 (__ctzhi2): New function.
3387 (__clzdi2): New function.
3388 (__clzsi2): New function.
3389 (__clzhi2): New function.
3390 (__paritydi2): New function.
3391 (__paritysi2): New function.
3392 (__parityhi2): New function.
59c1e10b 3393 (__parityqi2): New function.
0ad8bb3b
GJL
3394 (__popcounthi2): New function.
3395 (__popcountsi2): New function.
3396 (__popcountdi2): New function.
3397 (__popcountqi2): New function.
3398 (__bswapsi2): New function.
3399 (__bswapdi2): New function.
3400 (__ashldi3): New function.
3401 (__ashrdi3): New function.
3402 (__lshrdi3): New function.
3403 Fix suspicous lines.
3404
12430896
RG
34052011-06-16 Richard Guenther <rguenther@suse.de>
3406
3407 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
3408 the same as x != 0.
637c11bd
UB
3409 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
3410 to (bool) X & 1.
12430896
RG
3411 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
3412 equality compares against zero for the lower bit.
3413
09302442
JJ
34142011-06-16 Jakub Jelinek <jakub@redhat.com>
3415
3416 PR tree-optimization/49419
3417 * tree-vrp.c (execute_vrp): Call init_range_assertions
3418 before estimate_numbers_of_iterations, call
3419 free_number_of_iterations_estimates before calling
3420 remove_range_assertions.
3421
81c41166
RE
34222011-06-16 Revital Eres <revital.eres@linaro.org>
3423
3424 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
3425 (struct partial_schedule): Add rows_length field.
3426 (verify_partial_schedule): Check rows_length.
3427 (ps_insert_empty_row): Handle rows_length.
3428 (create_partial_schedule): Likewise.
3429 (free_partial_schedule): Likewise.
3430 (reset_partial_schedule): Likewise.
3431 (create_ps_insn): Remove rest_count argument.
3432 (remove_node_from_ps): Update rows_length.
3433 (add_node_to_ps): Update rows_length and call create_ps_insn
3434 without passing row_rest_count.
3435 (rotate_partial_schedule): Update rows_length.
3436
d24dc7b3
RE
34372011-06-16 Revital Eres <revital.eres@linaro.org>
3438
3439 * ddg.c (add_intra_loop_mem_dep): New function.
3440 (build_intra_loop_deps): Call it.
3441
361b51c0 34422011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
3443
3444 * df-problems.c (df_lr_local_compute): Manually CSE
3445 PIC_OFFSET_TABLE_REGNUM.
3446 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
3447 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
3448
85ce9375
JH
34492011-06-13 Jan Hubicka <jh@suse.cz>
3450
3451 * cgraphunit.c (handle_alias_pairs): New function.
3452 (cgraph_finalize_compilation_unit): Use it.
3453 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
3454 as externally visible.
3455
a577c405
RG
34562011-06-15 Richard Guenther <rguenther@suse.de>
3457
3458 * expr.c (expand_expr_real_2): Reduce all integral types to
3459 bitfield precision.
3460 (expand_expr_real_1): Likewise.
3461
93536c97
MJ
34622011-06-15 Martin Jambor <mjambor@suse.cz>
3463
3464 PR tree-optimization/48613
3465 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
3466 ipa_node_params_vector is NULL.
fd4df33d 3467
ba45cfc4
JJ
34682011-06-15 Jakub Jelinek <jakub@redhat.com>
3469
3470 PR debug/49382
3471 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
3472 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
3473 location in the list, even if it is modified before first real insn.
ba45cfc4 3474 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 3475 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 3476
6fc5966f
AM
34772011-06-15 Alexander Monakov <amonakov@ispras.ru>
3478
3479 PR target/49349
3480 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
3481 (fence_to_rewind). Use it to notice when bookkeeping will be placed
3482 above a fence. Update comments.
3483 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
3484 placed just above it. Do not allow NULL place_to_insert.
3485
9d5e7640
IR
34862011-06-15 Ira Rosen <ira.rosen@linaro.org>
3487
3488 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
3489 (slpeel_tree_peel_loop_to_edge): Don't call
3490 remove_dead_stmts_from_loop.
3491 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
3492 remove irrelevant pattern statements. For irrelevant statements
3493 check if it is the last statement of a detected pattern, use
3494 corresponding pattern statement instead.
3495 (destroy_loop_vec_info): No need to remove pattern statements,
3496 only free stmt_vec_info.
3497 (vect_transform_loop): For irrelevant statements check if it is
3498 the last statement of a detected pattern, use corresponding
3499 pattern statement instead.
3500 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
3501 pattern statements. Set basic block for the new statement.
3502 (vect_pattern_recog): Update documentation.
3503 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
3504 operands of pattern statements.
3505 (vectorizable_call): Fix printing. In case of a pattern statement
3506 use the lhs of the original statement when creating a dummy
3507 statement to replace the original call.
3508 (vect_analyze_stmt): For irrelevant statements check if it is
3509 the last statement of a detected pattern, use corresponding
3510 pattern statement instead.
3511 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
3512 statements use gsi of the original statement.
3513
677f3fa8
JM
35142011-06-14 Joseph Myers <joseph@codesourcery.com>
3515
3516 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
3517 common/common-target-def.h.
3518 * target.def (default_target_flags, handle_option,
3519 supports_split_stack, optimization_table, init_struct,
3520 except_unwind_info, unwind_tables_default, have_named_sections):
3521 Move to common/common-target.def.
3522 * target.h (enum opt_levels, struct default_options): Move to
3523 common/common-target.h.
3524 * targhooks.c (default_except_unwind_info,
3525 dwarf2_except_unwind_info, sjlj_except_unwind_info,
3526 default_target_handle_option, empty_optimization_table): Move to
3527 common/common-targhooks.c.
3528 * targhooks.h (default_except_unwind_info,
3529 dwarf2_except_unwind_info, sjlj_except_unwind_info,
3530 default_target_handle_option, empty_optimization_table): Move to
3531 common/common-targhooks.h.
3532 * common/common-target-def.h: Include common/common-targhooks.h.
3533 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
3534 defined.
3535 * common/common-target.def (handle_option, option_init_struct,
3536 option_optimization_table, default_target_flags,
3537 except_unwind_info, supports_split_stack, unwind_tables_default,
3538 have_named_sections): Move from target.def.
3539 (HOOK_PREFIX): Undefine at end of file.
3540 * common/common-target.h: Include input.h.
3541 (enum opt_levels, struct default_options): Move from target.h.
3542 * common/common-targhooks.c, common/common-targhooks.h: New.
3543 * config.gcc (target_has_targetm_common): Default to yes.
3544 (moxie*): Set target_has_targetm_common=no.
3545 (hppa*-*-*): Don't set target_has_targetm_common=yes.
3546 * doc/tm.texi: Regenerate.
3547 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
3548 (C_TARGET_DEF_H): Add common/common-targhooks.h.
3549 (GCC_OBJS): Remove vec.o.
3550 (OBJS): Remove hooks.o and vec.o.
3551 (OBJS-libcommon-target): Add vec.o, hooks.o and
3552 common/common-targhooks.o.
3553 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
3554 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
3555 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
3556 cfglayout.o, $(out_object_file), $(common_out_object_file)):
3557 Update dependencies.
3558 (common/common-targhooks.o): New.
637c11bd 3559 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
3560 * common/config/pa/pa-common.c: Include more headers. Take
3561 copyright dates from pa.c.
3562 (pa_option_optimization_table, pa_handle_option,
3563 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
3564 TARGET_HANDLE_OPTION): Move from pa.c.
3565 * common/config/alpha/alpha-common.c,
3566 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
3567 common/config/bfin/bfin-common.c,
3568 common/config/cris/cris-common.c,
3569 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
3570 common/config/h8300/h8300-common.c,
3571 common/config/i386/i386-common.c,
3572 common/config/ia64/ia64-common.c,
3573 common/config/iq2000/iq2000-common.c,
3574 common/config/lm32/lm32-common.c,
3575 common/config/m32c/m32c-common.c,
3576 common/config/m32r/m32r-common.c,
3577 common/config/m68k/m68k-common.c,
3578 common/config/mcore/mcore-common.c,
3579 common/config/mep/mep-common.c,
3580 common/config/microblaze/microblaze-common.c,
3581 common/config/mips/mips-common.c,
3582 common/config/mmix/mmix-common.c,
3583 common/config/mn10300/mn10300-common.c,
3584 common/config/pdp11/pdp11-common.c,
3585 common/config/picochip/picochip-common.c,
3586 common/config/rs6000/rs6000-common.c,
3587 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
3588 common/config/score/score-common.c, common/config/sh/sh-common.c,
3589 common/config/sparc/sparc-common.c,
3590 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
3591 common/config/vax/vax-common.c,
3592 common/config/xstormy16/xstormy16-common.c,
3593 common/config/xtensa/xtensa-common.c: New.
3594 * config/alpha/alpha.c: Include common/common-target.h.
3595 (alpha_option_optimization_table, alpha_handle_option,
3596 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3597 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
3598 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
3599 * config/arm/arm.c (arm_option_optimization_table,
3600 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3601 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
3602 arm-common.c.
3603 * config/avr/avr.c (avr_option_optimization_table,
3604 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3605 to avr-common.c.
3606 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
3607 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
3608 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
3609 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
3610 * config/cris/cris.c (cris_option_optimization_table,
3611 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3612 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
3613 cris-common.c.
3614 * config/fr30/fr30.c (fr30_option_optimization_table,
3615 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
3616 to fr30-common.c.
3617 * config/frv/frv.c (frv_option_optimization_table,
3618 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
3619 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
3620 * config/h8300/h8300.c (h8300_option_optimization_table,
3621 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3622 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
3623 * config/i386/i386-protos.h (ix86_handle_option): Declare.
3624 * config/i386/i386.c: Include common/common-target.h.
3625 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
3626 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
3627 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
3628 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
3629 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
3630 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
3631 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
3632 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
3633 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
3634 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
3635 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
3636 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
3637 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
3638 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
3639 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
3640 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
3641 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
3642 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
3643 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
3644 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
3645 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
3646 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
3647 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
3648 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
3649 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
3650 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
3651 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
3652 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
3653 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
3654 ix86_option_optimization_table, ix86_option_init_struct,
3655 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
3656 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3657 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
3658 i386-common.c.
3659 * config/i386/t-i386 (i386.o): Update dependencies.
3660 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
3661 * config/ia64/ia64.c (ia64_option_optimization_table,
3662 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3663 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3664 ia64_handle_option): Move to ia64-common.c.
3665 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3666 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
3667 * config/lm32/lm32.c (lm32_option_optimization_table,
3668 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3669 to lm32-common.c.
3670 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
3671 m32c-common.c.
3672 * config/m32r/m32r.c (m32r_option_optimization_table,
3673 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3674 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3675 m32r_handle_option): Move to m32r-common.c.
3676 (m32r_memory_move_cost): Remove comment referring to
3677 TARGET_HANDLE_OPTION.
3678 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
3679 Move to m68k-common.c.
3680 * config/mcore/mcore.c (mcore_option_optimization_table,
3681 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3682 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
3683 * config/mep/mep.c (mep_option_optimization_table,
3684 mep_handle_option, TARGET_HANDLE_OPTION,
3685 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
3686 Move to mep-common.c.
3687 * config/microblaze/microblaze.c
3688 (microblaze_option_optimization_table,
3689 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3690 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
3691 * config/mips/mips.c (mips_handle_option,
3692 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3693 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
3694 mips-common.c.
3695 * config/mmix/mmix.c (mmix_option_optimization_table,
3696 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3697 Move to mmix-common.c.
3698 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3699 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
3700 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3701 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
3702 * config/pa/pa.c: Include common/common-target.h.
3703 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3704 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3705 pa_handle_option): Move to pa-common.c.
3706 (pa_option_override): Use targetm_common.except_unwind_info.
3707 (pa_asm_output_mi_thunk, pa_function_section): Use
3708 targetm_common.have_named_sections.
3709 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
3710 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3711 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3712 pdp11_handle_option, pdp11_option_init_struct): Move to
3713 pdp11-common.c.
3714 * config/picochip/picochip.c (picochip_option_optimization_table,
3715 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
3716 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
3717 * config/rs6000/rs6000.c: Include common/common-target.h.
3718 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
3719 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
3720 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
3721 rs6000_handle_option): Move to rs6000-common.c.
3722 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3723 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
3724 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3725 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
3726 * config/s390/s390.c (processor_flags_table,
3727 s390_option_optimization_table, s390_option_init_struct,
3728 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
3729 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3730 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
3731 * config/s390/s390.h (processor_flags_table): Declare.
3732 * config/score/score.c (score_option_optimization_table,
3733 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3734 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
3735 score_handle_option): Move to score-common.c.
3736 * config/sh/sh.c (sh_option_optimization_table,
3737 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3738 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3739 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
3740 * config/sparc/sparc.c: Include common/common-target.h.
3741 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3742 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
3743 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
3744 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
3745 spu_option_init_struct): Move to spu-common.c.
3746 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3747 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
3748 * config/v850/v850.c (small_memory_physical_max,
3749 v850_handle_memory_optionn v850_handle_option,
3750 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3751 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
3752 v850-common.c.
637c11bd 3753 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
3754 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
3755 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3756 Move to xtensa-common.c.
3757 * cfglayout.c: Include common/common-target.h.
3758 (fixup_reorder_chain): Use targetm_common.have_named_sections.
3759 * cfgrtl.c: Include common/common-target.h.
3760 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
3761 targetm_common.have_named_sections.
3762 * dbxout.c: Include common/common-target.h.
3763 (dbxout_function_end): Use targetm_common.have_named_sections.
3764 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
3765 targetm_common.except_unwind_info.
3766 * dwarf2out.c: Include common/common-target.h.
3767 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3768 dwarf2out_begin_prologue, dwarf2out_frame_init,
3769 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
3770 targetm_common.except_unwind_info.
3771 * except.c: Include common/common-target.h.
3772 (init_eh, finish_eh_generation,
3773 output_one_function_exception_table): Use
3774 targetm_common.except_unwind_info.
637c11bd 3775 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
3776 * explow.c: Include common/common-target.h.
3777 * expr.c: Include common/common-target.h.
637c11bd 3778 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
3779 * function.c: Include common/common-target.h.
3780 (expand_function_end): Use targetm_common.except_unwind_info.
3781 * haifa-sched.c: Include common/common-target.h.
637c11bd 3782 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
3783 * lto-opts.c: Include common/common-target.h instead of target.h.
3784 (lto_reissue_options): Use targetm_common.handle_option.
3785 * opts.c: Include common/common-target.h.
3786 (target_handle_option): Use targetm_common.handle_option.
3787 (init_options_struct): Update comment referring to
3788 targetm.target_option.optimization. Use
3789 targetm_common.default_target_flags,
3790 targetm_common.unwind_tables_default and
3791 targetm_common.option_init_struct.
3792 (default_options_optimization): Use
3793 targetm_common.option_optimization_table.
3794 (finish_options): Use targetm_common.except_unwind_info,
3795 targetm_common.unwind_tables_default,
3796 targetm_common.have_named_sections and
3797 targetm_common.supports_split_stack.
3798 * toplev.c: Include common/common-target.h.
3799 (process_options): Use targetm_common.have_named_sections.
3800 * tree-tailcall.c: Include common/common-target.h.
637c11bd 3801 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 3802 * tree.c: Include common/common-target.h.
637c11bd 3803 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
3804 * varasm.c: Include common/common-target.h.
3805 (resolve_unique_section, hot_function_section,
3806 default_function_section): Use targetm_common.have_named_sections.
3807
d26c7090
ER
38082011-06-14 Easwaran Raman <eraman@google.com>
3809
3810 PR rtl-optimization/44194
3811 * dse.c: Include tree-flow.h
3812 (insn_info): Add new field non_frame_wild_read.
3813 (group_info): Add new fields escaped_n and escaped_p.
3814 (kill_on_calls): New variable.
3815 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
3816 (dse_step0): Initialize kill_on_calls.
3817 (can_escape): New function.
3818 (set_usage_bits): Add additional parameter; record information
3819 about escaped locations.
637c11bd 3820 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
3821 (dse_step2_nospill): Set kill_on_calls based on
3822 group->escaped_n and group->escaped_n.
3823 (add_wild_read): Refactor into...
3824 (reset_active_stores): ... New function, and
3825 (free_read_records): ... New function.
3826 (add_non_frame_wild_read): New function.
3827 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 3828 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
3829 (dse_step5_nospill): Call scan_reads_nospill for instructions
3830 marked as non_frame_wild_read.
637c11bd 3831 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 3832
c49a6962
JM
38332011-06-14 Joseph Myers <joseph@codesourcery.com>
3834
3835 * common/common-target-def.h, common/common-target.def,
3836 common/common-target.h, common/config/default-common.c,
3837 common/config/pa/pa-common.c: New files.
3838 * Makefile.in (common_out_file, common_out_object_file,
3839 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
3840 (OBJS-libcommon-target): Include $(common_out_object_file).
3841 (prefix.o): Update dependencies.
3842 ($(common_out_object_file), common/common-target-hooks-def.h,
3843 s-common-target-hooks-def-h): New.
3844 (s-tm-texi): Also check timestamp on common-target.def.
3845 (build/genhooks.o): Update dependencies.
3846 * config.gcc (common_out_file, target_has_targetm_common): Define.
3847 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
3848 TARGET_ALWAYS_STRIP_DOTDOT.
3849 * configure.ac (common_out_object_file): Define.
3850 (common_out_file, common_out_object_file): Substitute.
3851 (common): Create directory.
3852 * configure: Regenerate.
3853 * doc/tm.texi.in (targetm_common): Document.
3854 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
3855 * doc/tm.texi: Regenerate.
3856 * genhooks.c (hook_array): Also include common/common-target.def.
3857 * prefix.c (tm.h): Don't include.
3858 (common/common-target.h): Include.
3859 (ALWAYS_STRIP_DOTDOT): Don't define.
3860 (update_path): Use targetm_common.always_strip_dotdot instead of
3861 ALWAYS_STRIP_DOTDOT.
3862 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
3863
22c5fa5f
DL
38642011-06-14 David Li <davidxl@google.com>
3865
3866 * passes.c (execute_function_todo): Remove TODO_dump_func.
3867 (execute_one_pass): Remove TODO_dump_func.
3868 (execute_function_dump): New function.
3869 * tree-vrp.c: Remove TODO_dump_func.
3870 * regrename.c: Remove TODO_dump_func.
3871 * fwprop.c: Remove TODO_dump_func.
3872 * tree-into-ssa.c: Remove TODO_dump_func.
3873 * tree-complex.c: Remove TODO_dump_func.
3874 * tracer.c: Remove TODO_dump_func.
3875 * tree-loop-distribution.c: Remove TODO_dump_func.
3876 * postreload-gcse.c: Remove TODO_dump_func.
3877 * postreload.c: Remove TODO_dump_func.
3878 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
3879 * tree-tailcall.c: Remove TODO_dump_func.
3880 * ipa-cp.c: Remove TODO_dump_func.
3881 * final.c: Remove TODO_dump_func.
3882 * tree-emutls.c: Remove TODO_dump_func.
3883 * omp-low.c: Remove TODO_dump_func.
3884 * tree-ssa-dse.c: Remove TODO_dump_func.
3885 * tree-ssa-uncprop.c: Remove TODO_dump_func.
3886 * auto-inc-dec.c: Remove TODO_dump_func.
3887 * reorg.c: Remove TODO_dump_func.
3888 * tree-ssa-copyrename.c: Remove TODO_dump_func.
3889 * tree-ssa-ccp.c: Remove TODO_dump_func.
3890 * compare-elim.c: Remove TODO_dump_func.
3891 * mode-switching.c: Remove TODO_dump_func.
3892 * modulo-sched.c: Remove TODO_dump_func.
3893 * tree-call-cdce.c: Remove TODO_dump_func.
3894 * cse.c: Remove TODO_dump_func.
3895 * web.c: Remove TODO_dump_func.
3896 * tree-stdarg.c: Remove TODO_dump_func.
3897 * lto-streamer-out.c: Remove TODO_dump_func.
3898 * tree-ssa-math-opts.c: Remove TODO_dump_func.
3899 * tree-ssa-dom.c: Remove TODO_dump_func.
3900 * tree-nrv.c: Remove TODO_dump_func.
3901 * loop-init.c: Remove TODO_dump_func.
3902 * gimple-low.c: Remove TODO_dump_func.
3903 * ipa-inline.c: Remove TODO_dump_func.
3904 * tree-ssa-sink.c: Remove TODO_dump_func.
3905 * jump.c: Remove TODO_dump_func.
3906 * ifcvt.c: Remove TODO_dump_func.
3907 * tree-ssa-loop.c: Remove TODO_dump_func.
3908 * recog.c: Remove TODO_dump_func.
3909 * dse.c: Remove TODO_dump_func.
3910 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
3911 * matrix-reorg.c: Remove TODO_dump_func.
3912 * tree-eh.c: Remove TODO_dump_func.
3913 * regmove.c: Remove TODO_dump_func.
3914 * function.c: Remove TODO_dump_func.
3915 * tree-vectorizer.c: Remove TODO_dump_func.
3916 * ipa-split.c: Remove TODO_dump_func.
3917 * gcse.c: Remove TODO_dump_func.
3918 * tree-if-conv.c: Remove TODO_dump_func.
3919 * init-regs.c: Remove TODO_dump_func.
3920 * tree-ssa-phiopt.c: Remove TODO_dump_func.
3921 * implicit-zee.c: Remove TODO_dump_func.
3922 * lower-subreg.c: Remove TODO_dump_func.
3923 * bt-load.c: Remove TODO_dump_func.
3924 * tree-dfa.c: Remove TODO_dump_func.
3925 * except.c: Remove TODO_dump_func.
3926 * emit-rtl.c: Remove TODO_dump_func.
3927 * store-motion.c: Remove TODO_dump_func.
3928 * cfgexpand.c: Remove TODO_dump_func.
3929 * tree-cfgcleanup.c: Remove TODO_dump_func.
3930 * cfgcleanup.c: Remove TODO_dump_func.
3931 * tree-ssa-pre.c: Remove TODO_dump_func.
3932 * tree-sra.c: Remove TODO_dump_func.
3933 * tree-mudflap.c: Remove TODO_dump_func.
3934 * tree-ssa-copy.c: Remove TODO_dump_func.
3935 * cfglayout.c: Remove TODO_dump_func.
3936 * tree-ssa-forwprop.c: Remove TODO_dump_func.
3937 * tree-ssa-dce.c: Remove TODO_dump_func.
3938 * ira.c: Remove TODO_dump_func.
3939 * tree-ssa.c: Remove TODO_dump_func.
3940 * integrate.c: Remove TODO_dump_func.
3941 * tree-optimize.c: Remove TODO_dump_func.
3942 * tree-ssa-phiprop.c: Remove TODO_dump_func.
3943 * tree-object-size.c: Remove TODO_dump_func.
3944 * combine.c: Remove TODO_dump_func.
3945 * bb-reorder.c: Remove TODO_dump_func.
3946 * cprop.c: Remove TODO_dump_func.
3947 * var-tracking.c: Remove TODO_dump_func.
3948 * tree-profile.c: Remove TODO_dump_func.
3949 * tree-vect-generic.c: Remove TODO_dump_func.
3950 * reg-stack.c: Remove TODO_dump_func.
3951 * sched-rgn.c: Remove TODO_dump_func.
3952 * tree-ssa-structalias.c: Remove TODO_dump_func.
3953 * tree-switch-conversion.c: Remove TODO_dump_func.
3954 * tree-cfg.c: Remove TODO_dump_func.
3955 * tree-ssa-reassoc.c: Remove TODO_dump_func.
3956 * combine-stack-adj.c: Remove TODO_dump_func.
3957 * dce.c: Remove TODO_dump_func.
3958 * tree-ssanames.c: Remove TODO_dump_func.
3959 * regcprop.c: Remove TODO_dump_func.
3960
fa465762
L
39612011-06-14 H.J. Lu <hongjiu.lu@intel.com>
3962
3963 PR middle-end/47364
3964 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3965 and properly handle result not in Pmode.
3966
7d8d16c3
RM
39672011-06-14 Robert Millan <rmh@gnu.org>
3968
3969 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3970 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3971 `config/linux.h'.
3972
3973 * config/i386/kfreebsd-gnu64.h: New file.
3974 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
3975 with `i386/kfreebsd-gnu64.h'.
3976
3977 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
3978 (GNU_USER_LINK_EMULATION64): New macros.
3979 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
3980 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
3981 of hardcoding `elf_i386' and `elf_x86_64'.
3982
0ccef3d2
NC
39832011-06-14 Nick Clifton <nickc@redhat.com>
3984
3985 PR target/49403
3986 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3987
3988 PR target/49402
3989 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3990
8a76c4a0
JJ
39912011-06-14 Jakub Jelinek <jakub@redhat.com>
3992
1ace6185
JJ
3993 PR fortran/49103
3994 * tree.h (DECL_NONSHAREABLE): Define.
3995 (struct tree_decl_common): Change decl_common_unused to
3996 decl_nonshareable_flag.
3997 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
3998 Ignore vars with DECL_NONSHAREABLE bit set.
3999 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
4000 on stores to automatic aggregate vars.
4001
8a76c4a0
JJ
4002 PR rtl-optimization/49390
4003 Revert:
4004 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
4005
4006 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
4007 MEM_ALIAS_SET.
4008
b4a9343c
ZD
40092011-06-14 Zdenek Dvorak <ook@ucw.cz>
4010 Tom de Vries <tom@codesourcery.com>
4011
4012 PR target/45098
4013 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
4014 Document changed semantics.
4015 (max_stmt_executions, max_stmt_executions_int): Declare.
4016 * tree-data-ref.c (estimated_loop_iterations)
4017 (estimated_loop_iterations_int): Move functions...
4018 * tree-ssa-loop-niter.c (estimated_loop_iterations)
4019 (estimated_loop_iterations_int): here.
4020 (record_estimate): Change nb_iterations_upper_bound and
4021 nb_iterations_estimate semantics.
4022 (max_stmt_executions, max_stmt_executions_int): New function.
4023 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
4024 (max_stmt_executions_tree): this.
4025 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
4026 estimated_loop_iterations_tree.
4027 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
4028 max_stmt_executions_int instead of estimated_loop_iterations_int.
4029 * predict.c (predict_loops): Idem.
4030 * tree-parloops.c (parallelize_loops): Idem.
4031 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
4032 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
4033 (init_omega_for_ddr_1): Idem.
4034 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
4035 (loop_prefetch_arrays): Idem
4036 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
4037 max_stmt_executions instead of estimated_loop_iterations.
4038 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
4039 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
4040 instead of nb_iterations_upper_bound.
4041
d2640c43
JH
40422011-06-13 Jan Hubicka <jh@suse.cz>
4043
4044 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
4045
40873cdd
RH
40462011-06-14 Richard Henderson <rth@redhat.com>
4047
4048 PR debug/48459
4049 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
4050 (based_loc_descr): Assert it's true.
4051 (compute_frame_pointer_to_fb_displacement): Set it, rather than
4052 aborting immediately.
4053
73e8cb24
SL
40542011-06-14 Sanjin Liu <scliu@faraday-tech.com>
4055 Mingfeng Wu <mingfeng@faraday-tech.com>
4056
4057 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
4058
f835f0a7
JH
40592011-06-13 Jan Hubicka <jh@suse.cz>
4060
4061 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
4062
ee6f1177
JH
40632011-06-13 Jan Hubicka <jh@suse.cz>
4064
4065 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
4066 similarly to DECL_COMDAT.
4067 * cgraphunit.c (cgraph_analyze_function): Likewise.
4068 * ipa.c (function_and_variable_visibility): Likewise.
4069
618abf9a
JH
40702011-06-13 Jan Hubicka <jh@suse.cz>
4071
4072 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
4073 BINFO_VIRTUALS when streaming for ltrans unit.
4074
a45fe02f
DE
40752011-06-13 David Edelsohn <dje.gcc@gmail.com>
4076
4077 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
4078 (movdi_internal64): Same.
4079
40802011-06-13 Edmar Wienskoski <edmar@freescale.com>
4081
e641e495 4082 PR target/44618
7d8d16c3
RM
4083 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
4084 a set of similar patterns, where the MATCH_OPERAND for the function
4085 argument is replaced with individual references to hardware registers.
a45fe02f
DE
4086 (save_fpregs_<mode>): Ditto
4087 (restore_gpregs_<mode>): Ditto
4088 (return_and_restore_gpregs_<mode>): Ditto
4089 (return_and_restore_fpregs_<mode>): Ditto
4090 (return_and_restore_fpregs_aix_<mode>): Ditto
4091
8775a18b
JH
40922011-06-13 Jan Hubicka <jh@suse.cz>
4093
4094 * ipa-utils.c (postorder_stack): New structure.
4095 (ipa_reverse_postorder): Handle aliases.
4096
40972011-06-13 Jan Hubicka <jh@suse.cz>
4098
4099 * ipa-inline.c (reset_edge_caches): Walk aliases.
4100 (update_caller_keys): Do not test inlinability of aliases.
4101 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
4102 (do_estimate_growth): Fix typo.
4103
6c69a029
JH
41042011-06-13 Jan Hubicka <jh@suse.cz>
4105
4106 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
4107 (can_remove_node_now_p): ... here; handle same comdat groups.
4108 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
4109 (inline_call): Update use of can_remove_node_now_p.
4110
10c63ba4 41112011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 4112
10c63ba4 4113 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
4114 condition to disallow non-identical memory locations.
4115 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
4116 preference to bit manipulation instructions.
495f8c14 4117
9aa3f5c5
JH
41182011-06-13 Jan Hubicka <jh@suse.cz>
4119
4120 * cgraph.c (cgraph_for_node_thunks_and_aliases,
4121 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
4122 (nonremovable_p): New function.
4123 (cgraph_can_remove_if_no_direct_calls_p): New function.
4124 (used_from_object_file_p): New functoin.
10c63ba4
EB
4125 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
4126 references from aliases.
9aa3f5c5
JH
4127 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
4128 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
4129 (want_inline_function_called_once_p): Use it; accept aliases called
4130 once, too.
9aa3f5c5
JH
4131 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
4132
30cecf17
RR
41332011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4134
4135 PR target/48454
4136 * config/arm/neon.md (vec_pack_trunc): Set the lengths
4137 correctly for the case with Quad vectors.
4138
29f85237
JJ
41392011-06-13 Jakub Jelinek <jakub@redhat.com>
4140 Ira Rosen <ira.rosen@linaro.org>
4141
4142 PR tree-optimization/49352
4143 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
4144 all, make sure loop_use_stmt after the loop is a def stmt of a used
4145 SSA_NAME that is the only one defined inside of the loop. Don't
4146 check for COND_EXPR and GIMPLE_BINARY_RHS.
4147 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
4148 check_reduction is true.
4149
c3e3f090
JH
41502011-06-11 Jan Hubicka <jh@suse.cz>
4151
4152 PR middle-end/49373
4153 * ipa.c (cgraph_externally_visible_p): Check resolution info.
4154
516e0768
JH
41552011-06-11 Jan Hubicka <jh@suse.cz>
4156
4157 PR middle-end/48836
4158 * ipa-inline-transform.c: Include tree-pass.h
4159 (inline_transform): Set TODO_update_ssa_only_virtuals.
4160 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
4161
903b0a8b
JH
41622011-06-11 Jan Hubicka <jh@suse.cz>
4163
4164 PR middle-end/49378
4165 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
4166 aliases and thunks.
4167
44542f8e
IR
41682011-06-12 Ira Rosen <ira.rosen@linaro.org>
4169
4170 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
4171 Take number of iterations to peel into account for equally frequent
4172 misalignment values.
4173
ea89702b
JH
41742011-06-11 Jan Hubicka <jh@suse.cz>
4175
637c11bd
UB
4176 * lto-streamer-out.c (produce_symtab): Stream out the newly
4177 represented aliases.
ea89702b 4178
380ed5ed
JH
41792011-06-11 Jan Hubicka <jh@suse.cz>
4180
637c11bd
UB
4181 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
4182 varying args.
380ed5ed
JH
4183 (ipa_update_after_lto_read): Likewise.
4184 (ipa_write_node_info): Do not sream call_with_var_arguments.
4185 (ipa_read_node_info): Likewise.
4186
00cfc363
JH
41872011-06-11 Jan Hubicka <jh@suse.cz>
4188
4189 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
4190
39e2db00
JH
41912011-06-11 Jan Hubicka <jh@suse.cz>
4192
4193 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
4194 (lto_symtab_resolve_can_prevail_p): Likewise.
4195 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
4196 * cgraph.c (same_body_aliases_done): New global var.
4197 (cgraph_same_body_alias_1): Rename to ...
4198 (cgraph_create_function_alias): ... this one; reorg to new
4199 representation.
4200 (cgraph_same_body_alias): Use cgraph_create_function_alias;
4201 record references when asked to.
4202 (cgraph_add_thunk): Fix formating.
4203 (cgraph_get_node): Kill same body alias code.
4204 (cgraph_node_for_asm): Likewise.
4205 (cgraph_remove_same_body_alias): Remove.
4206 (cgraph_remove_node): Kill same body alias code.
4207 (cgraph_mark_address_taken_node): Mark also the aliased function
4208 as having address taken.
4209 (dump_cgraph_node): Dump same body aliases.
4210 (cgraph_for_node_thunks_and_aliases): Update for new alias
4211 representation.
4212 (cgraph_for_node_and_aliases): Likewise.
4213 * cgraph.h (same_body): Kll pointer.
4214 (same_body_alias): Update comment.
4215 (same_body_aliases_done): Declare.
4216 (cgraph_remove_same_body_alias): Remove declaration.
4217 (cgraph_create_function_alias): Declare.
4218 (cgraph_process_same_body_aliases): Declare.
4219 (cgraph_function_with_gimple_body_p): Check for alias.
4220 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
4221 (cgraph_alias_aliased_node): New function.
4222 (cgraph_function_node): Update for new aliases.
4223 (cgraph_function_or_thunk_node): Likewise.
4224 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
4225 (inline_call): Remove dead aliases.
10c63ba4
EB
4226 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
4227 name hack for same body aliases.
39e2db00
JH
4228 (clone_of_p): Look through aliases.
4229 (verify_cgraph_node): Verify aliases.
4230 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
4231 (cgraph_process_same_body_aliases): New function.
4232 (process_function_and_variable_attributes): Disable weakref warning on
4233 alias.
4234 (cgraph_analyze_functions): Handle aliases.
4235 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
4236 (assemble_thunks): Rename to ...
4237 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
4238 (cgraph_expand_function): Remove alias output code.
4239 (cgraph_output_in_order): Skip aliases.
4240 (cgraph_preserve_function_body_p): Aliases don't need preserving.
4241 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
4242 (ipa_record_reference): Do not assert on alias references.
4243 (ipa_ref_has_aliases_p): New function.
4244 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
4245 (ipa_ref_has_aliases_p): Declare.
4246 * lto-cgraph.c (lto_output_node): Handle aliases.
4247 (input_node): Likewise.
4248 * lto-streamer-out.c (lto_output): Skip aliases.
4249 (produce_symtab): Kill same_body_alias code.
4250 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
4251 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
4252 * ipa-inline.c (update_caller_keys): Walk aliases.
4253 (inline_small_functions): Fix thinko in previous patch.
4254 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
4255 (function_and_variable_visibility): Do not walk same body aliases.
4256 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
4257 (ipa_pta_execute): Use it.
4258
9ee65b55
UB
42592011-06-11 Uros Bizjak <ubizjak@gmail.com>
4260
4261 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
4262 (*vec_dupv2df): Rename from vec_dupv2df.
4263 (vec_dupv2df): New expander.
4264
42652011-06-11 Uros Bizjak <ubizjak@gmail.com>
4266
4267 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
4268
42692011-06-11 Uros Bizjak <ubizjak@gmail.com>
4270
4271 * config/i386/i386.md: Use default value in "isa" attribute.
4272 * config/i386/sse.md: Ditto.
4273 * config/i386/mmx.md: Ditto.
4274
ba68a139
WG
42752011-06-10 Wei Guozhi <carrot@google.com>
4276
4277 PR target/45335
4278 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4279 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4280 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4281 related peephole2.
4282 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4283 related peephole2.
4284 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4285 (arm_legitimate_ldrd_p): New prototype.
4286 (arm_output_ldrd): New prototype.
4287 * config/arm/arm.c (arm_check_ldrd_operands): New function.
4288 (arm_legitimate_ldrd_p): New function.
4289 (arm_output_ldrd): New function.
4290
deced1e2
XDL
42912011-06-10 David Li <davidxl@google.com>
4292
4293 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4294 * passes.c (passr_eq): New function.
4295 (create_pass_tab): New function.
4296 (pass_traverse): New function.
4297 (dump_one_pass): New function.
4298 (dump_pass_list): New function.
4299 (dump_passes): New function.
4300
71fb4f92
JH
43012011-06-10 Jan Hubicka <jh@suse.cz>
4302
4303 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
4304 setting the nothrow flag.
4305 * ipa-reference.c (propagate): Skip aliases.
4306 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
4307 (propagate_nothrow): Skip aliases; do not update cgraph.
4308 (local_pure_const): Do not update cgraph.
4309 * tree-profile.c (tree_profiling): Do fixup_cfg.
4310
41817394
JH
43112011-06-10 Jan Hubicka <jh@suse.cz>
4312
4313 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
4314 (cgraph_local_node_p): ... here; handle aliases.
4315 (has_addr_references_p): Break out from ...;
4316 (cgraph_remove_unreachable_nodes) ... here.
4317
fb37c1de
JH
43182011-06-10 Jan Hubicka <jh@suse.cz>
4319
4320 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
4321 * common.opt (flag_inline_functions_called_once): Do not
4322 initialize to 1.
fb37c1de 4323
0818c24c
JH
43242011-06-10 Jan Hubicka <jh@suse.cz>
4325
4326 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
4327 (ipcp_initialize_node_lattices): Do not deal with aliases;
4328 Do not try to propagate through thunks.
0818c24c
JH
4329 (ipcp_change_tops_to_bottom): Do not deal with aliases.
4330
c8246dbe
JH
43312011-06-10 Jan Hubicka <jh@suse.cz>
4332
9ee65b55
UB
4333 * ipa-prop.c (ipa_write_node_info): Stream jump functions
4334 for indirect calls.
c8246dbe
JH
4335 (ipa_read_node_info): Likewise.
4336
d7e2a1c1
BS
43372011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4338
4339 PR lto/49302
4340 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
4341 (build_and_insert_call): Likewise.
4342 (build_and_insert_ref): New.
4343 (gimple_expand_builtin_pow): Minor cleanup.
4344 (gimple_expand_builtin_cabs): New.
4345 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 4346
749f25d8
JH
43472011-06-10 Jan Hubicka <jh@suse.cz>
4348
4349 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
4350 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
4351 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
4352 (ipcp_propagate_stage): Skip aliases when propagating.
4353 (ipcp_need_redirect_p): Skip aliases.
4354 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
4355 collect_callers_of_node.
4356 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
4357 for aliases.
4358 (ipa_compute_jump_functions): Look through aliases.
4359
8340fbd7
RO
43602011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4361
4362 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
4363
9aaa7e47
HPN
43642011-06-10 Hans-Peter Nilsson <hp@axis.com>
4365
4366 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
4367 Adjust comments.
4368 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
4369
f1724940
JH
43702011-06-10 Jan Hubicka <jh@suse.cz>
4371
4372 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
4373 Update call of gimple_get_virt_method_for_binfo.
4374 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
4375 refuse_thunks parameter.
4376 (gimple_fold_call): Update.
4377 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
4378
a6f834c5
JH
43792011-06-10 Jan Hubicka <jh@suse.cz>
4380
4381 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
4382 (not_all_callers_have_enough_arguments_p): ... this one; turn into
4383 worker for cgraph_for_node_and_aliases.
4384 (convert_callers_for_node): Break out from ...
4385 (convert_callers): ... here.
4386 (modify_function): Use collect_callers_of_node.
4387 (ipa_early_sra): Use cgraph_for_node_and_aliases.
4388
7871eee3
RG
43892011-06-10 Richard Guenther <rguenther@suse.de>
4390
4391 PR tree-optimization/49361
4392 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
4393 when not already in gimple form.
4394
dae957ae
RG
43952011-06-10 Richard Guenther <rguenther@suse.de>
4396
4397 PR bootstrap/49344
4398 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
4399 FOR_EACH_PHI_OR_STMT_USE.
4400
a5b1779f
JH
44012011-06-10 Jan Hubicka <jh@suse.cz>
4402
4403 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
4404 (clone_inlined_nodes): ... here.
4405 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
4406 to real destination prior inlining.
4407 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
4408 can_early_inline_edge_p, want_early_inline_function_p,
4409 want_early_inline_function_p, want_inline_small_function_p,
4410 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
4411 edge_badness, update_all_callee_keys, lookup_recursive_calls,
4412 add_new_edges_to_heap, inline_small_functions, flatten_function,
4413 inline_always_inline_functions, early_inline_small_functions): Use
4414 cgraph_function_or_thunk_node.
4415 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
4416 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
4417 (do_estimate_edge_growth_1): Break out from ...
4418 (do_estimate_growth) ... here; walk aliases.
4419 (inline_generate_summary): Skip aliases.
4420
c1ae3ca5
RG
44212011-06-10 Richard Guenther <rguenther@suse.de>
4422
9ee65b55
UB
4423 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
4424 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 4425
b504a918
PC
44262011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
4427
4428 * tree.h (error_operand_p): Add.
4429 * dbxout.c (dbxout_type_fields): Use the latter.
4430 * c-decl.c (add_stmt): Likewise.
4431 * gimplify.c (omp_add_variable, omp_notice_variable,
4432 gimplify_scan_omp_clauses): Likewise.
4433
3f5ea9dc 44342011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 4435
3f5ea9dc
GJL
4436 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
4437 when a value is actually passed in regs.
4438
b11b0904 44392011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 4440 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
4441
4442 * doc/invoke.texi (SPARC options): Add -mflat.
4443 * config/sparc/sparc.opt: Likewise.
4444 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
4445 (sparc_flat_expand_prologue): Declare.
4446 (sparc_flat_expand_epilogue): Likewise.
4447 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
4448 (CPP_ENDIAN_SPEC): Replace with...
4449 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
4450 (CPP_SPEC): Adjust to above change.
4451 (EXTRA_SPECS): Likewise.
4452 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
4453 (INCOMING_REGNO): Likewise.
4454 (OUTGOING_REGNO): Likewise.
4455 (LOCAL_REGNO): Likewise.
4456 (SETUP_FRAME_ADDRESSES): Likewise.
4457 (FIXED_REGISTERS): Set 0 for %fp.
4458 (CALL_USED_REGISTERS): Likewise.
4459 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
4460 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
4461 (RETURN_ADDR_REGNUM): Define.
4462 (RETURN_ADDR_RTX): Use it.
4463 (INCOMING_RETURN_ADDR_REGNUM): Define.
4464 (INCOMING_RETURN_ADDR_RTX): Use it.
4465 (DWARF_FRAME_RETURN_COLUMN): Likewise.
4466 (EH_RETURN_REGNUM): Define.
4467 (EH_RETURN_STACKADJ_RTX): Use it.
4468 (EH_RETURN_HANDLER_RTX): Delete.
4469 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
4470 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
4471 Delete.
4472 (struct machine_function): Add frame_size, apparent_frame_size,
4473 frame_base_reg, frame_base_offset, n_global_fp_regs and
4474 save_local_in_regs_p fields.
4475 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
4476 sparc_frame_base_offset, sparc_n_global_fp_regs,
4477 sparc_save_local_in_regs_p): New macros.
4478 (sparc_option_override): Error out if -fcall-saved-REG is specified
4479 for Out registers.
4480 (eligible_for_restore_insn): Fix formatting.
4481 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
4482 (eligible_for_sibcall_delay): Likewise.
4483 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
4484 (sparc_legitimate_address_p): Adjust to above change.
4485 (save_global_or_fp_reg_p): New predicate.
4486 (return_addr_reg_needed_p): Likewise.
4487 (save_local_or_in_reg_p): Likewise.
4488 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
4489 (SORR_SAVE, SORR_RESTORE): Delete.
4490 (sorr_pred_t): New typedef.
4491 (sorr_act_t): New enum.
4492 (save_or_restore_regs): Rename to...
4493 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
4494 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
4495 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
4496 mechanism. Add CFI information for double-word saves in 32-bit mode.
4497 (emit_adjust_base_to_offset): New function extracted from...
4498 (emit_save_or_restore_regs): ...this. Rename the rest to...
4499 (emit_save_or_restore_regs_global_fp_regs): ...this.
4500 (emit_save_or_restore_regs_local_in_regs): New function.
4501 (gen_create_flat_frame_[123]): New functions.
4502 (sparc_expand_prologue): Use SIZE local variable. Adjust.
4503 (sparc_flat_expand_prologue): New function.
4504 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
4505 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
4506 (sparc_flat_expand_epilogue): New function.
4507 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
4508 (output_return): Likewise.
4509 (output_sibcall): Likewise.
4510 (sparc_output_mi_thunk): Likewise.
4511 (sparc_frame_pointer_required): Likewise.
4512 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
4513 function optimization.
4514 * config/sparc/sparc.md (flat): New attribute.
4515 (prologue): Add TARGET_FLAT handling.
4516 (save_register_window): Disable if TARGET_FLAT.
4517 (create_flat_frame_[123]): New patterns.
4518 (epilogue): Add TARGET_FLAT handling.
4519 (sibcall_epilogue): Likewise.
4520 (eh_return): New expander.
4521 (eh_return_internal): New insn and splitter.
4522 (return_internal): Add TARGET_FLAT handling.
4523 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
4524 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
4525 (nonlocal_goto): Add TARGET_FLAT handling.
4526 * config/sparc/t-elf: Add -mflat multilib.
4527 * config/sparc/t-leon: Likewise.
4528
fede8efa
JH
45292011-06-10 Jan Hubicka <jh@suse.cz>
4530
4531 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
4532 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
4533 (self_recursive_p): Use cgraph_function_node.
4534 (propagate_pure_const): Likewise.
4535 (propagate_nothrow): Likewise.
4536 * ipa-reference.c (ipa_reference_get_not_read_global): Use
4537 cgraph_function_node.
4538 (propagate_bits): Likewise.
4539 (propagate): Likewise.
4540
0127c76f
RR
45412011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4542 Richard Earnshaw <rearnsha@arm.com>
4543
9ee65b55 4544 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
4545 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
4546 (*thumb2_movdi_vfp): Delete.
4547 (*arm_movdi_vfp_cortexa8): Delete.
4548 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
4549 (*movdi_vfp_cortexa8): Likewise.
4550
f93fe5a0
RG
45512011-06-10 Richard Guenther <rguenther@suse.de>
4552
4553 * stor-layout.c (initialize_sizetypes): Give names to all
4554 sizetype kinds.
4555
f2164f87
IR
45562011-06-10 Ira Rosen <ira.rosen@linaro.org>
4557
4558 PR tree-optimization/49318
4559 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
4560 irrelevant pattern statements.
4561
3f91c962
HPN
45622011-06-10 Hans-Peter Nilsson <hp@axis.com>
4563
3d223145
HPN
4564 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
4565
3f91c962
HPN
4566 PR bootstrap/49354
4567 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
4568 to last assignment.
4569
b125ad45
JH
45702011-06-09 Jan Hubicka <jh@suse.cz>
4571
4572 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
4573 do not recompute reachable flag.
4574 (cgraph_finalize_function, cgraph_analyze_functions): Set
4575 redefined_extern_inline here.
4576
be330ed4
JH
45772011-06-09 Jan Hubicka <jh@suse.cz>
4578
4579 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
4580 (cgraph_only_called_directly_p): ... this one; bring offline.
4581 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4582 varpool_used_from_object_file_p): Drop names from the declaratoin.
4583 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
4584 collect_callers_of_node): New.
4585 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
4586 (cgraph_edge_recursive_p): Use cgraph_function_node.
4587 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
4588 (cgraph_node_cannot_be_local_p_1): Break out from ...
4589 (cgraph_node_can_be_local_p): ... here; walk aliases.
4590 (cgraph_for_node_thunks_and_aliases): New function.
4591 (cgraph_for_node_and_aliases): New function.
4592 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
4593 (cgraph_make_node_local) ... here; use
4594 cgraph_for_node_thunks_and_aliases.
be330ed4 4595 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
4596 (cgraph_set_nothrow_flag) ... here;
4597 use cgraph_for_node_thunks_and_aliases.
be330ed4 4598 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
4599 (cgraph_set_const_flag) ... here;
4600 use cgraph_for_node_thunks_and_aliases.
be330ed4 4601 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
4602 (cgraph_set_pure_flag) ... here;
4603 use cgraph_for_node_thunks_and_aliases.
be330ed4 4604 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
4605 (cgraph_propagate_frequency) ... here; use
4606 cgraph_for_node_thunks_and_aliases.
be330ed4 4607 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
4608 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
4609 New functions.
be330ed4
JH
4610 (collect_callers_of_node_1, collect_callers_of_node): New functions.
4611
2ea91d6b
HPN
46122011-06-10 Hans-Peter Nilsson <hp@axis.com>
4613
4614 PR rtl-optimization/49154
4615 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
4616 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
4617 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
4618 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
4619 * config/cris/cris.h (cris_register_move_cost): Remove
4620 !TARGET_V32 code. Tweak comments.
4621
9cf4fb5a
JH
46222011-06-09 Jan Hubicka <jh@suse.cz>
4623
4624 * cgraphbuild.c (record_eh_tables): Mark personality function as having
4625 address taken.
4626
6049a4c8
HPN
46272011-06-10 Hans-Peter Nilsson <hp@axis.com>
4628
c577822e 4629 PR rtl-optimization/49154
9ee65b55
UB
4630 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
4631 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 4632
54e1e4f7 4633 PR rtl-optimization/49154
6049a4c8
HPN
4634 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
4635 register classes.
4636 * doc/tm.texi: Regenerate.
4637
3be68b64
KK
46382011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
4639
4640 PR target/49307
4641 * config/sh/sh.md (UNSPEC_CHKADD): New.
4642 (chk_guard_add): New define_insn_and_split.
4643 (symGOT_load): Use chk_guard_add instead of blockage.
4644
bf806a90
KT
46452011-06-09 Kai Tietz <ktietz@redhat.com>
4646
4647 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
4648
d5a9738b
EB
46492011-06-09 Eric Botcazou <ebotcazou@adacore.com>
4650
4651 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
4652
527e82c2
WG
46532011-06-09 Wei Guozhi <carrot@google.com>
4654
4655 PR target/46975
4656 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
4657 (peephole2 for conditional move): Generate 16 bit instructions.
4658
b8bc3a43
UB
46592011-06-09 Uros Bizjak <ubizjak@gmail.com>
4660
4661 * config/i386/i386.md (*movdi_internal_rex64): Merge
4662 alternatives 6 and 8.
4663
4745da6e
DL
46642011-06-09 David Li <davidxl@google.com>
4665
4666 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4667 * passes.c (passr_eq): New function.
4668 (create_pass_tab): New function.
4669 (pass_traverse): New function.
4670 (dump_one_pass): New function.
4671 (dump_pass_list): New function.
4672 (dump_passes): New function.
4673
bdf67bcb
DL
46742011-06-09 David Li <davidxl@google.com>
4675
4676 * tree-complex.c (tree_lower_complex): Gate cleanup.
4677 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
4678 (execute_optimize_stdarg): Ditto.
4679 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
4680 (execute_cleanup_eh_1): Ditto.
4681 (execute_cleanup_eh): Ditto.
4682 * gcse.c (gate_rtl_pre): Ditto.
4683 (execute_rtl_pre): Ditto.
4684 * except.c (finish_eh_generation): Ditto.
4685 (convert_to_eh_region_ranges): Ditto.
4686 * cprop.c (one_cprop_pass): Ditto.
4687
547fdef8
BS
46882011-06-09 Bernd Schmidt <bernds@codesourcery.com>
4689
4690 PR target/48673
4691 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
4692 in all basic blocks.
4693
10e48e39
RO
46942011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4695
4696 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
4697 (HAVE_ENABLE_EXECUTE_STACK): Define.
4698 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
4699 (HAVE_ENABLE_EXECUTE_STACK): Define.
4700 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
4701 (HAVE_ENABLE_EXECUTE_STACK): Define.
4702 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
4703 (ENABLE_EXECUTE_STACK): Remove.
4704 (HAVE_ENABLE_EXECUTE_STACK): Define.
4705 [IN_LIBGCC2]: Don't include <windows.h>.
4706 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4707 (HAVE_ENABLE_EXECUTE_STACK): Define.
4708 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
4709 (HAVE_ENABLE_EXECUTE_STACK): Define.
4710 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
4711 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
4712 (HAVE_ENABLE_EXECUTE_STACK): Define.
4713 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
4714 (HAVE_ENABLE_EXECUTE_STACK): Define.
4715 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
4716 (HAVE_ENABLE_EXECUTE_STACK): Define.
4717 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4718 (HAVE_ENABLE_EXECUTE_STACK): Define.
4719 * config/alpha/alpha.c (alpha_trampoline_init): Test
4720 HAVE_ENABLE_EXECUTE_STACK.
4721 * config/i386/i386.c (ix86_trampoline_init): Likewise.
4722 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4723 (sparc64_initialize_trampoline): Likewise.
4724 * libgcc2.c [L_enable_execute_stack]: Remove.
4725 * system.h (ENABLE_EXECUTE_STACK): Poison.
4726 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
4727 * doc/tm.texi: Regenerate.
4728 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
4729
8ced31fe
JJ
47302011-06-09 Jakub Jelinek <jakub@redhat.com>
4731
4732 PR middle-end/49308
4733 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
4734 variable. After resetting and rescanning insn continue with previous
4735 statement.
4736
ee610fcd
RO
47372011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4738
4739 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
4740 (gcc_cv_ld_hidden): Likewise.
4741 * configure: Regenerate.
4742 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
4743 (ix86_stack_protect_fail): Mark unused.
4744 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
4745 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
4746 [TARGET_MACHO]: Don't define.
4747 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
4748 (TARGET_STACK_PROTECT_FAIL): Likewise.
4749 (rs6000_stack_protect_fail): Mark unused.
4750 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 4751 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 4752
8f2e22ff
AK
47532011-06-08 Andi Kleen <ak@linux.intel.com>
4754
4755 * varasm.c (get_section): Print location of other conflict
4756 for section conflicts.
4757
815cecbe
AK
47582011-06-08 Andi Kleen <ak@linux.intel.com>
4759
4760 * config/i386/driver-i386.c (host_detect_local_cpu):
4761 Add model 0x2d Intel CPU.
4762
1460ec5c
AK
47632011-06-08 Andi Kleen <ak@linux.intel.com>
4764
4765 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
4766 (globalize_reg): Add decl parameter. Compute location. Pass location
4767 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
4768 * rtl.h (globalize_reg): Update prototype.
4769 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
4770
df17530a
MX
47712011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
4772
4773 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
4774
409fed48
KK
47752011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
4776
4777 PR target/49305
4778 * config/sh/predicates.md (general_movsrc_operand): Check
4779 mode for memory with indexed address for QI and HImode.
4780 (general_movdst_operand): Likewise.
4781
87c16a45
NP
47822011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
4783
b8bc3a43 4784 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 4785
49931fcb
AO
47862011-06-08 Alexandre Oliva <aoliva@redhat.com>
4787
4788 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
4789 (num_ssa_operands): Likewise.
4790 (op_iter_init_phiuse): Forward-declare.
4791 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
4792
29494d1f
NC
47932011-06-08 Nick Clifton <nickc@redhat.com>
4794
4795 * doc/invoke.texi (ARM Options): Update description of
4796 -mthumb-interwork.
4797
4ffae7ff
L
47982011-06-08 H.J. Lu <hongjiu.lu@intel.com>
4799
4800 * config/i386/driver-i386.c (host_detect_local_cpu): Support
4801 unknown Intel family 0x6 CPUs.
4802
d9c77712
MJ
48032011-06-08 Martin Jambor <mjambor@suse.cz>
4804
4805 * tree-sra.c (mark_rw_status): Removed.
4806 (analyze_access_subtree): New parameter parent instead of
4807 mark_read and mark_write, propagate from that.
4808
b1def36c
JB
48092011-06-08 Julian Brown <julian@codesourcery.com>
4810
4811 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4812 for double-precision helper functions in hard-float mode if only
4813 single-precision arithmetic is supported in hardware.
4814
6c8e9fc9
AM
48152011-06-08 Alexander Monakov <amonakov@ispras.ru>
4816
4817 PR rtl-optimization/49303
4818 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
4819 code_motion_path_driver returned 0 or 1.
4820 (sel_region_finish): Clear h_d_i_d.
4821
c2bbcb0d
KK
48222011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
4823
4824 * config/sh/sh.c (prepare_move_operands): Set pic register
4825 appropriately for global and local dynamic tls models even
4826 if flag_pic is unset.
4827
6976ae51
JM
48282011-06-07 Jason Merrill <jason@redhat.com>
4829
4830 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
4831
bb5b1f5e
XDL
48322011-06-07 Xinliang David Li <davidxl@google.com>
4833 * passes.c (enable_disable_pass): Handle assembler name.
4834 (is_pass_explicitly_enabled_or_disabled): Ditto.
4835
91ffe356
RO
48362011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4837
4838 PR tree-optimization/48497
4839 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
4840
06bc3ec7
BS
48412011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4842
4843 PR tree-optimization/46728
4844 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
4845 to use gimple_val_nonnegative_real_p.
4846 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
4847 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 4848
c074d740
L
48492011-06-07 H.J. Lu <hongjiu.lu@intel.com>
4850
4851 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
4852
8973b112
SG
48532011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
4854
4855 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
4856 constant vectors.
4857
67b88453
RG
48582011-06-07 Richard Guenther <rguenther@suse.de>
4859
4860 * stor-layout.c (initialize_sizetypes): Initialize all
4861 sizetypes based on target definitions.
4862 (set_sizetype): Remove.
4863 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
4864 * tree.h (set_sizetype): Remove.
4865
1dcad079
NC
48662011-06-07 Nick Clifton <nickc@redhat.com>
4867
4868 * config.gcc: Unify V850 architecture options and add support for
4869 newer V850 architectures.
4870 * config/v850/t-v850e: Delete.
4871
009db074
RG
48722011-06-07 Richard Guenther <rguenther@suse.de>
4873
4874 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
4875 Call set_sizetype from here.
4876
f373314f
AS
48772011-06-07 Andrew Stubbs <ams@codesourcery.com>
4878
4879 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
4880 (*maddhisi4tb, *maddhisi4tt): New define_insns.
4881
c536876e
AS
48822011-06-07 Bernd Schmidt <bernds@codesourcery.com>
4883 Andrew Stubbs <ams@codesourcery.com>
4884
4885 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
4886 multiplies.
4887 * doc/md.texi (Canonicalization of Instructions): Document widening
4888 multiply canonicalization.
4889
308dc890
JJ
48902011-06-07 Jakub Jelinek <jakub@redhat.com>
4891
4892 PR gcov-profile/49299
b8bc3a43 4893 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 4894
383d9c83
IR
48952011-06-07 Ira Rosen <ira.rosen@linaro.org>
4896
4897 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
4898 a pointer.
4899 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
4900 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
4901 vect_recog_pow_pattern): Likewise.
4902 (vect_pattern_recog_1): Remove declaration.
4903 (widened_name_p): Remove declaration. Add new argument to specify
4904 whether to check that both types are either signed or unsigned.
4905 (vect_recog_widen_mult_pattern): Update documentation. Handle
4906 unsigned patterns and multiplication by constants.
4907 (vect_pattern_recog_1): Update vect_recog_func references. Use
4908 statement information from the statement returned from pattern
4909 detection functions.
4910 (vect_pattern_recog): Update vect_recog_func reference.
4911 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
4912 multiplication by a constant use the type of the other operand.
4913
4de4b0f2
RS
49142011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
4915
4916 PR rtl-optimization/49145
4917 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
4918
a9d24544
JJ
49192011-06-06 Jakub Jelinek <jakub@redhat.com>
4920
99a5e049
JJ
4921 PR debug/49262
4922 * dwarf2out.c (native_encode_initializer): Decrement count in each
4923 iteration.
4924
04902d4c
JJ
4925 PR debug/49294
4926 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
4927 non-MODE_INT modes.
4928
a9d24544
JJ
4929 PR c++/49264
4930 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
4931 if stmt folded into nothing.
b8bc3a43
UB
4932 * tree-inline.c (fold_marked_statements): If a builtin at the end of
4933 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
4934 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
4935 to be NULL. Don't compute count and frequency if new_call is NULL.
4936
47c79d56
DN
49372011-06-04 Diego Novillo <dnovillo@google.com>
4938
4939 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
4940 (cgraph.o): Likewise.
4941 (cgraphunit.o): Likewise.
4942 * cgraphunit.c: Include lto-streamer.h
4943 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
4944 if LTO is enabled.
4945 * lto-streamer-in.c (unpack_value_fields): Call
4946 streamer_hooks.unpack_value_fields if set.
4947 (lto_materialize_tree): For unhandled nodes, first try to
4948 call lto_streamer_hooks.alloc_tree, if it exists.
4949 (lto_input_ts_decl_common_tree_pointers): Move reading of
4950 DECL_INITIAL to lto_streamer_read_tree.
4951 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
4952 (lto_streamer_read_tree): New.
4953 (lto_reader_init): Rename from lto_init_reader.
4954 Move initialization code to lto/lto.c.
4955 * lto-streamer-out.c (pack_value_fields): Call
4956 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
4957 (lto_output_tree_ref): For tree nodes that are not normally indexable,
4958 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 4959 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
4960 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
4961 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
4962 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
4963 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
4964 (lto_streamer_write_tree): New.
4965 (lto_output): Call lto_streamer_init directly.
4966 (lto_writer_init): Remove.
4967 * lto-streamer.c (streamer_hooks): New.
4968 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
4969 instead of lto_preload_common_nodes.
4970 (lto_is_streamable): Move from lto-streamer.h
4971 (lto_streamer_hooks_init): New.
4972 (streamer_hooks): New.
4973 (streamer_hooks_init): New.
4974 * lto-streamer.h (struct output_block): Forward declare.
4975 (struct lto_input_block): Likewise.
4976 (struct data_in): Likewise.
4977 (struct bitpack_d): Likewise.
4978 (struct streamer_hooks): Declare.
4979 (streamer_hooks): Declare.
4980 (lto_streamer_hooks_init): Declare.
4981 (lto_streamer_write_tree): Declare.
4982 (lto_streamer_read_tree): Declare.
4983 (streamer_hooks_init): Declare.
4984 (lto_is_streamable): Move to lto-streamer.c
4985
22afe143
AK
49862011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4987
4988 * longlong.h (smul_ppmm): The resulting register pair contains the
4989 higher order word first.
4990
3906ea1b
BS
49912011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4992
4993 PR tree-optimization/46728
4994 * builtins.c (powi_table): Remove.
4995 (powi_lookup_cost): Remove.
4996 (powi_cost): Remove.
4997 (expand_powi_1): Remove.
4998 (expand_powi): Remove.
4999 (expand_builtin_pow_root): Remove.
5000 (expand_builtin_pow): Remove.
5001 (expand_builtin_powi): Eliminate handling of constant exponent.
5002 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 5003
3598cabd
AO
50042011-06-06 Alexandre Oliva <aoliva@redhat.com>
5005
5006 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
5007
a7a110bb
AO
50082011-06-06 Alexandre Oliva <aoliva@redhat.com>
5009
5010 * dce.c (reset_unmarked_insns_debug_uses): New.
5011 (delete_unmarked_insns): Skip debug insns.
5012 (prescan_insns_for_dce): Likewise.
5013 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
5014 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
5015 active reg can be found.
5016 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
5017 (convert_regs_1): Use it.
5018
6d8402ac
AO
50192011-06-06 Alexandre Oliva <aoliva@redhat.com>
5020
5021 * tree-pretty-print.c (dump_function_header): Add flags.
5022 Don't dump decl_uid with nouid.
5023 * tree-pretty-print.h (dump_function_header): Adjust.
5024 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
5025 * passes.c (pass_init_dump_file): Pass dump_flags on.
5026 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
5027
f75e1f1e
AO
50282011-06-06 Alexandre Oliva <aoliva@redhat.com>
5029
5030 PR bootstrap/49270
5031 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
5032
275311c4
MP
50332011-06-06 Mikael Pettersson <mikpe@it.uu.se>
5034
5035 PR tree-optimization/49243
5036 * calls.c (setjmp_call_p): Also check if fndecl has the
5037 returns_twice attribute.
5038
aa4203e7
RO
50392011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5040
5041 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
5042 -ffast-math etc.
5043
48f9d59a
RH
50442011-06-06 Richard Henderson <rth@redhat.com>
5045 Georg-Johann Lay <avr@gjlay.de>
5046
5047 PR target/42210
5048 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
5049 New predicates.
5050 * config/avr/avr.md ("insv"): New insn expander.
5051 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
5052 "*insv.not.io", "*insv.reg"): New insns.
5053
11494830
HPN
50542011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
5055
5056 PR target/49285
b8bc3a43
UB
5057 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
5058 to nonimmediate_operand from memory_operand for the operand that is to
5059 be forced to memory by the expander. Lose the constraints.
11494830 5060
679e70df
EB
50612011-06-05 Eric Botcazou <ebotcazou@adacore.com>
5062
5063 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
5064 EH return when delayed branches are disabled.
5065
4d3d7f15
UB
50662011-06-05 Uros Bizjak <ubizjak@gmail.com>
5067
5068 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
5069 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
5070 calculation.
5071 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
5072 Simplify MODE_V1DF and MODE_V2SF handling.
5073 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
5074 Simplify MODE_SF handling.
5075
a45c0557
JH
50762011-06-04 Jan Hubicka <jh@suse.cz>
5077
5078 PR tree-optimization/48893
5079 PR tree-optimization/49091
5080 PR tree-optimization/49179
5081 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
5082 Bounds check.
5083
26740835
JH
50842011-06-04 Jan Hubicka <jh@suse.cz>
5085
5086 PR lto/48954
b8bc3a43
UB
5087 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
5088 bitmaps.
26740835 5089
014ab419
JW
50902011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
5091
5092 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
5093
407bcba7
JJ
50942011-06-04 Jakub Jelinek <jakub@redhat.com>
5095
5096 PR target/49281
5097 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
5098 to be strictly smaller than 1 << shiftcount.
5099
e3195c52
JH
51002011-06-04 Jan Hubicka <jh@suse.cz>
5101
5102 PR tree-optimize/48929
5103 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
5104 of empty predicate.
5105
047d33a0
AO
51062011-06-04 Alexandre Oliva <aoliva@redhat.com>
5107
5108 PR debug/48333
5109 * calls.c (emit_call_1): Prefer the __builtin declaration of
5110 builtin functions.
5111
dc587809
DN
51122011-06-03 Diego Novillo <dnovillo@google.com>
5113
5114 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
5115 (lto_input_tree_pointers): Likewise.
5116 * lto-streamer-out.c (pack_value_fields): Likewise.
5117 (lto_output_tree_pointers): Likewise.
5118 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
5119 and OPTIMIZATION_NODE.
5120
58cd1d70
RO
51212011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5122
5123 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
5124 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
5125 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
5126 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
5127 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
5128 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
5129 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
5130 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
5131 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
5132 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
5133 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
5134 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
5135 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
5136 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
5137 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
5138 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
5139 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
5140 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
5141 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
5142 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
5143 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
5144 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
5145 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
5146 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
5147 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
5148 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
5149 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
5150 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
5151 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
5152 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
5153 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
5154 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
5155 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
5156 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
5157 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
5158 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
5159 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
5160 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
5161 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
5162 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
5163 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
5164 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
5165 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
5166 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
5167 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
5168 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
5169 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
5170 * system.h (MD_UNWIND_SUPPORT): Poison.
5171 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
5172 * doc/tm.texi: Regenerate.
5173 * unwind-dw2.c: Include md-unwind-support.h instead of
5174 MD_UNWIND_SUPPORT.
5175 * config/ia64/unwind-ia64.c: Likewise.
5176 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5177
10c63ba4 51782011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
5179
5180 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
5181
1b7a0148
RH
51822011-06-03 Richard Henderson <rth@redhat.com>
5183 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5184
5185 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
5186 (sigill_hdlr): Correct insn, insn size.
5187 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
5188
737346fa
RO
51892011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5190
5191 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
5192 t-slibgcc-dummy.
5193 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
5194 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
5195 * config/mips/t-iris: Remove.
5196 * config/mips/t-irix6: New file.
5197 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
5198
c192cee6
RO
51992011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5200
5201 * Makefile.in (LIB2ADDEHDEP): Remove.
5202 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
5203 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
5204 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
5205 * config/t-darwin (LIB2ADDEHDEP): Remove.
5206 * config/t-freebsd (LIB2ADDEHDEP): Remove.
5207 * config/t-linux (LIB2ADDEHDEP): Remove.
5208
d5828cc7
DN
52092011-06-03 Diego Novillo <dnovillo@google.com>
5210
5211 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
5212 (lto_register_var_decl_in_symtab): Likewise.
5213 (lto_register_function_decl_in_symtab): Likewise.
5214 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 5215 logic to uniquify_nodes.
d5828cc7 5216
ee33b5f0
RO
52172011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5218
5219 * config/alpha/t-osf5: Remove.
5220 * config/alpha/t-osf-pthread: Remove.
5221 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
5222 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
5223
16868d84
JB
52242011-06-03 Julian Brown <julian@codesourcery.com>
5225
5226 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
5227 (strongarm1110): Use strongarm tuning.
4d3d7f15 5228 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
5229 * config/arm/arm.c (arm_strongarm_tune): New.
5230 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
5231 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
5232 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
5233 setting, using previous defaults or 1 for Cortex-A5.
5234 (arm_option_override): Set max_insns_skipped from current tuning.
5235
1cec1285
NS
52362011-06-03 Nathan Sidwell <nathan@codesourcery.com>
5237
5238 * doc/install.texi (Options specification): Document --with-specs.
5239
eed55426
RR
52402011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5241
5242 * config/arm/neon.md (orndi3_neon): Actually split it.
5243
d5b6cc25
AO
52442011-06-02 Alexandre Oliva <aoliva@redhat.com>
5245
5246 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
5247 * var-tracking.c (reverse_op): Limite recurse depth to 5.
5248
2ba42841
AO
52492011-06-02 Alexandre Oliva <aoliva@redhat.com>
5250
5251 PR debug/47590
5252 * target.def (delay_sched2, delay_vartrack): New.
5253 * doc/tm.texi.in: Update.
5254 * doc/tm.texi: Rebuild.
5255 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
5256 * var-tracking.c (gate_handle_var_tracking): Likewise.
5257 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
5258 (bfin_flag_var_tracking): Drop.
5259 (output_file_start): Don't save and override flag_var_tracking.
5260 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
5261 (bfin_reorg): Test original variables.
5262 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5263 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
5264 (ia64_flag_var_tracking): Drop.
5265 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5266 (ia64_file_start): Don't save and override flag_var_tracking.
5267 (ia64_override_options_after_change): Ditto
5268 flag_schedule_insns_after_reload.
5269 (ia64_reorg): Test original variables.
5270 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
5271 (picochip_flag_var_tracking): Drop.
5272 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
5273 (picochip_option_override): Don't save and override
5274 flag_schedule_insns_after_reload.
5275 (picochip_asm_file_start): Ditto flag_var_tracking.
5276 (picochip_reorg): Test original variables.
5277 * config/spu/spu.c (spu_flag_var_tracking): Drop.
5278 (TARGET_DELAY_VARTRACK): Define.
5279 (spu_var_tracking): New.
5280 (spu_machine_dependent_reorg): Call it.
5281 (asm_file_start): Don't save and override flag_var_tracking.
5282
a700b5f0
KK
52832011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
5284
5285 PR target/49163
5286 * config/sh/predicates.md (general_movsrc_operand): Return 0
5287 for memory and memory subreg of which address is an invalid
5288 indexed address for QI and HImode.
5289 (general_movdst_operand): Likewise.
5290
76015c34
EB
52912011-06-02 Eric Botcazou <ebotcazou@adacore.com>
5292
5293 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
5294 edges only, when there is a non-local label in the function.
5295 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
5296
4e76acd2
UB
52972011-06-02 Uros Bizjak <ubizjak@gmail.com>
5298
5299 * config/i386/constraints.md (Y3): New register constraint.
5300 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
5301 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
5302 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
5303 *sse2_interleave_lowv2df.
5304
288f605f
JB
53052011-06-02 Julian Brown <julian@codesourcery.com>
5306
5307 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
5308 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
5309 (arm_cortex_a5_tune): New.
5310
7ec70105
JB
53112011-06-02 Julian Brown <julian@codesourcery.com>
5312
153668ec
JB
5313 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
5314 * config/arm/arm.c (arm_default_branch_cost): New.
5315 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
5316 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
5317 (arm_fa726_tune): Set branch_cost field using
5318 arm_default_branch_cost.
5319 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
5320 current_tune structure.
5321 * dojump.c (tm_p.h): Include file.
5322
53232011-06-02 Julian Brown <julian@codesourcery.com>
5324
5325 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
5326 tuning.
7ec70105
JB
5327 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
5328 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
5329 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
5330 field.
5331 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
5332 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
5333 (arm_fa726te_tune): Add prefer_constant_pool setting.
5334 (arm_v6t2_tune, arm_cortex_tune): New.
5335 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
5336 prefer_constant_pool setting.
5337
aad61732
UB
53382011-06-02 Uros Bizjak <ubizjak@gmail.com>
5339
4e76acd2
UB
5340 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
5341 switch statement.
aad61732
UB
5342 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
5343 (*movdf_internal) <case 6,7,8>: Ditto.
5344
4e76acd2 5345 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
5346 * config/i386/sse.md (vec_set<mode>_0): Merge with
5347 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
5348 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
5349 *vec_extractv2di_1_sse.
5350 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
5351 and *vec_concatv2di_rex64_sse.
5352
6e588138
SH
53532011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
5354
5355 PR target/48807
5356 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
5357 of cgraph_local_info for null before attempting to use it.
5358
bc6d3f91
EB
53592011-06-02 Eric Botcazou <ebotcazou@adacore.com>
5360
5361 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
5362 (current_function_dynamic_alloc_count): Delete.
5363 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
5364 (expand_builtin_nonlocal_goto): Remove obsolete comment.
5365 (expand_builtin_update_setjmp_buf): Remove dead code.
5366 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
5367 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
5368 support.
5369 * function.c (instantiate_virtual_regs): Likewise.
5370 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
5371 for a block with a single abnormal incoming edge.
5372 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 5373 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
5374 * config/sparc/sparc-protos.h (load_got_register): Declare.
5375 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5376 (load_got_register): Make global.
5377 (sparc_frame_pointer_required): Add 'static'.
5378 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
5379 (sparc_builtin_setjmp_frame_value): New function.
5380 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
5381 (save_stack_nonlocal): New expander.
5382 (restore_stack_nonlocal): Likewise.
5383 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
5384 (nonlocal_goto_internal): New insn.
5385 (goto_handler_and_restore): Delete.
5386 (builtin_setjmp_setup): Likewise.
5387 (do_builtin_setjmp_setup): Likewise.
5388 (setjmp): Likewise.
5389 (builtin_setjmp_receiver): New expander.
5390
69282fee
DL
53912011-06-01 David Li <davidxl@google.com>
5392
5393 PR middle-end/49261
5394 * tree-pretty-print.c (dump_function_header): Format cleanup.
5395
e95873dd
KK
53962011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
5397
5398 PR target/49238
5399 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
5400 needed when original operands are used for msw_skip comparison.
5401
88c15821
JJ
54022011-06-01 Jakub Jelinek <jakub@redhat.com>
5403
5404 PR debug/49250
5405 * var-tracking.c (add_uses, add_stores): Don't call
5406 cselib_subst_to_values on ENTRY_VALUE.
5407
07233947
DN
54082011-06-01 Diego Novillo <dnovillo@google.com>
5409
5410 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
5411 output_record_start with LTO_null instead of output_zero.
5412 (lto_output_ts_binfo_tree_pointers): Likewise.
5413 (lto_output_tree): Likewise.
5414 (output_eh_try_list): Likewise.
5415 (output_eh_region): Likewise.
5416 (output_eh_lp): Likewise.
5417 (output_eh_regions): Likewise.
5418 (output_bb): Likewise.
5419 (output_function): Likewise.
5420 (output_unreferenced_globals): Likewise.
5421 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
5422 instead of NUM_TREE_CODES.
5423 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
5424 (lto_output_int_in_range): Change << to >> when shifting VAL.
5425
4ee3537a
DN
54262011-06-01 Diego Novillo <dnovillo@google.com>
5427
5428 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
5429 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
5430
02972eaf
RS
54312011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
5432
5433 PR target/45074
5434 * optabs.h (valid_multiword_target_p): Declare.
5435 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
5436 doing multi-word operations.
5437 * optabs.c (expand_binop): Likewise.
5438 (expand_doubleword_bswap): Likewise.
5439 (expand_absneg_bit): Likewise.
5440 (expand_unop): Likewise.
5441 (expand_copysign_bit): Likewise.
5442 (multiword_target_p): New function.
5443
4d41c2d1
RS
54442011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
5445
5446 PR rtl-optimization/48830
5447 PR rtl-optimization/48808
5448 PR rtl-optimization/48792
5449 * reload.c (push_reload): Check contains_reg_of_mode.
5450 * reload1.c (strip_paradoxical_subreg): New function.
5451 (gen_reload_chain_without_interm_reg_p): Use it to handle
5452 paradoxical subregs.
5453 (emit_output_reload_insns, gen_reload): Likewise.
5454
5f57dccb
DL
54552011-06-01 David Li <davidxl@google.com>
5456
5457 * predict.c : Change pass name
5458 * ipa.c: Ditto.
5459 * dce.c: Ditto.
5460 * tree-profile.c: Ditto.
5461 * except.c: Ditto.
5462
ea6cf778
DL
54632011-06-01 David Li <davidxl@google.com>
5464
5465 * tree-pretty-print.c (dump_function_header): New function.
5466 * final.c (rest_of_clean_state): Use header dumper.
5467 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
5468 * passes.c (pass_init_dump_file): Use header dumper.
5469
ebdc0d4b
JJ
54702011-06-01 Jakub Jelinek <jakub@redhat.com>
5471
eeeb9b49
JJ
5472 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
5473 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
5474 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
5475 New functions.
5476 (mem_loc_descriptor): Use them.
5477
ebdc0d4b
JJ
5478 * var-tracking.c (create_entry_value): New function.
5479 (vt_add_function_parameter): Use it.
5480
0699e415
RO
54812011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5482
5483 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
5484 Include <signal.h>, <ucontext.h>.
5485 (sigill_caught): Define.
5486 (sigill_hdlr): New function.
5487 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
5488 insns can be executed.
aad61732 5489 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
5490 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
5491
ca24c5ad
RO
54922011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5493
5494 * config/t-slibgcc-darwin: Move to ...
aad61732 5495 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
5496 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
5497 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
5498 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 5499 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
5500 Remove i386/t-crtstuff from tmake_file.
5501 (i[34567]86-*-solaris2*): Remove t-svr4,
5502 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
5503 t-slibgcc-dummy.
5504 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
5505 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
5506 sparc/t-crtfm from tmake_file.
5507 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
5508 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
5509 Remove extra_parts.
5510 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
5511 * config/i386/t-nwld (SHLIB_LINK): Remove.
5512 * config/i386/t-rtems-i386: Rename to ...
5513 * config/i386/t-rtems: ... this.
5514 ($(T)crti.o, $(T)crtn.o): Remove.
5515 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
5516 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
5517 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
5518 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
5519 EXTRA_MULTILIB_PARTS): Remove.
5520 * config/sparc/t-sol2-64: Likewise.
5521 * config/sparc/t-sol2: Remove.
5522 * config/sparc/t-crtin: Remove.
5523 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
5524 * config/i386/gmon-sol2.c: Remove.
5525 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
5526 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
5527 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
5528 * config/i386/sol2-gc1.asm: Remove.
5529 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
5530 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
5531 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
5532 * config/t-slibgcc-sld: Remove.
5533
a78d13c3
JJ
55342011-06-01 Jakub Jelinek <jakub@redhat.com>
5535
5536 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
5537 base_type_for_mode with op_mode instead of mode.
5538
572070ef
PB
55392011-06-01 Paul Brook <paul@cpodesourcery.com>
5540
5541 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
5542 Cortex-A15.
5543 * config/arm/arm-tune.md: Regenerate.
5544 * config/arm/arm-tables.opt: Regenerate.
5545 * config/arm/arm.c (FL_DIV): Rename...
5546 (FL_THUMB_DIV): ... to this.
5547 (FL_ARM_DIV): Define.
5548 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
5549 (arm_arch_hwdiv): Remove.
5550 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
5551 (arm_issue_rate): Add cortexr5.
5552 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
5553 __ARM_ARCH_EXT_IDIV__.
5554 (TARGET_IDIV): Define.
5555 (arm_arch_hwdiv): Remove.
5556 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
5557 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
5558 (divsi3, udivsi3): New patterns.
5559 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
5560 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
5561
11026b51
MJ
55622011-06-01 Martin Jambor <mjambor@suse.cz>
5563
5564 * ipa-utils.c (ipa_dfs_info): New field scc_no.
5565 * ipa-utils.c (searchc): Set scc_no.
5566
b6156cf2
MJ
55672011-06-01 Martin Jambor <mjambor@suse.cz>
5568
5569 * ipa-utils.c (searchc_env): New field allow_overwritable.
5570 (searchc): do not ignore edges to overwritable nodes if indicated
5571 by env->allow_overwritable.
5572 (ipa_reduced_postorder): Set env.allow_overwritable.
5573
6807da97
RG
55742011-06-01 Richard Guenther <rguenther@suse.de>
5575
5576 * tree.c (free_lang_data): Do not reset boolean_type_node nor
5577 char_type_node.
5578 * lto-streamer.c (lto_record_common_node): Take node pointer,
5579 do not register types.
5580 (lto_preload_common_nodes): Explicitly skip preloading nodes
5581 that differ between frontends.
5582
66bd20e7 55832011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
5584
5585 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
5586 NON_FLOAT_REGS.
5587
66bd20e7 55882011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
5589
5590 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
5591 parameter value for dump. Dump cost on outermost call only.
5592 (rs6000_memory_move_cost): Dump cost on outermost call only.
5593
7351d8da
JJ
55942011-05-31 Jakub Jelinek <jakub@redhat.com>
5595
ead7c399
JJ
5596 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
5597 DW_OP_GNU_convert ops.
5598
509f4495
JJ
5599 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
5600 cselib_preserve_constants.
5601 (cselib_lookup_1): If cselib_preserve_constants,
5602 a new VALUE is being created for REG and there is a VALUE for the
5603 same register in wider mode, add another loc with lowpart SUBREG of
5604 the wider VALUE.
5605 (cselib_subst_to_values): Handle ENTRY_VALUE.
5606 * var-tracking.c (replace_expr_with_values): Return NULL for
5607 ENTRY_VALUE too.
5608 * dwarf2out.c (convert_descriptor_to_signed): New function.
5609 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
5610 instead of two shifts.
5611 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
5612 the right mode if needed.
5613 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
5614 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
5615 convert_descriptor_to_signed.
5616 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
5617 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
5618
7351d8da
JJ
5619 PR target/48688
5620 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
5621
5cc93ee0
UB
56222011-05-31 Uros Bizjak <ubizjak@gmail.com>
5623
5624 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
5625 of X87MODEI12 and SWI48x instead of SSEMODEI24.
5626 (SWI248x): New mode iterator, rename from X87MODEI.
5627 (X87MODEI): Remove mode iterator.
5628 (X87MODEI12): Ditto.
5629 (SSEMODEI24): Ditto.
5630
f0686e78
AO
56312011-05-31 Alexandre Oliva <aoliva@redhat.com>
5632
5633 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
5634 * doc/invoke.texi: Document max-vartrack-expr-depth.
5635 * var-tracking.c (EXPR_DEPTH): New.
5636 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
5637
f3308413
AO
56382011-05-31 Alexandre Oliva <aoliva@redhat.com>
5639
5640 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
5641 * config/i386/sse.md: Add n to negated FMA pattern names.
5642
28c14a04
AO
56432011-05-31 Alexandre Oliva <aoliva@redhat.com>
5644
5645 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
5646
70efc82d
AO
56472011-05-31 Alexandre Oliva <aoliva@redhat.com>
5648
5cc93ee0 5649 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 5650
6ba5d856
UB
56512011-05-31 Uros Bizjak <ubizjak@gmail.com>
5652
5653 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
5654 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
5655
56562011-05-31 Uros Bizjak <ubizjak@gmail.com>
5657
5658 * config/i386/i386.md (*movtf_internal): Avoid allocating general
5659 registers. Penalize F*r->o alternative to prevent partial memory
5660 stalls. Slightly penalize *roF->*r alternative. Generate SSE
5661 CONST_DOUBLE immediates when optimizing function for size. Do not move
5662 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5663 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
5664 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
5665 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
5666 alternatives.
5667 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
5668
5669 (fp_register_operand splitters): Use fp_register_operand
5670 constraint. Do not use FP_REG_P in insn condition.
5671 (any_fp_register_operand splitters): Use any_fp_register_operand
5672 constraint. Do not use ANY_FP_REG_P in insn condition.
5673
533c07c5
JH
56742011-05-31 Jan Hubicka <jh@suse.cz>
5675
5676 * cgraph.h (cgraph_inline_failed_t): Give enum a name
5677 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
5678 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
5679 (lto_output_edge): Use output_enum and var_len_unsigned.
5680 (lto_output_varpool_node): Likewise.
5681 (input_overwrite_node): Do not take resolution parameter;
5682 extract it from a bitpack.
5683 (input_node): Do not read resolution; use input_enum and
5684 var_len_unsigned.
5685 (input_varpool_node): Likewise.
5686 (input_edge): Likewise.
5687 (input_cgraph_1): Likewise.
5688
2611db71
RG
56892011-05-31 Richard Guenther <rguenther@suse.de>
5690
5691 * gimple.c (gimple_register_canonical_type): Do not register
5692 any types via gimple_register_type.
5693
b9e57365
JH
56942011-05-31 Jan Hubicka <jh@suse.cz>
5695
5696 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
5697 of thunks.
5698
35979cc2
JJ
56992011-05-31 Jakub Jelinek <jakub@redhat.com>
5700
5701 PR rtl-optimization/49235
5702 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
5703 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
5704
8f7de592
IR
57052011-05-31 Ira Rosen <ira.rosen@linaro.org>
5706
5707 PR tree-optimization/49093
5708 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
5709 data references.
5710
8d8a3bda
DS
57112011-05-31 Dodji Seketeli <dodji@redhat.com>
5712
5713 PR debug/49047
5714 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 5715 for concrete functions containing the code of cloned functions.
8d8a3bda 5716
2e87621c
RG
57172011-05-31 Richard Guenther <rguenther@suse.de>
5718
5719 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
5720 to ...
5721 (forward_propagate_into_comparison_1): ... this.
5722 (forward_propagate_comparison): Rename to ...
5723 (forward_propagate_into_comparison): ... this. Split out
5724 real forward propagation code to ...
5725 (forward_propagate_comparison): ... this.
5726 (forward_propagate_into_gimple_cond): Remove looping.
5727 (forward_propagate_into_cond): Likewise.
5728 (simplify_not_neg_expr): Return whether we have done something.
5729 (simplify_gimple_switch): Likewise.
5730 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
5731 (ssa_forward_propagate_and_combine): ... this. Re-structure
5732 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 5733 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
5734 (pass_forwprop): Adjust.
5735
5a880d5d
ILT
57362011-05-30 Ian Lance Taylor <iant@google.com>
5737
5738 * godump.c (go_format_type): Correct length of name added to
5739 obstack for anonymous field.
5740
5f133038
KK
57412011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
5742
5743 PR target/49186
5744 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
5745 part of the second operand is 0.
5746
b17d5426
UB
57472011-05-30 Uros Bizjak <ubizjak@gmail.com>
5748
5749 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
5750 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
5751 to memory for !TARGET_MEMORY_MISMATCH_STALL.
5752 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 5753 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
5754 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
5755 when optimizing function for size. Do not move CONST_DOUBLEs
5756 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
5757 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
5758 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
5759 check for ANY_FP_REGNO_P instead.
5760 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
5761 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
5762 function for speed.
5763 * config/i386/i386.c (ix86_option_override_internal): Do not
5764 set TARGET_INTEGER_DFMODE_MOVES here.
5765
a0cd843f
L
57662011-05-30 H.J. Lu <hongjiu.lu@intel.com>
5767
5768 PR target/49168
aad61732 5769 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 5770
006a5f38
JJ
57712011-05-30 Jakub Jelinek <jakub@redhat.com>
5772
5773 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
5774 DW_TAG_rvalue_reference_type even for
5775 -gdwarf-4 -fno-debug-types-section.
5776
6e96f98a
BS
57772011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5778
5779 PR tree-optimization/46728
5780 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
5781 (build_and_insert_binop): New.
5782 (gimple_expand_builtin_pow): Reorder args for
5783 build_and_insert_call; use build_and_insert_binop; add more
5784 optimizations for fractional exponents.
b17d5426 5785
4f60111f
NF
57862011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
5787
5788 PR bootstrap/49190
5789
5790 Revert:
5791 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
5792
5793 * tree.h (struct tree_identifier): Inherit from tree_typed, not
5794 tree_common.
5795 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5796 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5797 TS_BASE instead of TS_COMMON.
5798 * varasm.c (assemble_name): Remove assert.
5799
3fd7879d
RS
58002011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
5801
5802 * config.gcc: Keep obselete list sorted.
5803
80060f7a
JJ
58042011-05-30 Jakub Jelinek <jakub@redhat.com>
5805 Eric Botcazou <ebotcazou@adacore.com>
5806
5807 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
5808 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
5809 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
5810 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
5811 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
5812
17e99cdb
RG
58132011-05-30 Richard Guenther <rguenther@suse.de>
5814
5815 * gimple.c (gimple_types_compatible_p_1): Compare record
5816 and union type members properly.
5817
42b05b6e
RG
58182011-05-30 Richard Guenther <rguenther@suse.de>
5819
5820 PR tree-optimization/49210
6ba5d856
UB
5821 * ipa-split.c (split_function): Care for the case where the call
5822 result is not trivially convertible to the result holding variable.
42b05b6e 5823
f3321158
RG
58242011-05-30 Richard Guenther <rguenther@suse.de>
5825
5826 PR tree-optimization/49218
5827 * tree-vrp.c (adjust_range_with_scev): Properly check whether
5828 overflow occured.
5829
d12d8efe
RG
58302011-05-30 Richard Guenther <rguenther@suse.de>
5831
5832 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
5833 New function split out from ...
5834 (forward_propagate_into_gimple_cond): ... here. Adjust.
5835 (forward_propagate_into_cond): Likewise.
5836 (forward_propagate_comparison): Also propagate into
5837 comparisons on assignment RHS. Change return value to
5838 behave similar to forward_propagate_into_cond.
5839 (tree_ssa_forward_propagate_single_use_vars): Handle
5840 strict-overflow warnings properly for forward_propagate_comparison.
5841
df33b41f
RO
58422011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5843
5844 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
5845 from plugin linker.
5846 * configure: Regenerate.
5847
69940d4d
IR
58482011-05-30 Ira Rosen <ira.rosen@linaro.org>
5849
5850 PR tree-optimization/49199
5851 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 5852 non-reduction operands are either defined in the loop or by induction.
69940d4d 5853
226c52aa
XDL
58542011-05-29 Xinliang David Li <davidxl@google.com>
5855
5856 * opts-global.c (handle_common_deferred_options): Handle new options.
5857 * passes.c (register_one_dump_file): Call register_pass_name.
5858 (execute_one_pass): Check explicit enable/disable flag.
5859 (passr_hash): New function.
5860 (passr_eq): Ditto.
5861 (register_pass_name): Ditto.
5862 (get_pass_by_name): Ditto.
5863 (pass_hash): Ditto.
5864 (pass_eq): Ditto.
5865 (enable_pass): Ditto.
5866 (disable_pass): Ditto.
5867 (is_pass_explicitly_enabled_or_disabled): Ditto.
5868
491d8eed
UB
58692011-05-29 Uros Bizjak <ubizjak@gmail.com>
5870
5871 * config/i386/i386.md (*movoi_internal_avx): Use
5872 standard_sse_constant_opcode for alternative 0.
5873 (*movti_internal_sse): Ditto.
5874 (*movti_internal_rex64): Use standard_sse_constant_opcode for
5875 alternative 2.
5876 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
5877 sselog1 type moves.
5878 (*movsi_internal): Ditto.
5879 (*movdi_internal): Ditto. Add ssecvt type moves.
5880
eb93b31f
EB
58812011-05-29 Eric Botcazou <ebotcazou@adacore.com>
5882
5883 PR target/48830
5884 * rtlanal.c (simplify_subreg_regno): Adjust comment.
5885
3f831b7d
JJ
58862011-05-29 Jakub Jelinek <jakub@redhat.com>
5887
5888 PR rtl-optimization/49095
5889 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
5890 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
5891
ee3ee488
RS
58922011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
5893
5894 PR target/43995
5895 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
5896 recurse_p argument. Only follow register copies if it is set,
5897 and prevent mips_find_pic_call_symbol from recursing.
5898 (mips_find_pic_call_symbol): Add a recurse_p argument.
5899 Pass it to mips_pic_call_symbol_from_set.
5900 (mips_annotate_pic_calls): Update accordingly.
5901
65f3dedb
RS
59022011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
5903
5904 * emit-rtl.c (try_split): Use a loop to search for
5905 NOTE_INSN_CALL_ARG_LOCATIONs.
5906
61e374ab
RG
59072011-05-29 Richard Guenther <rguenther@suse.de>
5908
5909 PR tree-optimization/49217
5910 * ipa-pure-const.c (propagate_pure_const): Fix typos.
5911
fac009a8
JH
59122011-05-28 Jan Hubicka <jh@suse.cz>
5913
5914 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
5915 length.
5916 (string_slot_free): Remove
5917 (create_output_block): Initialize obstack.
5918 (destroy_output_block): Free obstack.
5919 (lto_string_index): Add PERSISTENT parameter; do not duplicate
5920 the string unless it needs to be added into the hash.
5921 (lto_output_string_with_length): Add persistent attribute;
5922 handle NULL strings.
5923 (lto_output_string): Add PERSISTENT parameter.
5924 (output_string_cst, output_identifier): Simplify.
5925 (lto_output_location_bitpack): Update.
5926 (lto_output_builtin_tree): Update.
5927 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
5928 (lto_output_string, lto_output_string_with_length): Remove
5929 declarations; functions are static now.
fac009a8 5930
fa766006
JH
59312011-05-28 Jan Hubicka <jh@suse.cz>
5932
5933 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
5934 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
5935 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
5936 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
5937 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
5938 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
5939 unpack_ts_decl_with_vis_value_fields,
5940 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
5941 lto_get_builtin_tree): Use enum and variable length i/o.
5942 * basic-block.h (profile_status_d): Add PROFILE_LAST.
5943 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
5944 New functions.
5945 (bp_pack_enum, bp_unpack_enum): New macros.
5946
e092158b
RS
59472011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
5948
5949 * genrecog.c: Remove redundant forward declarations.
5950
7ca2afa0
RS
59512011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
5952
5953 * config.gcc: Deprecate mips*-*-openbsd*.
5954
a601a53a
RS
59552011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
5956
5957 PR bootstrap/49195
5958 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
5959 for match_op_dup.
5960
fc64b448
AP
59612011-05-27 Andrew Pinski <pinskia@gmail.com>
5962
5963 PR middle-end/48981
5964 * gengtype.c (vec_prefix_type): New function.
5965 (note_def_vec): Use vec_prefix_type and change the length
5966 attribute to be based on the prefix.
5967 * vec.c: Include coretypes.h before vec.h.
5968 (struct vec_prefix): Remove.
5969 (vec_gc_p_reserve): Change the offsetof to sizeof.
5970 (vec_gc_p_reserve_exact): Likewise.
5971 (vec_heap_p_reserve): Likewise.
5972 (vec_heap_p_reserve_exact): Likewise.
5973 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
5974 (vec_stack_p_reserve): Change the offsetof to sizeof.
5975 (vec_stack_p_reserve_exact): Likewise.
5976 * vec.h (struct vec_prefix): New struct definition.
5977 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
5978 (VEC_T_GTY(T,B)): Likewise.
5979 (DEF_VEC_FUNC_P(T)): Use prefix field.
5980 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
5981 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
5982
ba869341
BS
59832011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5984
5985 PR tree-optimization/46728
5986 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
5987 (powi_as_mults): Add gimple_set_location.
5988 (build_and_insert_call): New.
5989 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
5990 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 5991
d296760d
AM
59922011-05-27 Alexander Monakov <amonakov@ispras.ru>
5993
5994 * doc/contrib.texi: Update copyright years.
5995 (Contributors): Add Zdenek Sojka.
5996
38e01f9e
NF
59972011-05-27 Nathan Froyd <froydnj@codesourcery.com>
5998
5999 * c-decl.c (c_push_function_context): Copy the current statement
6000 list stack.
6001 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
6002 (finish_struct): Call building_stmt_list_p instead of checking
6003 cur_stmt_list.
6004 * c-parser.c (c_parser_postfix_expression): Likewise.
6005 * c-typeck.c (c_end_compound_stmt): Likewise.
6006 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
6007 * tree-iterator.c (stmt_list_cache): Change to a VEC.
6008 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
6009 (free_stmt_list): Likewise.
6010 * tree.h (struct tree_statement_list): Include typed_tree instead
6011 of tree_common.
6012 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
6013 as TS_TYPED instead of TS_COMMON.
6014
8950516e 60152011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 6016 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
6017
6018 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
6019 (HAVE_AS_IX86_TLSGDPTL): Define.
6020 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
6021 (HAVE_AS_IX86_TLSLDMPLT): Define.
6022 * configure: Regenerate.
6023 * config.in: Regenerate.
6024 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
6025 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
6026 TARGET_SUN_TLS, use @tlsgdplt or @plt.
6027 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
6028 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
6029 @tlsldmplt or @plt.
6030 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
6031
b0bd15f7
BS
60322011-05-27 Bernd Schmidt <bernds@codesourcery.com>
6033
6034 * sched-int.h (struct _haifa_deps_insn_data): New members cond
6035 and reverse_cond.
6036 (INSN_COND, INSN_REVERSE_COND): New macros.
6037 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
6038 once.
6039 (sched_get_condition_with_rev): Cache the results, and look them up
6040 if possible.
6041 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
6042 are clobbered by the current insn.
6043 * target.def (exposed_pipline): New sched data hook.
6044 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
6045 * doc/tm.texi: Regenerate.
6046
fa65a9cf
BS
60472011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6048
6049 PR tree-optimization/49170
6050 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
6051 sincos or cexp.
b0bd15f7 6052
c2299dfe
RG
60532011-05-27 Richard Guenther <rguenther@suse.de>
6054
6055 PR middle-end/49189
6056 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
6057 of comparisons.
6058
a95b23b4
BS
60592011-05-27 Bernd Schmidt <bernds@codesourcery.com>
6060
6061 * haifa-sched.c (sched_scan_info): Remove.
6062 (schedule_block): Call sched_extend_luids rather than sched_init_luids
6063 with NULL args.
6064 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
6065 Remove functions.
6066 (sched_scan): Remove.
6067 (sched_extend_luids): Renamed from luids_extend_insn and no longer
6068 static. All callers changed.
6069 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
6070 static. All callers changed.
6071 (sched_init_luids): Remove all arguments except the first. All
6072 callers changed. Don't use sched_scan.
6073 (haifa_init_h_i_d): Likewise.
6074 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
6075 manually rather than using sched_init_luids. Likewise with
6076 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
6077 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
6078 rather than sched_init_luids with NULL args.
6079 * sel-sched-ir.c (new_insns): Remove variable.
6080 (sched_scan): New static function, previously in haifa-sched.c. Remove
6081 all arguments but the first two; all callers changed.
6082 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
6083 rather than sched_init_luids.
6084 (sel_init_bbs): Remove second argument. All callers changed.
6085 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
6086 with NULL arguments.
6087 (create_insn_rtx_from_pattern): Likewise.
6088 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
6089 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
6090 (sched_init_insn_luid, sched_extend_luids): Declare.
6091 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
6092 declarations.
6093
f8f972fc
RB
60942011-05-27 Richard Guenther <rguenther@suse.de>
6095
6096 PR middle-end/49177
6097 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
6098 A CMP B ? (T) true : (T) false for non-integral types T again.
6099
51a9ed47
JH
61002011-05-27 Jan Hubicka <jh@suse.cz>
6101
6102 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
6103 so 0 means NULL string.
6104 (lto_output_string_with_length): ... here.
f8f972fc
RB
6105 (lto_output_string, output_string_cst, output_identifier): Update
6106 handling of NULL strings.
51a9ed47
JH
6107 (lto_output_location_bitpack): New function.
6108 (lto_output_location): Use it.
6109 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
6110 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
6111 len values.
6112 * lto-streamer-in.c (string_for_index): Break out from ...; offset
6113 values by 1.
491d8eed 6114 (input_string_internal): ... here;
f8f972fc
RB
6115 (input_string_cst, input_identifier, lto_input_string): Update handling
6116 of NULL strings.
51a9ed47
JH
6117 (lto_input_location_bitpack): New function
6118 (lto_input_location): Use it.
f8f972fc
RB
6119 (unpack_ts_type_common_value_fields): Pack align & alias in var len
6120 values.
51a9ed47
JH
6121 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
6122 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
6123 (bp_pack_value): Sanity check the value range.
6124 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
6125 New functions.
6126 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
6127 New functions.
6128
66bd20e7 61292011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
6130
6131 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
6132 call_arg_location instructions down the floor.
6133
574e418a
VM
61342011-05-26 Vladimir Makarov <vmakarov@redhat.com>
6135
6136 PR rtl-optimization/49154
6137 * ira.c (setup_pressure_classes): Process class without sublcasses
6138 as a candidate for pressure classes.
6139
6a1a787e
RS
61402011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
6141
6142 PR rtl-optimization/48575
6143 * genrecog.c (position_type): New enum.
6144 (position): New structure.
6145 (decision): Use position structure instead of a string.
6146 (root_pos, peep2_insn_pos_list): New variables.
6147 (next_position, compare_positions): New functions.
6148 (new_decision): Use position structures instead of strings.
6149 (maybe_both_true): Likewise.
6150 (change_state): Likewise.
6151 (write_tree): Likewise.
6152 (make_insn_sequence): Likewise.
6153
92e948a8
NF
61542011-05-26 Nathan Froyd <froydnj@codesourcery.com>
6155
6156 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
6157 TS_BASE instead of TS_COMMON.
6158 (find_decls_types_r): Check for TS_TYPED structure before looking at
6159 TREE_TYPE.
6160 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
6161 Add chain field.
6162 (BLOCK_CHAIN): Use new chain field.
6163
66bd20e7 61642011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
6165
6166 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
6167 moves expensive on Power7 also.
6168
1f498652
RG
61692011-05-26 Richard Guenther <rguenther@suse.de>
6170
6171 * fold-const.c (fold_unary_loc): Remove bogus code.
6172
a2fc3e63
NF
61732011-05-26 Nathan Froyd <froydnj@codesourcery.com>
6174
6175 * tree.h (struct tree_identifier): Inherit from tree_typed, not
6176 tree_common.
6177 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
6178 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
6179 TS_BASE instead of TS_COMMON.
6180 * varasm.c (assemble_name): Remove assert.
6181
d11bf18f
BS
61822011-05-26 Bernd Schmidt <bernds@codesourcery.com>
6183
6184 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
6185 substituted first.
6186 * libgcc-std.ver: Delete file.
6187
ac8e1875
RG
61882011-05-26 Richard Guenther <rguenther@suse.de>
6189
6190 PR tree-optimization/48702
6191 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
6192 only when we know the base address is within bounds.
6193 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
6194 assume the base address of TARGET_MEM_REFs is in bounds.
6195
7e32e652
RO
61962011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6197
6198 PR target/49099
6199 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
6200 declaration in TARGET_SOLARIS.
6201
66bd20e7 62022011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
6203
6204 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 6205 The instruction is then expanded explicitly.
43660e0b
HS
6206 (supported_compare): Callable instruction.
6207 (compare): Likewise.
6208
1537737f
JJ
62092011-05-26 Jakub Jelinek <jakub@redhat.com>
6210
6211 PR c++/49165
6212 * gimplify.c (shortcut_cond_r): Don't special case
6213 COND_EXPRs if they have void type on one of their arms.
6214
7b1ac803
BS
62152011-05-26 Bernd Schmidt <bernds@codesourcery.com>
6216
6217 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
6218 to reduce duplication, and to achieve a slightly more logical order
6219 of operations.
6220
1aa9438f
JJ
62212011-05-26 Jakub Jelinek <jakub@redhat.com>
6222
6223 PR tree-optimization/49161
6224 * tree-vrp.c (struct case_info): New type.
6225 (compare_case_labels): Sort case_info structs instead of
6226 trees, and not primarily by CASE_LABEL uids but by
6227 label_for_block indexes.
6228 (find_switch_asserts): Put case labels into struct case_info
6229 array instead of TREE_VEC, adjust sorting, compare label_for_block
6230 values instead of CASE_LABELs.
6231
50fed7bf
RR
62322011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6233
6234 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
6235 ("orndi3_neon"): Likewise.
6236 ("bic<mode>3_neon"): Likewise.
6237
48df3fa6
IR
62382011-05-26 Ira Rosen <ira.rosen@linaro.org>
6239
6240 PR tree-optimization/49038
6241 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
6242 Ensure at least one epilogue iteration if required by data
6243 accesses with gaps.
6244 * tree-vectorizer.h (struct _loop_vec_info): Add new field
6245 to mark loops that require peeling for gaps.
6246 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
6247 (vect_get_known_peeling_cost): Take peeling for gaps into
6248 account.
6249 (vect_transform_loop): Generate epilogue if required by data
6250 access with gaps.
6251 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
6252 loop as requiring an epilogue if there are gaps in the end of
6253 the strided group.
6254
53febcba
ILT
62552011-05-25 Ian Lance Taylor <iant@google.com>
6256
6257 * godump.c (go_format_type): Output the first field with a usable
6258 Go type, if any.
6259
dbbc4d4c
ILT
62602011-05-25 Ian Lance Taylor <iant@google.com>
6261
6262 * godump.c (go_format_type): Check for invalid type names, pointer
6263 target types, and struct field types.
6264
f03a5402
JM
62652011-05-25 Jason Merrill <jason@redhat.com>
6266
6267 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
6268
c497c412
UB
62692011-05-25 Uros Bizjak <ubizjak@gmail.com>
6270
6271 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
6272
e470affe
L
62732011-05-25 H.J. Lu <hongjiu.lu@intel.com>
6274
6275 * config/i386/i386.md (*movqi_extv_1)): Put back
6276 "register_operand" check in "type" calculation.
6277 (*movqi_extzv_2): Likewise.
6278
6c81b2bc
L
62792011-05-25 H.J. Lu <hongjiu.lu@intel.com>
6280
c497c412 6281 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 6282
0c007eb2
BS
62832011-05-25 Bernd Schmidt <bernds@codesourcery.com>
6284
6285 PR bootstrap/49160
6286 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
6287 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
6288 __divxc3, __divtc3): Wrap definitions in #ifndef.
6289
521ca78e
L
62902011-05-25 H.J. Lu <hongjiu.lu@intel.com>
6291
6292 PR target/49142
6293 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
6294 "register_operand" check and replace q_regs_operand with
6295 QIreg_operand in "type" calculation.
6296 (*movqi_extv_1): Likewise.
6297 (*movqi_extzv_2_rex64): Likewise.
6298 (*movqi_extzv_2): Likewise.
6299
6300 * config/i386/predicates.md (QIreg_operand): New.
6301
29f8b844
RG
63022011-05-25 Richard Guenther <rguenther@suse.de>
6303
6304 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
6305 type-based offset disambiguation, streamline MEM_REF and
6306 TARGET_MEM_REF handling.
6307
74838de3
L
63082011-05-25 H.J. Lu <hongjiu.lu@intel.com>
6309
6310 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
6311 (bdesc_special_args): Add pause intrinsic.
6312
6313 * config/i386/i386.md (UNSPEC_PAUSE): New.
6314 (pause): Likewise.
6315 (*pause): Likewise.
6316 * config/i386/ia32intrin.h (__pause): Likewise.
6317
6318 * doc/extend.texi (X86 Built-in Functions): Add documentation for
6319 pause intrinsic.
6320
d24ad7d6
BS
63212011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6322
6323 PR tree-optimization/46728
6324 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
6325 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 6326
d9f8303f
NF
63272011-05-25 Nathan Froyd <froydnj@codesourcery.com>
6328
6329 * tree.h (struct tree_exp): Inherit from struct tree_typed.
6330 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
6331 instead of TS_COMMON.
6332
cdbf4541
BS
63332011-05-25 Bernd Schmidt <bernds@codesourcery.com>
6334
6335 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
6336 LIBGCC2_GNU_PREFIX is defined.
6337 (__N): New macro.
6338 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
6339 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
6340 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
6341 __clz_tab): Define using __N.
6342 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
6343 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
6344 * target.def (libfunc_gnu_prefix): New hook.
6345 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
6346 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
6347 * doc/tm.texi: Regenerate.
6348 * system.h (LIBGCC2_GNU_PREFIX): Poison.
6349 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
6350 account.
6351 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
6352 (init_optabs): Likewise for the bswap libfuncs.
6353 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
6354 and divide.
6355 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
6356 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
6357 * libgcc-std.ver: Remove.
6358 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
6359 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
6360 libgcc-std.ver.
6361 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6362 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
6363 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
6364 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
6365 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
6366 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6367 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
6368 * config/fixed-bit.h (FIXED_OP): Define differently depending on
6369 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
6370 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
6371
f242c0a5
JH
63722011-05-25 Jan Hubicka <jh@suse.cz>
6373
6374 * lto-streamer-out.c (output_record_start): Use lto_output_enum
6375 (lto_output_tree): Use output_record_start.
6376 * lto-streamer-in.c (input_record_start): Use lto_input_enum
6377 (lto_get_pickled_tree): Use input_record_start.
6378 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
6379 (lto_value_range_error): New function.
6380 * lto-streamer.h (lto_value_range_error): Declare.
6381 (lto_output_int_in_range, lto_input_int_in_range): New functions.
6382 (lto_output_enum, lto_input_enum): New macros.
6383
a11e0df4
EB
63842011-05-25 Eric Botcazou <ebotcazou@adacore.com>
6385
6386 * common.opt (flag_stack_usage_info): New variable.
6387 (-Wstack-usage): New option.
6388 * doc/invoke.texi (Warning options): Document -Wstack-usage.
6389 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
6390 <OPT_fstack_usage>: Likewise.
6391 * toplev.c (output_stack_usage): Handle -Wstack-usage.
6392 * calls.c (expand_call): Test flag_stack_usage_info variable instead
6393 of flag_stack_usage.
6394 (emit_library_call_value_1): Likewise.
6395 * explow.c (allocate_dynamic_stack_space): Likewise.
6396 * function.c (instantiate_virtual_regs ): Likewise.
6397 (prepare_function_start): Likewise.
6398 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
6399 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
6400 * config/arm/arm.c (arm_expand_prologue): Likewise.
6401 (thumb1_expand_prologue): Likewise.
6402 * config/avr/avr.c (expand_prologue): Likewise.
6403 * config/i386/i386.c (ix86_expand_prologue): Likewise.
6404 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
6405 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
6406 * config/mips/mips.c (mips_expand_prologue): Likewise.
6407 * config/pa/pa.c (hppa_expand_prologue): Likewise.
6408 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
6409 * config/s390/s390.c (s390_emit_prologue): Likewise.
6410 * config/sh/sh.c (sh_expand_prologue): Likewise.
6411 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
6412 * config/spu/spu.c (spu_expand_prologue): Likewise.
6413
e7cfe241
RG
64142011-05-25 Richard Guenther <rguenther@suse.de>
6415
6416 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
6417 (gimple_canonical_types_compatible_p): Likewise.
6418
c5235f4c
JH
64192011-05-25 Jan Hubicka <jh@suse.cz>
6420
6421 PR middle-end/49062
6422 * ipa.c (function_and_variable_visibility): Only add to same
6423 comdat group list if DECL_ONE_ONLY.
6424
8242a0f6
AB
64252011-05-25 Andrey Belevantsev <abel@ispras.ru>
6426
6427 PR rtl-optimization/49014
6428 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
6429
642a011d
JJ
64302011-05-25 Jakub Jelinek <jakub@redhat.com>
6431
6432 PR target/49128
6433 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
6434
30a435d8
VM
64352011-05-24 Vladimir Makarov <vmakarov@redhat.com>
6436
6437 PR rtl-optimization/48757
6438 * ira-build.c (loop_with_eh_edge_p): Rename to
6439 loop_with_complex_edge_p, check edges on complexity, make function
6440 conditional.
6441 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
6442 conditional.
6443
24d1bbc7
EB
64442011-05-24 Eric Botcazou <ebotcazou@adacore.com>
6445
6446 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
6447 force flag_ira_share_save_slots to 0.
6448
65773087
EB
64492011-05-24 Eric Botcazou <ebotcazou@adacore.com>
6450
6451 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
6452 (vt_initialize): Set PROLOGUE_BB unconditionally.
6453 Add block comment about CFA_BASE_RTX machinery.
6454 Reset FP_CFA_OFFSET to -1 on all invalid paths.
6455 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
6456
4e26ba90
NP
64572011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
6458
6459 PR objc/48187
6460 * c-parser.c (c_parser_objc_class_instance_variables): More robust
6461 parsing of syntax error in ObjC instance variable lists. In
6462 particular, avoid an infinite loop if there is a stray ']'.
6463 Updated error message.
6464
936fd13c
ILT
64652011-05-24 Ian Lance Taylor <iant@google.com>
6466
6467 * godump.c (go_define): Don't accept a string immediately after
6468 another operand.
6469
f17333e3
ILT
64702011-05-24 Ian Lance Taylor <iant@google.com>
6471
6472 * godump.c (struct godump_container): Add invalid_hash field.
6473 (go_format_type): Return false if type is found in invalid_hash.
6474 (go_output_typedef): Add invalid type to invalid_hash.
6475 (go_finish): Create and delete invalid_hash.
6476
d24ad7d6 64772011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 6478
78be79d5
BS
6479 PR tree-optimization/46728
6480 * tree-ssa-math-opts.c (powi_table): New.
6481 (powi_lookup_cost): New.
6482 (powi_cost): New.
6483 (powi_as_mults_1): New.
6484 (powi_as_mults): New.
6485 (gimple_expand_builtin_powi): New.
6486 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
6487 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 6488
caee412b
RO
64892011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6490
6491 PR target/3746
6492 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
6493 mips-tdump native.
6494 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
6495 * mips-tdump.c: Likewise.
6496
5eed4f27
L
64972011-05-24 H.J. Lu <hongjiu.lu@intel.com>
6498
6499 PR target/49128
6500 * config/i386/driver-i386.c (host_detect_local_cpu): Always
6501 add -mno-XXX. Handle FMA.
6502
8c5fdaae
VM
65032011-05-24 Vladimir Makarov <vmakarov@redhat.com>
6504
6505 PR rtl-optimization/48633
6506 * ira-build.c (loop_with_eh_edge_p): New function.
6507 (mark_loops_for_removal): Use it.
6508
65092011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
6510
6511 PR rtl-optimization/48971
6512 * ira.c (setup_pressure_classes): Don't check register move cost
6513 for classes with one registers. Don't add pressure class if there
6514 is a pressure class with the same available hard registers.
6515 Check contains_reg_of_mode. Fix a typo in collecting
6516 temp_hard_regset. Ignore hard registers not belonging to a class.
6517
df1f7315
UB
65182011-05-24 Uros Bizjak <ubizjak@gmail.com>
6519
6520 PR target/49133
6521 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
6522
ee0cb37c
EB
65232011-05-24 Eric Botcazou <ebotcazou@adacore.com>
6524 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6525
6526 PR gcov-profile/48845
6527 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
6528
6a20ce76
RG
65292011-05-24 Richard Guenther <rguenther@suse.de>
6530
6531 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
6532 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
6533 (gimple_types_compatible_p_1): Adjust.
6534 (iterative_hash_canonical_type): Do not bother about complete vs.
6535 incomplete types.
6536 (gimple_canonical_types_compatible_p): Likewise.
6537
2fcb858c
RO
65382011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6539
6540 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
6541
96d91dcf
RG
65422011-05-24 Richard Guenther <rguenther@suse.de>
6543
6544 PR bootstrap/49078
6545 * gimple.c (gimple_register_canonical_type): Revert
6546 previous change.
6547 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
6548 does not for a tree for the case where it matters. Cache
6549 pointer-type alias-sets.
6550
1ed1641d
JM
65512011-05-24 Joseph Myers <joseph@codesourcery.com>
6552
6553 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
6554 (OBJS): Remove options.o, opts-common.o and prefix.o.
6555 (OBJS-libcommon-target): New.
6556 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
6557 (BACKEND): Include libcommon-target.a.
6558 (MOSTLYCLEANFILES): Include libcommon-target.a.
6559 (libcommon-target.a): New.
6560 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
6561 prefix.o.
6562
57dfdff0
JM
65632011-05-23 Joseph Myers <joseph@codesourcery.com>
6564
6565 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
6566 parts of output shared with the driver.
6567 * optc-gen.awk: Don't generate parts of output not shared with the
6568 driver.
6569 * opth-gen.awk: Remove GCC_DRIVER conditionals.
6570 * doc/options.texi (SourcerInclude): Mention options-save.c.
6571 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
6572 (OBJS): Add options-save.o.
6573 (options-save.c, options-save.o): New.
6574 (options.o): Update dependencies.
6575 (gcc-options.o): Remove.
6576 (mostlyclean): Remove options-save.c.
6577
0e0d82a7
JJ
65782011-05-23 Jakub Jelinek <jakub@redhat.com>
6579
9166988f
JJ
6580 PR debug/49032
6581 * dbxout.c: Include cgraph.h.
6582 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
6583 and without value expr, return NULL if no varpool node exists for
6584 it or if it is not needed.
6585 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
6586
0e0d82a7
JJ
6587 PR c/49120
6588 * c-decl.c (start_decl): Convert expr to void_type_node.
6589
65712d5c
RS
65902011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
6591
6592 PR rtl-optimization/48826
6593 * emit-rtl.c (try_split): When splitting a call that is followed
6594 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
6595
9025085e
JJ
65962011-05-23 Jakub Jelinek <jakub@redhat.com>
6597
6598 * cfgexpand.c (expand_debug_expr): For unused non-addressable
6599 parameters passed in memory prefer using DECL_INCOMING_RTL over
6600 the pseudos it will be copied into.
6601
34a061be
L
66022011-05-23 H.J. Lu <hongjiu.lu@intel.com>
6603
6604 PR target/47315
6605 * config/i386/i386.c (ix86_option_override_internal): Save the
6606 initial options after checking vzeroupper.
6607
c375a3a4
DL
66082011-05-23 David Li <davidxl@google.com>
6609
6610 PR tree-optimization/48988
6611 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
6612 Initialize has_valid_pred for each pred chain.
6613
e1caba18
RG
66142011-05-23 Richard Guenther <rguenther@suse.de>
6615
6616 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
6617 (iterative_hash_gimple_type): Always hash type names.
6618
dde05067
NF
66192011-05-23 Nathan Froyd <froydnj@codesourcery.com>
6620
6621 * c-typeck.c (build_function_call_vec): Tweak call to
6622 check_function_arguments.
6623
094f6ab3
RG
66242011-05-23 Richard Guenther <rguenther@suse.de>
6625
6626 PR tree-optimization/49115
6627 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
6628 is not necessarily carried out, do not claim it kills the ref.
6629 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
6630
9a9822e1
RG
66312011-05-23 Richard Guenther <rguenther@suse.de>
6632
6633 PR middle-end/15419
6634 * builtins.c (fold_builtin_memory_op): Be less restrictive about
6635 what pointer types we accept for folding.
6636
c8028650
RO
66372011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6638
6639 * gthr-gnat.c: Remove.
6640 * gthr-gnat.h: Remove.
6641 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
6642 * config/t-freebsd (LIB2ADDEH): Likewise.
6643 * config/t-linux (LIB2ADDEH): Likewise.
6644 * config/t-sol2 (LIB2ADDEH): Likewise.
6645 * config/ia64/t-vms (LIB2ADDEH): Likewise.
6646 * configure.ac (target_thread_file): Remove gnat handling.
6647 * configure: Regenerate.
6648 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
6649
15882fe9
TG
66502011-05-23 Tristan Gingold <gingold@adacore.com>
6651 Eric Botcazou <ebotcazou@adacore.com>
6652
6653 * gcov.c (create_file_names): If no object directory is specified,
6654 keep the directory of the file.
6655
da90c957
RO
66562011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6657
6658 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
6659 * configure: Regenerate.
6660
7bba408b
JJ
66612011-05-23 Jakub Jelinek <jakub@redhat.com>
6662
6663 PR middle-end/48973
6664 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
6665 failed and the comparison has a single bit signed type, use
6666 constm1_rtx instead of const1_rtx for true value.
6667 (do_store_flag): If ops->type is single bit signed type, disable
6668 signel bit test optimization and pass -1 instead of 1 as last
6669 parameter to emit_store_flag_force.
6670
bc69f7ff
TV
66712011-05-23 Tom de Vries <tom@codesourcery.com>
6672
6673 PR target/45098
6674 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
6675 function.
6676 (infer_loop_bounds_from_undefined): Use new function.
6677
29cedf8e
RS
66782011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
6679
6680 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
6681 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
6682 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
6683 and -O0 otherwise.
6684 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
6685
afe8b6ec
EB
66862011-05-22 Eric Botcazou <ebotcazou@adacore.com>
6687
6688 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
6689 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
6690 returns true.
6691
872dab53
RS
66922011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
6693
6694 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
6695
145f6c5b
EB
66962011-05-22 Eric Botcazou <ebotcazou@adacore.com>
6697
6698 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
6699 UNSPEC_MOVE_PIC pattern.
6700
8ac79835
EB
67012011-05-22 Eric Botcazou <ebotcazou@adacore.com>
6702
6703 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
6704 (sparc-*-rtems*): Likewise.
6705 (sparc64-*-elf*): Likewise.
6706 (sparc64-*-rtems*): Likewise.
6707 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
6708 * config/sparc/t-crtin: New file.
6709 * config/sparc/t-sol2 (crti.o): Delete rule.
6710 (crtn.o): Likewise.
6711 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
6712 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
6713 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
6714 (ENDFILE_SPEC): Add crtn.o.
6715
5fb43dd8
TV
67162011-05-22 Tom de Vries <tom@codesourcery.com>
6717
6718 PR middle-end/48689
6719 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
6720 CODE_CONTAINS_STRUCT (TS_COMMON).
6721
ccb1b17b
JJ
67222011-05-22 Jakub Jelinek <jakub@redhat.com>
6723
6724 PR middle-end/49029
6725 * expmed.c (extract_fixed_bit_field): Test whether target can be used
6726 only after deciding which mode to use.
6727
50ad7db2
TV
67282011-05-22 Tom de Vries <tom@codesourcery.com>
6729
6730 PR target/45098
dc0a3366 6731 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
6732 for call to get_shiftadd_cost.
6733
ef230b38
UB
67342011-05-22 Uros Bizjak <ubizjak@gmail.com>
6735
6736 PR target/49104
6737 * config/i386/cpuid.h (bit_MMXEXT): New define.
6738
15f072f9
NC
67392011-05-22 Nick Clifton <nickc@redhat.com>
6740
6741 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
6742 initialisation of non-existant args[2] element. Use args[] array
6743 not arg[] array to pass arguments to build_function_type_list.
6744
e38fdc94
IR
67452011-05-22 Ira Rosen <ira.rosen@linaro.org>
6746
6747 PR tree-optimization/49087
ef230b38 6748 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 6749
5b018c65
JM
67502011-05-21 Jason Merrill <jason@redhat.com>
6751
6752 PR c++/49092
6753 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
6754 static storage duration.
6755
abd9a770
EB
67562011-05-21 Eric Botcazou <ebotcazou@adacore.com>
6757
6758 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
6759 frame pointer.
6760
bd9a3248
EB
67612011-05-21 Eric Botcazou <ebotcazou@adacore.com>
6762
6763 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
6764 false if there are call-saved registers here...
6765 (sparc_can_use_return_insn_p): ...but here instead.
6766 (save_or_restore_regs): Fix thinko.
6767 (sparc_expand_prologue): Use current_function_is_leaf.
6768 (sparc_frame_pointer_required): Likewise.
6769
a5dfec9a
NC
67702011-05-21 Nick Clifton <nickc@redhat.com>
6771
6772 PR target/49098
6773 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
6774
555c3771
NP
67752011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
6776
6777 * gengtype.c (walk_type): Implemented "atomic" GTY option.
6778 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
6779
86fa5de4
JM
67802011-05-21 Joseph Myers <joseph@codesourcery.com>
6781
6782 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
6783 * optc-gen.awk: Move common code to opt-read.awk.
6784 * opth-gen.awk: Likewise.
ef230b38 6785 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 6786
bce33ab2
NF
67872011-05-20 Nathan Froyd <froydnj@codesourcery.com>
6788
6789 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
6790
e6450c11
TV
67912011-05-20 Tom de Vries <tom@codesourcery.com>
6792
6793 PR target/45098
6794 * tree-ssa-loop-ivopts.c: Include expmed.h.
6795 (get_shiftadd_cost): New function.
6796 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
6797
0e8b84ec
JJ
67982011-05-20 Jakub Jelinek <jakub@redhat.com>
6799
6800 PR bootstrap/49086
6801 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
6802 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
6803
946bdf67
JM
68042011-05-20 Joseph Myers <joseph@codesourcery.com>
6805
6806 * Makefile.in: Update comment referring to $(OBJS-common).
6807
c53aafdf
ILT
68082011-05-20 Ian Lance Taylor <iant@google.com>
6809
6810 * godump.c (go_output_typedef): Put enum constants in the macro
6811 hash table to avoid duplicate Go const definitions.
6812
2691e6d7
JM
68132011-05-20 Joseph Myers <joseph@codesourcery.com>
6814
6815 * Makefile.in (LIBDEPS): Add libcommon.a.
6816 (LIBS): Likewise.
6817 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
6818 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
6819 pretty-print.o and version.o.
6820 (OBJS-libcommon): New.
6821 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
6822 (BACKEND): Add libcommon.a.
6823 (MOSTLYCLEANFILES): Likewise.
6824 (libcommon.a): New.
6825 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
6826 (cpp$(exeext)): Likewise.
6827 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
6828 pretty-print.o and input.o.
6829 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
6830 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
6831 (errors.o): Remove.
6832 (mips-tfile): Don't explicitly use version.o.
6833 (mips-tdump): Likewise.
6834 (gcov.o): Depend on $(DIAGNOSTIC_H).
6835 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
6836 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
6837 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
6838 * gcov-dump.c: Include intl.h and diagnostic.h.
6839 (main): Initialize diagnostics.
6840 * gcov.c: Include diagnostic.h.
6841 (fnotice): Remove.
6842 (main): Initialize diagnostics.
6843 * lto-wrapper.c: Include diagnostic.h.
6844 (main): Initialize diagnostics.
6845
252b3e8c
MM
68462011-05-20 Michael Matz <matz@suse.de>
6847
6848 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
6849
2ee36ba6
MM
68502011-05-20 Michael Matz <matz@suse.de>
6851 Richard Guenther <rguenther@suse.de>
6852
6853 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
6854 use lto_streamer_cache_append directly instead of returning a VEC.
6855 (preload_common_node): Remove.
6856 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
6857 track seen nodes.
6858 (lto_streamer_cache_create): Call lto_preload_common_nodes.
6859
90ff582f
RG
68602011-05-20 Richard Guenther <rguenther@suse.de>
6861
6862 PR tree-optimization/49079
6863 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
6864 MEM_REFs correctly for the trailing array access detection.
6865 Special case constants the same way as decls for overall size
6866 constraining.
6867
3cda91d8
UB
68682011-05-20 Uros Bizjak <ubizjak@gmail.com>
6869
6870 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
6871 argument expansion.
6872
6c66f733
JJ
68732011-05-20 Jakub Jelinek <jakub@redhat.com>
6874
6875 PR tree-optimization/49073
3cda91d8
UB
6876 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
6877 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
6878 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
6879
0ea80a16
RG
68802011-05-20 Richard Guenther <rguenther@suse.de>
6881
6882 PR middle-end/48849
6883 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
6884 of pointer types the same way the middle-end does.
6885
fb291a1e
RG
68862011-05-20 Richard Guenther <rguenther@suse.de>
6887
3cda91d8
UB
6888 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
6889 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 6890
37cb25ed
QN
68912011-05-19 Quentin Neill <quentin.neill@amd.com>
6892
6893 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
6894 (fma4_fmaddsub): Likewise
6895
a30726a4
JH
68962011-05-19 Jan Hubicka <jh@suse.cz>
6897
6898 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
6899 (GIMPLE_TYPE_PAIR_SIZE): New macro.
6900 (type_pair_cache): New static var.
6901 (lookup_type_pair): Use fixed sized custom hash; make inline.
6902 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
6903 calls of lookup_type_pair.
6904 (print_gimple_types_stats): Remove cache stats.
6905 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
6906 and gtc_ob.
6907
0955cf61
UB
69082011-05-19 Uros Bizjak <ubizjak@gmail.com>
6909
6910 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
6911 when TARGET_RDRND is active.
6912 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
6913 Generate dummy SImode target register when target is NULL.
6914
12d844c8
JM
69152011-05-19 Joseph Myers <joseph@codesourcery.com>
6916
6917 * config/arm/arm-fpus.def: New.
6918 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
6919 arm-fpus.def.
6920 * config/arm/arm-tables.opt: Regenerate.
6921 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
6922 (arm_option_override): Don't decode FPU name to string here.
6923 * config/arm/arm.opt (mfpu=): Use Enum.
6924 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
6925 Update dependencies.
6926
9e350e99
JM
69272011-05-19 Joseph Myers <joseph@codesourcery.com>
6928
6929 * collect2.c: Include diagnostic.h.
6930 (fatal_perror, fatal, error, fancy_abort): Remove.
6931 (main): Set progname. Call xmalloc_set_program_name and
6932 diagnostic_initialize.
6933 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
6934 scan_libraries, resolve_lib_name): Call fatal_error instead of
6935 fatal and fatal_perror.
6936 * collect2.h (error, fatal, fatal_perror): Don't declare.
6937 * tlink.c: Include diagnostic-core.h.
6938 (recompile_files): Call fatal_error instead of fatal_perror.
6939 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
6940 pretty-print.o and input.o.
6941 (collect2.o, tlink.o): Update dependencies.
6942
86ff4081
RO
69432011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6944
6945 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
6946
2ca48caa
RO
69472011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6948
6949 PR target/40483
6950 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
6951 COMDAT group syntax, both SPARC and x86 variants.
6952 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
6953 * configure: Regenerate.
6954 * config/sol2.h (TARGET_SOLARIS): Define.
6955 (PUSHSECTION_FORMAT): Remove.
6956 (SECTION_NAME_FORMAT): Define.
6957 * config/sol2.c: Include hashtab.h.
6958 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
6959 expansion, using SECTION_NAME_FORMAT.
6960 (solaris_comdat_htab): New variable.
6961 (struct comdat_entry): Define.
6962 (comdat_hash): New function.
6963 (comdat_eq): New function.
6964 (solaris_elf_asm_comdat_section): New function.
6965 (solaris_define_comdat_signature): New function.
6966 (solaris_code_end): New function.
6967 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
6968 (solaris_code_end): Declare.
6969 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
6970 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
6971 solaris_code_end.
6972 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
6973 Remove ATTRIBUTE_UNUSED.
6974 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
6975 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 6976 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
6977 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
6978 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
6979 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
6980 (PUSHSECTION_FORMAT): Remove.
6981 (SECTION_NAME_FORMAT): Redefine.
6982
da5fb469
KT
69832011-05-19 Kai Tietz <ktietz@redhat.com>
6984
6985 * tree-cfg.c (verify_gimple_assign_binary): Barf on
6986 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
6987 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
6988
1651e703 69892011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
6990 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6991
6992 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
6993
e497b9bd
RG
69942011-05-19 Richard Guenther <rguenther@suse.de>
6995
6996 PR middle-end/48985
6997 * tree-object-size.c (addr_object_size): If the pointed-to
6998 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
6999
31b3ca64
RG
70002011-05-19 Richard Guenther <rguenther@suse.de>
7001
7002 * gimple.c (gimple_types_compatible_p_1): Compare names of
7003 the types themselves.
7004 (iterative_hash_gimple_type): And hash them that way.
7005 (gimple_register_type_1): If we register a main variant properly
7006 initialize the leader to ourselves.
7007
bb8d292d
TV
70082011-05-19 Tom de Vries <tom@codesourcery.com>
7009
7010 PR target/45098
7011 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
7012 get_loop_invariant_expr_id.
7013 (get_loop_invariant_expr_id): Use get_expr_id.
7014 (parm_decl_cost): New function.
7015 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
7016 Improve bound cost estimation. Use different inv_expr_id for elim and
7017 express cases.
7018
a53c5024
TV
70192011-05-19 Tom de Vries <tom@codesourcery.com>
7020
7021 PR target/45098
7022 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
7023 cost_base.cost == 0.
7024
31f9eb59
L
70252011-05-18 H.J. Lu <hongjiu.lu@intel.com>
7026
7027 PR target/49002
66bd20e7
EB
7028 * config/i386/sse.md
7029 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
7030 load cast.
31f9eb59 7031
681056ae
JJ
70322011-05-18 Jakub Jelinek <jakub@redhat.com>
7033
7034 PR tree-optimization/49039
7035 * tree-vrp.c (extract_range_from_binary_expr): For
7036 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
7037 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
7038
b5ee6752
TV
70392011-05-18 Tom de Vries <tom@codesourcery.com>
7040
7041 PR target/45098
7042 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
7043
0bda47a3
UB
70442011-05-18 Uros Bizjak <ubizjak@gmail.com>
7045
7046 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
7047 (*tls_global_dynamic_64): Ditto.
7048 (*tls_local_dynamic_base_32_gnu): Ditto.
7049 (*tls_local_dynamic_base_64): Ditto.
7050 (tls_initial_exec_64_sun): Ditto.
7051
033b0805
SH
70522011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
7053
7054 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
7055 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
7056 bf592-none.
7057 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
7058 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
7059 * config/bfin/bfin.c (bfin_cpus): Add bf592.
7060 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 7061 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
7062 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
7063 * config/bfin/elf.h (LIB_SPEC): Add bf592.
7064
ba163417
JM
70652011-05-18 Joseph Myers <joseph@codesourcery.com>
7066
7067 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 7068 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
7069 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
7070 target_thread_pointer, arm_structure_size_boundary, struct
7071 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
7072 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
7073 (arm_option_override) Don't process most enumerated option values here.
7074 Don't process target_fpe_name here. Work with integer not string for
7075 structure size boundary; use separate diagnostics for each case.
ba163417
JM
7076 * config/arm/arm.h (enum float_abi_type, enum
7077 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
7078 to arm-opts.h.
7079 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
7080 arm_structure_size_boundary): Remove.
7081 * config/arm/arm.opt (mabi=): Use Enum and Init.
7082 (arm_abi_type): New Enum and EnumValue entries.
7083 (mfloat-abi=): Use Enum and Init.
7084 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 7085 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
7086 (mfp16-format=): Use Enum and Init.
7087 (arm_fp16_format_type): New Enum and EnumValue entries.
7088 (mstructure-size-boundary=): Use UInteger and Init.
7089 (mtp=): Use Enum and Init.
7090 (arm_tp_type): New Enum and EnumValue entries.
7091
179184e3
RG
70922011-05-18 Richard Guenther <rguenther@suse.de>
7093
7094 PR tree-optimization/49018
7095 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
7096 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
7097 gimple_has_side_effects.
7098
93b2a207
RG
70992011-05-18 Richard Guenther <rguenther@suse.de>
7100
7101 * gimple.c (gimple_register_type_1): New function, split out from ...
7102 (gimple_register_type): ... here. Avoid infinite recursion.
7103
b010117a
IR
71042011-05-18 Ira Rosen <ira.rosen@linaro.org>
7105
7106 PR tree-optimization/41881
7107 * tree-vectorizer.h (struct _loop_vec_info): Add new field
7108 reduction_chains along with a macro for its access.
7109 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
7110 (destroy_loop_vec_info): Free reduction chains.
7111 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
7112 (vect_is_slp_reduction): New function.
7113 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
7114 (vect_create_epilog_for_reduction): Support SLP reduction chains.
7115 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
7116 definition types for reduction chains.
7117 (vect_supported_load_permutation_p): Don't allow permutations for
7118 reduction chains.
7119 (vect_analyze_slp_instance): Support reduction chains.
7120 (vect_analyze_slp): Try to build SLP instance from reduction chains.
7121 (vect_get_constant_vectors): Handle reduction chains.
7122 (vect_schedule_slp_instance): Mark the first statement of the
7123 reduction chain as reduction.
7124
e14c1050
IR
71252011-05-18 Ira Rosen <ira.rosen@linaro.org>
7126
7127 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
7128 names for group elements access.
7129 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
7130 reduction chains as well. Remove data reference and interleaving
7131 related words from the fields names.
7132 * tree-vect-loop.c (vect_transform_loop): Use new names for group
7133 elements access.
7134 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
7135 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
7136 vect_update_interleaving_chain, vect_same_range_drs,
7137 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
7138 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
7139 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
7140 vect_analyze_group_access, vect_analyze_data_ref_access,
7141 vect_create_data_ref_ptr, vect_transform_strided_load,
7142 vect_record_strided_load_vectors): Likewise.
7143 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
7144 vect_model_load_cost, vectorizable_store, vectorizable_load,
7145 vect_remove_stores, new_stmt_vec_info): Likewise.
7146 * tree-vect-slp.c (vect_build_slp_tree,
7147 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
7148
51c213f7
RG
71492011-05-18 Richard Guenther <rguenther@suse.de>
7150
7151 PR middle-end/48989
7152 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
7153 operand verification.
7154 (verify_gimple_assign_binary): Likewise.
7155 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
7156 to non-1-precision BOOLEAN_TYPEs.
7157
8f5e5434
TV
71582011-05-18 Tom de Vries <tom@codesourcery.com>
7159
7160 PR target/45098
7161 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
7162
116bc3a4
JJ
71632011-05-18 Jakub Jelinek <jakub@redhat.com>
7164
7165 PR tree-optimization/49000
7166 * tree-ssa.c (execute_update_addresses_taken): Call
7167 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
7168 be rewritten and decl has been marked for renaming, reset
7169 the debug stmt.
7170
26a8964c
JM
71712011-05-17 Joseph Myers <joseph@codesourcery.com>
7172
7173 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
7174 enum_opts_set when testing if attributes have set -mfpmath=.
7175
82bd45d7
RS
71762011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
7177
7178 * config/mips/mips.c (mips_handle_option): Remove unused variable.
7179
267ffce3
UB
71802011-05-17 Uros Bizjak <ubizjak@gmail.com>
7181
7182 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
7183 info->entry with 0
7184 * tree-inline.c (maybe_inline_call_in_expr): Initialize
7185 id.transform_lang_insert_block with NULL.
7186
71872011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
7188
7189 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
7190 (output_fp_compare): Change args 3 and 4 to bool.
7191 (ix86_expand_call): Change arg 6 to bool.
7192 (ix86_attr_length_immediate_default): Change arg 2 to bool.
7193 (ix86_attr_length_vex_default): Change arg 3 to bool.
7194 * config/i386/i386.md: Update all uses.
7195 * config/i386/i386.c: Ditto.
7196 (ix86_flags_dependent): Change return type to bool.
7197
5beaf664
RG
71982011-05-17 Richard Guenther <rguenther@suse.de>
7199
7200 * gimple.c (type_hash_pair_compare): Fix comparison.
7201
008bad7a
RG
72022011-05-17 Richard Guenther <rguenther@suse.de>
7203
7204 * gimple.c (iterative_hash_gimple_type): Simplify singleton
7205 case some more, fix final hash value of the non-singleton case.
7206
36461340
RG
72072011-05-17 Richard Guenther <rguenther@suse.de>
7208
7209 PR bootstrap/49013
7210 Revert
7211 2011-05-16 Richard Guenther <rguenther@suse.de>
7212
7213 * gimple.c (gimple_types_compatible_p_1): Use names of the
7214 type itself, not its main variant.
7215 (iterative_hash_gimple_type): Likewise.
7216
6b6a59f3
RG
72172011-05-17 Richard Guenther <rguenther@suse.de>
7218
7219 * gimple.c (gimple_register_canonical_type): Use the main-variant
7220 leader for computing the canonical type.
7221
4ffc4134
NC
72222011-05-17 Nick Clifton <nickc@redhat.com>
7223
a1d8754e
NC
7224 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
7225 moves.
7226
4ffc4134
NC
7227 * config/rx/rx.md: Add peephole to remove redundant extensions
7228 after loads.
39960f7a
NC
7229 (bitset_in_memory): Use rx_restricted_mem_operand.
7230 (bitinvert_in_memory): Likewise.
7231 (bitclr_in_memory): Likewise.
4ffc4134 7232
b3db92ac
KI
72332011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
7234 Nick Clifton <nickc@redhat.com>
7235
7236 * config/rx/rx.md: Add peepholes to match a register move followed
7237 by a comparison of the moved register. Replace these with an
7238 addition of zero that does both actions in one instruction.
7239
8637e32a
JJ
72402011-05-17 Jakub Jelinek <jakub@redhat.com>
7241
7242 PR target/48986
7243 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
7244 predicate to allow CONST_INT.
7245 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
7246
8023568e
JM
72472011-05-16 Joseph Myers <joseph@codesourcery.com>
7248
7249 * opts-common.c (opt_enum_arg_to_value): New.
7250 * opts.h (opt_enum_arg_to_value): Declare.
7251 * config/i386/i386.opt (fpmath): Remove.
7252 (mfpmath=): Use Enum, Init and Save.
7253 (fpmath_unit): New Enum and EnumValue entries.
7254 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
7255 name for function fpmath state.
7256 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
7257 * config/i386/i386.c: Include diagnostic.h.
7258 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 7259 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 7260 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 7261 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
7262 (x86_function_specific_save, ix86_function_specific_restore):
7263 Don't handle fpmath state specially.
7264 (ix86_function_specific_print): Pass fpmath state to
7265 ix86_target_string instead of printing in this function.
7266 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
7267 Handle enum attributes.
7268 (IX86_ATTR_ENUM, ix86_opt_enum): New.
7269 (ix86_valid_target_attribute_tree): Update option_strings
7270 handling. Handle fpmath as enum option.
7271 (ix86_can_inline_p): Update field names for function fpmath state.
7272 (ix86_expand_builtin): Update call to ix86_target_string.
7273 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
7274 (ix86_fpmath): Remove.
7275 * config/i386/t-i386 (i386.o): Update dependencies.
7276
9e8d926e
JM
72772011-05-16 Joseph Myers <joseph@codesourcery.com>
7278
7279 PR preprocessor/48677
7280 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
7281 from decoded_options[0], not from itself.
7282
f6449011
UB
72832011-05-16 Uros Bizjak <ubizjak@gmail.com>
7284
7285 * config/i386/constraints.md (z): New constraint.
7286 * config/i386/i386.c (c): New mode attribute.
7287 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
7288 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
7289 constraint for operand 0.
7290 (*call_vzeroupper): Ditto.
7291 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
7292 (*call_rex64_ms_sysv_vzeroupper): Ditto.
7293 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
7294 Use "lzm" constraint for operand 0.
7295 (*call_pop_vzeroupper): Ditto.
7296 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
7297 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
7298 constraint for operand 0.
7299 (*sibcall_vzeroupper): Ditto.
7300 (*sibcall_rex64_ms_sysv): Ditto.
7301 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
7302 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
7303 *sibcall_pop_1. Use "Uz" constraint for operand 0.
7304 (*sibcall_pop_vzeroupper): Ditto.
7305 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
7306 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
7307 mode iterator. Use "<c>zm" constraint for operand 1.
7308 (*call_value_vzeroupper): Ditto.
7309 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 7310 for operand 1.
f6449011
UB
7311 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
7312 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
7313 *call_value_pop_1. Use "lzm" constraint for operand 1.
7314 (*call_value_pop_vzeroupper): Ditto.
7315 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
7316 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
7317 mode iterator. Use "Uz" constraint for operand 1.
7318 (*sibcall_value_vzeroupper): Ditto.
7319 (*sibcall_value_rex64_ms_sysv): Ditto.
7320 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
7321 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
7322 constraint for operand 1.
7323 (*sibcall_value_pop_vzeroupper): Ditto.
7324 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
7325 and "z" constraint for operand 2.
7326 (*tls_global_dynamic_32_gnu): Ditto.
7327 (*tls_local_dynamic_base_32_gnu): Ditto.
7328 (*tls_local_dynamic_base_64): Ditto.
7329 (*tls_local_dynamic_32_once): Ditto.
7330 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
7331 Update all callers.
7332 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
7333
c11b6902
RG
73342011-05-16 Richard Guenther <rguenther@suse.de>
7335
7336 * gimple.c (gimple_types_compatible_p_1): Use names of the
7337 type itself, not its main variant.
7338 (iterative_hash_gimple_type): Likewise.
7339
1e83b5f1
RG
73402011-05-16 Richard Guenther <rguenther@suse.de>
7341
f6449011
UB
7342 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
7343 always visit pointer target and function result and argument types.
1e83b5f1 7344
62e36382
JM
73452011-05-16 Jason Merrill <jason@redhat.com>
7346
7347 PR c++/48999
7348 * tree-inline.c (copy_statement_list): Put back recursion.
7349
687027a4
GJL
73502011-05-16 Georg-Johann Lay <avr@gjlay.de>
7351
7352 PR target/27663
7353 PR target/41076
7354 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
7355 * config/avr/avr.md ("*ior<mode>qi.byte0",
7356 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
7357
f24a5190
GJL
73582011-05-16 Georg-Johann Lay <avr@gjlay.de>
7359
7360 PR target/45099
7361 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
7362 register is needed for a function argument.
7363
3066f593
RG
73642011-05-16 Richard Guenther <rguenther@suse.de>
7365
7366 * gimple.c (struct type_hash_pair): New type.
7367 (type_hash_pair_compare): New function.
f6449011 7368 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 7369
b2ab2cf4
RE
73702011-05-16 Revital Eres <revital.eres@linaro.org>
7371
f6449011 7372 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 7373
dfb737fc
UB
73742011-05-15 Uros Bizjak <ubizjak@gmail.com>
7375
7376 * config/i386/i386.md (floating point move splitters): Fix
7377 usage of standard_80387_constant_p.
f6449011 7378 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 7379
8caa1de0
UB
73802011-05-15 Uros Bizjak <ubizjak@gmail.com>
7381
7382 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
7383
8a519095
EB
73842011-05-14 Eric Botcazou <ebotcazou@adacore.com>
7385
7386 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
7387 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
7388 (tree_ssa_lim_finalize): Likewise.
7389
479fecd3
UB
73902011-05-14 Uros Bizjak <ubizjak@gmail.com>
7391
7392 * config/i386/constraint.md (Yd, Yx): New register constraints.
7393 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
7394 Yd conditional register constraint.
7395 (*movtf_internal): Use standard_sse_constant_opcode.
7396 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
7397 Yx conditional register constraint.
7398 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
7399 Yd conditional register constraint. Use standard_sse_constant_p to
7400 check for valid SSE constants and call standard_sse_constant_opcode to
7401 output SSE insn.
7402 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
7403 constants and call standard_sse_constant_opcode to output SSE insn.
7404 * config/i386/i386.c (ix86_option_ovverride_internal): Set
7405 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
7406 optimize_size is set.
7407 (standard_sse_constant_opcode): Output conditional AVX insn templates.
7408
2d8c9ad5
TB
74092011-05-14 Tobias Burnus <burnus@net-b.de>
7410
7411 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
7412
411a20d6
MJ
74132011-05-13 Martin Jambor <mjambor@suse.cz>
7414
7415 * ipa-prop.c (ipa_cst_from_jfunc): New function.
7416 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
7417 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
7418 (evaluate_conditions_for_ipcp_clone): Removed.
7419 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
7420 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
7421 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
7422
dc764d10
EB
74232011-05-13 Eric Botcazou <ebotcazou@adacore.com>
7424
7425 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
7426 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
7427 lieu of MAY_HAVE_DEBUG_STMTS.
7428 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
7429 debug statements if !MAY_HAVE_DEBUG_STMTS.
7430
9f47a24e
MT
74312011-05-13 Martin Thuresson <martint@google.com>
7432
7433 PR gcov-profile/47793
7434 * libgcov.c (gcov_exit): Support relative profile paths.
7435 * doc/invoke.texi (-fprofile-dir): Update for above change.
7436
b8a71aed
RG
74372011-05-13 Richard Guenther <rguenther@suse.de>
7438
7439 * gimple.c (gimple_canonical_types_compatible_p): Do not use
7440 type-pair caching, do not compare hashes.
7441
eb9f9259
NF
74422011-05-13 Nathan Froyd <froydnj@codesourcery.com>
7443
7444 PR middle-end/48965
7445 * tree-cfg.c (edge_to_cases_cleanup): Return true.
7446 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
7447
3c6cbf7a
KT
74482011-05-13 Kai Tietz <ktietz@redhat.com>
7449
7450 * gimplify.c (gimplify_expr): Make sure operand is boolified.
7451 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
7452 compatible type for TRUTH_NOT_EXPR.
7453
2e7f5dc0
L
74542011-05-13 H.J. Lu <hongjiu.lu@intel.com>
7455
dc764d10 7456 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
7457 (ix86_hard_regno_mode_ok): Change return value to bool. Use
7458 can_create_pseudo_p ().
7459
e834e95c
RG
74602011-05-13 Richard Guenther <rguenther@suse.de>
7461
7462 PR lto/48978
7463 * gimple.c (iterative_hash_gimple_type): Revert change in
7464 pointer target and function result and argument hashing.
7465
34203483
UB
74662011-05-13 Uros Bizjak <ubizjak@gmail.com>
7467
7468 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
7469 (*movxf_internal_nointeger): Ditto.
7470 (*movdf_internal_rex64): Ditto.
7471 (*movdf_internal): Ditto.
7472 (*movdf_internal_nointeger): Ditto.
7473 (*movsf_internal): Ditto.
7474 (sincos splitters): Use can_create_pseudo ().
7475
7eb68c06
JM
74762011-05-13 Joseph Myers <joseph@codesourcery.com>
7477
7478 * config/i386/i386-opts.h: New.
7479 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
7480 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
7481 ix86_section_threshold): Remove.
7482 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
7483 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
7484 OPT_mbranch_cost_.
7485 (ix86_option_override_internal): Don't decode strings for options
7486 other than -march=, -mtune= and -mfpmath=. Don't allow for
7487 __attribute__ uses in remaining diagnostics for options with
34203483 7488 string arguments. Don't check for integer arguments being negative.
7eb68c06 7489 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 7490 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
7491 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
7492 ix86_branch_cost, ix86_section_threshold): Remove.
7493 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
7494 HeaderInclude.
7495 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
7496 but not Var.
7497 (masm=): Use Enum and Init.
7498 (asm_dialect): New Enum and EnumValue entries.
7499 (mbranch-cost=): Use UInteger.
7500 (mlarge-data-threshold=): Use UInteger and Init.
7501 (mcmodel=): Use Enum and Init.
7502 (cmodel): New Enum and EnumValue entries.
7503 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
7504 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
7505 mregparm=): Use UInteger.
7506 (mstringop-strategy=): Use Enum and Init.
7507 (stringop_alg): New Enum and EnumValue entries.
7508 (mtls-dialect=): Use Enum and Init.
7509 (tls_dialect): New Enum and EnumValue entries.
7510 (mabi=): Use Enum and Init.
7511 (calling_abi): New Enum and EnumValue entries.
7512 (mveclibabi=): Use Enum and Init.
7513 (ix86_veclibabi): New Enum and EnumValue entries.
7514
f67e203c
NC
75152011-05-13 Nick Clifton <nickc@redhat.com>
7516
34203483
UB
7517 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
7518 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 7519
221df0b6
KT
75202011-05-13 Kai Tietz <ktietz@redhat.com>
7521
7522 PR middle-end/48984
7523 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
7524 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
7525 (gimple_boolify): Check for cast for boolean_type_node instead for
7526 BOOLEAN_TYPE.
7527
208cb8cb
RG
75282011-05-13 Richard Guenther <rguenther@suse.de>
7529
7530 PR tree-optimization/48172
7531 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
7532 multiplying by number of iterations for equal step.
7533 (vect_create_cond_for_alias_checks): Likewise.
7534
b88ecf55
AS
75352011-05-13 Andreas Schwab <schwab@redhat.com>
7536
7537 * configure.ac: Use AS_HELP_STRING throughout.
7538 * configure: Regenerate.
7539
569b527e
L
75402011-05-12 H.J. Lu <hongjiu.lu@intel.com>
7541
34203483 7542 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
7543 (ix86_emit_restore_regs_using_mov): Likewise.
7544 (ix86_emit_restore_sse_regs_using_mov): Likewise.
7545
8b9a1428
AS
75462011-05-12 Anatoly Sokolov <aesok@post.ru>
7547
7548 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
7549 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
7550 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
7551 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
7552 RTX_OK_FOR_OLO10_P): ...here.
7553 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
7554 SYMBOLIC_CONST.
7555
1d15f620
KT
75562011-05-12 Kai Tietz <ktietz@redhat.com>
7557
7558 * gimplify.c (gimple_boolify): Re-boolify expression
7559 arguments even if expression type is of kind BOOLEAN_TYPE.
7560 (gimplify_boolean_expr): Removed.
7561 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
7562 and XOR. Additional take care that we keep expression's type.
7563 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
7564 of TRUTH_AND|OR|XOR_EXPR.
7565
c2b5fc8d
JJ
75662011-05-12 Jakub Jelinek <jakub@redhat.com>
7567
7568 PR tree-optimization/48975
7569 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
7570 on all bbs here and free and clear ifc_bbs at the end.
7571
61332f77
RG
75722011-05-12 Richard Guenther <rguenther@suse.de>
7573
7574 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
7575 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
7576 until after simple checks.
7577 (gimple_types_compatible_p): Likewise.
7578 (iterative_hash_gimple_type): Always hash pointer targets
7579 and function return and argument types.
7580 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
7581 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
7582 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
7583 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
7584 completely in the simple compare section.
7585 (gimple_register_canonical_type): Query the cache again after
7586 registering.
7587
e2a3a5f1
RG
75882011-05-12 Richard Guenther <rguenther@suse.de>
7589
7590 PR tree-optimization/48172
7591 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
7592 the number of iterations from the segment size calculation.
7593 (vect_create_cond_for_alias_checks): Adjust.
7594
2c703f3a
JJ
75952011-05-12 Jakub Jelinek <jakub@redhat.com>
7596
7597 PR debug/48967
7598 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
7599 if validate_subreg fails.
7600
76012011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
7602
7603 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
7604 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
7605 early.
7606
87e91fca
DD
76072011-05-12 DJ Delorie <dj@redhat.com>
7608
d53903d6 7609 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
7610 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
7611 created builtin into rx_builtins array.
7612 (rx_builtin_decl): New function.
34203483 7613 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 7614
5f2f13fd
DD
76152011-05-12 DJ Delorie <dj@redhat.com>
7616 Nick Clifton <nickc@redhat.com>
7617
7618 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
7619 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
7620 (rx_is_legitimate_address): Add pre-decrement and post-increment
7621 addressing in HImode and QImode. Fix test for out of range
7622 REG+INT addressing.
87e91fca 7623 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 7624 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 7625 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 7626 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 7627
57421f45
JM
76282011-05-11 Jason Merrill <jason@redhat.com>
7629
7630 * tree.c (type_hash_canon): Use struct tree_type_non_common.
7631
898c90c0
EB
76322011-05-11 Eric Botcazou <ebotcazou@adacore.com>
7633
7634 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
7635 reindent the subsequent block.
7636
79bec923
ST
76372011-05-11 Satoru Takabayashi <satorux@google.com>
7638 Paul Pluzhnikov <ppluzhnikov@google.com>
7639
34203483 7640 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
7641 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
7642 * config.in: Add LINKER_HASH_STYLE.
7643 * configure.ac: Add --with-linker-hash-style.
7644 * configure: Regenerate.
79bec923 7645
d0340959
RG
76462011-05-11 Richard Guenther <rguenther@suse.de>
7647
7648 PR middle-end/48964
7649 * gimple.c (iterative_hash_canonical_type): Fix typo.
7650
cb032fee
UB
76512011-05-11 Uros Bizjak <ubizjak@gmail.com>
7652
7653 * config/i386/i386.c (legitimize_tls_address)
479fecd3 7654 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
7655 expanders directly for TARGET_GNU2_TLS. Determine pic and
7656 __tls_get_addr symbol reference here. Update call to
7657 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 7658 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
7659 expanders directly for TARGET_GNU2_TLS. Determine
7660 __tls_get_addr symbol reference here. Update call to
7661 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
7662 unique UNSPEC REG_EQUIV to libcall block.
7663 (ix86_tls_get_addr): Declare static.
7664 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
7665 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
7666 Do not determine pic and __tls_get_addr symbol reference here. Do not
7667 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
7668 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
7669 (tls_global_dynamic_64): Add operand 2. Do not determine
7670 __tls_get_addr symbol reference here. Do not call
7671 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
7672 (tls_local_dynamic_base64): Ditto for operand 1.
7673
6d3cc8f0
EB
76742011-05-11 Eric Botcazou <ebotcazou@adacore.com>
7675
7676 * function.c (expand_function_start): Initialize stack_check_probe_note
7677 only if the generic stack checking mechanism is used.
7678
51e020fc
RG
76792011-05-11 Richard Guenther <rguenther@suse.de>
7680
7681 PR tree-optimization/15256
7682 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
7683 (A & B) | C, combine (A op CST1) op CST2.
7684 (tree_ssa_forward_propagate_single_use_vars): Only bother to
7685 visit assigns that have uses.
7686
51545682
NF
76872011-05-11 Nathan Froyd <froydnj@codesourcery.com>
7688
cb032fee 7689 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
7690 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
7691 (unpack_ts_type_common_value_fields): ...this. Update comment.
7692 (unpack_value_fields): Adjust for renaming.
7693 (lto_input_ts_type_tree_pointers): Split into...
7694 (lto_input_ts_type_common_tree_pointer): ...this and...
7695 (lto_input_ts_type_non_common_tree_pointers): ...this.
7696 (lto_input_tree_pointers): Adjust for above split.
7697 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
7698 (pack_ts_type_common_value_fields): ...this. Update comment.
7699 (lto_output_ts_type_tree_pointers): Split into...
7700 (lto_output_ts_type_common_tree_pointers): ...this and...
7701 (lto_output_ts_type_non_common_tree_pointers): ...this.
7702 (lto_output_tree_pointers): Adjust for above split.
7703 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
7704 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
7705 * stor-layout.c (vector_type_mode): Adjust location of mode field.
7706 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
7707 Define.
7708 (struct tree_type): Split into...
7709 (struct tree_type_common: ...this and...
7710 (struct tree_type_with_lang_specific): ...this and...
7711 (struct tree_type_non_common): ...this. Adjust accessor macros
7712 accordingly.
7713 (TYPE_VALUES_RAW): Define.
7714 (union tree_node): Update for above changes.
7715 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
7716 TS_TYPE_NON_COMMON.
7717 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
7718 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
7719 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
7720 * treestructu.def (TS_TYPE): Remove.
7721 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
7722 Define.
7723
b03c3082
JJ
77242011-05-11 Jakub Jelinek <jakub@redhat.com>
7725
7726 PR debug/48159
7727 * tree-ssa.c (reset_debug_uses): New function.
7728 * tree-flow.h (reset_debug_uses): New prototype.
7729 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
7730 * tree-loop-distribution.c (generate_loops_for_partition): Call
7731 reset_debug_uses on the stmts that will be removed. Keep around
7732 all debug stmts, don't count them as bits in partition bitmap.
7733 (generate_builtin): Don't count debug stmts or labels as bits in
7734 partition bitmap.
7735
b5e04de5
RG
77362011-05-11 Richard Guenther <rguenther@suse.de>
7737
7738 * gimple.c (gimple_type_hash_1): Merge with ...
7739 (gimple_type_hash): ... this.
7740 (gtc_visit): Remove mode parameter and simplify accordingly.
7741 (gimple_types_compatible_p_1): Likewise.
7742 (gimple_types_compatible_p): Likewise.
7743 (iterative_hash_gimple_type): Likewise.
7744 (visit): Likewise.
7745 (gimple_type_eq): Adjust.
7746
fc6970e4
RE
77472011-05-11 Revital Eres <revital.eres@linaro.org>
7748
7749 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
7750 enters the branch create an anti edge in the opposite direction
7751 to prevent the creation of reg-moves.
7752 * modulo-sched.c: Adjust comment to reflect the fact we are
7753 scheduling closing branch.
7754 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
7755 (stage_count): New field in struct partial_schedule.
7756 (calculate_stage_count): New function.
7757 (normalize_sched_times): Rename to reset_sched_times and handle
7758 incrementing the sched time of the nodes by a constant value
7759 passed as parameter.
7760 (duplicate_insns_of_cycles): Skip closing branch.
7761 (sms_schedule_by_order): Schedule closing branch.
7762 (ps_insn_find_column): Handle closing branch.
7763 (sms_schedule): Call reset_sched_times and adjust the code to
7764 support scheduling of the closing branch.
7765 (ps_insert_empty_row): Update calls to normalize_sched_times
7766 and rotate_partial_schedule functions.
7767
41a58a92
RG
77682011-05-11 Richard Guenther <rguenther@suse.de>
7769
7770 PR middle-end/48953
7771 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
7772
e9f8dcf9
JM
77732011-05-11 Joseph Myers <joseph@codesourcery.com>
7774
cb032fee
UB
7775 * opts.c (finish_options): Move warning settings from process_options.
7776 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 7777
10c224a9
RG
77782011-05-11 Richard Guenther <rguenther@suse.de>
7779
7780 PR tree-optimization/18041
7781 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
7782 (simplify_bitwise_binary): ... this. Handle operand conversions
7783 by applying them to the result instead.
7784 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
7785
825b27de
RG
77862011-05-11 Richard Guenther <rguenther@suse.de>
7787
7788 * gimple.c (gimple_canonical_types_compatible_p): Split out
7789 from gimple_types_compatible_p and friends. Do not recurse
7790 to pointed-to types.
7791 (gimple_canonical_type_eq): Use it.
7792 (iterative_hash_canonical_type): Split out from
7793 iterative_hash_gimple_type and friends. Do not recurse
7794 to pointed-to types.
7795 (gimple_canonical_type_hash): Use it, allocate the hash here.
7796
ca756625
RE
77972011-05-11 Revital Eres <revital.eres@linaro.org>
7798
7799 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
7800 recognizing doloop.
7801
b8abece3
RE
78022011-05-11 Revital Eres <revital.eres@linaro.org>
7803
7804 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
7805 instead of PREV_INSN.
7806
ce7b3761
RE
78072011-05-11 Revital Eres <revital.eres@linaro.org>
7808
7809 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
7810 * loop-doloop.c (doloop_condition_get): Likewise.
7811 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
7812 (doloop_end): New.
7813 * config/arm/arm.md (*addsi3_compare0): Remove "*".
7814
a9dc9d37
NF
78152011-05-10 Nathan Froyd <froydnj@codesourcery.com>
7816
7817 * tree.def (CASE_LABEL_EXPR): Add an operand.
7818 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
7819
96703596
JM
78202011-05-10 Joseph Myers <joseph@codesourcery.com>
7821
7822 * c-decl.c (c_override_global_bindings_to_false): Remove.
7823 (global_bindings_p): Don't check
7824 c_override_global_bindings_to_false.
7825 * c-tree.h (c_override_global_bindings_to_false): Remove.
7826 * c-typeck.c (composite_type): Don't set
7827 c_override_global_bindings_to_false.
7828
dbcc9f08
MM
78292011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
7830
7831 PR target/48857, 48495
7832 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
7833 (VSX_MODE): Ditto.
7834 (VSX_MOVE_MODE): Ditto.
7835 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
7836 VSX vector types. Add V2DImode.
7837 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
7838 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
7839 (MODES_TIEABLE_P): Ditto.
7840
7841 * config/rs6000/rs6000.c (rs6000_emit_move): Use
7842 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
7843 VSX_VECTOR_MODE.
7844 (init_cumulative_args): Ditto.
7845 (rs6000_function_arg_boundary): Ditto.
7846 (rs6000_function_arg_advance_1): Ditto.
7847 (rs6000_function_arg): Ditto.
7848 (rs6000_function_ok_for_sibcall): Ditto.
7849 (emit_frame_save): Ditto.
7850 (rs6000_function_value): Ditto.
7851 (rs6000_libcall_value): Ditto.
7852
4a68b4ca
JM
78532011-05-10 Joseph Myers <joseph@codesourcery.com>
7854
7855 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7856 i386/darwin-lib.h to $libgcc_tm_file.
7857 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
7858
bcb521e9
JM
78592011-05-10 Joseph Myers <joseph@codesourcery.com>
7860
7861 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
7862
f10d3ac9
JM
78632011-05-10 Joseph Myers <joseph@codesourcery.com>
7864
cb032fee 7865 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
7866 * config/rs6000/rs6000-tables.opt: New file (generated).
7867 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
7868 rs6000/rs6000-tables.opt to extra_options.
7869 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
7870 * config/rs6000/rs6000.c (rs6000_select): Remove.
7871 (processor_target_table): Move contents to rs6000-cpus.def.
7872 (darwin_rs6000_override_options): Check
7873 global_options_set.x_rs6000_cpu_index instead of
7874 rs6000_select[1].string.
7875 (rs6000_option_override_internal): Likewise.
7876 (rs6000_handle_option): Don't assert that global structures are in
7877 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
7878 (rs6000_default_cpu): New variable.
7879 (rs6000_file_start): Set it instead of local default_cpu. Check
7880 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
7881 global_options_set.x_rs6000_tune_index instead of rs6000_select.
7882 (rs6000_darwin_file_start): Check rs6000_default_cpu and
7883 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
7884 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
7885 rs6000_select): Remove.
7886 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
7887 Remove.
7888 (mcpu=, mtune=): Use Var, Init, Enum and Save.
7889 * config/rs6000/t-rs6000
7890 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
7891 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7892 global_options_set.x_rs6000_cpu_index instead of
7893 rs6000_select[1].string.
7894 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7895 global_options_set.x_rs6000_cpu_index instead of
7896 rs6000_select[1].string.
7897
80cf2e08
JM
78982011-05-10 Joseph Myers <joseph@codesourcery.com>
7899
7900 * config.gcc (libgcc_tm_file): Define instead of including files
7901 from ../../libgcc/config/ in tm_file.
cb032fee 7902 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
7903 * configure: Regenerate.
7904 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
7905 libgcc_tm.h, cs-libgcc_tm.h): New.
7906 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
7907 (clean): Remove libgcc_tm.h.
7908 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
7909 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
7910 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
7911
fd01a351
GJL
79122011-05-10 Georg-Johann Lay <avr@gjlay.de>
7913
7914 PR target/48896
7915 * config/avr/avr.c (avr_ret_register): Return unsigned int
7916 instead of int.
7917 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
7918 it to avr_libcall_value.
7919 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
7920 expand_expr.
7921 (avr_expand_binop_builtin): Ditto.
7922 (avr_expand_unop_builtin): Ditto.
7923
34cc3c86
DD
79242011-05-10 DJ Delorie <dj@redhat.com>
7925
7926 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
7927 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
7928 * config/rx/rx.c (rx_align_for_label): Add label and
7929 uses_threshold parameters. Do not align when the label is not
7930 used enough.
7931 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
7932
be173289
RG
79332011-05-10 Richard Guenther <rguenther@suse.de>
7934
7935 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
7936 a series of conversions and apply foldings similar to what
7937 fold-const does.
7938 (tree_ssa_forward_propagate_single_use_vars): Call it.
7939
e7f78021
JJ
79402011-05-10 Jakub Jelinek <jakub@redhat.com>
7941
6ae70ea2
JJ
7942 PR tree-optimization/48611
7943 PR tree-optimization/48794
7944 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
7945 referenced from RESX or EH_DISPATCH arguments.
7946
e7f78021
JJ
7947 PR debug/48928
7948 * dfp.c (decimal_to_decnumber): Handle conversion from
7949 dconst{1,2,m1,half}.
7950
fca132b9
UB
79512011-05-09 Uros Bizjak <ubizjak@gmail.com>
7952
7953 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
7954 for !flag_prefer_avx128.
7955 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
7956
e4c03378
EB
79572011-05-09 Eric Botcazou <ebotcazou@adacore.com>
7958
7959 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
7960 (fold_ternary_loc): Use expr_location_or.
7961
805d6a75
L
79622011-05-09 H.J. Lu <hongjiu.lu@intel.com>
7963
7964 PR debug/48853
7965 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
7966 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
7967 Pmode and mem_mode is not VOIDmode.
7968
e4c03378 79692011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 7970
e4c03378
EB
7971 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
7972 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 7973
51e7f377
UB
79742011-05-09 Uros Bizjak <ubizjak@gmail.com>
7975
7976 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
7977 (const_pow2_1_to_8_operand): Ditto.
7978 (const_pow2_1_to_128_operand): Ditto.
7979 (const_pow2_1_to_32768_operand): Ditto.
7980 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
7981 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
7982 in insn constraint to check integer value of operand 3.
7983 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
7984
7985 (PINSR_MODE): New mode iterator.
7986 (sse2p4_1): New mode attribute.
7987 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
7988 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
7989 iterator. Use const_int_operand instead of
7990 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
7991 exact_log2 in insn constraint to check integer value of operand 3.
7992
79932011-05-09 Uros Bizjak <ubizjak@gmail.com>
7994
7995 * config/i386/sse.md (blendbits): Remove mode attribute.
7996 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
7997 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
7998 Check integer value of operand 3 in insn constraint.
7999
0ca8de87
RG
80002011-05-09 Richard Guenther <rguenther@suse.de>
8001
8002 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
8003 for diagnostics.
8004 (lto_symtab_merge): Likewise. Do not register types here.
8005 (lto_symtab_merge_decls_2): Likewise.
8006 (lto_symtab_merge_decls_1): Likewise.
8007 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
8008 * gimple.c (enum gtc_mode): Declare.
8009 (gimple_types_compatible_p): Make static.
8010
a9e6994a
AK
80112011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8012
8013 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
8014 temporary register to match Pmode.
8015
fb55d62e
UB
80162011-05-09 Uros Bizjak <ubizjak@gmail.com>
8017
8018 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
8019 and *vec_concatv4si_1_avx.
8020
eb1485a6
UB
80212011-05-09 Uros Bizjak <ubizjak@gmail.com>
8022
8023 PR rtl-optimization/48927
8024 * ira-conflicts.c (commutative_constraint_p): Use
8025 recog_data.alternative_enabled_p to disable alternatives where
8026 "enabled" attribute is false.
8027 (get_dup_num): Ditto.
8028 * ira-lives.c (single_reg_class): Ditto.
8029 (ira_implicitly_set_insn_hard_regs): Ditto.
8030
c46d001a
EB
80312011-05-09 Eric Botcazou <ebotcazou@adacore.com>
8032
8033 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
8034 (dataflow_set_preserve_mem_locs): Likewise.
8035
80362011-05-09 Philipp Thomas <pth@suse.de>
8037
6d9e7c41
PT
8038 * config/mep/mep.c (mep_validate_vliw): Syntax description
8039 should not be translated.
8040
d371df6f
JM
80412011-05-09 Joseph Myers <joseph@codesourcery.com>
8042
8043 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
8044 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 8045 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
8046 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
8047 MIPS_ARCH_OPTION_NATIVE): Define.
8048 * config/mips/mips.c (mips_cpu_info_table): Move contents to
8049 mips-cpus.def.
8050 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
8051 mips_parse_cpu): Remove.
8052 (mips_cpu_info_from_opt, mips_default_arch): New.
8053 (mips_handle_option): Don't assert that global structures are in
8054 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
8055 (mips_option_override): Use new variables and functions to set
eb1485a6 8056 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
8057 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
8058 definition.
8059 * config/mips/mips.opt (march=): Use ToLower and Enum.
8060 (mips): Use ToLower, Enum and Var.
8061 (mtune=): Use ToLower and Enum.
8062 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
8063
4fc07af9
JH
80642011-05-08 Jan Hubicka <jh@suse.cz>
8065
8066 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
8067 Arrange type pairs to be UID ordered.
8068 (gimple_lookup_type_leader): Make inline.
8069
2cf320a8
NC
80702011-05-09 Nick Clifton <nickc@redhat.com>
8071
61d6def5
NC
8072 PR target/48899
8073 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
8074 PROCESSOR_DEFAULT.
8075
2cf320a8
NC
8076 PR target/48897
8077 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
8078 variable 's'.
8079
4f82319d
CLT
80802011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
8081
8082 * combine.c (simplify_comparison): Abstract out parts into...
8083 (simplify_compare_const): ... new function.
8084 (try_combine): Generalize parallel arithmetic/compare combining
8085 to call simplify_compare_const() and CANONICALIZE_COMPARE().
8086
74605a11
JH
80872011-05-08 Jan Hubicka <jh@suse.cz>
8088
8089 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
8090 (cgraph_create_virtual_clone): Call hooks once virtual clone
8091 is finished.
74605a11 8092 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
8093 * ipa-cp.c (ipcp_estimate_growth): Use
8094 estimate_ipcp_clone_size_and_time.
74605a11
JH
8095 * ipa-inline-transform.c (clone_inlined_nodes): Update.
8096 * lto-cgraph.c (input_node): Update.
8097 * ipa-inline.c (recursive_inlining): Update.
8098 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
8099 (evaluate_conditions_for_known_args): Break out from ...
8100 (evaluate_conditions_for_edge): ... here.
8101 (evaluate_conditions_for_ipcp_clone): New function.
8102 (inline_node_duplication_hook): Update clone summary based
8103 on parameter map.
8104 (estimate_callee_size_and_time): Rename to ...
8105 (estimate_node_size_and_time): take NODE instead of EDGE;
8106 take POSSIBLE_TRUTHS as argument.
8107 (estimate_callee_size_and_time): Update.
8108 (estimate_ipcp_clone_size_and_time): New function.
8109 (do_estimate_edge_time): Update.
8110
5c049507
RG
81112011-05-08 Richard Guenther <rguenther@suse.de>
8112
8113 PR middle-end/48908
8114 PR middle-end/48905
8115 * expmed.c (expand_shift_1): Compute adjusted constant shift
8116 amount manually.
8117
f64c36ba
EB
81182011-05-08 Eric Botcazou <ebotcazou@adacore.com>
8119
8120 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
8121
c461a957
EB
81222011-05-08 Eric Botcazou <ebotcazou@adacore.com>
8123
8124 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
8125
7c74e556
JW
81262011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
8127
8128 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
8129
b4c0a884
JH
81302011-05-07 Jan Hubicka <jh@suse.cz>
8131
a9bcb3f0
EB
8132 * ipa-inline-transform.c (inline_call): Account when program size
8133 decreases.
b4c0a884 8134 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
8135 (edge_badness): Reorganize to be power 2 based; fix thinko when
8136 computing badness for negative growth; update comments to match
8137 reality; better dumps.
b4c0a884 8138
c99c0026
EB
81392011-05-07 Eric Botcazou <ebotcazou@adacore.com>
8140
8141 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
8142 type to bool and adjust comment.
8143 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
8144 (fold_mathfn_compare): Remove calls to global_bindings_p.
8145 (fold_inf_compare): Likewise.
8146 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
8147 * c-tree.h (global_bindings_p): Adjust prototype.
8148 * c-decl.c (global_bindings_p): Return bool and simplify.
8149
1400c8e5
ZD
81502011-05-07 Zdenek Dvorak <ook@ucw.cz>
8151
8152 PR tree-optimization/48837
8153 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
8154 when accumulator transformation is performed.
8155
5d0878e7
JH
81562011-05-06 Jan Hubicka <jh@suse.cz>
8157
a9bcb3f0
EB
8158 * i386.h (ix86_tune_indices): Add
8159 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 8160 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
8161 * i386.c (initial_ix86_tune_features): Add
8162 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
8163 (software_prefetching_beneficial_p): Remove predicate.
8164 (ix86_option_override_internal): Use new macro.
8165
58696ce5
JH
81662011-05-06 Jan Hubicka <jh@suse.cz>
8167
8168 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
8169
c47d0034
JH
81702011-05-06 Jan Hubicka <jh@suse.cz>
8171
8172 * cgraph.c (cgraph_add_thunk): Create real function node instead
8173 of alias node; finalize it and mark needed/reachale; arrange visibility
8174 to be right and add it into the corresponding same comdat group list.
8175 (dump_cgraph_node): Dump thunks.
8176 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
8177 cgraph_function_with_gimple_body_p,
8178 cgraph_first_function_with_gimple_body,
c47d0034
JH
8179 cgraph_next_function_with_gimple_body): New functions.
8180 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
8181 New macros.
8182 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
8183 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
8184 * cgraphunit.c (cgraph_finalize_function): Only look into possible
8185 devirtualization when optimizing.
8186 (verify_cgraph_node): Verify thunks.
8187 (cgraph_analyze_function): Analyze thunks.
8188 (cgraph_mark_functions_to_output): Output thunks only in combination
8189 with function they are assigned to.
8190 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
8191 alias into normal node.
8192 (assemble_thunks): New functoin.
8193 (cgraph_expand_function): Use it.
8194 * lto-cgraph.c (lto_output_node): Stream thunks.
8195 (input_overwrite_node): Stream in thunks.
8196 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
8197 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
8198 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
8199 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
8200 (inline_analyze_function): Do not care about thunk jump functions.
8201 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
8202 * ipa-prop.c (ipa_prop_write_jump_functions): Use
8203 cgraph_function_with_gimple_body_p.
8204 * passes.c (do_per_function_toporder): Use
8205 cgraph_function_with_gimple_body_p.
c47d0034
JH
8206 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
8207 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
8208 (function_called_by_processed_nodes_p): Likewise.
8209
d8f426ec
JM
82102011-05-06 Joseph Myers <joseph@codesourcery.com>
8211
8212 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
8213 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
8214 entries.
8215 (mabi=): Replace with separate entries for mabi=altivec,
8216 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
8217 mabi=ieeelongdouble and mabi=ibmlongdouble.
8218 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
8219 check for -mabi=spe without SPE ABI support here.
8220 (rs6000_handle_option): Replace OPT_mabi_ handling with
8221 OPT_mabi_altivec and OPT_mabi_spe handling.
8222
80bde45b
CC
82232011-05-06 Cary Coutant <ccoutant@google.com>
8224
8225 * dwarf2out.c (contains_subprogram_definition): New function.
8226 (should_move_die_to_comdat): Call it.
8227
a91926b9
JL
82282011-05-06 Jeff Law <law@redhat.com>
8229
8230 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
8231 remove_ctrl_stmt_and_useless_edges.
8232 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
8233 (fixup_template_block, thread_single_edge): Likewise.
8234 (mark_threaded_blocks): Use THREAD_TARGET.
8235
1fc1b66d
AM
82362011-05-06 Alan Modra <amodra@gmail.com>
8237
8238 PR target/48900
8239 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
8240 const0_rtx as the arg to the dummy __tls_get_addr libcall.
8241
e194de64
UB
82422011-05-06 Uros Bizjak <ubizjak@gmail.com>
8243
8244 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
8245 constraint modifier to "r".
8246
d740dc9e
JM
82472011-05-06 Joseph Myers <joseph@codesourcery.com>
8248
8249 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
8250 fall through for OPT_mcmodel_.
8251
cab78b15
AK
82522011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8253
8254 * config/s390/s390.c (s390_asm_trampoline_template): Comment
8255 instruction sizes.
e194de64 8256 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 8257
ee6824ae
RR
82582011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8259
eb1485a6
UB
8260 PR target/47930
8261 * config/arm/arm.opt (marm): Document it.
8262 (mthumb): Reject negative variant.
ee6824ae 8263
9ef58464
UB
82642011-05-06 Uros Bizjak <ubizjak@gmail.com>
8265
8266 PR target/48898
8267 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
8268 Fix typo in "ccvt" variable name.
8269
155b6176
TG
82702011-05-06 Tristan Gingold <gingold@adacore.com>
8271
8272 PR target/48895
8273 * config/vms/vms-ar.c (main): Remove cwd variable.
8274
3becc47b
JJ
82752011-05-06 Jakub Jelinek <jakub@redhat.com>
8276
8277 PR debug/48902
8278 * var-tracking.c (prepare_call_arguments): Move else before #endif.
8279
3d528853
NF
82802011-05-05 Nathan Froyd <froydnj@codesourcery.com>
8281
8282 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
8283 * gimplify.c (gimplify_switch_expr): Likewise.
8284 * omp-low.c (expand_omp_sections): Likewise.
8285 * tree-eh.c (lower_try_finally_switch): Likewise.
8286 (lower_eh_dispatch): Likewise.
8287 * tree.h (build_case_label): Declare.
8288 * tree.c (build_case_label): Define.
8289
deb5046b
JM
82902011-05-05 Jason Merrill <jason@redhat.com>
8291
8292 PR c++/40975
8293 * tree-inline.c (copy_tree_r): Use copy_statement_list.
8294 (copy_statement_list): Don't recurse.
8295 * stor-layout.c (copy_self_referential_tree_r): Don't allow
8296 STATEMENT_LIST.
8297
013c0411
JM
82982011-05-05 Joseph Myers <joseph@codesourcery.com>
8299
8300 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
8301 through from -mfpu= handling.
8302 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
8303
a0905f8b
BS
83042011-05-05 Bernd Schmidt <bernds@codesourcery.com>
8305
8306 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
8307 POST_MODIFY.
8308
fc4538e4
SE
83092011-05-05 Steve Ellcey <sje@cup.hp.com>
8310
8311 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
8312 for 11.31.
8313 (hppa[12]*-*-hpux11*): Ditto.
8314 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
8315 * config/ia64/hpux-unix2003.h: New.
8316 * config/pa/pa-hpux1131.opt: New.
8317 * config/pa/pa-hpux1131.h: New.
8318 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
8319 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 8320 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 8321
1e30c578
JJ
83222011-05-05 Jakub Jelinek <jakub@redhat.com>
8323
8324 PR debug/48853
8325 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
8326 instead of mode as 3rd argument to recursive call.
8327 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
8328 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
8329 VOIDmode.
8330 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
8331 don't give up if mode is Pmode and mem_mode is not VOIDmode.
8332 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
8333 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
8334
d19eb620
JB
83352011-05-05 Julian Brown <julian@codesourcery.com>
8336
8337 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
8338 parenthesis in D-register case.
8339
c860fe8c
JM
83402011-05-05 Joseph Myers <joseph@codesourcery.com>
8341
8342 * opt-functions.awk (var_type_struct): Handle Enum options.
8343 * optc-gen.awk: Don't check range of variables of character type.
8344 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
8345 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
8346 rs6000_sdata_name, rs6000_explicit_options): Remove.
8347 (rs6000_option_override_internal): Check for -malign-power here.
8348 Use global_options_set instead of rs6000_explicit_options.
8349 (rs6000_parse_fpu_option): Remove.
8350 (rs6000_handle_option): Access variables via opts and opts_set
8351 pointers. Use error_at and warning_at. Add fall-through
8352 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
8353 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
8354 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
8355 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
8356 here. Don't use rs6000_parse_fpu_option.
8357 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
8358 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
8359 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
8360 (mrecip=): Use Var.
8361 (mspe): Use Var and Save.
8362 (mtraceback=): Use Enum and Var.
8363 (rs6000_traceback_type): New Enum and EnumValue entries.
8364 (mfloat-gprs=): Use Enum, Var and Save.
8365 (rs6000_float_gprs): New Enum and EnumValue entries.
8366 (mlong-double-): use Var and Save.
8367 (msched-costly-dep=, minsert-sched-nops=): Use Var.
8368 (malign-): Use Enum and Var.
8369 (rs6000_alignment_flags): New Enum and EnumValue entries.
8370 (mfpu=): Use Enum.
8371 (fpu_type_t): New Enum and EnumValue entries.
8372 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8373 global_options_set instead of rs6000_explicit_options.
8374 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8375 global_options_set instead of rs6000_explicit_options.
8376 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8377 global_options_set instead of rs6000_explicit_options.
8378 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
8379 global_options_set instead of rs6000_explicit_options.
8380 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
8381 global_options_set instead of rs6000_explicit_options.
8382 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8383 global_options_set instead of rs6000_explicit_options.
8384 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
8385 definition.
8386 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8387 global_options_set instead of rs6000_explicit_options.
8388 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
8389 (rs6000_cmodel): New Enum and EnumValue entries.
8390 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8391 global_options_set instead of rs6000_explicit_options.
8392 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
8393 (mtls-size=): Use Enum and Var.
8394 (rs6000_tls_size): New Enum and EnumValue entries.
8395
0691dde9
MM
83962011-05-05 Michael Matz <matz@suse.de>
8397
8398 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
8399 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
8400 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
8401 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
8402 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
8403 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
8404 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
8405 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
8406 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
8407 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
8408 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
8409 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
8410 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
8411 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
8412 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
8413 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
8414
86529a49
RG
84152011-05-05 Richard Guenther <rguenther@suse.de>
8416
8417 * expmed.c (expand_variable_shift): Rename to ...
8418 (expand_shift_1): ... this. Take an expanded shift amount.
8419 For rotates recurse directly not building trees for the shift amount.
8420 (expand_variable_shift): Wrap around expand_shift_1.
8421 (expand_shift): Adjust.
8422
d0228c2e
JJ
84232011-05-05 Jakub Jelinek <jakub@redhat.com>
8424
8425 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
8426
907a08d9
EB
84272011-05-05 Eric Botcazou <ebotcazou@adacore.com>
8428
8429 * tree.h (get_pending_sizes): Remove prototype.
8430 (put_pending_size): Likewise.
8431 (put_pending_sizes): Likewise.
8432 * stor-layout.c (pending_sizes): Delete.
8433 (get_pending_sizes): Likewise.
8434 (put_pending_size): Likewise.
8435 (put_pending_sizes): Likewise.
8436 (variable_size): Do not call put_pending_size and tidy up.
8437 * function.h (struct function): Remove dont_save_pending_sizes_p.
8438 * lto-streamer-in.c (input_function): Do not stream it.
8439 * lto-streamer-out.c (output_function): Likewise.
8440 * tree-inline.c (initialize_cfun): Do not copy it.
8441 * c-decl.c (store_parm_decls): Do not set it.
8442 * omp-low.c (create_task_copyfn): Likewise.
8443 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8444
386d9c57
UB
84452011-05-05 Uros Bizjak <ubizjak@gmail.com>
8446
8447 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
8448 conditions.
8449 (*movdf_internal): Ditto.
8450 (*movdf_internal_nointeger): Ditto.
8451 (*movsf_internal): Ditto.
8452
a04a722b
JM
84532011-05-05 Joseph Myers <joseph@codesourcery.com>
8454
8455 * c-decl.c (finish_decl): Don't call get_pending_sizes.
8456 (grokparm): Add parameter expr. Pass it to grokdeclarator.
8457 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
8458 (c_variable_size): Remove.
8459 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
8460 call put_pending_sizes.
8461 (get_parm_info): Add parameter expr. Use it to set
8462 arg_info->pending_sizes.
8463 (store_parm_decls): Use arg_info->pending_sizes instead or calling
8464 get_pending_sizes.
8465 * c-parser.c (c_parser_parms_declarator): Update call to
8466 c_parser_parms_list_declarator.
8467 (c_parser_parms_list_declarator): Take parameter expr. Update
8468 call to push_parm_decl. Update recursive call. Don't call
8469 get_pending_sizes. Update calls to get_parm_info.
8470 (c_parser_objc_method_definition): Update calls to
8471 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 8472 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
8473 (c_parser_objc_method_decl): Add parameter expr. Update call to
8474 grokparm.
386d9c57 8475 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
8476 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
8477 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
8478
c92a6f97
MH
84792011-05-05 Michael Hope <michael.hope@linaro.org>
8480
386d9c57
UB
8481 PR pch/45979
8482 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
8483 __ARM_EABI__ hosts.
c92a6f97 8484
07ea0048
UW
84852011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8486
8487 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
8488 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
8489 (spu_output_mi_thunk): New function.
8490
d634bfa1
RO
84912011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8492
8493 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
8494 targetm.asm_out.print_operand.
8495 * config/sol2.c: Include target.h.
8496
40fda55b
JH
84972011-05-04 Jan Hubicka <jh@suse.cz>
8498
8499 * ipa-inline.c (reset_edge_caches): New function.
8500 (update_caller_keys): Add check_inlinablity_for; do not
8501 reset edge caches; remove now unnecesary loop.
386d9c57 8502 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
8503 (update_all_callee_keys): Likewise.
8504 (inline_small_functions): Sanity check cache; update code
8505 recomputing it.
8506
0360f70d
BS
85072011-05-04 Bernd Schmidt <bernds@codesourcery.com>
8508
8509 PR rtl-optimization/47612
8510 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
8511 as the last insn of the sequence to be moved.
8512
7a994646
TB
85132011-05-04 Tobias Burnus <burnus@net-b.de>
8514
8515 PR fortran/48864
8516 * doc/invoke.texi (Ofast): Document that it
8517 enables Fortran's -fno-protect-parens.
8518
7a2f7208
UB
85192011-05-04 Uros Bizjak <ubizjak@gmail.com>
8520
8521 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
8522
a2d42931
EB
85232011-05-04 Eric Botcazou <ebotcazou@adacore.com>
8524
8525 * stor-layout.c (variable_size): Do not issue errors.
8526
f81b1a3d
RG
85272011-05-04 Richard Guenther <rguenther@suse.de>
8528
8529 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
8530 for array-ref indices.
8531 (tree_coverage_counter_addr): Likewise.
8532 (build_fn_info_type): Use size_int for index types.
8533 (build_gcov_info): Likewise.
8534
c62c040f
RG
85352011-05-04 Richard Guenther <rguenther@suse.de>
8536
8537 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
8538 to build_int_cst.
8539 * c-typeck.c (really_start_incremental_init): Use bitsize_int
8540 for constructor indices.
8541 (push_init_level): Likewise.
8542
1e3287d0
RG
85432011-05-04 Richard Guenther <rguenther@suse.de>
8544
8545 * explow.c (promote_mode): Move variable declarations before code.
8546
6c32445b
NF
85472011-05-04 Nathan Froyd <froydnj@codesourcery.com>
8548
8549 * tree.h (build_function_type_array): Declare.
8550 (build_varargs_function_type_array): Declare.
8551 (build_function_type_vec, build_varargs_function_type_vec): Define.
8552 * tree.c (build_function_type_array_1): New function.
8553 (build_function_type_array): New function.
8554 (build_varargs_function_type_array): New function.
8555
fdabf269
RS
85562011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
8557
8558 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
8559 before setting STMT_VINFO_TYPE.
8560
a207915a
UW
85612011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8562
8563 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
8564 instead of spu_pass_by_reference.
8565
5e617be8
AK
85662011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8567
8568 * calls.c (emit_library_call_value_1): Invoke
8569 promote_function_mode hook on libcall arguments.
8570 * explow.c (promote_function_mode, promote_mode): Handle TYPE
8571 argument being NULL.
8572 * targhooks.c (default_promote_function_mode): Lisewise.
8573 * config/s390/s390.c (s390_promote_function_mode): Likewise.
8574 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
8575
8576 * doc/tm.texi: Document that TYPE argument might be NULL.
8577
486d04be
SH
85782011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
8579
8580 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
8581
9b19b026
SH
85822011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
8583
8584 From Bernd Schmidt
8585 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
8586
502bc3df
RO
85872011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8588
8589 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
8590 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
8591 Move ...
8592 * mips-tfile.c: ... here.
8593 Don't include coretypes.h, tm.h, filenames.h.
8594 (saber_stop): Remove definition and all calls.
8595 [__SABER__]: Remove.
8596 (__LINE__): Remove default.
8597 (Size_t, Ptrdiff_t): Remove definitions.
8598 Replace by size_t, ptrdiff_t.
8599 [!MIPS_DEBUGGING_INFO]: Remove.
8600 (SHASH_SIZE, THASH_SIZE): Remove defaults.
8601 (progname): Add const.
8602 (STATIC): Remove.
8603 Replace all uses by static.
8604 (ALIGN_SYMTABLE_OFFSET): Remove default.
8605 * mips-tdump.c: Don't include coretypes.h, tm.h.
8606 Remove !MIPS_IS_STAB guard.
8607 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
8608 $(TM_H), filenames.h dependencies.
8609 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
8610
991eb6ef
SH
86112011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
8612
8613 From Jie Zhang
8614 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
8615 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8616
420ccc84
SH
86172011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
8618
8619 From Bernd Schmidt
8620 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
8621 account and save/restore RETS.
8622 (PROFILE_BEFORE_PROLOGUE): Define.
8623 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
8624 the push insn to use predecrement.
8625
9f8d69ee
SH
86262011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
8627
8628 From Jie Zhang
8629 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
8630
662c03f4
NC
86312011-05-04 Nick Clifton <nickc@redhat.com>
8632
8633 * config/mn10300/mn10300.c: Include cfgloop.h.
8634 (DUMP): New macro.
8635 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
8636 Lcc or a FLcc insn into the instruction stream.
8637 (mn10300_block_contains_call): New function. Returns true if the
8638 given basic block contains a CALL insn.
8639 (mn10300_loop_contains_call_insn): New function. Returns true if
8640 the given loop contains a CALL insn.
8641 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
8642 to use the SETLB and Lcc or FLcc insns.
8643 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
8644 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
8645 * config/mn10300/mn10300.opt (msetlb): New option. Used to
8646 disable the SETLB optimization.
8647 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
8648 __SETLB__ or __NO_SETLB__.
8649 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
8650 (movsf_internal): Handle MDR register.
8651 (cmpsi): Make visible.
8652 (setlb): New pattern.
8653 (Lcc): New pattern.
8654 (FLcc): New pattern.
8655
843b6915
UB
86562011-05-04 Uros Bizjak <ubizjak@gmail.com>
8657
8658 PR target/48860
8659 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
8660 for reg<->xmm moves.
8661 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
8662 (vec_concatv2di_rex64_sse): Ditto.
8663 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
8664 (*vec_extractv2di_1_rex64): Ditto.
8665
8666 Revert:
8667 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
8668
8669 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8670 reg<->xmm moves.
8671 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
8672
d35936ab
RG
86732011-05-04 Richard Guenther <rguenther@suse.de>
8674
8675 * tree.h (int_const_binop): Remove notrunc argument.
8676 * fold-const.c (int_const_binop): Remove notrunc argument. Always
8677 create integer constants that are properly truncated.
8678 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
8679 (const_binop): Remove zero notrunc argument to int_const_binop.
8680 (size_binop_loc): Likewise.
8681 (fold_div_compare): Likewise.
8682 (maybe_canonicalize_comparison_1): Likewise.
8683 (fold_comparison): Likewise.
8684 (fold_binary_loc): Likewise.
8685 (multiple_of_p): Likewise.
8686 * expr.c (store_constructor): Likewise.
8687 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8688 (maybe_fold_stmt_addition): Likewise.
8689 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
8690 * stor-layout.c (layout_type): Likewise.
8691 * tree-data-ref.c (tree_fold_divides_p): Likewise.
8692 * tree-sra.c (build_ref_for_offset): Likewise.
8693 (build_user_friendly_ref_for_offset): Likewise.
8694 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
8695 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8696 * tree-ssa-loop-niter.c (inverse): Likewise.
8697 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8698 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
8699 * tree-switch-conversion.c (check_range): Likewise.
8700 (build_constructors): Likewise.
8701 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
8702 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
8703 (extract_range_from_assert): Likewise.
8704 (vrp_int_const_binop): Likewise.
8705 (extract_range_from_binary_expr): Likewise.
8706 (extract_range_from_unary_expr): Likewise.
8707 (check_array_ref): Likewise.
8708 (find_case_label_range): Likewise.
8709 (simplify_div_or_mod_using_ranges): Likewise.
8710 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
8711 comparing case labels for merging.
8712
8992c063
MW
87132011-05-03 Mark Wielaard <mjw@redhat.com>
8714
8715 * dwarf2out.c (debug_str_hash_forced): Removed.
8716 (gen_label_for_indirect_string): Removed.
8717 (get_debug_string_label): Removed.
8718 (AT_string_form): Generate label directly.
8719 (output_indirect_string): Test indirect_string_node for
8720 DW_FORM_strp instead of checking label and refcount.
8721 (prune_indirect_string): Removed.
8722 (prune_unused_types): Don't check debug_str_hash_forced or
8723 call prune_indirect_string.
8724
4868e6ea
AO
87252011-05-04 Alexandre Oliva <aoliva@redhat.com>
8726
8727 PR other/48093
8728 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
8729
01a5c0ab
AO
87302011-05-04 Alexandre Oliva <aoliva@redhat.com>
8731
8732 PR debug/47994
8733 PR debug/47919
8734 * combine.c (try_combine): Skip debug insns at m_split tests.
8735
6ac00218
MW
87362011-04-26 Mark Wielaard <mjw@redhat.com>
8737
8738 PR42288
8739 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
8740 when info_section_emitted.
8741
3af42a7b
JM
87422011-05-03 Joseph Myers <joseph@codesourcery.com>
8743
8744 * config/mips/mips-opts.h: New.
8745 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
8746 to mips-opts.h.
8747 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
8748 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
8749 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
8750 via opts pointer.
8751 * config/mips/mips.h (enum mips_code_readable_setting): Move to
8752 mips-opts.h.
8753 (mips_abi, mips_code_readable): Don't declare.
843b6915 8754 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
8755 (mabi=): Use Enum and Var.
8756 (mips_abi): New Enum and EnumValue entries.
8757 (mcode-readable=): Use Enum and Var.
8758 (mips_code_readable_setting): New Enum and EnumValue entries.
8759 (mr10k-cache-barrier=): Use Enum and Var.
8760 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
8761
1cb1a99f
JH
87622011-05-03 Jan Hubicka <jh@suse.cz>
8763
8764 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
8765 replace hash by pointer map.
8766 (cgraph_node_set_element_def, cgraph_node_set_element,
8767 const_cgraph_node_set_element, varpool_node_set_element_def,
8768 varpool_node_set_element, const_varpool_node_set_element): Remove.
8769 (free_cgraph_node_set, free_varpool_node_set): New function.
8770 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
8771 * tree-emutls.c: Free varpool node set.
8772 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
8773 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8774 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
8775 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8776 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
8777 Move here from ipa.c; implement using pointer_map
8778 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
8779 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8780 debug_cgraph_node_set, varpool_node_set_new,
8781 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8782 dump_varpool_node_set, debug_varpool_node_set):
8783 Move to ipa-uitls.c.
8784 * passes.c (ipa_write_summaries): Update.
8785
7f31f4db
SH
87862011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
8787
7a2f7208
UB
8788 From Mike Frysinger:
8789 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
8790 bf542/bf544/bf547/bf548/bf549.
7f31f4db 8791
b70fce6d
UB
87922011-05-03 Uros Bizjak <ubizjak@gmail.com>
8793
8794 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
8795
265b1d82
SH
87962011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
8797
8798 From Bernd Schmidt:
8799 * config/bfin/bfin.md (MOVCC): New mode_macro.
8800 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
8801 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
8802 comments from generated assembly.
8803
f0b568f3
SH
88042011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
8805
8806 From Bernd Schmidt
8807 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
8808 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
8809 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
8810 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
8811 * config/bfin/lib1funcs.asm (___muldi3): New function.
8812
2c67cf6e
NF
88132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8814
8815 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
8816 build_function_type_list instead of build_function_type.
8817 Rearrange initialization of `args' to do so.
8818
f9ac28ad
NF
88192011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8820
8821 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
8822 instead of build_function_type.
8823
22b8798c
NF
88242011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8825
8826 * config/rs6000/rs6000.c (spe_init_builtins): Call
8827 build_function_type_list instead of build_function_type.
8828 (paired_init_builtins, altivec_init_builtins): Likewise.
8829 (builtin_function_type): Likewise.
8830
4cb44528
NF
88312011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8832
8833 * config/sh/sh.c (sh_media_init_builtins): Call
8834 build_function_type_list instead of build_function_type.
8835
4c203a6a
NF
88362011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8837
8838 * config/sparc/sparc.c (sparc_file_end): Call
8839 build_function_type_list instead of build_function_type.
8840
d6a3d62b
NF
88412011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8842
8843 * config/alpha/alpha.c (alpha_init_builtins): Call
8844 build_function_type_list instead of build_function_type.
8845
de530b86
NF
88462011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8847
8848 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
8849 build_function_type_list instead of build_function_type.
8850
baeec5f2
NF
88512011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8852
8853 * config/iq2000/i2000.c (iq2000_init_builtins): Call
8854 build_function_type_list instead of build_function_type.
8855 Delete `endlink' variable.
8856
c19afe52
NF
88572011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8858
8859 * config/avr/avr.c (avr_init_builtins): Call
8860 build_function_type_list instead of build_function_type.
8861
a341df0a
NF
88622011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8863
8864 * config/picochip/picochip.c (picochip_init_builtins): Call
8865 build_function_type_list instead of build_function_type.
8866 Delete `endlink' variable.
8867
2102b1e1
NF
88682011-05-03 Nathan Froyd <froydnj@codesourcery.com>
8869
8870 * config/bfin/bfin.c (bfin_init_builtins): Call
8871 build_function_type_list instead of build_function_type.
8872
9f111209
SH
88732011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
8874
8875 From Bernd Schmidt
8876 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
8877 that's not CONST_INT. Seemingly redundant check is due to PR39768.
8878
7071d064
SH
88792011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
8880
8881 From Jie Zhang:
8882 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
8883 libbffastfp overrides libgcc when -mfast-fp.
8884
748f7574 88852011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
8886
8887 Originally from Bernd Schmidt
8888 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
8889 * config/bfin/bfin.c (override_options): Test it and error if
8890 TARGET_FDPIC.
8891
1a3a9152
SH
88922011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
8893
8894 Originally From Bernd Schmidt
8895 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
8896 FD-PIC.
8897
7134c090
JL
88982011-05-03 Jeff Law <law@redhat.com>
8899
8900 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
8901 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
8902 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
8903 than accessing AUX field directly. Free the AUX field before
8904 clearing it.
7134c090
JL
8905 (thread_block, thread_through_loop_header): Likewise.
8906 (thread_single_edge, mark_threaded_blocks): Likewise.
8907 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
8908 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 8909
2c7eebae
BS
89102011-05-03 Bernd Schmidt <bernds@codesourcery.com>
8911
8912 * function.c (init_function_start): Call decide_function_section.
8913 * varasm.c (decide_function_section): New function.
8914 (assemble_start_function): When not using
8915 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
8916 or first_function_block_is_cold.
8917 * rtl.h (decide_function_section): Declare.
8918
17038fcf
JJ
89192011-05-03 Uros Bizjak <ubizjak@gmail.com>
8920 Jakub Jelinek <jakub@redhat.com>
8921
8922 PR target/48774
8923 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
8924 only succeed if req_mode is the same as set_mode.
8925
3810076b
BS
89262011-05-03 Bernd Schmidt <bernds@codesourcery.com>
8927
8928 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
8929 * genemit.c (gen_exp): Handle RETURN.
8930 * emit-rtl.c (verify_rtx_sharing): Likewise.
8931 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
8932 * rtl.c (copy_rtx): RETURN is shared.
8933 * rtl.h (enum global_rtl_index): Add GR_RETURN.
8934 (ret_rtx): New.
8935 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
8936 * config/s390/s390.c (s390_emit_epilogue): Likewise.
8937 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
8938 * config/cris/cris.c (cris_expand_return): Likewise.
8939 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
8940 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
8941 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
8942 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
8943 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
8944 Likewise.
8945 * config/v850/v850.c (expand_epilogue): Likewise.
8946 * config/bfin/bfin.c (bfin_expand_call): Likewise.
8947 * config/arm/arm.md (epilogue): Likewise.
8948 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
8949 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
8950 variable to ret_reg.
8951
9efdb4ad
RG
89522011-05-03 Richard Guenther <rguenther@suse.de>
8953
8954 PR lto/48846
8955 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
8956 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
8957 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8958
60a45536
RG
89592011-05-03 Richard Guenther <rguenther@suse.de>
8960
8961 * c-decl.c (grokdeclarator): Instead of looking at
8962 TREE_OVERFLOW check if the constant fits in the index type.
8963
3188ed59
RS
89642011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
8965
8966 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
8967 (vec_store_lanes<mode><mode>): Likewise.
8968
272c6793
RS
89692011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
8970
8971 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
8972 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
8973 convert_optab_index values.
8974 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
8975 * genopinit.c (optabs): Initialize the new optabs.
8976 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
8977 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
8978 (expand_STORE_LANES): New functions.
8979 * tree.h (build_array_type_nelts): Declare.
8980 * tree.c (build_array_type_nelts): New function.
8981 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
8982 (vect_model_load_cost): Likewise.
8983 (vect_store_lanes_supported, vect_load_lanes_supported)
8984 (vect_record_strided_load_vectors): Declare.
8985 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
8986 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
8987 (vect_transform_strided_load): Split out statement recording into...
8988 (vect_record_strided_load_vectors): ...this new function.
8989 * tree-vect-stmts.c (create_vector_array, read_vector_array)
8990 (write_vector_array, create_array_ref): New functions.
8991 (vect_model_store_cost): Add store_lanes_p argument.
8992 (vect_model_load_cost): Add load_lanes_p argument.
8993 (vectorizable_store): Try to use store-lanes functions for
8994 interleaved stores.
8995 (vectorizable_load): Likewise load-lanes and loads.
8996 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
8997 to vect_model_store_cost.
8998 (vect_build_slp_tree): Likewise vect_model_load_cost.
8999
0f6d54f7
RS
90002011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
9001
9002 * hooks.h (hook_bool_mode_uhwi_false): Declare.
9003 * hooks.c (hook_bool_mode_uhwi_false): New function.
9004 * target.def (array_mode_supported_p): New hook.
9005 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
9006 * doc/tm.texi: Regenerate.
9007 * stor-layout.c (mode_for_array): New function.
9008 (layout_type): Use it.
9009 * config/arm/arm.c (arm_array_mode_supported_p): New function.
9010 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
9011
b15eacc7
EB
90122011-05-03 Eric Botcazou <ebotcazou@adacore.com>
9013
9014 PR target/48723
9015 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
9016 for -fstack-check if the size to allocate is negative.
9017
575bfb00
LC
90182011-05-02 Lawrence Crowl <crowl@google.com>
9019
9020 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
9021 (timevar_cond_start): New for starting a timer only when it is not
9022 already running.
9023 (timevar_cond_stop): New for stopping a timer when it was not already
9024 running.
9025
9026 * timevar.c (timevar_stop): Enable start/stop timers to start again.
9027 (timevar_cond_start): New as above.
9028 (timevar_cond_stop): New as above.
9029
9030 * timevar.def: Add start/stop timers for compiler phases,
9031 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
9032 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
9033 and TV_PHASE_FINALIZE.
9034 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
9035 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
9036 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
9037 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
9038 Make unused TV_OVERLOAD into a start/stop timer.
9039
9040 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
9041 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
9042 to indicate that they are start/stop timers.
9043
9044 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
9045 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
9046 Move initialization to do_compile.
9047 (do_compile): Add initialization from above.
9048 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
9049
9050 * c-decl.c (c_write_global_declarations): Add start/stop of
9051 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
9052
9053 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
9054 or TV_PARSE_INLINE, as appropriate.
9055 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
9056 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
9057
3533b943
JM
90582011-05-02 Jason Merrill <jason@redhat.com>
9059
9060 PR c++/40975
9061 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
9062
2609a0ce
SM
90632011-05-02 Simon Martin <simartin@users.sourceforge.net>
9064
9065 PR c/35445
9066 * c-decl.c (finish_decl): Only create a composite if the types are
9067 compatible.
9068
6b0e4cbb
JM
90692011-05-02 Joseph Myers <joseph@codesourcery.com>
9070
9071 * config/fr30/fr30-protos.h (Mmode): Don't define.
9072 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
9073 definition where used.
9074 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
9075 define. Expand definitions where used.
9076 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
9077 Expand definitions where used.
9078 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
9079 rx_function_arg, rx_function_arg_advance,
9080 rx_function_arg_boundary): Expand definitions of those macros.
9081 * config/v850/v850-protos.h (Mmode): Don't define. Expand
9082 definition where used.
9083
4e938ce6
UB
90842011-05-02 Uros Bizjak <ubizjak@gmail.com>
9085
9086 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
9087 reg<->xmm moves.
9088 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
9089 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
9090 with *movv2sf_internal_rex64_avx.
9091 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
9092 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
9093 Use %v prefix in insn mnemonic to handle TARGET_AVX.
9094 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
9095 "vex" in "prefix" attribute calculation.
9096 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
9097
36019c19
SH
90982011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
9099
7a2f7208
UB
9100 PR target/47951
9101 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
9102 inputs match the output.
36019c19 9103
f69ea688
AS
91042011-05-02 Andreas Schwab <schwab@linux-m68k.org>
9105
9106 PR target/47955
9107 * config/m68k/m68k.c (m68k_expand_prologue): Set
9108 current_function_static_stack_size.
9109
c33406f5
JH
91102011-05-02 Jan Hubicka <jh@suse.cz>
9111
9112 * lto-streamer.c (lto_streamer_cache_insert_1,
9113 lto_streamer_cache_lookup, lto_streamer_cache_create,
9114 lto_streamer_cache_delete): Use pointer map instead of hashtable.
9115 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
9116
47c94d21
JM
91172011-05-02 Joseph Myers <joseph@codesourcery.com>
9118
9119 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
9120 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
9121 config/m68k/t-opts: New files.
9122 * config/m68k/m68k-tables.opt: New file (generated).
9123 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
9124 extra_options and m68k/t-opts to tmake_file.
9125 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
9126 (all_isas): Initialize using m68k-isas.def.
9127 (all_microarchs): Initialize using m68k-microarchs.def.
9128 (m68k_find_selection): Remove.
9129 (m68k_handle_option): Don't assert that global structures are in
9130 use. Use error_at. Access variables via opts pointer. Don't
9131 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
9132 directly for -m68020-40 and -m68020-60.
9133 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
9134 m68k_tune_entry here.
9135 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
9136 to m68k-opts.h.
9137 (m68k_library_id_string): Remove declaration.
4e938ce6 9138 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
9139 (m68k_library_id_string): New Variable.
9140 (march=, mcpu=, mtune=): Use Enum and Var.
9141
e562bf36
RG
91422011-05-02 Richard Guenther <rguenther@suse.de>
9143
9144 * varasm.c (output_constructor_regular_field): Compute zero-based
9145 index with double-ints. Make sure to ICE instead of producing
9146 wrong code.
9147 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
9148 in asserts. Properly use a signed type.
9149
6bec6c98
UB
91502011-05-02 Uros Bizjak <ubizjak@gmail.com>
9151
9152 * config/i386/sse.md (V): New mode iterator.
9153 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
9154 TARGET_SSE2.
9155 (V_256): Rename from AVX256MODE.
9156 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
9157 condition to all users.
9158 (VF1): Ditto.
9159 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
9160 condition to all users.
9161 (VF_128): Make V4SF mode unconditional.
9162 (VF_256): Rename from AVX256MODEF2P.
9163 (VI4F_128): Rename from SSEMODE4S.
9164 (VI8F_128): Rename from SSEMODE2D.
9165 (VI4F_256): Rename from AVX256MODE8P.
9166 (VI8F_256): Rename from AVX256MODE4P.
9167 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
9168 (ssescalarmodesuffix): Remove SF and DF modes.
9169 (SSEMODE124): Remove.
9170 (SSEMODE1248): Ditto.
9171 (SSEMODEF2P): Ditto.
9172 (AVXMODEF2P): Ditto.
9173 (AVXMODEFDP): Ditto.
9174 (AVXMODEFSP): Ditto.
9175 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
9176 unconditional.
9177 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
9178 unconditional.
9179 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
9180 xop_pcmov_<mode>256. Use V mode iterator.
9181
9182 Adjust RTX patterns globally for renamed mode attributes.
9183
2dfdcb4b
UW
91842011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9185
9186 * haifa-sched.c (sched_emit_insn): Emit insn before first
9187 non-scheduled insn. Inform back-end about new insn. Add
9188 new insn to scheduled_insns list.
9189
90bc4623
RG
91902011-05-02 Richard Guenther <rguenther@suse.de>
9191
9192 PR tree-optimization/48822
9193 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
9194 (process_scc): Indicate which iteration we start.
9195
bc0fe8cb
JH
91962011-05-02 Jan Hubicka <jh@suse.cz>
9197
9198 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
9199 (lto_section_overrun): New.
9200 * lto-section-out.c (append_block): Rename to ...
9201 (lto_append_block): ... this one; export.
9202 (lto_output_1_stream): Move lto lto-streamer.h
9203 (lto_output_data_stream): Update.
9204 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
9205 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
9206 functions.
9207
f070a9d1
RG
92082011-05-02 Richard Guenther <rguenther@suse.de>
9209
9210 * tree.c (tree_code_counts): New global array.
9211 (record_node_allocation_statistics): Count individual tree codes.
9212 (dump_tree_statistics): Dump individual code stats.
9213
09dfe187
JH
92142011-05-01 Jan Hubicka <jh@suse.cz>
9215
9216 * ipa-inline.c (caller_growth_limits): Fix thinko when
9217 looking for largest stack frame.
9218 * ipa-inline.h (dump_inline_summary): Declare.
9219 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
9220 on stack usage.
9221 (dump_inline_summary): Export.
9222 (debug_inline_summary): Declare as DEBUG_FUNCTION.
9223
6f76a878
AS
92242011-05-01 Anatoly Sokolov <aesok@post.ru>
9225
9226 * reginfo.c (memory_move_cost): Change rclass argument type form
9227 'enum reg_class' to reg_class_t.
9228 * reload.h (memory_move_cost): Update prototype.
9229 * postreload.c reload_cse_simplify_set): Change type dclass var to
9230 reg_class_t.
9231 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
9232 Update prototype.
9233 (ira_allocate_and_set_costs): Change aclass argument type form
9234 'enum reg_class' to reg_class_t.
6bec6c98 9235 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
9236 Change aclass argument type to reg_class_t.
9237 (update_conflict_hard_reg_costs): Change type aclass and pref vars
9238 to reg_class_t.
9239 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
9240 memory_move_cost call.
9241
9242 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
9243 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
9244 Change type tmp var to reg_class_t.
9245
9a4ac625
JH
92462011-04-30 Jan Hubicka <jh@suse.cz>
9247
9248 * ipa-inline.c (can_inline_edge_p): Disregard limits when
9249 inlining into function with flatten attribute.
9250 (want_inline_small_function_p): Be more realistic about inlining
9251 cold calls where callee size grows.
9252
dd8352ee
JH
92532011-04-30 Jan Hubicka <jh@suse.cz>
9254
9255 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
9256 flags.
9257
46e43d2b
AS
92582011-04-30 Anatoly Sokolov <aesok@post.ru>
9259
9260 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
9261 PRINT_OPERAND_PUNCT_VALID_P): Remove.
9262 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
9263 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
9264 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9265 (print_operand): Rename to...
9266 (sparc_print_operand): ...this. Make static. Adjust
9267 sparc_print_operand function call.
9268 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
9269 functions.
9270
ecb62563
JH
92712011-04-30 Jan Hubicka <jh@suse.cz>
9272
6bec6c98 9273 PR middle-end/48752
ecb62563
JH
9274 * ipa-inline.c (early_inliner): Disable when doing late
9275 addition of function.
9276
edb9b69e
JJ
92772011-04-30 Jakub Jelinek <jakub@redhat.com>
9278
be80a87e
JJ
9279 * dwarf2out.c (get_address_mode): New inline.
9280 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
9281 if not dwarf_strict emit
9282 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
9283 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
9284 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
9285 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
9286 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
9287 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
9288 mem_loc_descriptor callers.
9289 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9290 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
9291 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
9292 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
9293 (base_types): New variable.
9294 (get_base_type_offset, calc_base_type_die_sizes,
9295 base_type_for_mode, mark_base_types, base_type_cmp,
9296 move_marked_base_types): New functions.
9297 (calc_die_sizes): Assert that die_offset is 0 or equal to
9298 next_die_offset.
9299 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
9300 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
9301 callers. If not dwarf_strict, call mem_loc_descriptor even for
9302 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
9303 (gen_subprogram_die): Don't give up on call site parameters
9304 with non-integral or large integral modes. Adjust
9305 mem_loc_descriptor callers.
9306 (prune_unused_types): Call prune_unused_types_mark on base_types
9307 vector entries.
9308 (resolve_addr): Call mark_base_types.
9309 (dwarf2out_finish): Call move_marked_base_types.
9310
edb9b69e
JJ
9311 PR tree-optimization/48809
9312 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
9313 type.
9314 (gen_inbound_check): Don't compute index_expr - range_min in utype
9315 again, instead reuse SSA_NAME initialized in build_arrays.
9316 Remove two useless gsi_for_stmt calls.
9317
a6545a3d
JL
93182011-04-29 Jeff Law <law@redhat.com>
9319
9320 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
9321
af8bca3c
MJ
93222011-04-29 Martin Jambor <mjambor@suse.cz>
9323
9324 * cgraph.h (cgraph_postorder): Remove declaration.
9325 * ipa-utils.h (ipa_free_postorder_info): Declare.
9326 (ipa_reverse_postorder): Likewise.
9327 * cgraphunit.c: Include ipa-utils.h.
9328 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
9329 * ipa-inline.c: Include ipa-utils.h.
9330 (ipa_inline): Update call to ipa_reverse_postorder.
9331 * ipa-pure-const.c (propagate_pure_const): Update call to
9332 ipa_reduced_postorder and ipa_print_order. Call
9333 ipa_free_postorder_info to clean up.
9334 (propagate_nothrow): Likewise.
9335 * ipa-reference.c (propagate): Removed a useless call to
9336 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
9337 and ipa_print_order. Call ipa_free_postorder_info to clean up.
9338 * ipa.c: Include ipa-utils.h.
9339 (ipa_profile): Update call to ipa_reverse_postorder.
9340 (cgraph_postorder): Moved to...
9341 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
9342 (ipa_utils_print_order): Renamed to ipa_print_order.
9343 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
9344 comments.
9345 (ipa_free_postorder_info): New function.
9346 * passes.c: Include ipa-utils.h.
9347 (do_per_function_toporder): Update call to ipa_reverse_postorder.
9348 (ipa_write_summaries): Likewise.
9349 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
9350 (cgraphunit.o): Likewise.
9351 (ipa.o): Likewise.
9352 (ipa-inline.o): Likewise.
9353
b15c64ee
JH
93542011-04-29 Jan Hubicka <jh@suse.cz>
9355
9356 * gcc.dg/tree-ssa/inline-10.c: New testcase.
9357 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
9358 * ipa-inline.h (clause_t): Turn into unsigned int.
9359 * ipa-inline-analysis.c (add_clause): Do more simplification.
9360 (and_predicates): Shortcut more cases.
9361 (predicates_equal_p): Move forward; check that clauses are properly
9362 ordered.
9363 (or_predicates): Shortcut more cases.
9364 (edge_execution_predicate): Rewrite as...
9365 (set_cond_stmt_execution_predicate): ... this function; handle
9366 __builtin_constant_p.
9367 (set_switch_stmt_execution_predicate): New .
9368 (compute_bb_predicates): New.
9369 (will_be_nonconstant_predicate): Update TODO.
9370 (estimate_function_body_sizes): Use compute_bb_predicates
9371 and free them later, always try to estimate if stmt is constant.
9372 (estimate_time_after_inlining, estimate_size_after_inlining):
9373 Gracefully handle optimized out edges.
9374 (read_predicate): Fix off by one error.
9375
a88fdc2a
NP
93762011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
9377
9378 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
9379
d984c8ef
XDL
93802011-04-27 Xinliang David Li <davidxl@google.com>
9381
9382 * tree-profile.c (init_ic_make_global_vars): Set
9383 tls attribute on ic vars.
9384 * coverage.c (coverage_end_function): Initialize
9385 function_list with zero.
9386
45a2c477
RG
93872011-04-29 Richard Guenther <rguenther@suse.de>
9388
9389 * builtins.c (fold_builtin_classify_type): Use integer_type_node
9390 for the type of the result.
9391 (fold_builtin_isascii): Likewise.
9392 (fold_builtin_toascii): Use integer_type_node where appropriate.
9393 (fold_builtin_logb): Likewise.
9394 (fold_builtin_frexp): Likewise.
9395 (fold_builtin_strstr): Likewise.
9396 (fold_builtin_strpbrk): Likewise.
9397 (fold_builtin_fputs): Likewise.
9398 (fold_builtin_sprintf): Likewise.
9399 (fold_builtin_snprintf): Likewise.
9400 (fold_builtin_printf): Likewise.
9401 (do_mpfr_remquo): Use a proper type for the assigned constant.
9402 (do_mpfr_lgamma_r): Likewise.
9403 * dwarf2out.c (resolve_one_addr): Use size_int.
9404 * except.c (init_eh): Likewise.
9405 (assign_filter_values): Use integer_type_node for filter values.
9406 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
9407 indices.
9408 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
9409 for EH region numbers.
9410 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
9411 for the shift amount.
9412
eb6c3df1
RG
94132011-04-29 Richard Guenther <rguenther@suse.de>
9414
9415 * expr.h (expand_shift): Rename to ...
9416 (expand_variable_shift): ... this.
9417 (expand_shift): Take a constant shift amount.
9418 * expmed.c (expand_shift): Rename to ...
9419 (expand_variable_shift): ... this.
9420 (expand_shift): New wrapper around expand_variable_shift.
9421 * expr.c (convert_move, emit_group_load_1, emit_group_store,
9422 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
9423 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
9424 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
9425 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
9426 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
9427 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
9428 emit_store_flag_1, emit_store_flag): Likewise.
9429 * builtins.c (expand_builtin_signbit): Likewise.
9430 * calls.c (load_register_parameters): Likewise.
9431 * function.c (assign_parm_setup_block): Likewise.
9432 * lower-subreg.c (resolve_shift_zext): Likewise.
9433 * optabs.c (widen_bswap, expand_abs_nojump,
9434 expand_one_cmpl_abs_nojump, expand_float): Likewise.
9435 * spu/spu.c (spu_expand_extv): Likewise.
9436 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
9437
9f616812
RG
94382011-04-29 Richard Guenther <rguenther@suse.de>
9439
9440 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
9441 for the remapped region number.
9442 * predict.c (build_predict_expr): Use integer_type_node for the
9443 predict kind.
9444 * fold-const.c (fold_binary_loc): Use integer_type_node for
9445 the shift amount. Use a proper type for the PLUS_EXPR operand.
9446
b823cdfe
MM
94472011-04-29 Michael Matz <matz@suse.de>
9448
9449 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
9450 other trees that just builtins.
9451 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
9452
413581ba
RG
94532011-04-29 Richard Guenther <rguenther@suse.de>
9454
9455 * tree-nested.c (get_trampoline_type): Use size_int.
9456 (get_nl_goto_field): Likewise.
9457 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
9458 for all indexes.
9459 (lower_eh_constructs_2): Likewise.
9460 (lower_resx): Likewise.
9461 (lower_eh_dispatch): Likewise.
9462 * tree-mudflap.c (mf_build_string): Use size_int.
9463 (mudflap_register_call): Use integer_type_node for the flag.
9464 (mudflap_enqueue_constant): Use size_int.
9465 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
9466 instead of rebuilding it.
9467
5c04e9f4
RG
94682011-04-29 Richard Guenther <rguenther@suse.de>
9469
9470 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
9471 Handle OBJ_TYPE_REF.
9472 (find_func_aliases_for_call): Use it more consistently.
9473
5c24671b
AO
94742011-04-29 Alexandre Oliva <aoliva@redhat.com>
9475
9476 * haifa-sched.c (last_nondebug_scheduled_insn): New.
9477 (rank_for_schedule): Use it.
9478 (schedule_block): Set it.
9479
10adac51
XDL
94802011-04-28 David Li <davidxl@google.com>
9481
9482 * tree.c (crc32_string): Use crc32_byte.
9483 (crc32_byte): New function.
9484 * tree.h (crc32_byte): New function.
9485 * gcov.c (read_graph_file): Handle new cfg_cksum.
9486 (read_count_file): Ditto.
9487 * profile.c (instrument_values): Ditto.
9488 (get_exec_counts): Ditto.
9489 (read_profile_edge_counts): Ditto.
9490 (compute_branch_probabilities): Ditto.
9491 (compute_value_histograms): Ditto.
9492 (branch_prob): Ditto.
9493 (end_branch_prob): Ditto.
9494 * coverage.c (read_counts_file): Ditto.
9495 (get_coverage_counts): Ditto.
9496 (tree_coverage_counter_addr): Ditto.
9497 (coverage_checksum_string): Ditto.
9498 (coverage_begin_output): Ditto.
9499 (coverage_end_function): Ditto.
9500 (build_fn_info_type): Ditto.
9501 (build_fn_info_value): Ditto.
9502 * libgcov.c (gcov_exit): Ditto.
9503 * gcov-dump.c (tag_function): Ditto.
9504 (compute_checksum): Remove.
9505
5d6358a5
AM
95062011-04-29 Alan Modra <amodra@gmail.com>
9507
9508 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9509 unspec plus offset. Tidy macho code.
9510
85ad2ef5
MJ
95112011-04-29 Martin Jambor <mjambor@suse.cz>
9512
9513 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
9514 node instead of a decl. Update all callers.
9515 * cgraph.h: Update declaration.
9516
437f4a00
IR
95172011-04-28 Ira Rosen <ira.rosen@linaro.org>
9518
9519 PR tree-optimization/48765
9520 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
9521 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
9522 to indicate if loop aware SLP is being used. Scan the statements
9523 and update the vectorization factor according to the type of
9524 vectorization before statement analysis.
9525 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
9526 pass it to vect_analyze_loop_operations.
9527 (vectorizable_reduction): Set number of copies to 1 in case of pure
9528 SLP statement.
9529 * tree-vect-stmts.c (vectorizable_conversion,
9530 vectorizable_assignment, vectorizable_shift,
9531 vectorizable_operation, vectorizable_type_demotion,
9532 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
9533 Likewise.
9534 (vectorizable_condition): Move the check that it is not SLP
9535 vectorization before the number of copies check.
9536 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
9537 to vectorize the loop using SLP.
9538
c6fc44f3
JJ
95392011-04-28 Jakub Jelinek <jakub@redhat.com>
9540
9541 PR middle-end/48597
9542 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
9543 inline asm.
9544
6c0170ea
JM
95452011-04-28 Joseph Myers <joseph@codesourcery.com>
9546
9547 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
9548 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
9549 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9550 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9551 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
9552 linux*.h headers.
6bec6c98 9553 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
9554 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9555 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
9556 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 9557 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
9558 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
9559 REG_NAME.
9560 * config/i386/linux.h (REG_NAME): Don't define.
9561 * config/i386/linux64.h (REG_NAME): Don't define.
9562 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
9563 Undefine before defining.
9564
970dabbd
JH
95652011-04-28 Jan Hubicka <jh@suse.cz>
9566
6bec6c98
UB
9567 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
9568 nonconstant_names array.
970dabbd
JH
9569 (estimate_function_body_sizes): Build nonconstant_names array; handle
9570 BUILT_IN_CONSTANT_P.
9571
8d3e3924
RG
95722011-04-28 Richard Guenther <rguenther@suse.de>
9573
9574 PR bootstrap/48804
9575 Revert
9576 2011-04-28 Richard Guenther <rguenther@suse.de>
9577
9578 * tree-ssa-structalias.c (solve_constraints): Build succ graph
9579 as late as possible.
6bec6c98 9580
8576f20a
RG
95812011-04-28 Richard Guenther <rguenther@suse.de>
9582
9583 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
9584 (debug_constraint): Do it here.
9585 (dump_constraints): And here.
9586 (rewrite_constraints): And here.
9587 (dump_constraint_edge): Remove.
9588 (dump_constraint_graph): Rewrite to produce DOT output.
9589 (solve_constraints): Build succ graph as late as possible.
9590 Dump constraint graphs before and after solving.
9591
e38811ce
RG
95922011-04-28 Richard Guenther <rguenther@suse.de>
9593
9594 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9595 New function split out from ...
9596 (find_func_aliases): ... here. Call it.
9597 (find_func_aliases_for_call): Likewise.
9598
fbaf0d0c
GDR
95992011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
9600
9601 * internal-fn.h (internal_fn_name_array): Declare.
9602 (internal_fn_flags_array): Likewise.
9603
cbb734aa
UB
96042011-04-27 Uros Bizjak <ubizjak@gmail.com>
9605
9606 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
9607 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
9608 Move from sse.md.
9609 (ssemodefsuffix): Remove.
9610 (ssevecmodesuffix): New mode attribute.
9611 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
9612 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
9613 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
9614 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
9615 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
9616 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
9617 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
9618 ssemodesuffix mode attribute.
9619 (float splitters): Use ssevecmodesuffix mode attribute.
9620 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
9621 (sseinsmode): Rename from avxvecmode.
9622 (avxsizesuffix): Rename from avxmodesuffix.
9623 (sseintvecmode): Rename from avxpermvecmode.
9624 (ssedoublevecmode): Rename from ssedoublesizemode.
9625 (ssehalfvecmode): Rename from avxhalfvecmode.
9626 (ssescalarmode): Rename from avxscalarmode.
9627 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
9628 templates for ssemodesuffix mode attribute.
9629 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
9630 mode attribute.
9631
9632 Adjust RTX patterns globally for renamed mode attributes.
9633
991278ab
JH
96342011-04-27 Jan Hubcika <jh@suse.cz>
9635
9636 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
9637 * ipa-inline-analysis.c: Include alloc-pool.h.
9638 (edge_predicate_pool): New.
9639 (trye_predicate_p): New function
9640 (false_predicate_p): New function.
9641 (add_clause): Sanity check that false clauses are "optimized";
9642 never add clauses to predicate that is already known to be false.
9643 (and_predicate): Use flase_predicate_p.
9644 (evaulate_predicate): Rename to ...
9645 (evaluate_predicate): ... this one; update all callers; assert
9646 that false is not listed among possible truths.
9647 (dump_predicate): Use true_predicate_p.
9648 (account_size_time): Use false_predicate_p.
9649 (evaulate_conditions_for_edge): Rename to ...
9650 (evaluate_conditions_for_edge) ... this one.
9651 (edge_set_predicate): New function.
9652 (inline_edge_duplication_hook): Duplicate edge predicates.
9653 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 9654 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
9655 (dump_inline_summary): Update.
9656 (estimate_function_body_sizes): Set edge predicates.
9657 (estimate_calls_size_and_time): Handle predicates.
9658 (estimate_callee_size_and_time): Update.
9659 (remap_predicate): Add toplev_predicate; update comment.
9660 (remap_edge_predicates): New function.
9661 (inline_merge_summary): Compute toplev predicate; update.
9662 (read_predicate): New function.
9663 (read_inline_edge_summary): Use it.
9664 (inline_read_section): Likewise.
9665 (write_predicate): New function.
9666 (write_inline_edge_summary): Use it.
9667 (inline_write_summary): Likewise.
9668 (inline_free_summary): Free alloc pool and edge summary vec.
9669
648b5f85
RG
96702011-04-27 Richard Guenther <rguenther@suse.de>
9671
9672 * tree-ssa-structalias.c (changed_count): Remove.
9673 (changed): Use a bitmap.
9674 (unify_nodes): Adjust.
9675 (do_sd_constraint): Likewise.
9676 (do_ds_constraint): Likewise.
9677 (do_complex_constraint): Likewise.
9678 (solve_graph): Likewise.
9679
4d5dcfb2
JH
96802011-04-27 Jan Hubicka <jh@suse.cz>
9681
9682 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
9683
200eb7d2
UB
96842011-04-27 Uros Bizjak <ubizjak@gmail.com>
9685
9686 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
9687 (avx_vperm2f128_*_operand): Ditto.
9688 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
9689 Use avx_vpermilp_parallel in insn condition.
9690 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
9691 Use avx_vperm2f128_parallel in insn condition.
9692
7d6e2521
RG
96932011-04-27 Richard Guenther <rguenther@suse.de>
9694
9695 * Makefile.in (tree-ssa-structalias.o): Remove
9696 gt-tree-ssa-structalias.h dependency.
9697 (GTFILES): Remove tree-ssa-structalias.c.
9698 * tree.c (allocate_decl_uid): New function.
9699 (make_node_stat): Use it.
9700 (copy_node_stat): Likewise.
9701 * tree.h (allocate_decl_uid): Declare.
9702 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
9703 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
9704 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 9705 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
9706 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
9707 (struct heapvar_map): Likewise.
9708 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
9709 heapvar_insert): Likewise.
9710 (make_heapvar_for): Rename to ...
9711 (make_heapvar): ... this. Simplify.
9712 (fake_var_decl_obstack): New global var.
9713 (build_fake_var_decl): New function.
9714 (make_constraint_from_heapvar): Adjust.
9715 (handle_lhs_call): Likewise.
9716 (create_function_info_for): Likewise.
9717 (intra_create_variable_infos): Likewise.
9718 (init_alias_vars): Allocate fake_var_decl_obstack.
9719 (init_alias_heapvars, delete_alias_heapvars): Remove.
9720 (compute_points_to_sets): Do not call init_alias_heapvars.
9721 (ipa_pta_execute): Likewise.
9722 (delete_points_to_sets): Free fake_var_decl_obstack.
9723
526ed6c2
UW
97242011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9725
9726 * config/spu/divmovti4.c (union qword_UTItype): New data type.
9727 (si_from_UTItype, si_to_UTItype): New functions.
9728 (__udivmodti4): Use them to implement type-punning.
9729 * config/spu/multi3.c (union qword_TItype): New data type.
9730 (si_from_TItype, si_to_TItype): New functions.
9731 (__multi3): Use them to implement type-punning.
9732
c187d33c
UW
97332011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9734
9735 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
9736
40982661
JH
97372011-04-27 Jan Hubicka <jh@suse.cz>
9738
9739 * ipa-prop.c (function_insertion_hook_holder): New holder.
9740 (ipa_add_new_function): New function.
200eb7d2
UB
9741 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
9742 Register/deregister holder.
40982661 9743
9aef53ee
RG
97442011-04-27 Richard Guenther <rguenther@suse.de>
9745
9746 PR tree-optimization/48772
200eb7d2 9747 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 9748
f63d806d
RG
97492011-04-27 Richard Guenther <rguenther@suse.de>
9750
9751 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
9752 TARGET_MEM_REF handling.
9753
e1ea7451
NC
97542011-04-27 Nick Clifton <nickc@redhat.com>
9755
9b5db25d
NC
9756 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
9757 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
9758 (REG_CLASS_NAMES): Likewise.
9759 (REG_CLASS_CONTENTS): Likewise.
9760 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
9761 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
9762 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
9763 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
9764 (EVEN_REGS): New macro. Alias for QUAD_REGS.
9765 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
9766 duplicate register classes.
97d20907 9767 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
9768 (frv_register_move_cost): Likewise.
9769
e1ea7451
NC
9770 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
9771 end of the regno_reg_class array.
9772
5c2f94b4
JJ
97732011-04-27 Jakub Jelinek <jakub@redhat.com>
9774
9775 PR c/48742
9776 * c-typeck.c (build_binary_op): Don't wrap arguments if
9777 int_operands is true.
9778
57a944d7
KK
97792011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
9780
9781 PR target/48767
9782 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
9783 targetm.calls.must_pass_in_stack for void type.
9784
898b8927
JH
97852011-04-26 Jan Hubicka <jh@suse.cz>
9786
9787 * cgraphbuild.c (build_cgraph_edges): Update call
9788 of cgraph_create_edge and cgraph_create_indirect_edge.
9789 * cgraph.c (cgraph_create_edge_including_clones,
9790 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
9791 cgraph_update_edges_for_call_stmt_node): Do not take nest
9792 argument; do not initialize call_stmt_size/time.
9793 (dump_cgraph_node): Do not dump nest.
9794 (cgraph_clone_edge): Do not take loop_nest argument;
9795 do not propagate it; do not clone call_stmt_size/time.
9796 (cgraph_clone_node): Likewise.
9797 (cgraph_create_virtual_clone): Update.
9798 * cgraph.h (struct cgraph_edge): Remove
9799 call_stmt_size/call_stmt_time/loop_nest.
9800 (cgraph_create_edge, cgraph_create_indirect_edge,
9801 cgraph_create_edge_including_clones, cgraph_clone_node): Update
9802 prototype.
9803 * tree-emutls.c (gen_emutls_addr): Update.
9804 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
9805 loop_nest; handle indirect calls, too.
9806 (clone_inlined_nodes): Do not care about updating inline summaries.
9807 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
9808 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
9809 stream call_stmt_size/call_stmt_time/loop_nest.
9810 * ipa-inline.c (edge_badness): Update.
9811 (ipa_inline): dump summaries after inlining.
9812 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 9813 New.
898b8927
JH
9814 (inline_edge_summary): New function.
9815 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
9816 (inline_edge_removal_hook): Handle edge summaries.
9817 (inline_edge_duplication_hook): New hook.
9818 (inline_summary_alloc): Alloc hooks.
9819 (initialize_growth_caches): Do not register removal hooks.
9820 (free_growth_caches); Do not free removal hook.
9821 (dump_inline_edge_summary): New function.
9822 (dump_inline_summary): Use it.
9823 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
9824 (inline_update_callee_summaries): New function.
9825 (inline_merge_summary): Use it.
9826 (do_estimate_edge_time, do_estimate_edge_growth): Update.
9827 (read_inline_edge_summary): New function.
9828 (inline_read_section): Use it.
9829 (write_inline_edge_summary): New function.
9830 (inline_write_summary): Use it.
9831 (inline_free_summary): Free edge new holders.
9832 * tree-inline.c (copy_bb): Update.
9833
ffa03772
JM
98342011-04-26 Jason Merrill <jason@redhat.com>
9835
9836 * tree-eh.c (lower_try_finally_switch): Create the label along with
9837 the CASE_LABEL_EXPR.
9838
6d7b45ad
DM
98392011-04-26 David S. Miller <davem@davemloft.net>
9840 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9841
9842 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
9843 * configure: Regenerate.
9844
df10b6d4
MM
98452011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9846
9847 PR target/48258
9848 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
9849 reduction.
9850 (VEC_reduc): New code iterator and splitters for vector reduction.
9851 (VEC_reduc_name): Ditto.
9852 (VEC_reduc_rtx): Ditto.
9853 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
9854 (reduc_<VEC_reduc_name>_v4sf): Ditto.
9855
9856 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9857 support for extracting SF on VSX.
9858
9859 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
9860 generating xscvspdp.
9861 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
9862 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
9863 double add, minimum, maximum vector reduction.
9864 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
9865 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
9866 optimize double vector reduction.
9867 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
9868
35a5db04
JM
98692011-04-26 Joseph Myers <joseph@codesourcery.com>
9870
9871 * config/fr30/fr30.h (inhibit_libc): Don't define.
9872 * config/m32r/m32r-protos.h: Correct comment.
9873 * config/v850/v850.h (GHS_default_section_names,
9874 GHS_current_section_names): Use tree, not union tree_node *.
9875
2f964ad6
XDL
98762011-04-26 Xinliang David Li <davidxl@google.com>
9877
200eb7d2 9878 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
9879 * c-family/c-opts.c (c_common_handle_option): Set
9880 warn_maybe_uninitialized.
9881 * opts.c (common_handle_option): Ditto.
9882 * common.opt: New option.
9883 * tree-ssa.c (warn_uninit): Add one more parameter.
9884 (warn_uninitialized_var): Pass warning code.
9885 * tree-flow.h: Interface change.
9886
9c7bd91a
RO
98872011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9888
200eb7d2 9889 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
9890 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
9891 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
9892
c2f36e21
RO
98932011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9894
9895 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
9896 * config/mips/mips.opt (mmips-tfile): Remove.
9897
9898 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
9899 mips-tdump reference to ...
200eb7d2 9900 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
9901 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
9902 reference by Tru64 UNIX.
9903
2c9da85b
JJ
99042011-04-26 Jakub Jelinek <jakub@redhat.com>
9905
0c5f6539
JJ
9906 PR debug/48768
9907 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
9908 is error_mark_node, set value to NULL.
9909
2c9da85b
JJ
9910 PR tree-optimization/48734
9911 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
9912 if return value from maybe_fold_*_comparsions isn't something
9913 the code is prepared to handle.
9914
77fa1d54
UB
99152011-04-26 Uros Bizjak <ubizjak@gmail.com>
9916
9917 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
9918 mode check.
9919 (ext_QIreg_nomode_operands): Remove.
9920 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
9921 (*andsi_1): Ditto.
9922 (*andhi_1): Ditto.
9923
0e2a6c2b
AS
99242011-04-26 Andrew Stubbs <ams@codesourcery.com>
9925
9926 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
9927
961562d8
RB
99282011-04-26 Richard Guenther <rguenther@suse.de>
9929
9930 * c-typeck.c (build_unary_op): Do not expand array-refs via
9931 pointer arithmetic. Only adjust qualifiers for function types.
9932
99332011-04-26 Richard Guenther <rguenther@suse.de>
9934
9935 PR middle-end/48694
9936 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
9937 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
9938 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
9939 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 9940
a0d260fc
PC
99412011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
9942
6bec6c98 9943 * doc/extend.texi: Document __underlying_type.
a0d260fc 9944
4d583bb9
SB
99452011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
9946
9947 * config/rs6000/titan.md (automata_option "progress"): Remove.
9948
1f3fcdc3
JL
99492011-04-25 Jeff Law <law@redhat.com>
9950
9951 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
9952
e5b0dad8
JK
99532011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
9954
9955 * system.h (ENUM_BITFIELD): Remove.
9956
5157a881 99572011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 9958 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
9959
9960 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9961 for STORE_FLAG_VALUE==-1 case.
9962
ed4c109e
RS
99632011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
9964
9965 PR target/43804
9966 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
9967 LEGITIMATE_PIC_OPERAND_P.
9968
f3181aa2
JH
99692011-04-24 Jan Hubicka <jh@suse.cz>
9970
9971 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
9972 WPA hack.
77fa1d54
UB
9973 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
9974 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
9975 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
9976 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
9977 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
9978 Sanity check predicate length.
9979 (remap_predicate): Likewise; sanity check jump functions.
9980 (inline_read_section, inline_write_summary): Sanity check
9981 predicate length.
9982
5307cbaa
PC
99832011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
9984
9985 PR other/48748
9986 * doc/extend.texi (Type Traits): Document __is_standard_layout,
9987 __is_literal_type, and __is_trivial; update throughout about
9988 possibly cv-qualified void types.
9989
bebd5f99
GP
99902011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
9991
9992 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
9993 testsuite and make it version agnostic.
9994
7ee28a74
JH
99952011-04-22 Jan Hubicka <jh@suse.cz>
9996
9997 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
9998
16997bc0
JJ
99992011-04-23 Jakub Jelinek <jakub@redhat.com>
10000
10001 PR c/48685
10002 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
10003 to VOID_TYPE even around MODIFY_EXPR.
10004
f94d4ab1
MS
100052011-04-22 Mike Stump <mikestump@comcast.net>
10006
1a84c183 10007 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
10008 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
10009 comment.
10010
632b4f8e
JH
100112011-04-22 Jan Hubicka <jh@suse.cz>
10012
10013 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
10014 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
10015 ipa-prop.c; update all uses.
632b4f8e 10016 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
10017 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
10018 merge summary of inlined function into former caller.
632b4f8e
JH
10019 * ipa-inline.c (max_benefit): Remove.
10020 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
10021 (update_caller_keys): Use
10022 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
10023 (update_callee_keys): Likewise.
10024 (update_all_callee_keys): Likewise.
77fa1d54
UB
10025 (inline_small_functions): Do not collect max_benefit; do not reset
10026 estimated_growth; call free_growth_caches and initialize_growth_caches.
10027 * ipa-inline.h (struct condition, type clause_t, struct predicate,
10028 struct size_time_entry): New structures.
632b4f8e 10029 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
10030 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
10031 and estimated_growth.
632b4f8e
JH
10032 (edge_growth_cache_entry): New structure.
10033 (node_growth_cache, edge_growth_cache): New global vars.
10034 (estimate_growth): Turn into inline.
10035 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
10036 initialize_growth_caches, free_growth_caches): Declare.
10037 (estimate_edge_growth): Rewrite.
10038 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
10039 (reset_node_growth_cache, reset_edge_growth_cache): New inline
10040 functions.
632b4f8e
JH
10041 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
10042 (NUM_CONDITIONS): New constant.
10043 (predicate_conditions): New enum.
10044 (IS_NOT_CONSTANT): New constant.
10045 (edge_removal_hook_holder): New var.
10046 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
10047 (true_predicate, single_cond_predicate, false_predicate,
10048 not_inlined_predicate, add_condition, add_clause, and_predicates,
10049 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
10050 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
10051 evaulate_conditions_for_edge): New functions.
10052 (inline_summary_alloc): Move to heap.
10053 (inline_node_removal_hook): Clear condition and entry vectors.
10054 (inline_edge_removal_hook): New function.
10055 (initialize_growth_caches, free_growth_caches): New function.
10056 (dump_inline_summary): Update.
10057 (edge_execution_predicate): New function.
10058 (will_be_nonconstant_predicate): New function.
10059 (estimate_function_body_sizes): Compute BB and constantness predicates.
10060 (compute_inline_parameters): Do not clear estimated_growth.
10061 (estimate_edge_size_and_time): New function.
10062 (estimate_calls_size_and_time): New function.
10063 (estimate_callee_size_and_time): New function.
10064 (remap_predicate): New function.
10065 (inline_merge_summary): New function.
10066 (do_estimate_edge_time): New function based on...
10067 (estimate_edge_time): ... this one.
10068 (do_estimate_edge_growth): New function.
10069 (do_estimate_growth): New function based on....
10070 (estimate_growth): ... this one.
10071 (inline_analyze_function): Analyze after deciding on jump functions.
10072 (inline_read_section): New function.
10073 (inline_read_summary): Use it.
10074 (inline_write_summary): Write all the new data.
10075 * ipa-prop.c (ipa_get_param_decl_index): Export.
10076 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
10077 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
10078 Declare.
10079 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
10080 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
10081 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
10082 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
10083 cgraph_edge_inlinable_p): Remove.
10084 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
10085 (cgraph_process_new_functions): Update call of
10086 compute_inline_parameters.
632b4f8e 10087
1df5b0db
RG
100882011-04-22 Richard Guenther <rguenther@suse.de>
10089
10090 * tree.c (build_int_cst): Properly create canonicalized integer
10091 constants.
10092 (build_int_cst_type): Remove scary comments.
10093
ae01169c
XDL
100942011-04-22 Xinliang David Li <davidxl@google.com>
10095
10096 * toplev.c (process_options): Enable -Werror=coverage-mismatch
10097 by default when -Wno-error is not specified.
10098 * opts-global.c (decode_options): Remove call to
10099 control_warning_options.
10100
93dfac24
JJ
101012011-04-22 Jakub Jelinek <jakub@redhat.com>
10102
10103 PR tree-optimization/48717
10104 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
10105 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
10106
1b5f5069
JM
101072011-04-22 Joseph Myers <joseph@codesourcery.com>
10108
10109 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
10110 definition where used.
10111
144f4153
JJ
101122011-04-22 Jakub Jelinek <jakub@redhat.com>
10113
10114 PR c/48716
10115 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
10116 TREE_STATIC variables declared inside of some OpenMP construct.
10117
f9fd305b
MJ
101182011-04-22 Martin Jambor <mjambor@suse.cz>
10119
10120 PR middle-end/48585
1d284ec5 10121 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 10122
49819fef
AM
101232011-04-22 Alexander Monakov <amonakov@ispras.ru>
10124
10125 PR c/36750
10126 * c-typeck.c (pop_init_level): Do not warn about initializing
10127 with ` = {0}'.
10128
401f6699
AM
101292011-04-22 Alan Modra <amodra@gmail.com>
10130
10131 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
10132 when returning call_cookie.
10133 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
10134 pointers, to functions with no more vector args than the current
10135 function, and some non-local calls for ABI_V4.
10136 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
10137 sibcall_nonlocal_aix64): Combine to ..
10138 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
10139 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
10140 (sibcall_value_nonlocal_aix<mode>): ..likewise.
10141 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
10142 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
10143 operand.
10144 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
10145 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
10146 sibcall_value_symbolic_64): Delete.
10147
903d1e67
XDL
101482011-04-21 Xinliang David Li <davidxl@google.com>
10149
10150 * cgraph.h: Remove pid.
10151 * cgraph.c: Remove pid.
10152 * value-prof.c (init_node_map): New function.
10153 (del_node_map): New function.
10154 (find_func_by_funcdef_no): New function.
10155 (gimple_ic_transform): Call new function.
10156 * cgraphunit.c (cgraph_finalize_function): Remove pid.
10157 * function.c (get_last_funcdef_no): New function.
10158 * function.h (get_last_funcdef_no): New function.
10159 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
10160 to libgcov function.
10161 (tree-profiling): Call node map init and delete function.
10162
7378e95f
ILT
101632011-04-21 Ian Lance Taylor <iant@google.com>
10164
10165 * godump.c (go_format_type): Use exported Go name for anonymous
10166 field name.
10167
e84a6fcf
NF
101682011-04-21 Nathan Froyd <froydnj@codesourcery.com>
10169
10170 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
10171 Call builtin_function_type_list instead of builtin_function_type.
10172 (UNARY, BINARY, TRINARY, QUAD): Likewise.
10173
4fe058e2
NF
101742011-04-21 Nathan Froyd <froydnj@codesourcery.com>
10175
10176 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
10177 build_function_type_list instead of build_function_type.
10178 Delete variable `endlink'.
10179
1ba0a2d2
NF
101802011-04-21 Nathan Froyd <froydnj@codesourcery.com>
10181
10182 * config/s390/s390.c (s390_init_builtins): Call
10183 build_function_type_list instead of build_function_type.
10184
c0676219
NF
101852011-04-21 Nathan Froyd <froydnj@codesourcery.com>
10186
10187 * config/ia64/ia64.c (ia64_init_builtins): Call
10188 build_function_type_list instead of builtin_function_type.
10189
6ddfda8a
ER
101902011-04-21 Easwaran Raman <eraman@google.com>
10191
3a6448ea 10192 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
10193 (add_stack_var): ...and its reference here...
10194 (expand_stack_vars): ...and here.
10195 (stack_var_cmp): Sort by descending order of size.
10196 (partition_stack_vars): Change heuristic.
1d284ec5 10197 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
10198 (dump_stack_var_partition): Add newline after each partition.
10199
23756963
DA
102002011-04-21 Dimitrios Apostolou <jimis@gmx.net>
10201 Jeff Law <law@redhat.com>
10202
77fa1d54 10203 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
10204 * gengtype.c (matching_file_name_substitute): Likewise.
10205
aa2a43d2
RG
102062011-04-21 Richard Guenther <rguenther@suse.de>
10207
10208 PR lto/48703
1d284ec5 10209 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 10210
4d931f41
EB
102112011-04-21 Eric Botcazou <ebotcazou@adacore.com>
10212
10213 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
10214
f103fa7a
RG
102152011-04-21 Richard Guenther <rguenther@suse.de>
10216
10217 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
10218 file name.
10219
e19f6650
RG
102202011-04-21 Richard Guenther <rguenther@suse.de>
10221
10222 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
10223 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
10224 Use DECL_P, not SSA_VAR_P.
10225 (ptr_derefs_may_alias_p): Likewise.
10226 (ptr_deref_may_alias_ref_p_1): Likewise.
10227 (decl_refs_may_alias_p): Likewise.
10228 (refs_may_alias_p_1): Likewise.
10229 (ref_maybe_used_by_call_p_1): Likewise.
10230 (call_may_clobber_ref_p_1): Likewise.
10231 (indirect_ref_may_alias_decl_p): Assume indirect refrences
10232 are either MEM_REF or TARGET_MEM_REF.
10233 (indirect_refs_may_alias_p): Likewise.
10234 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
10235 for MEM_EXPR of indirect calls.
10236
9d1831bb
TG
102372011-04-21 Tristan Gingold <gingold@adacore.com>
10238
10239 * vmsdbgout.c (write_srccorr): Compute file length from the string.
10240 (dst_file_info_struct): Remove flen field.
10241 (lookup_filename): Remove code that set flen field.
10242
f199c029
TG
102432011-04-21 Tristan Gingold <gingold@adacore.com>
10244
10245 * config/ia64/ia64.c (ia64_start_function): Add a guard.
10246
2894086e
UB
102472011-04-21 Uros Bizjak <ubizjak@gmail.com>
10248
10249 PR target/48708
10250 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
10251 vec_extract and vec_concat for non-SSE4_1 targets.
10252
53f94a5c
RG
102532011-04-21 Richard Guenther <rguenther@suse.de>
10254
10255 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
10256 return statements.
10257
f0dca5ba
JM
102582011-04-21 Joseph Myers <joseph@codesourcery.com>
10259
10260 * config/i386/cygming.h (union tree_node, TREE): Don't define or
10261 undefine.
10262 (FILE): Don't undefine.
10263
984514ac
JM
102642011-04-21 Joseph Myers <joseph@codesourcery.com>
10265
10266 * config/alpha/alpha.c (struct machine_function): Use rtx, not
10267 struct rtx_def *.
10268 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
10269 struct rtx_def *.
10270 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 10271 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
10272 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
10273 rtx_def *.
10274 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
10275 definitions where used.
10276 * config/microblaze/microblaze.h (struct microblaze_args): Use
10277 rtx, not struct rtx_def *.
10278 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
10279 rtx_def *.
2894086e
UB
10280 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
10281 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
10282 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
10283 not struct rtx_def *.
10284 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
10285 struct rtx_def *.
10286 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
10287 rtx_def *.
2894086e 10288 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 10289
0b5a2724
RS
102902011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
10291
10292 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
10293 operand_equal_p to compare DR_BASE_ADDRESSes.
10294 (vect_check_interleaving): Likewise.
10295
4b18d683
RS
102962011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
10297
10298 PR target/46329
10299 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
10300 for all Neon struct constants.
10301
1a627b35
RS
103022011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
10303
10304 * target.def (legitimate_constant_p): New hook.
10305 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
10306 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
10307 * doc/tm.texi: Regenerate.
10308 * hooks.h (hook_bool_mode_rtx_true): Declare.
10309 * hooks.c (hook_bool_mode_rtx_true): Define.
10310 * system.h (LEGITIMATE_CONSTANT_P): Poison.
10311 * calls.c (precompute_register_parameters): Replace uses of
10312 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
10313 (emit_library_call_value_1): Likewise.
10314 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
10315 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
10316 * ira-costs.c (scan_one_insn): Likewise.
10317 * recog.c (general_operand, immediate_operand): Likewise.
10318 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
10319 * reload1.c (init_eliminable_invariants): Likewise.
10320
10321 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
10322 mode argument.
10323 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
10324 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
10325 argument.
10326 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10327 * config/alpha/predicates.md (input_operand): Update call to
10328 alpha_legitimate_constant_p.
10329
10330 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
10331 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
10332 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
10333 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10334 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
10335 (arm_legitimate_constant_p): New functions.
10336 (arm_cannot_force_const_mem): Make static.
10337
10338 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
10339
10340 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
10341 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
10342 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
10343 instead of bfin_legitimate_constant_p.
10344 (bfin_legitimate_constant_p): Make static. Add a mode argument.
10345 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10346
10347 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
10348
10349 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
10350
10351 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
10352 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
10353 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10354 (frv_legitimate_constant_p): Make static. Add a mode argument.
10355
10356 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
10357 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
10358 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
10359
10360 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
10361 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
10362 * config/i386/i386.c (legitimate_constant_p): Rename to...
10363 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
10364 argument.
10365 (ix86_cannot_force_const_mem): Update accordingly.
10366 (ix86_legitimate_address_p): Likewise.
10367 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10368 * config/i386/i386.md: Update commentary.
10369
10370 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
10371 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
10372 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10373 (ia64_legitimate_constant_p): Make static. Add a mode argument.
10374
10375 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
10376
10377 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
10378 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
10379 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10380 (lm32_legitimate_constant_p): Make static. Add a mode argument.
10381
10382 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
10383 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
10384 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
10385
10386 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
10387 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10388 (m32r_legitimate_constant_p): New function.
10389
10390 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
10391 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
10392 LEGITIMATE_CONSTANT_P.
10393 (LEGITIMATE_CONSTANT_P): Delete.
10394 * config/m68k/m68k.c (m68k_expand_prologue): Call
10395 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
10396 (m68k_legitimate_constant_p): New function.
10397 * config/m68k/m68k.md: Update comments.
10398
10399 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
10400 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10401 (mcore_legitimate_constant_p): New function.
10402
10403 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
10404 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
10405 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
10406 Add a mode argument.
10407 (mep_legitimate_address): Update accordingly.
10408 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10409
10410 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
10411 Delete.
10412 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
10413 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
10414 static. Check OP's mode for VOIDmode.
10415 (microblaze_legitimate_constant_p): New function.
10416 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10417
10418 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
10419 * config/mips/mips.c (mips_legitimate_constant_p): New function.
10420 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
10421 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10422 * config/mips/predicates.md: Update comments.
10423
10424 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
10425 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
10426 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10427 (mmix_legitimate_constant_p): Make static, return a bool, and take
10428 a mode argument.
10429 (mmix_print_operand_address): Update accordingly.
10430
10431 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
10432 Delete.
10433 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
10434 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
10435 static. Add a mode argument.
1a627b35
RS
10436 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10437
10438 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
10439
10440 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
10441 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10442 (pa_legitimate_constant_p): New function.
10443
10444 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
10445
10446 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
10447 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10448 (pdp11_legitimate_constant_p): New function.
10449
10450 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
10451 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10452 (rs6000_legitimate_constant_p): New function.
10453
10454 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
10455 (rx_legitimate_constant_p): ...this.
10456 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
10457 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
10458 (rx_legitimate_constant_p): ...this.
10459 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10460 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
10461
10462 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
10463 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
10464 * config/s390/s390.c (legitimate_constant_p): Rename to...
10465 (s390_legitimate_constant_p): ...this. Make static, return a bool,
10466 and add a mode argument.
10467 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10468
10469 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
10470
10471 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
10472 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10473 (sh_legitimate_constant_p): New function.
10474
10475 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
10476 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
10477 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10478 (legitimate_constant_p): Rename to...
10479 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
10480 argument.
10481 (constant_address_p): Update accordingly.
10482
10483 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
10484 argument and return a bool.
10485 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
10486 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10487 (spu_legitimate_constant_p): Add a mode argument and return a bool.
10488 (spu_rtx_costs): Update accordingly.
10489 * config/spu/predicates.md (vec_imm_operand): Likewise.
10490
10491 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
10492
10493 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
10494 * config/v850/v850.c (v850_legitimate_constant_p): New function.
10495 (TARGET_LEGITIMATE_CONSTANT_P): Define.
10496
10497 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
10498 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
10499 * config/vax/vax.c (legitimate_constant_p): Likewise.
10500
10501 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
10502 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
10503 (xtensa_legitimate_constant_p): New function.
10504
fbbf66e7
RS
105052011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
10506
10507 * target.def (cannot_force_const_mem): Add a mode argument.
10508 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
10509 * doc/tm.texi: Regenerate.
10510 * hooks.h (hook_bool_mode_rtx_false): Declare.
10511 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
10512 (hook_bool_mode_const_rtx_true): Likewise.
10513 (hook_bool_mode_rtx_false): New function.
10514 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
10515 to be non-VOID. Update call to cannot_force_const_mem.
10516 (find_reloads): Update accordingly.
10517 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
10518 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
10519 argument.
10520 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
10521 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
10522 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
10523 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
10524 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
10525 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
10526 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
10527 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10528 (m68k_cannot_force_const_mem): ...this new function.
10529 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
10530 argument.
10531 (mips_const_insns, mips_legitimize_const_move): Update calls.
10532 (mips_secondary_reload_class): Likewise.
10533 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
10534 (pa_cannot_force_const_mem): ...this new function.
2894086e 10535 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
10536 (rs6000_cannot_force_const_mem): ...this new function.
10537 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
10538 argument.
10539 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
10540 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
10541 to...
10542 (xtensa_cannot_force_const_mem): ...this new function.
10543
b861891b
NF
105442011-04-20 Nathan Froyd <froydnj@codesourcery.com>
10545
10546 * config/mips/mips.c (mips16_build_function_stub): Call
10547 build_function_type_list instead of build_function_type.
10548 (mips16_build_call_stub): Likewise.
10549
34149ed5
NF
105502011-04-20 Nathan Froyd <froydnj@codesourcery.com>
10551
10552 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
10553 instead of build_function_type.
10554
12526412
NF
105552011-04-20 Nathan Froyd <froydnj@codesourcery.com>
10556
10557 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
10558 instead of build_function_type.
10559
3b84d61f
UB
105602011-04-20 Uros Bizjak <ubizjak@gmail.com>
10561
10562 PR target/48678
10563 * config/i386/i386.md (insv): Change operand 0 constraint to
10564 "register_operand". Change operand 1 and 2 constraint to
10565 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
10566 * config/i386/sse.md (sse4_1_pinsrb): Export.
10567 (sse2_pinsrw): Ditto.
10568 (sse4_1_pinsrd): Ditto.
10569 (sse4_1_pinsrq): Ditto.
10570 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
10571 * config/i386/i386.c (ix86_expand_pinsr): New.
10572
4a25752b
ER
105732011-04-20 Easwaran Raman <eraman@google.com>
10574
10575 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
10576 containing union type only with -fstrict-aliasing.
10577
04695783
JM
105782011-04-20 Jim Meyering <meyering@redhat.com>
10579
10580 Remove useless if-before-free tests.
10581 * calls.c (expand_call, save_area): Likewise.
10582 * cfgcleanup.c (try_forward_edges): Likewise.
10583 * collect2.c (collect_execute): Likewise.
10584 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
10585 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
10586 * coverage.c (coverage_checksum_string): Likewise.
10587 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
10588 * cselib.c (cselib_init): Likewise.
10589 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
10590 (df_set_clean_cfg): Likewise.
10591 * function.c (free_after_compilation): Likewise.
10592 * gcc.c (do_spec_1, main): Likewise.
10593 * gcov.c (create_file_names): Likewise.
10594 * gensupport.c (identify_predicable_attribute): Likewise.
10595 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
10596 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
10597 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
10598 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
10599 * ipa-pure-const.c (local_pure_const): Likewise.
10600 * ipa-reference.c (propagate): Likewise.
10601 * ira-costs.c (free_ira_costs): Likewise.
10602 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
10603 * matrix-reorg.c (mat_free): Likewise.
10604 * prefix.c (get_key_value): Likewise.
10605 * profile.c (compute_value_histograms): Likewise.
10606 * reload1.c (free_reg_equiv): Likewise.
10607 * sched-deps.c (free_deps): Likewise.
10608 * sel-sched-ir.c (fence_clear): Likewise.
10609 * sese.c (set_rename, if_region_set_false_region): Likewise.
10610 * tree-data-ref.c (free_rdg): Likewise.
10611 * tree-eh.c (lower_try_finally): Likewise.
10612 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
10613 * tree-ssa-live.c (delete_var_map): Likewise.
10614 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
10615 * tree-ssa-pre.c (phi_trans_add): Likewise.
10616
6788475a
JJ
106172011-04-20 Jakub Jelinek <jakub@redhat.com>
10618
10619 PR tree-optimization/48611
10620 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
10621 beyond ERT_MUST_NOT_THROW region.
10622
0eda4033
CM
106232011-04-20 Catherine Moore <clm@codesourcery.com>
10624
10625 * config/mips/mips.opt (mfix-24k): New.
10626 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
10627 * config/mips/mips.md (length): Increase by 4 for stores if
10628 fixing 24K errata.
10629 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
10630 all noreorder if fixing 24K errata.
10631 * doc/invoke.texi: Document mfix-24k.
10632
01475747
CLT
106332011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
10634
10635 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 10636 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 10637
bc2c1a60
AS
106382011-04-20 Andrew Stubbs <ams@codesourcery.com>
10639
10640 * config/arm/arm.c (arm_gen_constant): Move movw support ....
10641 (const_ok_for_op): ... to here.
10642
583722ee
KT
106432011-04-20 Kai Tietz <ktietz@redhat.com>
10644
2894086e
UB
10645 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
10646 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 10647
422c0989
AS
106482011-04-20 Andrew Stubbs <ams@codesourcery.com>
10649
10650 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
10651
d7978bff
RG
106522011-04-20 Richard Guenther <rguenther@suse.de>
10653
10654 PR tree-optimization/47892
10655 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
10656 are if-convertible.
10657
818412ba
EB
106582011-04-20 Eric Botcazou <ebotcazou@adacore.com>
10659
10660 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
10661
b501ce4e
TG
106622011-04-20 Tristan Gingold <gingold@adacore.com>
10663
10664 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
10665
516edfdd
GJL
106662011-04-20 Georg-Johann Lay <avr@gjlay.de>
10667
10668 PR target/18145
10669
10670 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
10671 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
10672 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10673 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
10674 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
10675
10676 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
10677 New prototype.
10678
10679 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
10680 (avr_asm_named_section, avr_asm_output_aligned_common,
10681 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
10682 New functions to update...
10683 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
10684 (avr_asm_init_sections): Overwrite section callbacks for
10685 data_section, bss_section.
10686 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
10687 from here to...
10688 (avr_file_end): ...here.
10689
dafc9511
RG
106902011-04-20 Richard Guenther <rguenther@suse.de>
10691
10692 PR middle-end/48695
10693 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 10694 objects and types here. Adjust for their offset before comparing.
dafc9511 10695
1da0876c
RS
106962011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
10697
10698 * tree-vect-stmts.c (vectorizable_store): Only chain one related
10699 statement per copy.
10700
25583c4f
RS
107012011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
10702
10703 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
10704 (GIMPLE_H): Include $(INTERNAL_FN_H).
10705 (OBJS-common): Add internal-fn.o.
10706 (internal-fn.o): New rule.
10707 * internal-fn.def: New file.
10708 * internal-fn.h: Likewise.
10709 * internal-fn.c: Likewise.
10710 * gimple.h: Include internal-fn.h.
10711 (GF_CALL_INTERNAL): New gf_mask.
10712 (gimple_statement_call): Put fntype into a union with a new
10713 internal_fn field.
10714 (gimple_build_call_internal): Declare.
10715 (gimple_build_call_internal_vec): Likewise.
10716 (gimple_call_same_target_p): Likewise.
10717 (gimple_call_internal_p): New function.
10718 (gimple_call_internal_fn): Likewise.
10719 (gimple_call_fntype): Return null for internal calls.
10720 (gimple_call_set_fntype): Assert that the function is not internal.
10721 (gimple_call_set_fn): Likewise.
10722 (gimple_call_set_fndecl): Likewise.
10723 (gimple_call_set_internal_fn): New function.
10724 (gimple_call_addr_fndecl): Handle null functions.
10725 (gimple_call_return_type): Likewise null types.
10726 * gimple.c (gimple_build_call_internal_1): New function.
10727 (gimple_build_call_internal): Likewise.
10728 (gimple_build_call_internal_vec): Likewise.
10729 (gimple_call_same_target_p): Likewise.
10730 (gimple_call_flags): Handle calls to internal functions.
10731 (gimple_call_fnspec): New function.
10732 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
10733 (gimple_has_side_effects): Handle null functions.
10734 (gimple_rhs_has_side_effects): Likewise.
10735 (gimple_call_copy_skip_args): Handle calls to internal functions.
10736 * cfgexpand.c (expand_call_stmt): Likewise.
10737 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
10738 * gimple-fold.c (gimple_fold_call): Handle null functions.
10739 (gimple_fold_stmt_to_constant_1): Don't fold
10740 calls to internal functions.
10741 * gimple-low.c (gimple_check_call_args): Handle calls to internal
10742 functions.
10743 * gimple-pretty-print.c (dump_gimple_call): Likewise.
10744 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
10745 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
10746 (do_warn_unused_result): Likewise.
10747 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
10748 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
10749 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
10750 the target of a call.
10751 (initialize_hash_element): Update accordingly.
10752 (hashable_expr_equal_p): Use gimple_call_same_target_p.
10753 (iterative_hash_hashable_expr): Handle calls to internal functions.
10754 (print_expr_hash_elt): Likewise.
10755 * tree-ssa-pre.c (can_value_number_call): Likewise.
10756 (eliminate): Handle null functions.
10757 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
10758 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
10759 (find_func_aliases): Likewise.
10760 * value-prof.c (gimple_ic_transform): Likewise.
10761 (gimple_indirect_call_to_profile): Likewise.
10762 * lto-streamer-in.c (input_gimple_stmt): Likewise.
10763 * lto-streamer-out.c (output_gimple_stmt): Likewise.
10764
1a3118e9
JH
107652011-04-19 Jan Hubicka <jh@suse.cz>
10766
10767 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
10768 * ipa-inline.c (inline_small_functions): Compute summaries first,
10769 populate heap later.
1a3118e9 10770
fee8b6da
JH
107712011-04-19 Jan Hubicka <jh@suse.cz>
10772
10773 * cgraph.h (save_inline_function_body): Remove.
10774 * ipa-inline-transform.c: New file, broke out of...
10775 * ipa-inline.c: ... this one; Update toplevel comment.
10776 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
10777 make global.
10778 (update_noncloned_frequencies): Move to ipa-inline-transform.c
10779 (cgraph_mark_inline_edge): Rename to inline_call; move to
10780 ipa-inline-transform.c.
10781 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
10782 move to ipa-inline-transform.c
10783 (recursive_inlining, inline_small_functions, flatten_function,
10784 ipa_inline, inline_always_inline_functions,
10785 early_inline_small_functions): Update.
10786 (inline_transform): Move to ipa-inline-transform.c.
10787 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
10788 Declare.
10789 * Makefile.in (ipa-inline-transform.o): New file.
10790 * cgraphunit.c (save_inline_function_body): Move to
10791 ipa-inline-transform.c
10792
f0679612
DD
107932011-04-19 DJ Delorie <dj@redhat.com>
10794
10795 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
10796 registers if we already know there aren't any.
10797 (m32c_emit_epilogue): Don't emit a barrier here.
10798 (m32c_emit_eh_epilogue): Likewise.
10799 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
10800 operands at expand time.
10801 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
10802 int" wchar type.
10803 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
10804 duplicates. Provide aliases instead.
10805 * config/m32c/prologue.md (eh_return): Emit a barrier here.
10806 (eh_epilogue): Add a "(return)" here as a hint to other parts of
10807 the compiler.
10808
32257ddc
AS
108092011-04-19 Anatoly Sokolov <aesok@post.ru>
10810
10811 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
10812 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
10813 (general_or_i64_p, sparc_register_move_cost): New function.
10814
60bea929
RO
108152011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10816
10817 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 10818 Add lynx, mipssde. Sort table.
60bea929 10819
444b3995 108202011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 10821
9d12f71a
EB
10822 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
10823 not negative.
444b3995 10824
d708ce50
JJ
108252011-04-19 Jakub Jelinek <jakub@redhat.com>
10826
10827 PR target/48678
10828 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
10829 is a SUBREG with non-MODE_INT mode inside of it.
10830
49c471e3
MJ
108312011-04-19 Martin Jambor <mjambor@suse.cz>
10832
10833 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
10834 also according to actual contants.
10835 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
10836 (gimple_fold_call): Use it.
10837 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
10838
0004f992
MJ
108392011-04-19 Martin Jambor <mjambor@suse.cz>
10840
10841 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
10842 non-pointer assignments.
10843
40591473
MJ
108442011-04-19 Martin Jambor <mjambor@suse.cz>
10845
10846 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
10847 account anc_offset and otr_type from the indirect edge info.
10848 * ipa-prop.c (get_ancestor_addr_info): New function.
10849 (compute_complex_ancestor_jump_func): Assignment analysis moved to
10850 get_ancestor_addr_info, call it.
10851 (ipa_note_param_call): Do not initialize information about polymorphic
10852 calls, return the indirect call graph edge. Remove the last
10853 parameter, adjust all callers.
10854 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
10855 parameters. Initialize polymorphic information in the indirect edge.
10856
abe36b81
EB
108572011-04-19 Eric Botcazou <ebotcazou@adacore.com>
10858
10859 PR lto/48148
10860 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
10861 the types if they have different enumeration identifiers.
10862
e6416b30
JH
108632011-04-19 Jan Hubicka <jh@suse.cz>
10864
10865 * cgraph.h (cgraph_optimize_for_size_p): Declare.
10866 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
10867 * predict.c (cgraph_optimize_for_size_p): Break out from ...
10868 (optimize_function_for_size_p) ... here.
10869
d39132ea
RG
108702011-04-19 Richard Guenther <rguenther@suse.de>
10871
10872 PR lto/48207
10873 * tree.c (free_lang_data): Do not reset the decl-assembler-name
10874 langhook.
10875
ff7037dc
EB
108762011-04-19 Eric Botcazou <ebotcazou@adacore.com>
10877
10878 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
10879 if DECL_NO_INLINE_WARNING_P is set on the function.
10880
c1ee2892
BS
108812011-04-19 Bernd Schmidt <bernds@codesourcery.com>
10882
10883 PR fortran/47976
10884 * reload1.c (inc_for_reload): Return void. All callers changed.
10885 (emit_input_reload_insns): Don't try to delete previous output
10886 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
10887
108882011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
10889
10890 * gengtype.h: Updated copyright year.
10891 (struct input_file_st): Add inpisplugin field.
10892 (type_fileloc): New function.
10893 * gengtype.c
10894 (write_typed_struct_alloc_def): Add gcc_assert.
10895 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
10896 (write_typed_alloc_defns): Don't output for plugin files.
10897 (input_file_by_name): Clear inpisplugin field.
10898 (main): Set inpisplugin field for plugin files.
10899
897e0a89
NP
109002011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
10901
10902 * gengtype-state.c (string_eq): New.
10903 (read_state): Use string_eq instead of strcmp when creating the
10904 state_ident_tab.
10905
363ee90e
WG
109062011-04-19 Wei Guozhi <carrot@google.com>
10907
10908 PR target/47855
10909 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
10910 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
10911 linkage.
10912 * config/arm/constraints.md (Uu): New constraint.
10913 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
10914
18a24fed
TG
109152011-04-19 Tristan Gingold <gingold@adacore.com>
10916
10917 * config.gcc (-*-*-*vms): Added.
10918 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
10919 definitions moved.
10920 * config/vms/vms-ld.c: New file.
10921 * config/vms/vms-ar.c: New file.
10922 * config/vms/t-vmsnative: New file.
10923
1c13f168
XDL
109242011-04-18 Xinliang David Li <davidxl@google.com>
10925
10926 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
10927
84825707
JJ
109282011-04-18 Jakub Jelinek <jakub@redhat.com>
10929
10930 PR middle-end/48661
10931 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
10932 if TREE_TYPE (v) is non-NULL.
10933
10934 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
10935 gimple_get_virt_mehtod_for_binfo.
10936 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
10937 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
10938 callers.
10939 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10940
7d4f8d02 109412011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
10942 Steve Ellcey <sje@cup.hp.com>
10943
7d4f8d02
EB
10944 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
10945 use its mode as source mode if it isn't VOIDmode.
7254cb57 10946
474e8e70
DCR
109472011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
10948
10949 * doc/passes.texi: Fill crossref nodes.
10950
cff41484
JM
109512011-04-18 Jim Meyering <meyering@redhat.com>
10952
7d4f8d02 10953 Fix doubled-word typos in comments and strings
cff41484
JM
10954 * config/alpha/vms-unwind.h: s/for for/for/
10955 * config/arm/unwind-arm.h: Likewise.
10956 * config/microblaze/microblaze.c: Likewise.
10957 * config/sh/constraints.md: s/in in/in/
10958 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
10959
f60c2554
UB
109602011-04-18 Uros Bizjak <ubizjak@gmail.com>
10961
10962 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
10963 (AVX_FLOAT_MODE_P): Ditto.
10964 (AVX128_VEC_FLOAT_MODE_P): Ditto.
10965 (AVX256_VEC_FLOAT_MODE_P): Ditto.
10966 (AVX_VEC_FLOAT_MODE_P): Ditto.
10967 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
10968 (UNSPEC_MASKSTORE): Ditto.
10969 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
10970 Merge from <sse>_movmsk<ssemodesuffix> and
10971 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
10972 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
10973 iterator.
10974 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
10975 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
10976 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
10977
09a2806f
JH
109782011-04-18 Jan Hubicka <jh@suse.cz>
10979
8a8dccb2
JH
10980 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
10981
09a2806f
JH
10982 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
10983 (want_inline_function_called_once_p): Break out the logic from
10984 ipa_inline.
10985 (edge_badness): Ensure that profile is not misupdated.
10986 (lookup_recursive_calls): Prioritize by call frequencies.
10987 (inline_small_functions): Move program size estimates here;
10988 actually process whole queue even when unit growth has been
10989 met. (to properly compute inline_failed reasons and for the
f60c2554 10990 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
10991 (ipa_inline): Remove unit summary code; first inline hot calls
10992 of functions called once, cold calls next.
10993 (order, nnodes): Remove unused variables.
10994 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
10995 (GTFILES): Remove ipa-inline.c
10996 * sel-sched.c (fill_insns): Silence uninitialized var warning.
10997
3eea52ef
EB
109982011-04-18 Eric Botcazou <ebotcazou@adacore.com>
10999
11000 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
11001
229a1c59 110022011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 11003 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
11004
11005 * arm.c (neon_builtin_type_bits): Remove.
11006 (typedef enum neon_builtin_mode): New.
11007 (T_MAX): Don't define.
11008 (typedef enum neon_builtin_datum): Remove bits, codes[],
11009 num_vars and base_fcode. Add mode, code and fcode.
11010 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
11011 VAR10): Change accordingly.
11012 (neon_builtin_data[]): Change accordingly
11013 (arm_init_neon_builtins): Change accordingly.
11014 (neon_builtin_compare): Remove.
11015 (locate_neon_builtin_icode): Remove.
11016 (arm_expand_neon_builtin): Change accordingly.
11017
11018 * arm.h (enum arm_builtins): Move to ...
11019 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
11020
11021 * arm.c (arm_builtin_decl): Declare.
11022 (TARGET_BUILTIN_DECL): Define.
11023 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
11024 (arm_builtin_decls[]): New.
11025 (arm_init_neon_builtins): Store builtin declarations in
11026 arm_builtin_decls[].
11027 (arm_init_tls_builtins): Likewise.
11028 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
11029 (arm_builtin_decl): New.
11030
75e802cc
RG
110312011-04-18 Richard Guenther <rguenther@suse.de>
11032
11033 * tree.c (upper_bound_in_type): Build properly canonicalized
11034 INTEGER_CSTs.
11035 (lower_bound_in_type): Likewise.
11036
3b45a007
RG
110372011-04-18 Richard Guenther <rguenther@suse.de>
11038
11039 * gimple.h (gimple_call_addr_fndecl): New function.
11040 (gimple_call_fndecl): Use it.
11041 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
11042 for direct calls.
11043 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
11044 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
11045
d25a79ea
RG
110462011-04-18 Richard Guenther <rguenther@suse.de>
11047
11048 PR middle-end/48650
11049 * tree.c (build_string): STRING_CST is now derived from tree_typed.
11050
7d5fc814
EB
110512011-04-18 Eric Botcazou <ebotcazou@adacore.com>
11052
11053 PR lto/48492
11054 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
11055 DECL_IN_CONSTANT_POOL without RTL.
11056
7e7cfcf6
UW
110572011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
11058 Ira Rosen <ira.rosen@linaro.org>
11059
11060 PR target/48252
11061 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
11062 to match neon_vzip/vuzp/vtrn_internal.
11063 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
11064 outputs explicitly dependent on both inputs.
11065 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
11066
49eab32e
JJ
110672011-04-18 Jakub Jelinek <jakub@redhat.com>
11068
11069 PR tree-optimization/48616
11070 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
11071 whether the shift is by scalar or vector based on whether all SLP
11072 scalar stmts have the same rhs.
11073
e54170f4
CLT
110742011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
11075
11076 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
11077 memory operands.
11078
b14ee6c9
RS
110792011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
11080
269e0e18 11081 PR target/43700
b14ee6c9
RS
11082 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
11083 registers.
11084
10158cd3
JH
110852011-04-17 Jan Hubicka <jh@suse.cz>
11086
11087 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
11088 * cgrpahunit.c (cgraph_finalize_function): Do not set
11089 finalized_by_frontend.
10158cd3
JH
11090 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
11091 finalized_by_frontend.
11092
2e9bb6ba
JH
110932011-04-17 Jan Hubicka <jh@suse.cz>
11094
11095 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
11096 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
11097 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
11098 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
11099 method.
2e9bb6ba
JH
11100 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
11101 gimple-fold.c
11102 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
11103
beb628e1
EB
111042011-04-17 Eric Botcazou <ebotcazou@adacore.com>
11105
11106 PR lto/48538
11107 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
11108 is non-null before accessing it.
11109 (input_cgraph): Remove trailing spaces.
11110
3e2fdd24
RE
111112011-04-17 Revital Eres <revital.eres@linaro.org>
11112
11113 * params.def (sms-min-sc): New param flag.
11114 * modulo-sched.c (sms_schedule): Use it.
11115 * doc/invoke.texi (sms-min-sc): Document it.
11116
4c0f7679
JH
111172011-04-17 Jan Hubicka <jh@suse.cz>
11118
11119 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
11120 present, also set gimple_call_set_cannot_inline.
11121 * ipa-inline.c: Update toplevel comment.
11122 (MAX_TIME): Remove.
11123 (cgraph_clone_inlined_nodes): Fix linebreaks.
11124 (cgraph_check_inline_limits): Restructure to ...
11125 (caller_growth_limits): ... this one; be more tolerant
11126 on growth in nested inline chains; add explanatory comment;
11127 fix stack accounting thinko introduced by previous patch.
11128 (cgraph_default_inline_p): Remove.
11129 (report_inline_failed_reason): New function.
11130 (can_inline_edge_p): New function.
11131 (can_early_inline_edge_p): New function.
11132 (leaf_node_p): Move upwards in file.
11133 (want_early_inline_function_p): New function.
11134 (want_inline_small_function_p): New function.
11135 (want_inline_self_recursive_call_p): New function.
11136 (cgraph_edge_badness): Rename to ...
11137 (edge_badness) ... this one; fix linebreaks.
11138 (update_edge_key): Update call of edge_baddness; add
11139 detailed dump about queue updates.
11140 (update_caller_keys): Use can_inline_edge_p and
11141 want_inline_small_function_p.
11142 (cgraph_decide_recursive_inlining): Rename to...
11143 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
11144 want_inline_self_recursive_call_p; simplify and remove no longer
11145 valid FIXME.
4c0f7679
JH
11146 (cgraph_set_inline_failed): Remove.
11147 (add_new_edges_to_heap): Use can_inline_edge_p and
11148 want_inline_small_function_p.
11149 (cgraph_decide_inlining_of_small_functions): Rename to ...
11150 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
11151 can/want predicates; cleanup debug ouput; work edges till fibheap
11152 is exhausted and do not stop once unit growth is reached; remove
11153 later loop processing remaining edges.
4c0f7679
JH
11154 (cgraph_flatten): Rename to ...
11155 (flatten_function): ... this one; use can_inline_edge_p
11156 and can_early_inline_edge_p predicates.
11157 (cgraph_decide_inlining): Rename to ...
11158 (ipa_inline): ... this one; remove unreachable nodes before
11159 inlining functions called once; simplify the pass.
11160 (cgraph_perform_always_inlining): Rename to ...
11161 (inline_always_inline_functions): ... this one; use
f60c2554 11162 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
11163 (cgraph_decide_inlining_incrementally): Rename to ...
11164 (early_inline_small_functions): ... this one; simplify
11165 using new predicates; cleanup; make dumps prettier.
11166 (cgraph_early_inlining): Rename to ...
11167 (early_inliner): newer inline regular functions into always-inlines;
11168 fix updating of call stmt summaries.
11169 (pass_early_inline): Update for new names.
11170 (inline_transform): Fix formating.
11171 (gate_cgraph_decide_inlining): Rename to ...
11172 (pass_ipa_inline): ... this one.
11173 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
11174 * ipa-inline-analysis.c (dump_inline_summary): Update.
11175 (compute_inline_parameters): Do not compute disregard_inline_limits;
11176 look for mismatching arguments.
11177 (estimate_growth): Fix handlig of non-trivial self recursion.
11178 (inline_read_summary): Do not read info->disregard_inline_limits.
11179 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
11180 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
11181 and move all checks into can_inline_edge_p predicate; re-enable code
11182 comparing optimization levels.
4c0f7679
JH
11183 (expand_call_inline): Do not test inline_forbidden_into_p.
11184 * Makefile.in (ipa-inline.o): Update arguments.
11185
54333b7c
RE
111862011-04-17 Revital Eres <revital.eres@linaro.org>
11187
11188 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
11189
42c2bf92
RE
111902011-04-17 Revital Eres <revital.eres@linaro.org>
11191
11192 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
11193
b183e9e0
MM
111942011-04-17 Michael Matz <matz@suse.de>
11195
11196 PR tree-optimization/48622
11197 PR lto/48645
11198 * ipa-inline-analysis.c (inline_read_summary): Read size/time
11199 in same order as they're written.
11200
b8a17fa2
JDA
112012011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11202
11203 * config/pa/predicates.md: Reorganize and simplify predicates.
11204 Eliminate duplicate code checks.
11205 (arith_operand): Rename to arith14_operand
11206 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
11207 * config/pa/pa.md: Use renamed operands.
11208 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
11209 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
11210 arith11_operand, adddi3_operand, indexed_memory_operand,
11211 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
11212 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
11213 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
11214 move_dest_operand, move_src_operand, prefetch_cc_operand,
11215 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
11216 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
11217 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
11218 div_operand, int5_operand, movb_comparison_operator,
11219 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
11220 arith_double_operand, ireg_operand, lhs_lshift_operand,
11221 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
11222 integer_store_memory_operand): Likewise.
11223 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
11224 (integer_store_memory_operand, read_only_operand,
11225 function_label_operand, borx_reg_operand,
11226 non_hard_reg_operand): Likewise.
11227 (eq_neq_comparison_operator): Delete unused operator.
11228 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
11229 function_label_operand.
11230 (emit_move_sequence): Likewise.
11231
8dfb9f16
UB
112322011-04-16 Uros Bizjak <ubizjak@gmail.com>
11233
11234 * config/i386/sse.md (sseunpackmode): New mode attribute.
11235 (ssepackmode): Ditto.
11236 (vec_pack_trunc_<mode>): Macroize expander from
11237 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
11238 (vec_unpacks_lo_<mode>): Macroize expander from
11239 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11240 (vec_unpacks_hi_<mode>): Macroize expander from
11241 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11242 (vec_unpacku_lo_<mode>): Macroize expander from
11243 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11244 (vec_unpacku_hi_<mode>): Macroize expander from
11245 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
11246 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
11247 ix86_expand_sse4_unpack.
11248 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
11249
e7f23018
JH
112502011-04-16 Jan Hubicka <jh@suse.cz>
11251
11252 * cgraphbuild.c: Include ipa-inline.h.
11253 (reset_inline_failed): Use initialize_inline_failed.
11254 * cgraph.c: Include ipa-inline.h.
11255 (cgraph_create_node_1): Do not initialize estimated_growth.
11256 (initialize_inline_failed): More to ipa-inline-analysis.c
11257 (dump_cgraph_node): Do not dump inline flags.
11258 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
11259 and disregard_inline_limits flags.
11260 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
11261 time, size, estimated_growth.
8dfb9f16
UB
11262 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
11263 Update.
e7f23018
JH
11264 * cgraphunit.c (cgraph_decide_is_function_needed): Use
11265 DECL_DISREGARD_INLINE_LIMITS.
11266 (cgraph_analyze_function): Do not initialize
11267 node->local.disregard_inline_limits.
11268 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
11269 inlinable, versionable and disregard_inline_limits.
11270 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
11271 cgraph_check_inline_limits, cgraph_default_inline_p,
11272 cgraph_edge_badness, update_caller_keys, update_callee_keys,
11273 add_new_edges_to_heap): Update.
11274 (cgraph_decide_inlining_of_small_function): Update; set
11275 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
11276 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
11277 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
11278 * ipa-inline.h (inline_summary): Add inlinable, versionable,
11279 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
11280 time, size and estimated_growth parameters.
e7f23018
JH
11281 (estimate_edge_growth): Update.
11282 (initialize_inline_failed): Declare.
11283 * ipa-split.c: Include ipa-inline.h
11284 (execute_split_functions): Update.
11285 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
11286 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
11287 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
11288 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
11289 estimated_growth to INT_MIN.
11290 (inline_node_duplication_hook): Likewise.
11291 (dump_inline_summary): Dump new fields.
11292 (compute_inline_parameters): Update.
11293 (estimate_edge_time, estimate_time_after_inlining,
11294 estimate_size_after_inlining, estimate_growth, inline_read_summary,
11295 inline_write_summary):
11296 (initialize_inline_failed): Move here from cgraph.c.
11297 * tree-sra.c: Include ipa-inline.h.
11298 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
11299 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
11300 ipa-inline.h.
e7f23018 11301
e81b8564
UB
113022011-04-16 Uros Bizjak <ubizjak@gmail.com>
11303
11304 * config/i386/sse.md (V16): New mode iterator.
11305 (VI1, VI8): Ditto.
11306 (AVXMODEQI, AVXMODEDI): Remove.
11307 (sse2, sse3): New mode attribute.
11308 (mov<mode>): Use V16 mode iterator.
11309 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
11310 (push<mode>1): Use V16 mode iterator.
11311 (movmisalign<mode>): Ditto.
11312 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
11313 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
11314 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
11315 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
11316 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
11317 avx_movdqu<avxmodesuffix>.
11318 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
11319 *avx_movdqu<avxmodesuffix>.
11320 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
11321 avx_lddqu<avxmodesuffix>.
11322 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
11323 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
11324 avx_movnt<AVXMODEDI:mode>.
11325 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
11326 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
11327
4743d438
BS
113282011-04-16 Bernd Schmidt <bernds@codesourcery.com>
11329
11330 PR target/48629
11331 * haifa-sched.c (prune_ready_list, schedule_block): Use
11332 sched_pressure_p rather than flag_sched_pressure.
11333
748f7574 113342011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
11335
11336 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11337 cgraph_get_node instead of cgraph_get_create_node.
11338
2ba172e0
JJ
113392011-04-15 Jakub Jelinek <jakub@redhat.com>
11340
11341 * cfgexpand.c (expand_debug_expr): Use
11342 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
11343
63d2a353
MM
113442011-04-15 Michael Matz <matz@suse.de>
11345
11346 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
11347 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
11348 * function.c (gimplify_parameters): Ditto.
11349 * gimplify.c (gimplify_vla_decl): Ditto.
11350
11351 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
11352 (gimple_call_set_alloca_for_var): New inline function.
11353 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
11354 * gimple.c (gimple_build_call_from_tree): Remember
11355 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
11356 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
11357
11358 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
11359 calls if they were for VLA objects.
11360
dee74c34
MJ
113612011-04-15 Martin Jambor <mjambor@suse.cz>
11362
11363 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
11364 of ADR_EXPRs.
11365
8e5837bc
MJ
113662011-04-15 Martin Jambor <mjambor@suse.cz>
11367
11368 PR middle-end/48601
11369 * tree-emutls.c (lower_emutls_function_body): Call
11370 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
11371 result is non-NULL.
11372
0dc33c3c
NP
113732011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
11374
11375 * c-decl.c (detect_field_duplicates): Call
11376 objc_detect_field_duplicates instead of objc_get_interface_ivars.
11377
edcdea5b
NF
113782011-04-15 Nathan Froyd <froydnj@codesourcery.com>
11379
11380 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
11381 * gimple.c (gimple_asm_clobbers_memory_p): Define.
11382 * ipa-pure-const.c (check_stmt): Call it.
11383 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
11384
8456558d
RG
113852011-04-15 Richard Guenther <rguenther@suse.de>
11386
11387 PR tree-optimization/48290
11388 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
11389 Properly decide inhibiting propagation based on the valueized
11390 operand. Do loop-closed SSA form preserving here ...
11391 (init_copy_prop): ... not here.
11392
266446be
L
113932011-04-15 H.J. Lu <hongjiu.lu@intel.com>
11394
11395 PR target/48612
11396 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
11397 (*ieee_smax<mode>3): Likewise.
11398
17465c6e
AK
113992011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11400
11401 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
11402 Replace match_operand with match_dup for the third operand in
11403 these expanders.
11404
bce204e5
MK
114052011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
11406
11407 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
11408 to track processing of conditionals. Update all callers.
11409 (try_combine, simplify_if_then_else): Update.
11410
3162fdf4
MK
114112011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
11412
11413 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
11414 -fsched-pressure.
11415
79002a57 114162011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 11417
79002a57
GJL
11418 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
11419 instead of match_operand for operand 3.
11420
4fd3a105
RS
114212011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
11422
11423 * recog.h (insn_operand_data): Add an "allows_mem" field.
11424 * genoutput.c (output_operand_data): Initialize it.
11425 * optabs.c (maybe_legitimize_operand_same_code): New function.
11426 (maybe_legitimize_operand): Use it when matching the original
11427 op->value.
11428
ad19c4be
EB
114292011-04-15 Eric Botcazou <ebotcazou@adacore.com>
11430
11431 * gimplify.c: Fix issues in comments throughout.
11432 (voidify_wrapper_expr): Fix long line.
11433 (build_stack_save_restore): Likewise.
11434 (gimplify_loop_expr): Likewise.
11435 (gimplify_compound_lval): Likewise.
11436 (gimplify_init_ctor_eval): Likewise.
11437 (gimplify_modify_expr_rhs): Likewise.
11438 (omp_notice_threadprivate_variable): Likewise.
11439
b25aa0e8 114402011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 11441
b25aa0e8
EB
11442 * cfgexpand.c (expand_call_stmt): Convert the function type to the
11443 original one if this is not a builtin function.
e7925582 11444
09db7afe
JJ
114452011-04-14 Jakub Jelinek <jakub@redhat.com>
11446
11447 PR target/48605
11448 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
11449 offset it as needed based on top 2 bits in operands[3], change
11450 MEM mode to SFmode and mask those 2 bits away from operands[3].
11451
c59633d9
NP
114522011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
11453
11454 * c-parser.c (c_parser_objc_protocol_definition): Updated for
11455 change from objc_declare_protocols() to objc_declare_protocol().
11456
5e60198b
UB
114572011-04-14 Uros Bizjak <ubizjak@gmail.com>
11458
11459 * config/i386/sse.md (sse4_1): New mode attribute.
11460 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
11461 avx_blend<ssemodesuffix><avxmodesuffix> and
11462 sse4_1_blend<ssemodesuffix> using VF mode iterator.
11463 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
11464 avx_blendv<ssemodesuffix><avxmodesuffix> and
11465 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
11466 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
11467 avx_dp<ssemodesuffix><avxmodesuffix> and
11468 sse4_1_dp<ssemodesuffix> using VF mode iterator.
11469 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
11470 (sse4_1_packusdw): Merge with *avx_packusdw.
11471 (sse4_1_pblendvb): Merge with *avx_pblendvb.
11472 (sse4_1_pblendw): Merge with *avx_pblendw.
11473 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
11474 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
11475 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
11476 VF mode iterator.
11477 (sse4_1_round<ssescalarmodesuffix>): Merge with
11478 *avx_round<ssescalarmodesuffix>.
11479 (aesenc): Merge with *avx_aesenc.
11480 (aesenclast): Merge with *avx_aesenclast.
11481 (aesdec): Merge with *avx_aesdec.
11482 (aesdeclast): Merge with *avx_aesdeclast.
11483 (pclmulqdq): Merge with *pclmulqdq.
11484 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
11485 New predicate.
11486 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
11487
6f197850
L
114882011-04-14 H.J. Lu <hongjiu.lu@intel.com>
11489
11490 PR middle-end/48608
11491 * cfgexpand.c (get_decl_align_unit): Renamed to ...
11492 (align_local_variable): This. Update DECL_ALIGN.
11493 (add_stack_var): Updated.
11494 (expand_one_stack_var): Likewise.
11495
4a5ba3ed
RG
114962011-04-14 Richard Guenther <rguenther@suse.de>
11497
11498 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
11499 Remove.
11500 (dse_initialize_block_local_data, dse_leave_block,
11501 record_voperand_set, get_stmt_uid): Likewise.
11502 (dse_possible_dead_store_p): Allow any kind of killing stmt.
11503 (dse_optimize_stmt): Remove voperand set handling code.
11504 Simplify and improve to handle any kind of killing stmt.
11505 (dse_record_phi): Remove.
11506 (dse_enter_block): Simplify.
11507 (tree_ssa_dse): Likewise.
11508 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
11509
10a5dd5d
JH
115102011-04-14 Jan Hubicka <jh@suse.cz>
11511
11512 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
11513 * cgraph.h (struct inline_summary): Move to ipa-inline.h
11514 (cgraph_local_info): Remove inline_summary.
11515 * ipa-cp.c: Include ipa-inline.h.
11516 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
11517 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
11518 accesor.
11519 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
11520 (input_overwrite_node): Do not set inline summary.
11521 (input_node): Do not stream inline summary.
11522 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
11523 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
11524 growth; we do not have inline parameters computed for that anyway.
11525 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
11526 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
11527 (inline_summary_t): New type and VECtor.
11528 (debug_inline_summary, dump_inline_summaries): Declare.
11529 (inline_summary): Use VOCtor.
11530 (estimate_edge_growth): Kill hack computing call stmt size directly.
11531 * lto-section-in.c (lto_section_name): Add inline section.
11532 * ipa-inline-analysis.c: Include lto-streamer.h
11533 (node_removal_hook_holder, node_duplication_hook_holder): New holders
11534 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
11535 (inline_summary_vec): Define.
11536 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
11537 dump_inline_summaries): New functions.
5e60198b
UB
11538 (estimate_function_body_sizes): Properly compute size/time of outgoing
11539 calls.
11540 (compute_inline_parameters): Alloc inline_summary; do not compute
11541 size/time of incomming calls.
10a5dd5d
JH
11542 (estimate_edge_time): Avoid missing time summary hack.
11543 (inline_read_summary): Read inline summary info.
11544 (inline_write_summary): Write inline summary info.
11545 (inline_free_summary): Free all hooks and inline summary vector.
11546 * lto-streamer.h: Add LTO_section_inline_summary section.
11547 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
11548 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
11549
b602d918
RS
115502011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
11551
11552 * tree-vectorizer.h (vect_strided_store_supported): Add a
11553 HOST_WIDE_INT argument.
11554 (vect_strided_load_supported): Likewise.
11555 (vect_permute_store_chain): Return void.
11556 (vect_transform_strided_load): Likewise.
11557 (vect_permute_load_chain): Delete.
11558 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
11559 count argument. Check that the count is a power of two.
11560 (vect_strided_load_supported): Likewise.
11561 (vect_permute_store_chain): Return void. Update after above changes.
11562 Assert that the access is supported.
11563 (vect_permute_load_chain): Likewise.
11564 (vect_transform_strided_load): Return void.
11565 * tree-vect-stmts.c (vectorizable_store): Update calls after
11566 above interface changes.
11567 (vectorizable_load): Likewise.
11568 (vect_analyze_stmt): Don't check for strided powers of two here.
11569
ab4472fa
RG
115702011-04-14 Richard Guenther <rguenther@suse.de>
11571
11572 PR tree-optimization/48590
11573 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
11574 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11575 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
11576 BUILT_IN_STACK_SAVE.
11577 * tree-ssa-dce.c (propagate_necessity): Handle
11578 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
11579
32dabdaf
NP
115802011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
11581
11582 * c-parser.c (c_parser_objc_class_declaration): Updated call to
11583 objc_declare_class.
11584
daade206
RG
115852011-04-14 Richard Guenther <rguenther@suse.de>
11586
11587 * tree.h (get_object_alignment_1): Declare.
11588 * builtins.c (get_object_alignment_1): Split out worker from ...
11589 (get_object_alignment): ... here.
11590 * fold-const.c (get_pointer_modulus_and_residue): Use
11591 get_object_alignment_1.
11592
920e8172
RS
115932011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
11594
11595 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
11596 type parameter.
11597 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
11598 parameter. Generalise code to handle arrays as well as vectors.
11599 (vect_setup_realignment): Update accordingly.
11600 * tree-vect-stmts.c (vectorizable_store): Likewise.
11601 (vectorizable_load): Likewise.
11602
5ce1ee7f
RS
116032011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
11604
11605 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
11606 within the per-copy loop.
11607
6438fe33 116082011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
11609
11610 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
11611 in the dump file.
11612
6438fe33 116132011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
11614
11615 * doc/options.texi (Negative): Explicitly mention that the
11616 Negative chain must be circular.
11617
61e46a7d
NF
116182011-04-14 Nathan Froyd <froydnj@codesourcery.com>
11619
11620 * function.h (block_chainon): Declare.
11621 * function.c (block_chainon): Define.
11622
43ea6502 116232011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 11624 Eric Weddington <eric.weddington@atmel.com>
748f7574 11625 Georg-Johann Lay <avr@gjlay.de>
5e60198b 11626
f60c2554 11627 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
11628 New Includes
11629 (avr_init_builtins, avr_expand_builtin,
11630 avr_expand_delay_cycles, avr_expand_unop_builtin,
11631 avr_expand_binop_builtin ): New functions.
11632 (avr_builtin_id): New enum
11633 (struct avr_builtin_description): New struct
11634 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
11635 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 11636
43ea6502 11637 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 11638 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
11639 UNSPECV_DELAY_CYCLES): new enumeration values
11640 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
11641 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
11642 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
11643 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
11644 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
11645 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
11646 "fmulsu"): New insns
5e60198b 11647
43ea6502
AS
11648 * config/avr/avr-c.c: fix line endings
11649 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
11650 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
11651 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
11652 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
11653 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 11654
43ea6502
AS
11655 * doc/extend.texi (AVR Built-in Functions): New node
11656 (Target Builtins): Add documentation of AVR
11657 built-in functions.
11658
8a9b55f3
GJL
116592011-04-14 Georg-Johann Lay <avr@gjlay.de>
11660
11661 PR target/44643
11662 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
11663 alone. Error if non-const data has attribute progmem.
11664
94bd1825
NF
116652011-04-13 Nathan Froyd <froydnj@codesourcery.com>
11666
11667 * tree.h (struct tree_constructor): Include tree_typed instead of
11668 tree_common.
11669 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
11670 TS_TYPED instead of TS_COMMON.
11671
5e60198b 116722011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
11673
11674 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
11675 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
11676 (sse2_psadbw): Merge with *avx_psadbw.
11677 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
11678 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
11679 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
11680 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
11681 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
11682 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
11683 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
11684 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
11685 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
11686 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
11687 (ssse3_palignrti): Merge with *avx_palignrti.
11688
4b1a4694
NF
116892011-04-13 Nathan Froyd <froydnj@codesourcery.com>
11690
11691 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
11692 * tree-ssanames.c (fini_ssanames): VEC_free it.
11693 (make_ssa_name_fn): Update for VECness of free_ssanames.
11694 (release_ssa_name, release_dead_ssa_names): Likewise.
11695 * tree.h (struct tree_ssa_name): Include tree_typed instead of
11696 tree_common.
11697 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
11698 TS_TYPED instead of TS_COMMON.
11699
4da3b811
NF
117002011-04-13 Nathan Froyd <froydnj@codesourcery.com>
11701
11702 * postreload-gcse.c (gcse_after_reload_main): Add calls to
11703 statistics_counter_event.
11704 * tree-ssa-copyrename.c (stats): Define.
11705 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
11706 statistics_counter_event.
11707 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
11708 (bswap_stats, widen_mul_stats): Define.
11709 (insert_reciprocals): Increment rdivs_inserted.
11710 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
11711 rfuncs_inserted. Add calls to statistics_counter_event.
11712 (execute_cse_sincos_1): Increment inserted.
11713 (execute_cse_sincos): Zeroize sincos_stats. Add call to
11714 statistics_counter_event.
11715 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
11716 of bswap_stats. Add calls to statistics_counter_event.
11717 (convert_mult_to_widen): Increment widen_mults_inserted.
11718 (convert_plusminus_to_widen): Increment maccs_inserted.
11719 (convert_mult_to_fma): Increment fmas_inserted.
11720 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
11721 calls to statistics_counter_event.
11722
89fa552a
VM
117232011-04-13 Vladimir Makarov <vmakarov@redhat.com>
11724
11725 PR rtl-optimization/48455
11726 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
11727 `temp_costs->mem_cost'.
11728
03dfc36d
JH
117292011-04-13 Jan Hubicka <jh@suse.cz>
11730
11731 * ipa-inline.h: New file.
11732 * ipa-inline-analysis.c: New file. Broken out of ...
11733 * ipa-inline.c: ... this file; update toplevel comment;
11734 include ipa-inline.h
11735 (inline_summary): Move to ipa-inline.h
11736 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
11737 ipa-inline-analysis.c.
7d4f8d02
EB
11738 (cgraph_estimate_time_after_inlining): Rename to
11739 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
11740 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
11741 to estimate_edge_growth.
11742 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
11743 rename to estimate_size_after_inlining.
11744 (cgraph_mark_inline_edge): Update for new naming convention.
11745 (cgraph_check_inline_limits): Likewise.
11746 (cgraph_edge_badness): Likewise.
11747 (cgraph_decide_recursive_inlining): Likewise.
11748 (cgraph_decide_inlining_of_small_functions): Likewise.
11749 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
11750 (cgraph_estimate_growth): Rename to estimate_growth; move to
11751 ipa-inline-analysis.c.
03dfc36d
JH
11752 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
11753 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
11754 (compute_inline_parameters): Likewise.
11755 (compute_inline_parameters_for_current): Likewise.
11756 (pass_inline_parameters): Likewise.
11757 (inline_indirect_intraprocedural_analysis): Likewise.
11758 (analyze_function): Rename to inline_analyze_function; likewise.
11759 (add_new_function): Move to ipa-inline-analysis.c.
11760 (inline_generate_summary): Likewise.
11761 (inline_read_summary): Likewise.
11762 (inline_write_summary): Likewise.
11763 * Makefile.in (ipa-inline-analysis.c): New file.
11764
7673c962
RO
117652011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11766
11767 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
11768 * configure: Regenerate.
11769
9698252f
NF
117702011-04-13 Nathan Froyd <froydnj@codesourcery.com>
11771
11772 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
11773 instead of tree_common.
11774 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
11775 Likewise.
11776 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
11777 TS_TYPED rather than TS_COMMON.
11778 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
11779
3a7bfdd5
GJL
117802011-04-01 Georg-Johann Lay <avr@gjlay.de>
11781
11782 PR target/45263
86d83530
GJL
11783 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
11784 r20 around calls of __tablejump_elpm__
3a7bfdd5 11785
20790697
JJ
117862011-04-13 Jakub Jelinek <jakub@redhat.com>
11787
11788 PR middle-end/48591
11789 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
11790 NULL.
11791 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
11792
094d7661
BS
117932011-04-13 Bernd Schmidt <bernds@codesourcery.com>
11794
11795 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
11796 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
11797 (cfi_vec): New typedef.
11798 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
11799 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
11800 (cie_cfi_vec): New static variable.
11801 (cie_cfi_head): Delete.
11802 (add_cfi): Accept a cfi_vec * as first argument. All callers and
11803 declaration changed. Use vector rather than list operations.
11804 (new_cfi): Don't initialize the dw_cfi_next field.
11805 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
11806 rather than list operations.
11807 (lookup_cfa): Use vector rather than list operations.
11808 (output_cfis): New argument upto. Accept a cfi_vec rather than
11809 a dw_cfi_ref list head as argument. All callers changed.
11810 Iterate over the vector using upto as a maximum index.
11811 (output_all_cfis): New static function.
11812 (output_fde): Use vector rather than list operations. Use the
11813 new upto argument for output_cfis rather than manipulating a
11814 list.
11815 (dwarf2out_begin_prologue): Change initializations to match
11816 new struct members.
11817 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
11818 from the vector length rather than searching for the end of a list.
11819 Use output_all_cfis.
11820 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
11821
673a5740
NC
118222011-04-13 Nick Clifton <nickc@redhat.com>
11823
11824 * config/rx/rx.md (movmemsi): Do not use this pattern when
11825 volatile pointers are involved.
11826
1ee8b298
UB
118272011-04-13 Uros Bizjak <ubizjak@gmail.com>
11828
11829 * config/i386/sse.md (pinsrbits): Remove.
11830 (sse2_packsswb): Merge with *avx_packsswb.
11831 (sse2_packssdw): Merge with *avx_packssdw.
11832 (sse2_packuswb): Merge with *avx_packuswb.
11833 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
11834 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
11835 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
11836 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
11837 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
11838 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
11839 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
11840 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
11841 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
11842 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
11843 (sse2_loadld): Merge with *avx_loadld.
11844 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
11845 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
11846 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
11847 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
11848 (vec_concatv2di): Merge with *vec_concatv2di_avx.
11849
81f653d6
NF
118502011-04-12 Nathan Froyd <froydnj@codesourcery.com>
11851
11852 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
11853 calling TREE_CHAIN.
11854 * print-tree.c (print_node): Likewise.
11855 * tree-inline.c (copy_tree_r): Likewise.
11856 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
11857 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
11858 instead of TS_COMMON.
11859 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
11860 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
11861 (copy_node_stat): Zero TREE_CHAIN only if necessary.
11862 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
11863 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
11864 ...and these...
11865 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
11866 * tree.h: ...here.
11867 (TREE_CHAIN): Check for a TS_COMMON structure.
11868 (TREE_TYPE): Check for a TS_TYPED structure.
11869
748f7574 118702011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
11871
11872 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11873 cgraph_get_create_node instead of cgraph_node.
11874
eb345401
NP
118752011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
11876
11877 * c-parser.c (c_parser_initelt): Updated call to
11878 objc_build_message_expr.
11879 (c_parser_postfix_expression): Likewise.
11880
a6c46762
KT
118812011-04-12 Kai Tietz <ktietz@redhat.com>
11882
11883 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
11884 MASK_MS_BITFIELD_LAYOUT bit.
11885
b4ccfed9
JJ
118862011-04-12 Jakub Jelinek <jakub@redhat.com>
11887
11888 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
11889 assert it is always true.
11890 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
11891 moves.
11892
0d8a2528
NP
118932011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
11894
11895 * c-parser.c (c_lex_one_token): Rewritten conditional used when
11896 compiling Objective-C to be more efficient.
11897
06bd234a
AF
118982011-04-12 Axel Freyn <axel-freyn@gmx.de>
11899
11900 * opts-common.c (decode_cmdline_options_to_array): Remove variable
11901 argv_copied.
11902
28569ac3
RS
119032011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
11904
11905 * recog.h, genoutput.c, optabs.c: Revert last patch.
11906
ae59e00d
RR
119072011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11908
81b1e7eb
UB
11909 PR target/48090
11910 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 11911
cff1b7e0
RS
119122011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
11913
11914 * recog.h (insn_operand_data): Add an "allows_mem" field.
11915 * genoutput.c (output_operand_data): Initialize it.
11916 * optabs.c (maybe_legitimize_operand_same_code): New function.
11917 (maybe_legitimize_operand): Use it when matching the original
11918 op->value.
11919
77059241
RS
119202011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
11921
11922 * genpreds.c (process_define_predicate): Move most processing
11923 to gensupport.c. Continue to validate the expression.
11924 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
11925 (process_define_predicate): Move processing to gensupport.c.
11926 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
11927 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
11928 (compute_predicate_codes): Moved from genrecog.c. Add lineno
11929 argument.
11930 (valid_predicate_name_p): New function, split out from old
11931 genpreds.c:process_define_predicate.
11932 (process_define_predicate): New function, combining code from
11933 old genpreds.c and genrecog.c functions.
11934 (process_rtx): Call it for DEFINE_PREDICATE and
11935 DEFINE_SPECIAL_PREDICATE.
11936
6308e208
RS
119372011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
11938
11939 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
11940 size of a '%A' memory reference.
11941 (T_DREG, T_QREG): New neon_builtin_type_bits.
11942 (arm_init_neon_builtins): Assert that the load and store operands
11943 are neon_struct_operands.
11944 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
11945 (NEON_ARG_MEMORY): New builtin_arg.
11946 (neon_dereference_pointer): New function.
11947 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
11948 Handle NEON_ARG_MEMORY.
11949 (arm_expand_neon_builtin): Update after above interface changes.
11950 Use NEON_ARG_MEMORY for loads and stores.
11951 * config/arm/predicates.md (neon_struct_operand): New predicate.
11952 * config/arm/iterators.md (V_two_elem): Tweak formatting.
11953 (V_three_elem): Use BLKmode for accesses that have no associated mode.
11954 (V_four_elem): Tweak formatting.
11955 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
11956 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
11957 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
11958 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
11959 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
11960 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
11961 (neon_vst4<mode>): Replace pointer operand with a memory operand.
11962 Use %A in the output template.
11963 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
11964 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
11965 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
11966 the width of the memory access. Remove post-increment.
11967 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
11968
e5db8f2f
NC
119692011-04-12 Nick Clifton <nickc@redhat.com>
11970
11971 * config/v850/v850.c (expand_prologue): Do not use the CALLT
11972 instruction for interrupt handlers if the target is the basic V850
11973 architecture.
11974 (expand_epilogue): Likewise.
11975
74f091d6
JJ
119762011-04-12 Jakub Jelinek <jakub@redhat.com>
11977
11978 PR rtl-optimization/48549
11979 * combine.c (propagate_for_debug): Also stop after BB_END of
11980 this_basic_block. Process LAST and just stop processing after it.
11981 (combine_instructions): If last_combined_insn has been deleted,
11982 set last_combined_insn to its PREV_INSN.
11983
f20ca725
RG
119842011-04-12 Richard Guenther <rguenther@suse.de>
11985
11986 PR tree-optimization/46076
11987 * gimple.h (struct gimple_statement_call): Add fntype field.
11988 (gimple_call_fntype): Adjust.
11989 (gimple_call_set_fntype): New function.
11990 * gimple.c (gimple_build_call_1): Set the call function type.
11991 * gimplify.c (gimplify_call_expr): Preserve the function
11992 type the frontend used for the call.
11993 (gimplify_modify_expr): Likewise.
11994 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
11995 function type.
11996 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
11997 function type.
11998 * tree-ssa.c (useless_type_conversion_p): Function pointer
11999 conversions are useless.
12000
a358e188
MJ
120012011-04-12 Martin Jambor <mjambor@suse.cz>
12002
12003 * cgraph.h (cgraph_node): Remove function declaration.
12004 (cgraph_create_node): Declare.
12005 (cgraph_get_create_node): Likewise.
12006 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
12007 Updated all callers.
12008 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
12009 the decl does not already exist. Call cgraph_get_create_node instead
12010 of cgraph_node.
12011 (cgraph_get_create_node): New function.
12012 (cgraph_same_body_alias): Update comment.
12013 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
12014 assert it does not return NULL.
12015 (cgraph_update_edges_for_call_stmt): Likewise.
12016 (cgraph_clone_edge): Likewise.
12017 (cgraph_create_virtual_clone): Likewise.
12018 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
12019 instead of cgraph_node.
12020 (cgraph_add_new_function): Call cgraph_create_node or
12021 cgraph_get_create_node instead of cgraph_node.
12022 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
12023 instead of cgraph_node.
12024 (record_eh_tables): Likewise.
12025 (mark_address): Likewise.
12026 (mark_load): Likewise.
12027 (build_cgraph_edges): Call cgraph_get_create_node instead
12028 of cgraph_node.
12029 (rebuild_cgraph_edges): Likewise.
12030 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
12031 instead of cgraph_node.
12032 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
12033 cgraph_node.
12034 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
12035 cgraph_create_node instead of cgraph_node.
12036 * c-decl.c (finish_function): Call cgraph_get_create_node instead
12037 of cgraph_node.
12038 * lto-cgraph.c (input_node): Likewise.
12039 * lto-streamer-in.c (input_function): Likewise.
12040 * varasm.c (mark_decl_referenced): Likewise.
12041 (assemble_alias): Likewise.
12042
fe660d7b
MJ
120432011-04-12 Martin Jambor <mjambor@suse.cz>
12044
12045 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
12046 instead of cgraph_node and assert it does not return NULL.
12047 * lto-streamer-in.c (lto_read_body): Likewise.
12048 * omp-low.c (new_omp_context): Likewise.
12049 (create_task_copyfn): Likewise.
12050 * tree-emutls.c (lower_emutls_function_body): Likewise.
12051 * matrix-reorg.c (transform_allocation_sites): Likewise.
12052
bae5cddf
JJ
120532011-04-12 Jakub Jelinek <jakub@redhat.com>
12054
12055 PR c/48552
12056 * c-typeck.c (build_asm_expr): Error out on attempts to use
12057 void type outputs or inputs for constraints that allow reg or
12058 don't allow memory.
12059
06eb52ca
CLT
120602011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
12061 Richard Earnshaw <rearnsha@arm.com>
12062
12063 PR target/48250
12064 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
12065 to use sign-magnitude offsets. Reject unsupported unaligned
12066 cases. Add detailed description in comments.
12067 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
12068 condition from TARGET_32BIT to TARGET_ARM.
12069
648a616b
NF
120702011-04-11 Nathan Froyd <froydnj@codesourcery.com>
12071
12072 * tree.h (struct typed_tree): New.
12073 (struct tree_common): Include it instead of tree_base.
12074 (TREE_TYPE): Update for new location of type field.
12075 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
12076 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
12077 (union tree_node): Add typed field.
12078 * treestruct.def (TS_TYPED): New.
12079 * lto-streamer.c (check_handled_ts_structures): Handle it.
12080 * tree.c (MARK_TS_TYPED): New macro.
12081 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
12082
1e6d1da0
EB
120832011-04-11 Eric Botcazou <ebotcazou@adacore.com>
12084
12085 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
12086 (force_nonfallthru): Do not alter the loop nest if no basic block
12087 was created.
12088
120892011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
12090
12091 * config/i386/sse.md (VI): New mode iterator.
12092 (SSEMODEI): Remove.
12093 (AVX256MODEI): Ditto.
12094 (AVXMODEF4P): Ditto.
12095 (avxvecpsmode): Ditto.
12096 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
12097 (sse2_andnot<mode>3): New expander.
12098 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
12099 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
12100 (<any_logic:code><mode>3): Use VI mode iterator.
12101 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
12102 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
12103 (*andnottf3): Handle AVX three-operand constraints.
12104 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
12105
b1372d5d 121062011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 12107 Robert Millan <rmh@gnu.org>
b1372d5d
JM
12108
12109 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
12110 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
12111 GNU_USER_DYNAMIC_LINKER64): Define.
12112 (REG_NAME): Don't undefine.
12113 (MD_UNWIND_SUPPORT): Undefine.
12114 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
12115 (REG_NAME): Don't undefine.
12116 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 12117 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 12118
761c0c6e
JM
121192011-04-11 Joseph Myers <joseph@codesourcery.com>
12120
12121 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
12122 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
12123
26e0228f
XDL
121242011-04-11 Xinliang David Li <davidxl@google.com>
12125
12126 * value-profile.c (check_ic_target): New function.
12127 (gimple_ic_transform): Sanity check indirect call target.
12128 * gimple-low.c (gimple_check_call_args): Interface change.
12129 (gimple_check_call_matching_types): New function.
12130 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
12131
121322011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
12133
12134 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
12135 tree-pretty-print.h & realmpfr.h.
12136
a58dfa49
VM
121372011-04-11 Vladimir Makarov <vmakarov@redhat.com>
12138
12139 PR middle-end/48464
12140 * ira.c (setup_pressure_classes): Fix typo in loop condition.
12141 (setup_allocno_and_important_classes): Ditto.
12142
107fd1c1
JM
121432011-04-11 Joseph Myers <joseph@codesourcery.com>
12144
12145 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
12146 GNU_USER_DYNAMIC_LINKER.
12147 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
12148 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12149 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
12150 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
12151 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
12152 GNU_USER_TARGET_OS_CPP_BUILTINS.
12153 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
12154 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12155 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
12156 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12157 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
12158 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
12159 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
12160 GNU_USER_TARGET_OS_CPP_BUILTINS.
12161 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12162 GNU_USER_DYNAMIC_LINKER.
12163 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
12164 GNU_USER_TARGET_OS_CPP_BUILTINS.
12165 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
12166 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12167 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
12168 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12169 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
12170 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
12171 GNU_USER_DYNAMIC_LINKER64): Remove.
12172 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
12173 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12174 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12175 GNU_USER_DYNAMIC_LINKER.
12176 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
12177 GNU_USER_TARGET_OS_CPP_BUILTINS.
12178 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
12179 GNU_USER_TARGET_OS_CPP_BUILTINS.
12180 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
12181 to GNU_USER_TARGET_OS_CPP_BUILTINS.
12182 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
12183 GNU_USER_TARGET_OS_CPP_BUILTINS.
12184 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
12185 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
12186 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
12187 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
12188 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12189 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12190 GNU_USER_DYNAMIC_LINKER.
12191 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
12192 GNU_USER_TARGET_OS_CPP_BUILTINS.
12193 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
12194 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12195 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12196 GNU_USER_DYNAMIC_LINKER.
12197 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
12198 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12199 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
12200 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12201 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12202 GNU_USER_DYNAMIC_LINKER.
12203 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
12204 GNU_USER_DYNAMIC_LINKERN32.
12205 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
12206 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
12207 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
12208 GNU_USER_DYNAMIC_LINKER32.
12209 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
12210 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12211 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12212 GNU_USER_DYNAMIC_LINKER.
12213 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
12214 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12215 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
12216 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 12217 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
12218 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
12219 GNU_USER_DYNAMIC_LINKER32.
12220 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
12221 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
12222 GNU_USER_DYNAMIC_LINKER.
12223 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
12224 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12225 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
12226 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
12227 GNU_USER_DYNAMIC_LINKER64.
12228 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
12229 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12230 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12231 GNU_USER_DYNAMIC_LINKER.
12232 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
12233 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12234 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
12235 GNU_USER_DYNAMIC_LINKER.
12236 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
12237 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12238 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
12239 GNU_USER_DYNAMIC_LINKER32.
12240 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
12241 GNU_USER_DYNAMIC_LINKER64.
12242 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
12243 GNU_USER_DYNAMIC_LINKER64.
12244 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
12245 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
12246 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
12247 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 12248 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 12249
e24609cf
JM
122502011-04-11 Joseph Myers <joseph@codesourcery.com>
12251
12252 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
12253 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
12254 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
12255 GNU_USER_DYNAMIC_LINKER.
12256 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
12257 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
12258 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
12259 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
12260 GNU_USER_DYNAMIC_LINKER64.
12261 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
12262 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
12263 GNU_USER_LINK_EMULATION.
12264 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
12265 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
12266 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
12267 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
12268 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
12269 CPP_SPEC, CC1_SPEC): Remove.
12270 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
12271 (GNU_USER_DYNAMIC_LINKER): Define.
12272 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
12273 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
12274 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
12275 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
12276 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
12277 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
12278 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
12279 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
12280 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
12281 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
12282 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
12283 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
12284 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
12285 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
12286 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
12287 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
12288 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12289 GNU_USER_DYNAMIC_LINKER.
12290 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12291 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
12292 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12293 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
12294 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
12295 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
12296 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
12297 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
12298 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 12299 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 12300
b8ce4e94
KT
123012011-04-11 Kai Tietz <ktietz@redhat.com>
12302
12303 PR target/9601
12304 PR target/11772
12305 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
12306 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
12307 comment.
12308 (ix86_is_msabi_thiscall): Removed.
12309 (ix86_is_type_thiscall): Likewise.
12310 (ix86_get_callcvt): New function.
12311 (ix86_comp_type_attributes): Simplify check.
12312 (ix86_function_regparm): Use ix86_get_callcvt for calling
12313 convention attribute checks.
12314 (ix86_return_pops_args): Likewise.
12315 (ix86_static_chain): Likewise.
12316 (x86_this_parameter): Likewise.
12317 (x86_output_mi_thunk): Likewise.
12318 (ix86_function_type_abi): Optimize check for types without attributes.
12319 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
12320 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
12321 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
12322 by flag-values.
12323 (IX86_BASE_CALLCVT): Helper macro.
12324 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
12325 Use ix86_get_callcvt for calling convention attribute checks and avoid
12326 symbol-decoration for stdcall in TARGET_RTD case.
12327 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
12328 Likewise.
12329 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
12330 for declaration.
12331
798dd0ba
UB
123322011-04-11 Uros Bizjak <ubizjak@gmail.com>
12333
12334 * config/i386/sse.md (VI_128): New mode iterator.
12335 (VI12_128): Rename from SSEMODE12.
12336 (VI14_128): Rename from SSEMODE14.
12337 (VI124_128): New mode iterator.
12338 (VI24_128): Rename from SSEMODE248.
12339 (VI248_128): Rename from SSEMODE248.
12340 (SSEMODE124C8): Remove.
12341 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12342 (*sse2_<plusminus_insn><mode>3): Merge with
12343 *avx_<plusminus_insn><mode>3.
12344 (*mulv8hi3): Merge with *avx_mulv8hi3.
12345 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
12346 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
12347 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
12348 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
12349 (ashr<mode>3): Merge with *avx_ashr<mode>3.
12350 (lshr<mode>3): Merge with *avx_lshr<mode>3.
12351 (ashl<mode>3): Merge with *avx_ashl<mode>3.
12352 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
12353 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
12354 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12355 (*<smaxmin:code>v8hi3): Ditto.
12356 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
12357 (*<smaxmin:code>v16qi3): Ditto.
12358 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
12359 (*sse2_eq<mode>3): Ditto.
12360 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
12361 (*sse2_gt<mode>3): Ditto.
12362 (vcondv2di): Split out of vcond<mode>.
12363 (vconduv2di): Split out of vcondu<mode>.
12364
956011be
RG
123652011-04-11 Richard Guenther <rguenther@suse.de>
12366
12367 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
12368 before calling tree_low_cst.
12369
e6313a78
RG
123702011-04-11 Richard Guenther <rguenther@suse.de>
12371
12372 * stor-layout.c (layout_type): Compute all array index size operations
12373 in the original type.
12374 (initialize_sizetypes): Add comment.
12375 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
12376
e69d7376
JM
123772011-04-11 Joseph Myers <joseph@codesourcery.com>
12378
12379 * common.opt (Tbss=, Tdata=, Ttext=): New options.
12380
9f9ebcdf
MJ
123812011-04-11 Martin Jambor <mjambor@suse.cz>
12382
12383 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
12384 of cgraph_node, handle NULL return value.
12385 (cgraph_global_info): Likewise.
12386 (cgraph_rtl_info): Likewise.
12387 * tree-inline.c (estimate_num_insns): Likewise.
12388 * gimplify.c (unshare_body): Likewise.
12389 (unvisit_body): Likewise.
12390 (gimplify_body): Likewise.
12391 * predict.c (optimize_function_for_size_p): Likewise.
12392 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
12393 (call_may_clobber_ref_p_1): Likewise.
12394 * varasm.c (function_section_1): Likewise.
12395 (assemble_start_function): Likewise.
12396
581985d7
MJ
123972011-04-11 Martin Jambor <mjambor@suse.cz>
12398
12399 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
12400 of cgraph_node.
12401 * final.c (rest_of_clean_state): Likewise.
12402 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
12403 * passes.c (pass_init_dump_file): Likewise.
12404 (execute_all_ipa_transforms): Likewise.
12405 (function_called_by_processed_nodes_p): Likewise.
12406 * predict.c (maybe_hot_frequency_p): Likewise.
12407 (probably_never_executed_bb_p): Likewise.
12408 (compute_function_frequency): Likewise.
12409 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
12410 (unnest_nesting_tree_1): Likewise.
12411 (lower_nested_functions): Likewise.
12412 * tree-optimize.c (execute_fixup_cfg): Likewise.
12413 (tree_rest_of_compilation): Likewise.
12414 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
12415 * tree-sra.c (ipa_early_sra): Likewise.
12416 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
12417 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
12418 * ipa.c (record_cdtor_fn): Likewise.
12419 * ipa-inline.c (cgraph_early_inlining): Likewise.
12420 (compute_inline_parameters_for_current): Likewise.
12421 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
12422 * ipa-pure-const.c (local_pure_const): Likewise.
12423 * ipa-split.c (split_function): Likewise.
12424 (execute_split_functions): Likewise.
12425 * cgraphbuild.c (build_cgraph_edges): Likewise.
12426 (rebuild_cgraph_edges): Likewise.
12427 (cgraph_rebuild_references): Likewise.
12428 (remove_cgraph_callee_edges): Likewise.
12429 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
12430 (verify_cgraph_node): Likewise.
12431 (cgraph_analyze_functions): Likewise.
12432 (cgraph_preserve_function_body_p): Likewise.
12433 (save_inline_function_body): Likewise.
12434 (save_inline_function_body): Likewise.
12435 * tree-inline.c (copy_bb): Likewise.
12436 (optimize_inline_calls): Likewise.
12437
57dbdc5a
MJ
124382011-04-11 Martin Jambor <mjambor@suse.cz>
12439
12440 PR tree-optimization/48195
12441 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
12442 ipa_check_create_edge_args.
12443 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
12444 ipa_check_create_edge_args.
12445 * ipa-inline.c (inline_generate_summary): Do not call
12446 ipa_check_create_node_params and ipa_check_create_edge_args.
12447 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
12448 ipa_check_create_edge_args.
12449
d108e679
AS
124502011-04-09 Anatoly Sokolov <aesok@post.ru>
12451
12452 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
12453 instead of loop.
12454 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
12455 * function.c (record_hard_reg_sets): Likewise.
12456 * ira.c (compute_regs_asm_clobbered): Likewise.
12457 * sched-deps.c (sched_analyze_1): Likewise.
12458 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
12459
3411bc59
XDL
124602011-04-09 Xinliang David Li <davidxl@google.com>
12461
12462 PR tree-optimization/PR48484
12463 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
12464 has_valid_pred lazily
12465
b365495a
DS
124662011-04-09 Duncan Sands <baldrick@free.fr>
12467
12468 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
12469
68bc509a
EB
124702011-04-08 Eric Botcazou <ebotcazou@adacore.com>
12471
12472 * combine.c (combine_validate_cost): Adjust comments. Set registered
12473 cost of I0 to zero at the end, if any.
12474
041e059f
XDL
124752011-04-08 Xinliang David Li <davidxl@google.com>
12476
68bc509a
EB
12477 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
12478 to insane profile data.
041e059f 12479
444b3995
XDL
124802011-04-08 Xinliang David Li <davidxl@google.com>
12481
12482 * ipa-cp.c (ipcp_update_profiling): Correct
12483 negative scale factor due to insane profile data.
12484
6a801cf2
XDL
124852011-04-08 Xinliang David Li <davidxl@google.com>
12486
12487 * final.c (dump_basic_block_info): New function.
12488 (final): Dump basic block.
12489 (final_scan_insn): Remove old dump.
12490
d5f3624e
SK
124912011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
12492
68bc509a
EB
12493 PR target/47829
12494 * config.gcc (i386-*-freebsd): Disable unwind table generation for
12495 crtbegin/crtend.
d5f3624e 12496
42821aff
MM
124972011-04-08 Michael Matz <matz@suse.de>
12498
12499 PR middle-end/48389
12500 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
12501 functions.
12502 (rebuild_jump_labels): Call rebuild_jump_labels_1.
12503 * rtl.h (rebuild_jump_labels_chain): Declare.
12504 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
12505 insns inserted on edges.
12506
ad7be009
JM
125072011-04-08 Joseph Myers <joseph@codesourcery.com>
12508
12509 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
12510 * config/arm/arm-arches.def: New.
12511 * config/arm/arm-opts.h: New.
12512 * config/arm/genopt.sh: New.
12513 * config/arm/arm-tables.opt: New (generated).
12514 * config/arm/arm.c (arm_handle_option, arm_target_help,
12515 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
12516 (all_architectures): Get most table contents from arm-arches.def.
12517 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
12518 arm_selected_tune here.
12519 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
12520 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
12521 (march=, mcpu=, mtune=): Use Enum and Var.
12522 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
12523 (arm.o): Update dependencies.
ecbb6fb7 12524
42821aff 125252011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
12526
12527 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
12528 of header_file.
12529 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
12530 (write_typed_alloc_defns): Likewise.
12531 (main): Calls write_typed_alloc_defns with output_header.
12532
8d189b3f
VM
125332011-04-08 Vladimir Makarov <vmakarov@redhat.com>
12534
68bc509a 12535 PR inline-asm/48435
8d189b3f
VM
12536 * ira-color.c (setup_profitable_hard_regs): Add comments.
12537 Don't take prohibited hard regs into account.
12538 (setup_conflict_profitable_regs): Rename to
12539 get_conflict_profitable_regs.
12540 (check_hard_reg_p): Check prohibited hard regs.
12541
44f370bf
NF
125422011-04-08 Nathan Froyd <froydnj@codesourcery.com>
12543
12544 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
12545 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
12546 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
12547
483d7ad3
JDA
125482011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12549
12550 PR target/48366
12551 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 12552 move from floating point to shift amount register.
483d7ad3
JDA
12553 (emit_move_sequence): Remove secondary reload support for floating
12554 point to shift amount amount register copies.
12555 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
12556 amount register copies.
12557 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
12558 register, return false if mode isn't a scalar integer mode.
12559 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
12560
97e03fa1
RG
125612011-04-08 Richard Guenther <rguenther@suse.de>
12562
12563 * gimple.c (gimple_call_flags): Remove kludge.
12564
9d40778b
AM
125652011-04-08 Alexander Monakov <amonakov@ispras.ru>
12566
12567 * sel-sched.c (sel_region_init): Move call to
12568 sel_setup_region_sched_flags after setup_current_loop_nest.
12569
19ac7892
AB
125702011-04-08 Andrey Belevantsev <abel@ispras.ru>
12571
12572 PR rtl-optimization/48272
19ac7892
AB
12573 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
12574 init_insn_reg_pressure_info. Adjust a caller.
12575 * sched-int.h (init_insn_reg_pressure_info): Declare.
12576 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
12577 when sched-pressure is enabled.
12578
0f8c63cc
RG
125792011-04-08 Richard Guenther <rguenther@suse.de>
12580
12581 * gimple.c (gimple_set_modified): Do not queue calls to
12582 MODIFIED_NORETURN_CALLS here ...
12583 * tree-ssa-operands.c (update_stmt_operands): ... but here.
12584
5e5a425e
RG
125852011-04-08 Richard Guenther <rguenther@suse.de>
12586
12587 PR lto/48467
12588 * toplev.c (lang_dependent_init): Do not open asm_out_file
12589 in WPA mode, nor perform debug machinery initialization.
12590 (finalize): Do not unlink asm_out_file in WPA mode.
12591
9bfc434b
RG
125922011-04-08 Richard Guenther <rguenther@suse.de>
12593
12594 * gimple.h (gimple_call_fntype): New function.
12595 (gimple_call_return_type): Use it.
12596 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
12597 * gimple-low.c (gimple_check_call_args): Likewise.
12598 * gimple.c (gimple_call_flags): Likewise.
12599 (gimple_call_arg_flags): Likewise.
12600 (gimple_call_return_flags): Likewise.
12601 * tree-cfg.c (verify_gimple_call): Likewise.
12602 (do_warn_unused_result): Likewise.
12603 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
12604 * value-prof.c (gimple_ic_transform): Fix fndecl check.
12605
7c1f0b40
DM
126062011-04-08 Dmitry Melnik <dm@ispras.ru>
12607
12608 PR rtl-optimization/48235
12609 * sel-sched.c (code_motion_process_successors): Recompute the last
12610 insn in basic block if control flow changed.
12611 (code_motion_path_driver): Ditto. Recompute the first insn as well.
12612 Update condition for ilist_remove.
12613
ea4d630f
AM
126142011-04-08 Alexander Monakov <amonakov@ispras.ru>
12615
12616 PR rtl-optimization/48302
12617 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
12618 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
12619 it to record added preheader blocks.
12620 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
12621 on to sel_add_loop_preheaders.
12622 (sel_region_init): Move call to setup_current_loop_nest after
12623 sel_init_bbs.
12624
07643d76
AM
126252011-04-08 Alexander Monakov <amonakov@ispras.ru>
12626
12627 PR target/48273
12628 * cfgloop.h (loop_has_exit_edges): New helper.
12629 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
12630 non-clonable.
12631 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
12632 that have no exit edges.
12633
1f3b2b4e
AM
126342011-04-08 Alexander Monakov <amonakov@ispras.ru>
12635
12636 PR rtl-optimization/48442
12637 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
12638 all callers. Adjust assert.
12639
554f1948
JJ
126402011-04-08 Jakub Jelinek <jakub@redhat.com>
12641
12642 PR tree-optimization/48377
12643 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
12644 is_packed to true even for types with smaller TYPE_ALIGN than
12645 TYPE_SIZE.
12646
ddf72388
RG
126472011-04-08 Richard Guenther <rguenther@suse.de>
12648
12649 PR bootstrap/48513
12650 * doc/tm.texi: Re-generate.
12651
0c27e2d8
WG
126522011-04-08 Wei Guozhi <carrot@google.com>
12653
12654 PR target/47855
12655 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
12656 * config/arm/arm.c (arm_attr_length_push_multi): New function.
12657 * config/arm/arm.md (*push_multi): Change the length computation to
12658 call a C function.
12659
07c5f94e
AS
126602011-04-08 Anatoly Sokolov <aesok@post.ru>
12661
12662 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
12663 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
12664 * doc/tm.texi: Regenerate.
12665 * system.h (ASM_OUTPUT_BSS): Poison.
12666 * varasm.c (asm_output_bss): Remove function.
12667 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 12668
07c5f94e
AS
12669 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
12670 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
12671 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
12672 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12673 Likewise.
12674 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12675 Likewise.
12676 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12677 Likewise.
12678 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
12679
5f2c36e1
JM
126802011-04-07 Joseph Myers <joseph@codesourcery.com>
12681
12682 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
12683 EnumValue lines.
12684
39e7722b
JM
126852011-04-07 Joseph Myers <joseph@codesourcery.com>
12686
12687 * config/m68k/m68k.c (m68k_handle_option): Don't handle
12688 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
12689 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
12690 OPT_mcpu32.
12691 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12692 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
12693 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
12694 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
12695 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
12696 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
12697 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12698 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
12699 options. Don't map other m68k options manually. Don't handle
12700 old-style options as canonical.
12701 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 12702 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 12703
cf103ca4
EB
127042011-04-07 Eric Botcazou <ebotcazou@adacore.com>
12705
12706 * basic-block.h (force_nonfallthru): Move to...
12707 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
12708 (force_nonfallthru): ...here.
12709 * cfghooks.c (force_nonfallthru): New function.
12710 * cfgrtl.c (force_nonfallthru): Rename into...
12711 (rtl_force_nonfallthru): ...this.
12712 (commit_one_edge_insertion): Do not set AUX field.
12713 (commit_edge_insertions): Do not discover new basic blocks.
12714 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
12715 (cfg_layout_rtl_cfg_hooks): Likewise.
12716 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
12717 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
12718 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
12719
14431f58
AS
127202011-04-07 Anatoly Sokolov <aesok@post.ru>
12721
12722 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12723 Remove macros.
12724
3729983c
UB
127252011-04-07 Uros Bizjak <ubizjak@gmail.com>
12726
12727 * config/i386/sse.md: Update copyright year.
12728 (avxcvtvecmode): Remove.
12729 (sse_movhlps): Merge with *avx_movhlps.
12730 (sse_movlhps): Merge with *avx_movlhps.
12731 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
12732 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
12733 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
12734 (sse_loadhps): Merge with *avx_loadhps.
12735 (sse_storelps): Merge with *avx_storelps.
12736 (sse_loadlps): Merge with *avx_loadlps.
12737 (sse_movss): Merge with *avx_movss.
12738 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
12739 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
12740 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
12741 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
12742 (vec_set<mode>_0): Ditto.
12743 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
12744 (sse4_1_insertps): Merge with *avx_insertps.
12745 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
12746 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
12747 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
12748 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
12749 (sse2_storehpd): Merge with *avx_storehpd.
12750 (sse2_loadhpd): Merge with *avx_loadhpd.
12751 (sse2_loadlpd): Merge with *avx_loadlpd.
12752 (sse2_movsd): Merge with *avx_movsd.
12753 (*vec_concatv2df): Merge with *vec_concatv2df.
12754
4e626909
JJ
127552011-04-07 Jakub Jelinek <jakub@redhat.com>
12756
12757 PR debug/48343
12758 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 12759 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
12760 (try_combine): Add last_combined_insn parameter, pass it instead of
12761 i3 to propagate_for_debug.
12762
3729983c 127632011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
12764
12765 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
12766 to handle MDR <-> data register transfers.
12767 (movhi_internal): Likewise.
12768
20c03367
AM
127692011-04-07 Alan Modra <amodra@gmail.com>
12770
12771 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
12772 previous stack info.
12773
bf22920b
TV
127742011-04-07 Tom de Vries <tom@codesourcery.com>
12775
12776 PR target/43920
12777 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
12778 flow_find_cross_jump. Swap variables to implement backward replacement.
12779 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
12780
823918ae
TV
127812011-04-07 Tom de Vries <tom@codesourcery.com>
12782
12783 PR target/43920
12784 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
12785 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
12786 and bb2.
12787 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
12788 src1 or src2. Redirect edges to the last basic block. Update
12789 frequency and count on multiple basic blocks in case of fallthru.
823918ae 12790
472c95f5
TV
127912011-04-07 Tom de Vries <tom@codesourcery.com>
12792
12793 PR target/43920
12794 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
12795 function.
3729983c
UB
12796 (old_insns_match_p): Change return type. Replace return false/true
12797 with return dir_none/dir_both. Use can_replace_by.
12798 (flow_find_cross_jump): Add dir_p parameter. Init replacement
12799 direction from dir_p. Register replacement direction in dir, last_dir
12800 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
12801 merge_dir. Return replacement direction in dir_p.
12802 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
12803 return type of old_insns_match_p.
12804 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
12805 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
12806 flow_find_cross_jump.
12807 * basic-block.h (enum replace_direction): New type.
12808 (flow_find_cross_jump): Add parameter to declaration.
12809
a95d4000
UB
128102011-04-06 Uros Bizjak <ubizjak@gmail.com>
12811
12812 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
12813 (AVXMODEDCVTPS2DQ): Ditto.
12814 (VEC_FLOAT_MODE): Ditto.
12815 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
12816 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12817 (<any_logic:code><mode>3): Use VF mode iterator.
12818 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
12819 Use VF mode iterator.
12820 (copysign<mode>3): Use VF mode iterator.
12821 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
12822 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12823 (*<any_logic:code><MODEF:mode>3): Merge with
12824 *avx_<any_logic:code><MODEF:mode>3.
12825 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
12826 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
12827 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
12828 (avx_cvtdq2ps<avxmodesuffix>): Remove.
12829 (sse2_cvtdq2ps): Use %v modifier.
12830 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
12831 (avx_cvtps2dq<avxmodesuffix>): Remove.
12832 (sse2_cvtps2dq): Use %v modifier.
12833 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
12834 (avx_cvttps2dq<avxmodesuffix>): Remove.
12835 (sse2_cvttps2dq): Use %v modifier.
12836 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
12837 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
12838 (sse2_cvtsd2siq): Fix insn template.
12839 (sse2_cvtsd2siq_2): Ditto.
12840 (sse2_cvttsd2siq): Ditto.
12841 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
12842 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
12843
ad01c437
JM
128442011-04-06 Joseph Myers <joseph@codesourcery.com>
12845
12846 * gcov-io.c: Use GCC Runtime Library Exception.
12847
fe846284
JJ
128482011-04-06 Jakub Jelinek <jakub@redhat.com>
12849
12850 PR debug/48466
12851 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
12852 as base_reg whatever register reg has been eliminated to, instead
12853 of hardcoding STACK_POINTER_REGNUM.
12854
acce4e77
JM
128552011-04-06 Joseph Myers <joseph@codesourcery.com>
12856
12857 * doc/tm.texi.in: Document C target hooks as separate from general
12858 target hooks.
12859 * doc/tm.texi: Regenerate.
12860 * genhooks.c (struct hook_desc): Add docname field.
12861 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
12862 docname field.
12863 (hook_array): Include c-target.def.
12864 (emit_documentation): Use docname field in output.
12865 (emit_init_macros): Take docname argument. Only emit definitions
12866 for hooks matching docname.
12867 (main): Expect additional arguments in all cases. Pass argument
12868 to emit_init_macros.
12869 * target.def: Move initial macro definitions and comments to
12870 target-hooks-macros.h.
12871 (gcc_targetcm): Move to c-family/c-target.def.
12872 * target.h (targetcm): Move declaration to c-family/c-target.h.
12873 * targhooks.c (default_handle_c_option): Move to
12874 c-family/c-opts.c.
12875 * targhooks.h (default_handle_c_option): Move declaration to
12876 c-family/c-common.h.
12877 * target-hooks-macros.h: New file.
12878 * config.gcc (target_has_targetcm): Define and use to add to
12879 c_target_objs and cxx_target_objs.
12880 * config/default-c.c: New file.
12881 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
12882 of target.h and target-def.h.
12883 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
12884 (darwin_objc_construct_string, darwin_cfstring_ref_p,
12885 darwin_check_cfstring_format_arg): Make static.
12886 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12887 TARGET_STRING_OBJECT_REF_TYPE_P,
12888 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
12889 * config/darwin-protos.h (darwin_objc_construct_string,
12890 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
12891 declare.
12892 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12893 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 12894 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
12895 * config/t-darwin (darwin-c.o): Update dependencies.
12896 * system.h (TARGET_HAS_TARGETCM): Poison.
12897 * Makefile.in (TARGET_H): Update.
12898 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
12899 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
12900 (default-c.o): New target.
12901 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 12902 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
12903 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
12904 c-target.def.
12905 (build/genhooks.o): Update dependencies.
12906
275b4baa 129072011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 12908
275b4baa
RG
12909 * ipa-inline.c (enum inlining_mode): Remove.
12910 (cgraph_flatten): Use some other token.
12911 (cgraph_edge_early_inlinable_p): New function, split out from ...
12912 (cgraph_perform_always_inlining): New function, split out from ...
12913 (cgraph_decide_inlining_incrementally): ... here.
12914 (cgraph_mark_inline_edge): Adjust.
12915 (cgraph_early_inlining): Re-structure.
12916 (pass_early_inline): Require SSA form.
12917
f15b8bdf 129182011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
12919 Julian Brown <julian@codesourcery.com>
12920 Mark Shinwell <shinwell@codesourcery.com>
12921
12922 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
12923 LO_REGS only for Thumb-1.
12924 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
12925 be used in short instructions when optimising for size on Thumb-2.
12926
516426da
EB
129272011-04-06 Eric Botcazou <ebotcazou@adacore.com>
12928
12929 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
12930 associated with user returns to be preserved.
12931
96621ebf
TG
129322011-04-06 Tristan Gingold <gingold@adacore.com>
12933
f15b8bdf
EB
12934 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
12935 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
12936 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
12937 if XCOFF_DEBUGGING_INFO.
12938
07c0852e
UB
129392011-04-06 Uros Bizjak <ubizjak@gmail.com>
12940
12941 * config/i386/i386.md (attribute isa): New.
12942 (attribute enabled): New.
12943 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
12944 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
12945 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
12946 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
12947 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
12948 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12949 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
12950 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
12951
12952 * config/i386/sse.md (VF): New mode iterator.
12953 (VF1): Ditto.
12954 (VF2): Ditto.
12955 (VF_128): Ditto.
12956 (SSEMODEF4): Remove.
12957 (attribute sse): Handle V8SF and V4DF modes.
12958 (<absneg:code><mode>2): Use VF mode iterator.
12959 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
12960 mode iterator.
12961 (<plusminus_insn><mode>3): Use VF mode iterator.
12962 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12963 Use VF mode iterator.
12964 (<sse>_vm<plusminus_insn><mode>3): Merge with
12965 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
12966 (mul<mode>3): Use VF mode iterator.
12967 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
12968 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
12969 mode iterator.
12970 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
12971 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
12972 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
12973 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
12974 mode iterator.
12975 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
12976 Use VF1 mode iterator.
12977 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
12978 (sqrt<VF2:mode>2): New expander.
12979 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
12980 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
12981 and sqrtv2df2. Use VF mode iterator.
12982 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
12983 mode iterator.
12984 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
12985 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
12986 Use VF1 mode iterator.
12987 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
12988 (<smaxmin:code><mode>3): Use VF mode iterator.
12989 (*<smaxmin:code><mode>3_finite): Merge with
12990 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
12991 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12992 (<sse>_vm<smaxmin:code><mode>2): Merge with
12993 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
12994 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
12995 mode iterator.
12996 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
12997 mode iterator.
12998 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
12999 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
13000 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
13001 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
13002 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
13003 VF mode iterator.
13004 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
13005 Use VF_128 mode iterator.
13006 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
13007 mode iterator.
13008 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
13009 VF_128 mode iterator.
13010 (vcond<mode>): Use VF mode iterator.
13011 * config/i386/predicates.md (sse_comparison_operator): Merge with
13012 avx_comparison_float_operator. Do not declare as special_predicate.
13013 * config/i386/i386.c (struct builtin_description): Update for renamed
13014 compare patterns.
13015 (ix86_expand_args_builtin): Ditto.
13016 (ix86_expand_sse_compare_mask): Ditto.
13017
ff5d142c
RG
130182011-04-06 Richard Guenther <rguenther@suse.de>
13019
13020 * tree-inline.c (estimate_num_insns): For calls simply account
13021 for all passed arguments and a used return value.
13022
d7d1d041 130232011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 13024
d7d1d041
RG
13025 PR tree-optimization/47663
13026 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
13027 call_stmt_time fields.
13028 (cgraph_edge_inlinable_p): Declare.
13029 (cgraph_edge_recursive_p): New inline function.
13030 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
13031 (cgraph_clone_edge): Copy it.
13032 * ipa-inline.c (cgraph_estimate_edge_time): New function.
13033 Account for call stmt time.
13034 (cgraph_estimate_time_after_inlining): Take edge argument.
13035 (cgraph_estimate_edge_growth): Account call stmt size.
13036 (cgraph_estimate_size_after_inlining): Take edge argument.
13037 (cgraph_mark_inline_edge): Adjust.
13038 (cgraph_check_inline_limits): Likewise.
13039 (cgraph_recursive_inlining_p): Remove.
13040 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
13041 (cgraph_decide_recursive_inlining): Take edge argument and
13042 adjust.
13043 (cgraph_decide_inlining_of_small_functions): Do not avoid
13044 diags for recursive inlining here.
13045 (cgraph_flatten): Adjust.
13046 (cgraph_decide_inlining_incrementally): Likewise.
13047 (estimate_function_body_sizes): Remove call cost handling.
13048 (compute_inline_parameters): Initialize caller edge call costs.
13049 (cgraph_estimate_edge_growth): New function.
13050 (cgraph_estimate_growth): Use it.
13051 (cgraph_edge_badness): Likewise.
13052 (cgraph_check_inline_limits): Take an edge argument.
13053 (cgraph_decide_inlining_of_small_functions): Adjust.
13054 (cgraph_decide_inlining): Likewise.
13055 * tree-inline.c (estimate_num_insns): Only account for call
13056 return value if it is used.
13057 (expand_call_inline): Avoid diagnostics on recursive inline
13058 functions here.
13059 * lto-cgraph.c (lto_output_edge): Output edge call costs.
13060 (input_edge): Input edge call costs.
13061
2feb95f7
RO
130622011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13063
13064 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
13065
26fbd9c2
JW
130662011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
13067
13068 * doc/invoke.texi (Spec Files): Fix typo.
13069
694dc0ca
EB
130702011-04-06 Eric Botcazou <ebotcazou@adacore.com>
13071
13072 * profile.c (branch_prob): Move declaration of local variable. Remove
13073 obsolete ??? comment. Expand the location explicitly instead of using
13074 the LOCATION_FILE and LOCATION_LINE macros.
13075
4925d0d5
WG
130762011-04-06 Wei Guozhi <carrot@google.com>
13077
13078 PR target/47855
13079 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
13080 (arm_cond_branch): Likewise.
13081 (arm_cond_branch_reversed): Likewise.
13082 (arm_jump): Likewise.
13083 (push_multi): Likewise.
13084 * config/arm/constraints.md (Py): New constraint.
13085
f55dfa2f
NF
130862011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13087
13088 PR bootstrap/48471
13089 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
13090 Move these...
13091 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
13092 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
13093 #ifdef DBX_DEBUGGING_INFO.
13094
fca96842
BS
130952011-04-05 Bernd Schmidt <bernds@codesourcery.com>
13096
13097 PR bootstrap/48403
13098 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
13099 if old and new states differ.
13100
30b83e38
JM
131012011-04-05 Joseph Myers <joseph@codesourcery.com>
13102
13103 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
13104 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
13105 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
13106 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
13107 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
13108 mcfv4e): Use Alias.
13109 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
13110 ColdFire options to -mcpu= options.
13111
277a9aa5
JL
131122011-04-05 Jeff Law <law@redhat.com>
13113
13114 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
13115 check if BB is a successor of LOOP->header and return
13116 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
13117
c1e2610e
SB
131182011-04-05 Steven Bosscher <steven@gcc.gnu.org>
13119
13120 * cprop.c (struct reg_use): Remove.
13121 (reg_use_table): Make an array of RTX.
13122 (find_used_regs, constprop_register, local_cprop_pass,
13123 bypass_block): Simplify users of reg_use_table.
13124 (cprop_insn): Likewise. Iterate if copy propagation succeeded
13125 on one of the uses found by find_used_regs.
13126
e532f586
NF
131272011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13128
13129 PR bootstrap/48469
13130 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
13131 declaration.
13132
3fb7c055
NF
131332011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13134
13135 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
13136 as an rtx.
13137 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
13138
b71b43d9
SB
131392011-04-05 Steven Bosscher <steven@gcc.gnu.org>
13140
13141 PR middle-end/48441
13142 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
13143
b405b274
NF
131442011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13145
13146 * combine.c: Include obstack.h.
13147 (struct insn_link): Define.
13148 (uid_log_links): Adjust type.
13149 (FOR_EACH_LOG_LINK): New macro.
13150 (insn_link_obstack): Declare.
13151 (alloc_insn_link): Define.
13152 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
13153 type of link variables.
13154 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
13155 (try_combine, record_promoted_values, distribute_notes): Likewise.
13156 (distribute_links): Likewise. Tweak prototype.
13157 (clear_log_links): Delete.
13158 (adjust_for_new_dest): Call alloc_insn_link.
13159 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
13160
6409abe3
NF
131612011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13162
13163 * gcse.c (modify_mem_list): Convert to an array of VECs.
13164 (canon_modify_mem_list, compute_transp): Tweak formatting.
13165 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
13166 (load_killed_in_block_p): Likewise.
13167 (record_last_mem_set_info): Likewise.
13168 (clear_modify_mem_tables): Likewise.
13169
170d8157
TV
131702011-04-05 Tom de Vries <tom@codesourcery.com>
13171
13172 PR middle-end/48461
13173 * function.c (emit_use_return_register_into_block): Only define if
13174 HAVE_return.
13175
c5911a55
EB
131762011-04-05 Eric Botcazou <ebotcazou@adacore.com>
13177
13178 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
13179
abd016e6
JM
131802011-04-05 Joseph Myers <joseph@codesourcery.com>
13181
13182 * config/rx/rx-opts.h: New.
13183 * config/rx/rx.c (rx_cpu_type): Remove.
13184 (rx_handle_option): Don't assert that global structures are in
13185 use. Access variables via opts pointer. Defer most handling of
13186 OPT_mint_register_. Use error_at.
13187 (rx_option_override): Handle deferred OPT_mint_register_ here.
13188 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
13189 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
13190 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
13191 (rx_cpu_types): New Enum and EnumValue entries.
13192 (mint-register=): Use Defer and use Var accordingly.
13193
1ed13f83
NF
131942011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13195
13196 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
13197 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
13198 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
13199 Move these...
13200 (debug_free_queue, debug_nesting, symbol_queue_index):
13201 ...and these...
13202 * dbxout.c: ...to here. Make static.
13203
6ce1edcf
NF
132042011-04-05 Nathan Froyd <froydnj@codesourcery.com>
13205
13206 * gcse.c (modify_pair): Define. Define a VEC of it.
13207 (canon_modify_mem_list): Convert to an array of VECs.
13208 (free_insn_expr_list_list): Delete.
13209 (clear_modify_mem_tables): Call VEC_free instead.
13210 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
13211 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
13212 (canon_list_insert, compute_transp): Likewise.
13213
c201ac94
TV
132142011-04-05 Tom de Vries <tom@codesourcery.com>
13215
13216 PR target/43920
13217 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
13218 for size.
13219
4c029f40
TV
132202011-04-05 Tom de Vries <tom@codesourcery.com>
13221
13222 PR target/43920
13223 * function.c (emit_use_return_register_into_block): New function.
13224 (thread_prologue_and_epilogue_insns): Use
13225 emit_use_return_register_into_block.
13226
2a562b0a
TV
132272011-04-05 Tom de Vries <tom@codesourcery.com>
13228
13229 PR target/43920
13230 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
13231 insn.
13232
0248bceb
TV
132332011-04-05 Tom de Vries <tom@codesourcery.com>
13234
13235 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
13236
ffa94123
YZ
132372011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
13238
798dd0ba
UB
13239 * config/arm/arm.md (define_constants for unspec): Replace with
13240 define_c_enum.
13241 (define_constants for unspecv): Replace with define_c_enum.
13242 * config/arm/neon.md (define_constants for unspec): Replace with
13243 define_c_enum.
ffa94123 13244
3b8f9b46
RH
132452011-04-04 Richard Henderson <rth@redhat.com>
13246
720cf80f 13247 PR bootstrap/48400
3b8f9b46
RH
13248 * dwarf2out.c (output_line_info): Always emit line info from
13249 at least one section.
13250 (dwarf2out_init): Create text_section_line_info here ...
13251 (set_cur_line_info_table): ... not here.
13252
720cf80f 132532011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
13254
13255 PR target/48380
13256 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 13257 not called.
e5b0e1ca 13258
720cf80f 13259 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 13260
196565d4
SB
132612011-04-04 Steven Bosscher <steven@gcc.gnu.org>
13262
b77f9eab
SB
13263 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
13264 (expr_equiv_p): Remove.
13265 (insert_set_in_table): Look at <dest, src> pair instead of expr.
13266 (hash_scan_set): Update call to insert_set_in_table.
13267 (dump_hash_table): Dump <dest, src> pair.
13268 (lookup_set): Simplify. Lookup <dest, src> pair.
13269 (compute_transp): Remove, fold heavily simplified code into...
13270 (compute_local_properties): ...here. Expect COMP and TRANSP
13271 unconditionally.
13272 (find_avail_set): Take set directly from struct expr.
13273 (find_bypass-set): Likewise.
13274 (bypass_block): Likewise.
13275 (cprop_insn): Likewise. Remove redundant INSN_P test.
13276
384d7a55
SB
13277 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
13278 checks on form of COND from find_implicit_sets to here.
13279 (find_implicit_sets): Cleanup control flow. Split critical edges
13280 if it exposes implicit sets. Allocate/resize implicit_sets as
13281 necessary.
13282 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
13283 changed something. Run df_analyze after find_implicit_sets if any
13284 edges were split. Do not allocate implicit_sets here.
13285
3084ce69
SB
13286 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
13287 (gcse_obstack): Renamed to cprop_obstack.
13288 (GNEW, GNEWVEC, GNEWVAR): Remove.
13289 (gmalloc): Remove.
13290 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
13291 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
13292 (gcse_alloc): Likewise, and rename to cprop_alloc.
13293 (alloc_gcse_men, free_gcse_mem): Remove.
13294 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
13295 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
13296 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
13297
196565d4
SB
13298 * cprop.c (oprs_not_set_p): Remove.
13299 (mark_set, mark_clobber): Remove.
13300 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
13301 (reg_not_set_p): New function.
13302 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
13303 (cprop_insn): Likewise.
13304 (cprop_jump): Use FOR_EACH_EDGE.
13305
9b69cf83
BS
133062011-04-04 Bernd Schmidt <bernds@codesourcery.com>
13307
13308 PR bootstrap/48403
13309 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
13310 (rank_for_schedule): Use scheduled_insns vector instead of
13311 last_scheduled_insn.
13312 (ok_for_early_queue_removal): Likewise.
13313 (queue_to_ready): Search forward in nonscheduled_insns_begin if
13314 we have a dbg_cnt.
13315 (choose_ready): Likewise.
13316 (commit_schedule): Use VEC_iterate.
13317 (schedule_block): Initialize nonscheduled_insns_begin. If we have
13318 a dbg_cnt, use it and ensure the first insn is in the ready list.
13319 (haifa_sched_init): Allocate scheduled_insns.
13320 (sched_extend_ready_list): Don't allocate it; reserve space.
13321 (haifa_sched_finish): Free it.
13322
24f48c2f
JM
133232011-04-04 Joseph Myers <joseph@codesourcery.com>
13324
13325 * optc-gen.awk: Always remove type from Variable entry before
13326 recording in var_seen.
13327
8effe856
EB
133282011-04-04 Eric Botcazou <ebotcazou@adacore.com>
13329
13330 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
13331 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
13332 call to tidy_fallthru_edges.
13333
413519ae
JM
133342011-04-04 Joseph Myers <joseph@codesourcery.com>
13335
13336 * doc/options.texi (ToLower): Document.
3729983c 13337 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
13338 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
13339 * opts.h (cl_option): Add cl_tolower field.
13340 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
13341 arguments with lowercase strings.
13342 * config/rx/rx.opt (mcpu=): Add ToLower.
13343 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
13344 argument.
13345
7d34a1b0
RS
133462011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
13347
13348 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
13349
c30e7434
RS
133502011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
13351
13352 * config/vax/vax.c: Include reload.h.
13353
112a861d
AS
133542011-04-04 Anatoly Sokolov <aesok@post.ru>
13355
13356 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
13357 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13358 (sparc_preferred_reload_class): New function.
13359
e8c6bb74
JJ
133602011-04-04 Jakub Jelinek <jakub@redhat.com>
13361
2aeaa366 13362 PR debug/48401
e8c6bb74
JJ
13363 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13364 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
13365
2c081caf
NF
133662011-04-03 Nathan Froyd <froydnj@codesourcery.com>
13367
13368 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
13369 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
13370
53802f27
AS
133712011-04-03 Anatoly Sokolov <aesok@post.ru>
13372
13373 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
13374 (ASM_OUTPUT_ALIGNED_BSS): Define.
13375
e89964e3
MM
133762011-04-03 Michael Matz <matz@suse.de>
13377
13378 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
13379 and next_slot members.
13380 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
13381 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
13382 (lto_streamer_cache_append): Declare.
13383 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
13384 unsigned index, remove offset parameter, ensure that we append
13385 or update existing entries.
13386 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
13387 parameter, update next_slot for append.
13388 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
13389 parameter.
13390 (lto_streamer_cache_insert_at): Likewise.
13391 (lto_streamer_cache_append): New function.
13392 (lto_streamer_cache_lookup): Use unsigned index.
13393 (lto_streamer_cache_get): Likewise.
13394 (lto_record_common_node): Don't test tree_node_can_be_shared.
13395 (preload_common_node): Adjust call to lto_streamer_cache_insert.
13396 (lto_streamer_cache_delete): Don't free offsets member.
13397 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
13398 (lto_output_string_with_length): Use lto_output_data_stream.
13399 (lto_output_tree_header): Remove ix parameter, don't write it.
13400 (lto_output_builtin_tree): Likewise.
13401 (lto_write_tree): Adjust callers to above, don't track and write
13402 offset, write unsigned index.
13403 (output_unreferenced_globals): Don't emit all global vars.
13404 (write_global_references): Use unsigned indices.
13405 (lto_output_decl_state_refs): Likewise.
13406 (write_symbol): Likewise.
13407 * lto-streamer-in.c (lto_input_chain): Move earlier.
13408 (input_function): Use unsigned index.
13409 (input_alias_pairs): Don't read and then ignore all global vars.
13410 (lto_materialize_tree): Remove ix_p parameter, don't read index,
13411 don't pass it back, use lto_streamer_cache_append.
13412 (lto_register_var_decl_in_symtab): Use unsigned index.
13413 (lto_register_function_decl_in_symtab): Likewise.
13414 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
13415 index.
13416 (lto_get_builtin_tree): Don't read index, use
13417 lto_streamer_cache_append.
13418 (lto_read_tree): Adjust call to lto_materialize_tree.
13419
13420 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
13421 don't use function calls in arguments to MIN.
13422
13423 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
13424 twice.
13425
13426 * gimple.c (gimple_type_leader_entry): Mark deletable.
13427
b9a5b5b2
AM
134282011-04-03 Alan Modra <amodra@gmail.com>
13429
13430 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
13431
ac6a641b
MM
134322011-04-03 Michael Matz <matz@suse.de>
13433
13434 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
13435 an integer.
13436 * tree.h (tree_decl_non_common.vindex): Adjust comment.
13437
0038d4e0
MM
134382011-04-03 Michael Matz <matz@suse.de>
13439
e9c18386 13440 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
13441 * gimple-fold.c (canonicalize_constructor_val): Accept being called
13442 without function context.
13443 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
13444 current_function_decl and cfun.
13445
91f2fae8
MM
134462011-04-03 Michael Matz <matz@suse.de>
13447
13448 * tree.c (decl_init_priority_insert): Don't create entry for
13449 default priority.
13450 (decl_fini_priority_insert): Ditto.
13451 (fields_compatible_p, find_compatible_field): Remove.
13452 * tree.h (fields_compatible_p, find_compatible_field): Remove.
13453 * gimple.c (gimple_compare_field_offset): Adjust block comment.
13454
da29e070
EB
134552011-04-03 Eric Botcazou <ebotcazou@adacore.com>
13456
13457 * combine.c (try_combine): Remove useless local variable.
13458
4979c28b 134592011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 13460 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
13461
13462 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
13463 non-variable offsets and compare the remaining bases of the two
13464 accesses instead of looking for exact same data-ref.
13465
b4ddcaee
KT
134662011-04-02 Kai Tietz <ktietz@redhat.com>
13467
f90298e1
KT
13468 PR target/48416
13469 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
13470
b4ddcaee
KT
13471 * i386.c (ix86_is_msabi_thiscall): New helper function.
13472 (ix86_is_type_thiscall): New helper function.
13473 (ix86_comp_type_attributes): Handle thiscall for method-functions
13474 special.
13475 (init_cumulative_args): Likewise.
13476 (find_drap_reg): Likewise.
13477 (ix86_static_chain): Likewise.
13478 (x86_this_parameter): Likewise.
13479 (x86_output_mi_thunk): Likewise.
13480
2a9d769a 134812011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
13482 Nicolas Setton <setton@adacore.com>
13483 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
13484
13485 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
13486 (add_gnat_descriptive_type_attribute): New function.
13487 (gen_array_type_die): Call it.
13488 (gen_enumeration_type_die): Likewise.
13489 (gen_struct_or_union_type_die): Likewise.
13490 (modified_type_die): Likewise.
13491 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
13492 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
13493 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
13494
15a03a11
JJ
134952011-04-01 Jakub Jelinek <jakub@redhat.com>
13496
13497 PR bootstrap/48148
13498 * dwarf2out.c (resolve_addr): Don't call force_decl_die
13499 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
13500
13501 Revert:
13502 2011-03-17 Richard Guenther <rguenther@suse.de>
13503
13504 PR bootstrap/48148
13505 * lto-cgraph.c (input_overwrite_node): Clear the abstract
13506 origin for decls in other ltrans units.
13507 (input_varpool_node): Likewise.
13508
19228b93
JJ
135092011-04-01 Jakub Jelinek <jakub@redhat.com>
13510
13511 PR middle-end/48335
13512 * expr.c (expand_assignment): Handle all possibilities
13513 if TO_RTX is CONCAT.
e9c18386 13514 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
13515 (store_split_bit_field): If SUBREG_REG (op0) or
13516 op0 itself has smaller mode than word, return it
13517 for offset 0 and const0_rtx for out-of-bounds stores.
13518 If word is const0_rtx, skip it.
13519
88cb339e
N
135202011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
13521
13522 * config/h8300/h8300.c (print_operand_address): Rename to...
13523 (h8300_print_operand_address): ...this. Make static. Adjust comments.
13524 Call h8300_print_operand and h8300_print_operand_address instead of
13525 print_operand and print_operand_address. Declare.
13526 (print_operand): Renake to...
13527 (h8300_print_operand): ...this. Make static. Adjust comments.
13528 Call h8300_print_operand instead of print_operand. Declare.
13529 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
13530 (h8300_register_move_cost): Likewise.
13531 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
13532 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
13533 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
13534 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
13535 * config/h8300/h8300-protos.h (print_operand): Delete.
13536 (print_operand_address): Delete.
13537
756d6ee9
RH
135382011-04-01 Richard Henderson <rth@redhat.com>
13539
13540 PR 48400
13541 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
13542 in strict mode before dwarf4. Re-order tests to early out
13543 before switching sections.
13544
ceaaaeab
NF
135452011-04-01 Nathan Froyd <froydnj@codesourcery.com>
13546
13547 * config/h8300/constraints.md: New file.
13548 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
13549 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
13550 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
13551 * config/h8300/predicates.md (bit_operand): Likewise.
13552 (incdec_operand): Use satisfies_constraint_M and
13553 satisfies_constraint_O. Don't use C code block.
13554 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
13555 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
13556 (compute_mov_length): Use satisfies_constraint_G.
13557 (fix_bit_operand): Use satisfies_constraint_U.
13558 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
13559 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
13560 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
13561 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
13562 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
13563 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
13564 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13565 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
13566 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
13567 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
13568 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
13569 (EXTRA_MEMORY_CONSTRAINT): Delete.
13570
08ae38e0
AP
135712011-04-01 Andrew Pinski <pinskia@gmail.com>
13572 Michael Meissner <meissner@linux.vnet.ibm.com>
13573
13574 PR target/48262
13575 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
13576 operands, as per the specifications.
13577
13578 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
13579 (vec_extract_evenv4sf): Ditto.
13580 (vec_extract_evenv8hi): Ditto.
13581 (vec_extract_evenv16qi): Ditto.
13582 (vec_extract_oddv4si): Ditto.
13583
bdb0b0f6
MW
135842011-03-31 Mark Wielaard <mjw@redhat.com>
13585
13586 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
13587 high_pc attribute if the CU has no associated code. Only output
13588 DW_AT_entry_pc for CU if not generating strict dwarf and
13589 dwarf_version < 4.
13590
722279e4
BS
135912011-04-01 Bernd Schmidt <bernds@codesourcery.com>
13592
13593 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
13594 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
13595 out of ...
13596 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
13597 * final.c (final_start_function): Call the new function rather
13598 than using a NULL argument for dwarf2out_frame_debug.
13599
c5dd277d
BS
13600 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
13601 that contains the prologue.
13602
ec4efea9
BS
13603 * haifa-sched.c (queue_insn): New arg REASON. All callers
13604 changed. Print it in debugging output.
13605
2a6a0d80
BS
13606 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
13607
86014d07
BS
13608 * sched-ebb.c (begin_schedule_ready): Remove second argument.
13609 Split most of the code into...
13610 (begin_move_insn): ... here. New function.
13611 (ebb_sched_info): Add a pointer to it.
13612 * haifa-sched.c (scheduled_insns): New static variable.
13613 (sched_extend_ready_list): Allocate it.
13614 (schedule_block): Use it to record the order of scheduled insns.
13615 Perform RTL changes to move insns only after all scheduling
13616 decisions have been made.
13617 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
13618 begin_move_insn field.
13619 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
13620 * sched-int.h (struct haifa_sched_info): Remove second argument
13621 from begin_schedule_ready hook. Add new member begin_move_insn.
13622 * sched-rgn.c (begin_schedule_ready): Remove second argument.
13623 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
13624
9d701248
BS
13625 * haifa-sched.c (prune_ready_list): New function, broken out of
13626 schedule_block.
13627 (schedule_block): Use it.
13628
1ca1dad5
UW
136292011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13630
13631 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
13632
49568e45
KT
136332011-04-01 Kai Tietz <ktietz@redhat.com>
13634
13635 * config.gcc (*-*-mingw*): Allow as option the
13636 posix threading model.
07c0852e 13637 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
13638 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
13639 definition.
13640 (CPP_SPEC): Add pthread/no-pthread handling.
13641 (LIB_SPEC): Likewise.
13642 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
13643 (LIB_SPEC): Likewise.
13644 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
13645 flag to pass -pthread option for shared libgcc build.
13646 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
13647 for shared libgcc build.
13648 * config/i386/t-mingw-pthread: New file.
13649 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
13650 New define to enable use of library pthread by default.
13651 * config/i386/mingw.opt (pthread): New driver option.
13652 (no-pthread): New driver option.
e9c18386 13653 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
13654 * config/i386/mingw-w64.opt: Likewise.
13655
748f7574 136562011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
13657
13658 * c-decl.c (grokdeclarator): Fix formatting.
13659
f04713ee
RS
136602011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
13661
13662 * expr.c (emit_block_move_via_movmem): Use n_generator_args
13663 instead of n_operands.
13664 (set_storage_via_setmem): Likewise.
13665 * optabs.c (maybe_gen_insn): Likewise.
13666 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
13667 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
13668 (mips_expand_builtin_direct): Likewise.
13669 * config/spu/spu.c (expand_builtin_args): Likewise.
13670
b29387ee
RS
136712011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
13672
13673 * recog.h (insn_data_d): Add n_generator_args.
13674 * genoutput.c (data): Likewise.
13675 (output_insn_data): Print it.
13676 (max_opno, num_dups): Delete.
13677 (scan_operands): Just fill in "d->operand[...]".
13678 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
13679
e792559a
RS
136802011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
13681
13682 * gensupport.h (pattern_stats): New structure.
13683 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
13684 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
13685 (max_operand_1, max_operand_vec): Delete.
13686 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
13687
e8110d6f
NF
136882011-03-31 Nathan Froyd <froydnj@codesourcery.com>
13689
13690 * emit-rtl.c (emit_pattern_after_setloc): New function.
13691 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
13692 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
13693 (emit_pattern_after): New function.
13694 (emit_insn_after, emit_jump_insn_after): Call it.
13695 (emit_call_insn_after, emit_debug_insn_after): Likewise.
13696 (emit_pattern_before_setloc): New function.
13697 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
13698 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
13699 Likewise.
13700 (emit_pattern_before): New function.
13701 (emit_insn_before, emit_jump_insn_before): Call it.
13702 (emit_call_insn_before, emit_debug_insn_before): Likewise.
13703
576f85f1
RH
137042011-03-31 Richard Henderson <rth@redhat.com>
13705
13706 * dwarf2out.c (dw_separate_line_info_ref): Remove.
13707 (dw_separate_line_info_entry): Remove.
13708 (enum dw_line_info_opcode): New.
13709 (dw_line_info_entry): Use it.
13710 (dw_line_info_table, dw_line_info_table_p): New.
13711 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
13712 (line_info_table, line_info_label_num): Remove.
13713 (line_info_table_in_use): Remove.
13714 (separate_line_info_table): Remove.
13715 (separate_line_info_table_allocated): Remove.
13716 (separate_line_info_table_in_use): Remove.
13717 (LINE_INFO_TABLE_INCREMENT): Remove.
13718 (line_info_label_num): New.
13719 (cur_line_info_table): New.
13720 (text_section_line_info, cold_text_section_line_info): New.
13721 (separate_line_info): New.
13722 (SEPARATE_LINE_CODE_LABEL): Remove.
13723 (print_dwarf_line_table): Remove.
13724 (debug_dwarf): Don't dump it.
13725 (output_one_line_info_table): New.
13726 (output_line_info): Use it.
13727 (new_line_info_table): New.
13728 (set_cur_line_info_table): New.
13729 (dwarf2out_switch_text_section): Use it.
13730 (dwarf2out_begin_function): Likewise.
13731 (push_dw_line_info_entry): New.
13732 (dwarf2out_source_line): Rewrite for new line info tables.
13733 (dwarf2out_init): Remove dead initailizations.
13734
300d83d9
JM
137352011-03-31 Joseph Myers <joseph@codesourcery.com>
13736
13737 * opts.h (cl_option): Add comments to fields. Add bit-fields for
13738 various flags.
13739 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
13740 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
13741 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
13742 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
13743 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
13744 * opt-functions.awk (flag_init, switch_bit_fields): New.
13745 (switch_flags): Don't handle flags moved to bit-fields. Don't
13746 generate CL_MISSING_OK or CL_SAVE.
13747 * optc-gen.awk: Update to generate bit-field output as well as
13748 flags field.
13749 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
13750 bit-field instead of CL_REJECT_DRIVER flag.
13751 * opts-common.c (generate_canonical_option,
13752 decode_cmdline_option): Use bit-fields instead of CL_* flags.
13753 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
13754 instead of CL_REJECT_NEGATIVE flag.
13755 * toplev.c (print_switch_values): Use cl_report bit-field instead
13756 of CL_REPORT flag.
13757
d4d73ce2
EB
137582011-03-31 Eric Botcazou <ebotcazou@adacore.com>
13759
13760 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
13761 a zero minimum index only if it is redundant.
13762
b8faca75
VM
137632011-03-31 Vladimir Makarov <vmakarov@redhat.com>
13764
13765 PR rtl-optimization/48381
13766 * ira-color.c (assign_hard_reg): Use hard reg set intersection
13767 instead of ira_class_hard_reg_index for calculating conflicting
13768 hard registers.
13769
7d11cebe
SB
137702011-03-31 Steven Bosscher <steven@gcc.gnu.org>
13771
13772 * cprop.c: Clean up hash table building.
13773 (reg_avail_info): Remove.
13774 (oprs_available_p): Remove.
13775 (record_last_reg_set_info): Remove.
13776 (record_last_set_info): Remove.
13777 (reg_available_p): New function.
13778 (gcse_constant_p): Do not treat unfolded conditions as constants.
13779 (make_set_regs_unavailable): New function.
13780 (hash_scan_set): Simplify with new reg_available_p.
13781 (compute_hash_table_work): Traverse insns stream only once.
13782 Do not compute reg_avail_info. Traverse insns in reverse order.
13783 Record implicit sets after recording explicit sets from the block.
13784
98faf84f
MM
137852011-03-31 Michael Matz <matz@suse.de>
13786
e9c18386 13787 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 13788
f52d97da
AS
137892011-03-31 Anatoly Sokolov <aesok@post.ru>
13790
13791 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
13792 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
13793 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13794 (h8300_mode_dependent_address_p): New function.
13795 (h8300_get_index): Make static.
13796
e16b6fd0
JL
137972011-03-31 Jeff Law <law@redhat.com>
13798
10c51983
JL
13799 * reload1.c (elimination_effects): Fix typo in recent change.
13800
e9c18386 13801 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
13802 typo potentially leading to null pointer dereference.
13803
13804 * caller-save.c (new_saved_hard_reg): Eliminate return value.
13805 (setup_save_areas): Corresponding changes to avoid useless
13806 assignments.
13807
13808 * jump.c (reversed_comparison_code_parts): Avoid successive return
13809 statements when REVERSE_CONDITION is defined.
13810
13811 * expr.c (expand_assignment): Avoid useless assignments.
13812 (expand_expr_real_1): Likewise.
13813 (expand_expr_real_2): Avoid useless statements.
13814
13815 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
13816
13817 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13818
13819 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
13820 statements.
13821
13822 * stmt.c (expand_expr_stmt): Avoid useless assignment.
13823
eb1eb914
JM
138242011-03-31 Joseph Myers <joseph@codesourcery.com>
13825
13826 PR target/47109
13827 * doc/tm.texi.in (TARGET_VERSION): Remove.
13828 * doc/tm.texi: Regenerate.
13829 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
13830 * collect2.c (main): Don't use TARGET_VERSION.
13831 * mips-tdump.c (main): Don't use TARGET_VERSION.
13832 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 13833 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
13834 * config/rs6000/vxworksae.h: Remove.
13835 * config/alpha/alpha.h (TARGET_VERSION): Remove.
13836 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
13837 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
13838 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
13839 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13840 * config/arm/arm.h (TARGET_VERSION): Remove.
13841 * config/arm/coff.h (TARGET_VERSION): Remove.
13842 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
13843 * config/arm/elf.h (TARGET_VERSION): Remove.
13844 * config/arm/freebsd.h (TARGET_VERSION): Remove.
13845 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
13846 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
13847 * config/arm/pe.h (TARGET_VERSION): Remove.
13848 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
13849 * config/arm/semi.h (TARGET_VERSION): Remove.
13850 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
13851 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
13852 * config/arm/vxworks.h (TARGET_VERSION): Remove.
13853 * config/avr/avr.h (TARGET_VERSION): Remove.
13854 * config/bfin/bfin.h (TARGET_VERSION): Remove.
13855 * config/fr30/fr30.h (TARGET_VERSION): Remove.
13856 * config/frv/frv.h (TARGET_VERSION): Remove.
13857 * config/h8300/h8300.h (TARGET_VERSION): Remove.
13858 * config/i386/cygwin.h (TARGET_VERSION): Remove.
13859 * config/i386/darwin.h (TARGET_VERSION): Remove.
13860 * config/i386/darwin64.h (TARGET_VERSION): Remove.
13861 * config/i386/djgpp.h (TARGET_VERSION): Remove.
13862 * config/i386/freebsd.h (TARGET_VERSION): Remove.
13863 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
13864 * config/i386/gnu.h (TARGET_VERSION): Remove.
13865 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
13866 * config/i386/i386elf.h (TARGET_VERSION): Remove.
13867 * config/i386/linux.h (TARGET_VERSION): Remove.
13868 * config/i386/linux64.h (TARGET_VERSION): Remove.
13869 * config/i386/lynx.h (TARGET_VERSION): Remove.
13870 * config/i386/mingw32.h (TARGET_VERSION): Remove.
13871 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
13872 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
13873 * config/i386/netware.h (TARGET_VERSION): Remove.
13874 * config/i386/nto.h (TARGET_VERSION): Remove.
13875 * config/i386/openbsd.h (TARGET_VERSION): Remove.
13876 * config/i386/vxworks.h (TARGET_VERSION): Remove.
13877 * config/ia64/elf.h (TARGET_VERSION): Remove.
13878 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
13879 * config/ia64/hpux.h (TARGET_VERSION): Remove.
13880 * config/ia64/linux.h (TARGET_VERSION): Remove.
13881 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13882 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
13883 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13884 * config/lm32/lm32.h (TARGET_VERSION): Remove.
13885 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
13886 * config/m32c/m32c.h (TARGET_VERSION): Remove.
13887 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
13888 * config/m32r/m32r.h (TARGET_VERSION): Remove.
13889 * config/m68k/linux.h (TARGET_VERSION): Remove.
13890 * config/m68k/m68k.h (TARGET_VERSION): Remove.
13891 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
13892 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
13893 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
13894 * config/mep/mep.h (TARGET_VERSION): Remove.
13895 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
13896 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13897 * config/mips/iris6.h (MACHINE_TYPE): Remove.
13898 * config/mips/linux.h (TARGET_VERSION): Remove.
13899 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
13900 * config/mips/vxworks.h (TARGET_VERSION): Remove.
13901 * config/mmix/mmix.h (TARGET_VERSION): Remove.
13902 * config/mn10300/linux.h (TARGET_VERSION): Remove.
13903 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
13904 * config/pa/pa.h (TARGET_VERSION): Remove.
13905 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
13906 * config/picochip/picochip.h (TARGET_VERSION): Remove.
13907 * config/rs6000/aix.h (TARGET_VERSION): Remove.
13908 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
13909 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
13910 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
13911 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
13912 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
13913 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
13914 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
13915 * config/rs6000/linux.h (TARGET_VERSION): Remove.
13916 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
13917 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
13918 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
13919 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
13920 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
13921 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
13922 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
13923 * config/s390/linux.h (TARGET_VERSION): Remove.
13924 * config/s390/s390.h (TARGET_VERSION): Remove.
13925 * config/s390/tpf.h (TARGET_VERSION): Remove.
13926 * config/score/score.h (TARGET_VERSION): Remove.
13927 * config/sh/linux.h (TARGET_VERSION): Remove.
13928 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
13929 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
13930 * config/sh/sh.h (TARGET_VERSION): Remove.
13931 * config/sh/sh64.h (TARGET_VERSION): Remove.
13932 * config/sh/superh.h (TARGET_VERSION): Remove.
13933 * config/sh/vxworks.h (TARGET_VERSION): Remove.
13934 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
13935 * config/sparc/linux.h (TARGET_VERSION): Remove.
13936 * config/sparc/linux64.h (TARGET_VERSION): Remove.
13937 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
13938 TARGET_NAME32, TARGET_NAME): Remove.
13939 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
13940 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
13941 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
13942 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
13943 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
13944 * config/spu/spu.h (TARGET_VERSION): Remove.
13945 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
13946 * config/v850/v850.h (TARGET_VERSION): Remove.
13947 * config/vax/linux.h (TARGET_VERSION): Remove.
13948 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
13949 * config/xtensa/elf.h (TARGET_VERSION): Remove.
13950 * config/xtensa/linux.h (TARGET_VERSION): Remove.
13951
ace31bca
EB
139522011-03-31 Eric Botcazou <ebotcazou@adacore.com>
13953
13954 PR target/48142
13955 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
13956 frame-related from frame-unrelated adjustments to the stack pointer.
13957
76f9db36
JJ
139582011-03-31 Jakub Jelinek <jakub@redhat.com>
13959
13960 * common.opt (fdebug-types-section): Move earlier.
13961 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
13962
b7826465
AT
139632011-03-31 Andreas Tobler <andreast@fgznet.ch>
13964
13965 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
13966 var.
13967
1290e54c
NF
139682011-03-30 Nathan Froyd <froydnj@codesourcery.com>
13969
13970 * tree.h (CASE_CHAIN): Define.
13971 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
13972 (gimple_redirect_edge_and_branch): Likewise.
13973
bddc98e1
VM
139742011-03-30 Vladimir Makarov <vmakarov@redhat.com>
13975
13976 PR middle-end/48367
13977 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
13978 calculation.
13979
c865e437
JL
139802011-03-30 Jeff Law <law@redhat.com>
13981
b3750213 13982 * PR bootstrap/48371
c865e437
JL
13983 * reload1.c (reload): Fix botch in last change.
13984
13985 * reload.h (struct reload): Fix typo introduced in last change.
13986
2cdf9574
JM
139872011-03-30 Joseph Myers <joseph@codesourcery.com>
13988
13989 * config/arm/arm.opt (mhard-float, msoft-float): Mark
13990 Undocumented. Remove help text.
13991 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
13992 -mhard-float.
13993
666a21a2
JM
139942011-03-30 Joseph Myers <joseph@codesourcery.com>
13995
13996 * doc/options.texi (NegativeAlias): Document.
13997 (Alias): Mention NegativeAlias.
13998 * opt-functions.awk: Handle NegativeAlias.
e9c18386 13999 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
14000 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
14001 * opts.h (CL_NEGATIVE_ALIAS): Define.
14002 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
14003 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
14004 OPT_mspe_.
14005 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
14006 Alias entries.
14007 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
14008 mno-spe and mno-isel instead of mspe=no and -misel=no.
14009
0fa4e351
MW
140102011-03-29 Mark Wielaard <mjw@redhat.com>
14011
14012 * common.opt (fdebug-types-section): New flag.
14013 * doc/invoke.texi: Document new -fno-debug-types-section flag.
14014 * dwarf2out.c (use_debug_types): New define.
14015 (struct die_struct): Mark die_id with GTY desc use_debug_types.
14016 (print_die): Guard output of type unit signatures using
14017 use_debug_types.
14018 (build_abbrev_table): Replace assert of dwarf_version >= 4
14019 with assert on use_debug_types.
14020 (size_of_die): Likewise.
14021 (unmark_dies): Likewise.
14022 (value_format): Decide AT_ref_external form on use_debug_types.
14023 (output_die): Replace dwarf_version version check guard with
14024 use_debug_types where appropriate.
14025 (modified_type_die): Likewise.
14026 (gen_reference_type_die): Likewise.
14027 (dwarf2out_start_source_file): Likewise.
14028 (dwarf2out_end_source_file): Likewise.
14029 (prune_unused_types_walk_attribs): Likewise.
14030 (dwarf2out_finish): Likewise.
14031
4648deb4
VM
140322011-03-30 Vladimir Makarov <vmakarov@redhat.com>
14033
14034 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
14035
4f431835
RS
140362011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
14037
14038 PR rtl-optimization/48332
14039 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
14040 mode of input operand N and modeN to its actual mode.
14041
f2034d06
JL
140422011-03-30 Jeff Law <law@redhat.com>
14043
14044 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
14045 define accessor macro.
14046 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
14047 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
14048 (reg_equiv_init): Likewise.
14049 (reg_equivs_size): New variable.
14050 (reg_equiv_init_size): Remove.
14051 (allocate_initial_values): Move prototype to here from....
14052 * integrate.h (allocate_initial_values): Remove prototype.
14053 * integrate.c: Include reload.h.
14054 (allocate_initial_values): Corresponding changes.
14055 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
14056 (fix_reg_equiv_init, no_equiv): Corresponding changes.
14057 (update_equiv_regs): Corresponding changes.
14058 (ira): Corresponding changes.
14059 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
14060 (push_secondary_reload): Corresponding changes.
14061 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
14062 (make_memloc, find_reloads_address): Corresponding changes.
14063 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
14064 (find_reloads_address_1): Corresponding changes.
14065 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
14066 (refers_to_regno_for_reload_p): Corresponding changes.
14067 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
14068 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
14069 * reload1.c: Include ggc.h.
14070 (grow_reg_equivs): New function.
14071 (replace_pseudos_in, reload): Corresponding changes.
14072 (calculate_needs_all_insns, alter_regs): Corresponding changes.
14073 (eliminate_regs_1, elimination_effects): Corresponding changes.
14074 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
14075 (delete_output_reload): Likewise.
14076 * caller-save.c (mark_referenced_regs): Corresponding changes.
14077 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
14078 * frv/predicates.md (frv_load_operand): Corresponding changes.
14079 * microblaze/microblaze.c (double_memory_operand): Corresponding
14080 changes.
14081 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
14082 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 14083 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
14084 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
14085 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
14086 changes.
14087 * pa/pa.c (emit_move_sequence): Corresponding changes.
14088 * vax/vax.c (nonindexed_address_p): Corresponding changes.
14089
159b81b0
RS
140902011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
14091
14092 PR target/47551
14093 * config/arm/arm.c (coproc_secondary_reload_class): Handle
14094 structure modes. Don't check neon_vector_mem_operand for
14095 vector or structure modes.
14096
a6217191
RS
140972011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
14098 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14099
14100 PR target/43590
14101 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
14102 operand 1 and reshuffle the operands to match.
14103 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
14104
bd837408
CS
141052011-03-30 Christian Schüler <cschueler@gmx.de>
14106
6955d771 14107 PR driver/48208
bd837408 14108 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 14109
6955d771 14110 PR driver/48260
bd837408
CS
14111 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
14112 handler function.
14113 * config/darwin.opt: Added '-arch' option.
14114
e9c0470a
NC
141152011-03-30 Nick Clifton <nickc@redhat.com>
14116
14117 * config/rx/rx.md: Add peepholes and patterns to combine
14118 extending loads and simple arithmetic instructions.
14119 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
14120 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
14121 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 14122 modes to use pre-decrement and post-increment addressing.
e9c18386 14123 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 14124 addresses.
e9c18386
UB
14125 (rx_print_operand): Add support for %Q. Fix handling of %Q.
14126 (rx_memory_move_cost): Adjust cost of stores.
14127 (rx_adjust_insn_length): New function.
e9c0470a 14128
8a87e7ab
JJ
141292011-03-30 Jakub Jelinek <jakub@redhat.com>
14130
14131 PR c/48305
14132 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
14133 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
14134 matching arg00/arg01 types.
14135
12486e03
EB
141362011-03-30 Eric Botcazou <ebotcazou@adacore.com>
14137
14138 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
14139 last_location to UNKNOWN_LOCATION.
14140
0b99eef6
L
141412011-03-30 H.J. Lu <hongjiu.lu@intel.com>
14142
14143 PR target/48349
14144 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
14145 FLOAT_SSE_REGS.
14146
023592aa
JM
141472011-03-30 Joseph Myers <joseph@codesourcery.com>
14148 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14149
14150 PR bootstrap/48337
14151 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
14152 Init(PROCESSOR_V7).
14153 (sparc_cpu): Likewise.
14154 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
14155 PROCESSOR_V7.
14156
ad3b266b
VM
141572011-03-29 Vladimir Makarov <vmakarov@redhat.com>
14158
14159 PR target/48336
14160 PR middle-end/48342
14161 PR rtl-optimization/48345
14162 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
14163 hard regs for given mode from profitable regs when doing secondary
14164 allocation.
14165
633c9126
JL
141662011-03-29 Jeff Law <law@redhat.com>
14167
14168 PR bootstrap/48327
14169 * tree-ssa-threadupdate.c (struct redirection_data): Remove
14170 do_not_duplicate field.
14171 (lookup_redirection_data): Corresponding changes.
14172 (create_duplicates): Always create a template block.
14173 (redirect_edges): Remove code which reused the original block
14174 when it was going to become unreachable code.
14175 (thread_block): Don't set do_not_duplicate field.
14176
eb50f63a
JM
141772011-03-29 Joseph Myers <joseph@codesourcery.com>
14178
14179 * lto-opts.c (register_user_option_p, lto_register_user_option):
14180 Make type argument unsigned.
14181 * lto-streamer.h (lto_register_user_option): Make type argument
14182 unsigned.
14183 * opth-gen.awk: Make CL_* macros unsigned.
14184 * opts-common.c (find_opt): Make lang_mask argument unsigned.
14185 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
14186 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
14187 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
14188 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
14189 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
14190 (find_opt): Make lang_mask argument unsigned.
14191
76763a6d
VM
141922011-03-29 Vladimir Makarov <vmakarov@redhat.com>
14193
14194 PR rtl-optimization/48331
14195 PR rtl-optimization/48334
14196 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
14197 for any used algorithm.
14198
5c82436e
VM
141992011-03-29 Vladimir Makarov <vmakarov@redhat.com>
14200
14201 * ira-conflicts.c (build_object_conflicts): Add unused attribute
14202 to parent_max.
14203
7a81008b
UB
142042011-03-29 Uros Bizjak <ubizjak@gmail.com>
14205
14206 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
14207 (alpha_option_override): Don't set alpha_sr_alias_set.
14208 (emit_frame_store_1): Use gen_frame_mem rather than calling
14209 set_mem_alias_set.
14210 (alpha_expand_epilogue): Ditto.
14211
86c8d1f6
IR
142122011-03-29 Ira Rosen <ira.rosen@linaro.org>
14213
14214 PR tree-optimization/48290
14215 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
14216 vectorization, check that relevant phis in the basic block after
14217 the inner loop are really inner loop's exit phis.
14218
0d12220f
RS
142192011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
14220
e8cf17e7 14221 PR debug/48190
0d12220f
RS
14222 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
14223 (cached_dw_loc_list_def): New structure.
14224 (cached_dw_loc_list): New typedef.
14225 (cached_dw_loc_list_table): New variable.
14226 (cached_dw_loc_list_table_hash): New function.
14227 (cached_dw_loc_list_table_eq): Likewise.
14228 (add_location_or_const_value_attribute): Take a bool cache_p.
14229 Cache the list when the parameter is true.
14230 (gen_formal_parameter_die): Update caller.
14231 (gen_variable_die): Likewise.
14232 (dwarf2out_finish): Likewise.
14233 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
14234 while generating debug info for the decl.
14235 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
14236 (dwarf2out_init): Initialize cached_dw_loc_list_table.
14237 (resolve_addr): Cache the result of resolving a chain of
14238 location lists.
14239
1756cb66
VM
142402011-03-28 Vladimir Makarov <vmakarov@redhat.com>
14241
14242 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
14243 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 14244
1756cb66
VM
14245 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
14246 after regstat_init_n_sets_and_refs.
14247
14248 * ira.c: Add more comments at the top.
14249 (setup_stack_reg_pressure_class, setup_pressure_classes):
14250 Add comments how we compute the register pressure classes.
14251 (setup_allocno_and_important_classes): Add more comments.
14252 (setup_class_translate_array, reorder_important_classes)
14253 (setup_reg_class_relations): Add comments.
14254
14255 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
14256 start of the file.
14257
14258 * ira-color.c: Add 2011 to the Copyright line.
14259 (assign_hard_reg): Add more comments.
14260 (improve_allocation): Ditto.
14261
14262 * ira-costs.c: Add 2011 to the Copyright line.
14263 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
14264 comments.
14265 (setup_regno_cost_classes_by_mode): Ditto.
14266
14267 Initial patches from ira-improv branch:
14268
14269 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
14270
f60c2554 14271 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
14272 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
14273 (ira_create_allocno): Remove initialization of
14274 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
14275 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
14276 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
14277 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
14278 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
14279 Initialize ALLOCNO_ADD_DATA.
14280 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
14281 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
14282 ALLOCNO_REG.
14283 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
14284 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
14285
14286 * ira.c (ira_reallocate): Remove.
14287 (setup_pressure_classes): Call
14288 ira_init_register_move_cost_if_necessary. Use
14289 ira_register_move_cost instead of ira_get_register_move_cost.
14290 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
14291 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
14292
14293 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
14294 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
14295 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
14296 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
14297 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
14298 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
14299 Fix formatting.
7a81008b 14300 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
14301 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
14302 (struct allocno_color_data): New.
14303 (allocno_color_data_t): New typedef.
14304 (allocno_color_data): New definition.
14305 (ALLOCNO_COLOR_DATA): New macro.
14306 (struct object_color_data): New.
14307 (object_color_data_t): New typedef.
14308 (object_color_data): New definition.
14309 (OBJECT_COLOR_DATA): New macro.
14310 (update_copy_costs, calculate_allocno_spill_cost): Call
14311 ira_init_register_move_cost_if_necessary. Use
14312 ira_register_move_cost instead of ira_get_register_move_cost.
14313 (move_spill_restore, update_curr_costs): Ditto.
14314 (allocno_spill_priority): Make it inline.
7a81008b 14315 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
14316 (struct coalesce_data, coalesce_data_t): New.
14317 (allocno_coalesce_data): New definition.
14318 (ALLOCNO_COALESCE_DATA): New macro.
14319 (merge_allocnos, coalesced_allocno_conflict_p): Use
14320 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
14321 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
14322 (coalesce_allocnos): Ditto.
14323 (setup_coalesced_allocno_costs_and_nums): Ditto.
14324 (collect_spilled_coalesced_allocnos): Ditto.
14325 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
14326 (setup_slot_coalesced_allocno_live_ranges): Ditto.
14327 (coalesce_spill_slots): Ditto.
14328 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
14329 free allocno_coalesce_data.
14330
14331 * ira-conflicts.c: Fix formatting.
14332 (process_regs_for_copy): Call
14333 ira_init_register_move_cost_if_necessary. Use
14334 ira_register_move_cost instead of ira_get_register_move_cost.
14335 (build_object_conflicts): Optimize.
14336
14337 * ira-costs.c (record_reg_classes): Optimize. Call
14338 ira_init_register_move_cost_if_necessary. Use
14339 ira_register_move_cost, ira_may_move_in_cost, and
14340 ira_may_move_out_cost instead of ira_get_register_move_cost and
14341 ira_get_may_move_cost.
14342 (record_address_regs): Ditto.
14343 (scan_one_insn): Optimize.
14344 (find_costs_and_classes): Optimize.
14345 (process_bb_node_for_hard_reg_moves): Call
14346 ira_init_register_move_cost_if_necessary. Use
14347 ira_register_move_cost instead of ira_get_register_move_cost.
14348
14349 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
14350 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
14351 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
14352 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
14353 definitions.
14354 (ira_initiate_emit_data, ira_finish_emit_data)
14355 (create_new_allocno): New functions.
7a81008b 14356 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
14357 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
14358 Use ira_register_move_cost instead of ira_get_register_move_cost.
14359
14360 * ira-int.h: Fix some comments.
7a81008b
UB
14361 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
14362 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
14363 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
14364 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
14365 add_data.
14366 (struct ira_allocno): Make mode and aclass a bitfield. Move other
14367 bitfield after mode. Make hard_regno a short int. Make
14368 hard_regno short. Remove first_coalesced_allocno and
14369 next_coalesced_allocno. Move mem_optimized_dest_p,
14370 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
14371 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
14372 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
14373 temp, colorable_p. Add new member add_data.
14374 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
14375 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
14376 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
14377 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
14378 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
14379 (ALLOCNO_ADD_DATA): New macro.
14380 (ira_emit_data_t): New typedef.
14381 (struct ira_emit_data): New. Move mem_optimized_dest_p,
14382 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
14383 from struct ira_allocno.
14384 (ALLOCNO_EMIT_DATA): New macro.
14385 (ira_allocno_emit_data, allocno_emit_reg): New.
14386 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 14387 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
14388 (OBJECT_ADD_DATA): New macro.
14389 (ira_reallocate): Remove.
14390 (ira_initiate_emit_data, ira_finish_emit_data): New.
14391 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
14392 (ira_init_register_move_cost_if_necessary): New.
14393 (ira_object_conflict_iter_next): Merge into
14394 ira_object_conflict_iter_cond.
7a81008b 14395 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 14396
f60c2554 14397 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
14398 ira_init_register_move_cost_if_necessary. Use
14399 ira_register_move_cost instead of ira_get_register_move_cost.
14400
14401 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
14402
14403 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
14404
14405 * ira-costs.c: Fix formatting.
14406 (cost_classes, cost_classes_num): Remove.
14407 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
14408 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
14409 (cost_classes_del, cost_classes_htab): New.
14410 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
14411 (initiate_regno_cost_classes, setup_cost_classes): New.
14412 (setup_regno_cost_classes_by_aclass): New.
7a81008b 14413 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
14414 (record_reg_classes): Use regno_cost_classes instead of
14415 cost_classes. Move checking opposite operand up.
14416 (record_address_regs): Use regno_cost_classes
14417 instead of cost_classes.
14418 (scan_one_insn): Ditto. Use always general register.
14419 (print_allocno_costs): Use regno_cost_classes instead of
14420 cost_classes.
14421 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
14422 (find_costs_and_classes): Set up cost classes for each registers.
14423 Use also their mode for this. Use regno_cost_classes instead of
14424 cost_classes.
14425 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
14426 cost_classes.
14427 (free_ira_costs, ira_init_costs): Don't use cost_classes.
14428 (ira_costs, ira_set_pseudo_classes): Call
14429 initiate_regno_cost_classes and finish_regno_cost_classes.
14430
14431 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
14432
14433 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
14434
14435 * target.def (ira_cover_classes): Remove.
14436
7a81008b 14437 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
14438
14439 * doc/tm.texi.in: Ditto.
14440
14441 * ira-conflicts.c: Remove mentioning cover classes from the file.
14442 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 14443 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
14444
14445 * targhooks.c (default_ira_cover_classes): Remove.
14446
14447 * targhooks.h (default_ira_cover_classes): Ditto.
14448
14449 * haifa-sched.c: Remove mentioning cover classes from the file.
14450 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
14451 ira_pressure_classes and ira_pressure_classes_num instead of
14452 ira_reg_class_cover_size and ira_reg_class_cover. Use
14453 sched_regno_pressure_class instead of sched_regno_cover_class.
14454 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
14455 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14456
14457 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
14458 classes from the file.
14459 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
14460 (struct object_hard_regs, struct object_hard_regs_node): New.
14461 (struct ira_object): New members profitable_hard_regs,
14462 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
14463 (struct ira_allocno): Rename cover_class to aclass. Rename
14464 cover_class_cost and updated_cover_class_cost to class_cost and
14465 updated_class_cost. Remove splay_removed_p and
14466 left_conflict_size. Add new members colorable_p.
14467 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
14468 (ALLOCNO_COLORABLE_P): New macro.
14469 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
14470 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
14471 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
14472 (OBJECT_...): Rename parameter C to O.
14473 (OBJECT_PROFITABLE_HARD_REGS): New macro.
14474 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
14475 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
14476 (struct target_ira_int): New members x_ira_max_memory_move_cost,
14477 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
14478 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
14479 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
14480 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
14481 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
14482 x_ira_reg_class_subunion.
14483 (ira_max_memory_move_cost, ira_max_register_move_cost)
14484 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
14485 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
14486 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 14487 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
14488 (ira_reg_class_union): Rename to ira_reg_class_subunion.
14489 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14490 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14491 (ira_tune_allocno_costs_and_cover_classes): Rename to
14492 ira_tune_allocno_costs.
14493 (ira_debug_hard_regs_forest): New.
14494 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
14495 (ira_object_conflict_iter_next): Fix comments.
7a81008b 14496 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
14497 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
14498 cover_class to aclass.
14499 (ira_allocate_and_accumulate_costs): Ditto.
14500 (ira_allocate_and_set_or_copy_costs): Ditto.
14501
14502 * opts.c (decode_options): Remove ira_cover_class check.
14503
14504 * ira-color.c: Remove mentioning cover classes from the file. Use
14505 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
14506 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
14507 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
14508 (splay-tree.h): Remove include.
14509 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
14510 before copy_freq_compare_func.
14511 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
14512 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
14513 New definitions.
14514 (hard_regs_roots, hard_regs_node_vec): Ditto.
14515 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
14516 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
14517 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
14518 (create_new_object_hard_regs_node): Ditto.
14519 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 14520 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
14521 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
14522 Ditto.
14523 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
14524 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
14525 (remove_unused_object_hard_regs_nodes): Ditto.
14526 (enumerate_object_hard_regs_nodes): Ditto.
14527 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
14528 (object_hard_regs_subnode_t): Ditto.
14529 (struct object_hard_regs_subnode): Ditto.
14530 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
14531 (setup_object_hard_regs_subnode_index): Ditto.
14532 (get_object_hard_regs_subnodes_num): Ditto.
14533 (form_object_hard_regs_nodes_forest): Ditto.
14534 (finish_object_hard_regs_nodes_tree): Ditto.
14535 (finish_object_hard_regs_nodes_forest): Ditto.
14536 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 14537 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
14538 (pseudos_have_intersected_live_ranges_p): Rename to
14539 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
14540 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
14541 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
14542 (update_copy_costs): Remove assert. Skip cost update if the hard
14543 reg does not belong the class.
14544 (assign_hard_reg): Process only profitable hard regs.
14545 (uncolorable_allocnos_num): Make it scalar.
14546 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
14547 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
14548 and ira_reg_class_max_nregs.
14549 (bucket_allocno_compare_func): Check frequency first.
14550 (sort_bucket): Add compare function as a parameter.
14551 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
14552 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
14553 (push_allocno_to_stack): Rewrite for checking new allocno
14554 colorability.
7a81008b 14555 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
14556 (push_only_colorable): Pass new parameter to sort_bucket.
14557 (push_allocno_to_spill): Remove.
14558 (allocno_spill_priority_compare): Make it inline and rewrite.
14559 (splay_tree_allocate, splay_tree_free): Remove.
14560 (allocno_spill_sort_compare): New function.
14561 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
14562 build and use splay tree. Choose first allocno in uncolorable
14563 allocno bucket to spill. Remove setting spill cost.
14564 (all_conflicting_hard_regs): Remove.
14565 (setup_allocno_available_regs_num): Check only profitable hard
14566 regs. Print info about hard regs nodes.
14567 (setup_allocno_left_conflicts_size): Remove.
14568 (put_allocno_into_bucket): Don't call
7a81008b 14569 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
14570 (improve_allocation): New.
14571 (color_allocnos): Call setup_profitable_hard_regs,
14572 form_object_hard_regs_nodes_forest, improve_allocation,
14573 finish_object_hard_regs_nodes_forest. Setup spill cost.
14574 (print_loop_title): Use pressure classes.
14575 (color_allocnso): Ditto.
14576 (do_coloring): Remove allocation and freeing splay_tree_node_pool
14577 and allocnos_for_spilling.
14578 (ira_sort_regnos_for_alter_reg): Don't setup members
14579 {first,next}_coalesced_allocno.
14580 (color): Remove allocating and freeing removed_splay_allocno_vec.
14581 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
14582 prohibited_class_mode_regs.
14583
14584 * ira-lives.c: Remove mentioning cover classes from the file. Fix
14585 formatting.
14586 (update_allocno_pressure_excess_length): Use pressure classes.
14587 (inc_register_pressure, dec_register_pressure): Check for pressure
14588 class.
14589 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
14590 pressure class. Use ira_reg_class_nregs instead of
14591 ira_reg_class_max_nregs.
14592 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
14593 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
14594 (single_reg_class): Use ira_reg_class_nregs instead of
14595 ira_reg_class_max_nregs.
14596 (process_bb_node_lives): Use pressure classes.
14597
14598 * ira-emit.c: Remove mentioning cover classes from the file. Use
14599 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
14600 (change_loop): Use pressure classes.
14601 (modify_move_list): Call ira_set_allocno_class instead of
14602 ira_set_allocno_cover_class.
14603
14604 * ira-build.c: Remove mentioning cover classes from the file. Use
14605 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
14606 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
14607 ALLOCNO_UPDATED_CLASS_COST instead of
14608 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
14609 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
14610 (ira_create_allocno): Remove initialization of
14611 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
14612 ALLOCNO_COLORABLE_P.
14613 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
14614 Update conflict regs for the objects.
14615 (create_cap_allocno): Remove assert. Don't propagate
14616 ALLOCNO_AVAILABLE_REGS_NUM.
14617 (ira_free_allocno_costs): New function.
14618 (finish_allocno): Change a part of code into call of
14619 ira_free_allocno_costs.
14620 (low_pressure_loop_node_p): Use pressure classes.
14621 (object_range_compare_func): Don't compare classes.
14622 (setup_min_max_conflict_allocno_ids): Ditto.
14623
14624 * loop-invariant.c: Remove mentioning cover classes from the file.
14625 Use ira_pressure_classes and ira_pressure_classes_num instead of
14626 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
14627 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
14628 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14629 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
14630 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
14631 STACK_REG_COVER_CLASS.
14632 (get_regno_cover_class): Rename to get_regno_pressure_class.
14633 (move_loop_invariants): Initialize and finalize regstat.
14634
14635 * ira.c: Remove mentioning cover classes from the file. Add
14636 comments about coloring without cover classes. Use ALLOCNO_CLASS
14637 instead of ALLOCNO_COVER_CLASS. Fix formatting.
14638 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
14639 setup_class_subset_and_memory_move_costs.
14640 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
14641 (setup_cover_and_important_classes): Rename to
14642 setup_allocno_and_important_classes.
14643 (setup_class_translate_array): New.
14644 (setup_class_translate): Call it for allocno and pressure classes.
14645 (cover_class_order): Rename to allocno_class_order.
14646 (comp_reg_classes_func): Use ira_allocno_class_translate instead
14647 of ira_class_translate.
14648 (reorder_important_classes): Set up ira_important_class_nums.
14649 (setup_reg_class_relations): Set up ira_reg_class_superunion.
14650 (print_class_cover): Rename to print_classes. Add parameter.
14651 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14652 Print pressure classes too.
14653 (find_reg_class_closure): Rename to find_reg_classes. Don't call
14654 setup_reg_subclasses.
7a81008b 14655 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
14656 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14657 (setup_prohibited_class_mode_regs): Use
7a81008b 14658 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
14659 (clarify_prohibited_class_mode_regs): New function.
14660 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
14661 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
14662 (ira_init_once): Initialize them.
14663 (free_register_move_costs): Process them.
14664 (ira_init): Move calls of find_reg_classes and
14665 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
14666 Call clarify_prohibited_class_mode_regs.
14667 (ira_no_alloc_reg): Remove.
14668 (too_high_register_pressure_p): Use pressure classes.
14669
14670 * sched-deps.c: Remove mentioning cover classes from the file.
14671 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
14672 ira_pressure_classes and ira_pressure_classes_num instead of
14673 ira_reg_class_cover_size and ira_reg_class_cover.
14674 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
14675 sched_regno_pressure_class instead of sched_regno_cover_class.
14676 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
14677 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14678
14679 * ira.h: Add 2010 to Copyright.
14680 (ira_no_alloc_reg): Remove external.
14681 (struct target_ira): Rename x_ira_hard_regno_cover_class,
14682 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
14683 x_ira_class_translate to x_ira_hard_regno_allocno_class,
14684 x_ira_allocno_classes_num, x_ira_allocno_classes, and
14685 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
14686 x_ira_pressure_classes, x_ira_pressure_class_translate, and
14687 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
14688 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
14689 x_ira_no_alloc_regs.
7a81008b 14690 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
14691 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
14692 ira_allocno_classes_num and ira_allocno_classes.
14693 (ira_class_translate): Rename to ira_allocno_class_translate.
14694 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
14695 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
14696 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14697 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
14698 (ira_no_alloc_regs): New.
14699
14700 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
14701 classes from the file. Use ALLOCNO_CLASS instead of
14702 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
14703 ALLOCNO_COVER_CLASS_COST.
14704 (regno_cover_class): Rename to regno_aclass.
14705 (record_reg_classes): Use ira_reg_class_subunion instead of
14706 ira_reg_class_union.
14707 (record_address_regs): Check overflow.
14708 (scan_one_insn): Ditto.
7a81008b 14709 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
14710 (print_pseudo_costs): Use REG_N_REFS.
14711 (find_costs_and_classes): Use classes intersected with them on the
14712 1st pass. Check overflow. Use ira_reg_class_subunion instead of
14713 ira_reg_class_union. Use ira_allocno_class_translate and
14714 regno_aclass instead of ira_class_translate and regno_cover_class.
14715 Modify code for finding regno_aclass. Setup preferred classes for
14716 the next pass.
14717 (setup_allocno_cover_class_and_costs): Rename to
14718 setup_allocno_class_and_costs. Use regno_aclass instead of
14719 regno_cover_class. Use ira_set_allocno_class instead of
14720 ira_set_allocno_cover_class.
14721 (init_costs, finish_costs): Use regno_aclass instead of
14722 regno_cover_class.
14723 (ira_costs): Use setup_allocno_class_and_costs instead of
14724 setup_allocno_cover_class_and_costs.
14725 (ira_tune_allocno_costs_and_cover_classes): Rename to
14726 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
14727 by processing objects. Use ira_reg_class_max_nregs instead of
14728 ira_reg_class_nregs.
14729
14730 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
14731
14732 * sched-int.h: Remove mentioning cover classes from the file.
14733 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
14734
14735 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
14736 classes from the file.
14737 (struct reg_pref): Rename coverclass into allocnoclass.
14738 (reg_cover_class): Rename to reg_allocno_class.
14739
7a81008b 14740 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
14741
14742 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
14743
14744 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
14745
14746 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
14747
14748 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
14749
14750 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
14751
14752 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
14753
14754 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
14755
14756 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
14757
14758 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
14759
14760 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
14761 (i386_ira_cover_classes): Ditto.
14762
14763 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
14764
14765 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
14766
14767 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
14768
14769 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
14770
14771 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
14772
14773 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
14774
14775 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
14776 (mips_ira_cover_classes): Ditto.
14777
14778 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
14779
14780 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
14781
14782 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
14783
14784 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
14785
14786 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
14787
14788 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
14789 (IRA_COVER_CLASSES_VSX): Ditto.
14790
14791 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
14792 (rs6000_ira_cover_classes): Ditto.
14793
14794 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
14795
14796 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
14797
14798 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
14799
14800 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
14801
14802 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
14803
14804 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
14805
14806 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
14807
14808 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
14809
14810 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
14811
14812 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
14813
2b80199f
JJ
148142011-03-29 Jakub Jelinek <jakub@redhat.com>
14815
71dae1fe
JJ
14816 PR debug/48253
14817 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
14818 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
14819 dw_fde_unlikely_section_end_label, cold_in_std_section,
14820 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
14821 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
14822 fields.
14823 (output_fde): Use dw_fde_second_{begin,end} if second is
14824 true, otherwise dw_fde_{begin,end}.
14825 (output_call_frame_info): Test dw_fde_second_begin != NULL
14826 instead of dw_fde_switched_sections.
14827 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
14828 fields, initialize new fields. Initialize in_std_section
14829 unconditionally from the first partition.
14830 (dwarf2out_end_epilogue): Don't override dw_fde_end when
14831 dw_fde_second_begin is non-NULL.
14832 (dwarf2out_switch_text_section): Stop initializing removed
14833 dw_fde_struct fields, initialize new fields, initialize
14834 also dw_fde_end here. Set dw_fde_switch_cfi even when
14835 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
14836 (struct var_loc_list_def): Add last_before_switch field.
14837 (arange_table, arange_table_allocated, arange_table_in_use,
14838 ARANGE_TABLE_INCREMENT, add_arange): Removed.
14839 (size_of_aranges): Count !in_std_section and !second_in_std_section
14840 hunks in fdes, instead of looking at arange_table_in_use.
14841 (output_aranges): Add aranges_length argument, don't call
14842 size_of_aranges here. Instead of using aranges_table*
14843 emit ranges for fdes when !in_std_section resp.
14844 !second_in_std_section.
14845 (dw_loc_list): Break ranges crossing section switch.
14846 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 14847 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
14848 (gen_subprogram_die): Don't call add_arange. Use
14849 dw_fde_{begin,end} for first partition and if switched
14850 section dw_fde_second_{begin,end} for the second.
14851 (var_location_switch_text_section_1,
14852 var_location_switch_text_section): New functions.
14853 (dwarf2out_begin_function): Initialize cold_text_section even
14854 when function_section () isn't text_section.
14855 (prune_unused_types): Don't walk arange_table.
14856 (dwarf2out_finish): Don't needlessly test
14857 flag_reorder_blocks_and_partition when testing cold_text_section_used.
14858 If info_section_emitted, call size_of_aranges and if it indicates
14859 non-empty .debug_aranges, call output_aranges with the computed
14860 size. Stop using removed dw_fde_struct fields, use
14861 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
14862 for second.
14863
2b80199f
JJ
14864 PR debug/48203
14865 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
14866 create ENTRY_VALUE if incoming or address of incoming's MEM
14867 is a hard REG.
14868 * dwarf2out.c (mem_loc_descriptor): Don't emit
14869 DW_OP_GNU_entry_value of DW_OP_fbreg.
14870 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
14871 on ENTRY_VALUE is able to find the canonical parameter VALUE.
14872 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
14873 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
14874 ENTRY_VALUE_EXPs.
14875 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
14876 is a REG_P or MEM_P with REG_P address, compute hash directly
14877 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
14878 (preserve_only_constants): Don't clear VALUES forwaring
14879 ENTRY_VALUE to some other VALUE.
14880
8a445129
RS
148812011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
14882
14883 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
14884 instead of GEN_INT.
14885
c82fee88
EB
148862011-03-28 Eric Botcazou <ebotcazou@adacore.com>
14887
14888 * cfgexpand.c (expand_gimple_cond): Always set the source location and
14889 block before expanding the statement.
14890 (expand_gimple_stmt_1): Likewise. Set them here...
14891 (expand_gimple_stmt): ...and not here. Tidy.
14892 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
14893 unknown.
14894
e45425ec
SB
148952011-03-28 Steven Bosscher <steven@gcc.gnu.org>
14896
14897 * Makefile.in: New rule for cprop.o.
14898 * gcse.c: Move constant/copy propagation to cprop.c.
14899 (compute_local_properties): Only handle expression tables.
14900 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
14901 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
14902 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
14903 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 14904 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
14905 compute_cprop_data, find_used_regs, try_replace_reg,
14906 find_avail_set, cprop_jump, constprop_register, cprop_insn,
14907 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
14908 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
14909 find_bypass_set, reg_killed_on_edge, bypass_block,
14910 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
14911 execute_rtl_cprop, pass_rtl_cprop): Move to...
14912 * cprop.c: ...here. New file, constant/copy propagation for RTL
14913 moved from gcse.c to here with minor cleanups in duplicated code.
14914
c09d5426
L
149152011-03-28 H.J. Lu <hongjiu.lu@intel.com>
14916
14917 * config/i386/i386.c (flag_opts): Fix a typo in
14918 -mavx256-split-unaligned-store.
14919
9eaa7740
AS
149202011-03-28 Anatoly Sokolov <aesok@post.ru>
14921
14922 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14923 LIBCALL_VALUE): Remove macros.
14924 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14925 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14926 (h8300_function_value, h8300_libcall_value,
14927 h8300_function_value_regno_p): New functions.
14928
dcec2be2
AS
149292011-03-28 Anatoly Sokolov <aesok@post.ru>
14930
14931 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
14932
520af9ec
JL
149332011-03-28 Jeff Law <law@redhat.com>
14934
14935 * tree-ssa-threadupdate.c (redirect_edges): Call
14936 create_edge_and_update_destination_phis as needed.
14937 (create_edge_and_update_destination_phis): Accept new BB argument.
14938 All callers updated.
14939 (thread_block): Do not update the profile when threading around
14940 intermediate blocks.
14941 (thread_single_edge): Likewise.
14942 (determine_bb_domination_status): If BB is not a successor of the
14943 loop header, return NONDOMINATING.
14944 (register_jump_thread): Note when we register a jump thread around
14945 an intermediate block.
14946 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
14947 (thread_across_edge): Use it.
14948
7450b54f
TG
149492011-03-28 Tristan Gingold <gingold@adacore.com>
14950
14951 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
14952 when for_return is 2.
14953
649beb33
JL
149542011-03-28 Jeff Law <law@redhat.com>
14955
14956 * var-tracking.c (canonicalize_values_mark): Delete unused
14957 lhs assignment.
14958 (canonicalize_values_star, set_variable_part): Likewise.
14959 (clobber_variable_part, delete_variable_part): Likewise.
14960
d5b8da97
SB
149612011-03-28 Steven Bosscher <steven@gcc.gnu.org>
14962
14963 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
14964
322dd859
MJ
149652011-03-28 Martin Jambor <mjambor@suse.cz>
14966
14967 * tree-inline.c (expand_call_inline): Do not check that destination
14968 node is analyzed.
14969 (optimize_inline_calls): Assert that destination node is analyzed.
14970 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
14971 not call tree_lowering_passes.
14972 * cgraph.h (cgraph_analyze_function): Declare.
14973 * cgraphunit.c (cgraph_analyze_function): Make public.
14974
aa53e58b
JM
149752011-03-28 Joseph Myers <joseph@codesourcery.com>
14976
14977 * config/sparc/sparc-opts.h: New.
14978 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
14979 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
14980 (sparc_option_override): Store processor_type enumeration rather
14981 than string in cpu_default. Remove name and enumeration from
14982 cpu_table. Directly default -mcpu then default -mtune from -mcpu
14983 without using sparc_select. Use target_flags_explicit instead of
14984 fpu_option_set.
14985 * config/sparc/sparc.h (enum processor_type): Move to
14986 sparc-opts.h.
14987 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
14988 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
14989 HeaderInclude entry.
14990 (mcpu=, mtune=): Use Var and Enum.
14991 (sparc_processor_type): New Enum and EnumValue entries.
14992
dd350eba
RO
149932011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14994 Iain Sandoe <iains@gcc.gnu.org>
14995
14996 PR target/48245
14997 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
14998
1b29f05e
EB
149992011-03-28 Eric Botcazou <ebotcazou@adacore.com>
15000
15001 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
15002 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
15003 Insert new statements at it in lieu of STMT.
15004 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
15005 * tree-vect-stmts.c (vectorizable_store): Likewise.
15006 (vectorizable_load): Likewise.
15007
506e6808
UB
150082011-03-28 Uros Bizjak <ubizjak@gmail.com>
15009
15010 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
15011 (divtf3): Ditto.
15012 (multf3): Ditto.
15013 (subtf3): Ditto.
15014
2e939ee9
L
150152011-03-27 H.J. Lu <hongjiu.lu@intel.com>
15016
15017 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
15018 unaligned 256bit load/store.
15019 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
15020 (*avx_movdqu<avxmodesuffix>): Likewise.
15021
5e85ab88
JDA
150222011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15023
15024 PR target/48288
15025 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
15026 * config/pa/pa.md (iordi3): Use new predicate in expander.
15027 (iorsi3): Likewise.
15028
47be3d6d
AS
150292011-03-27 Anatoly Sokolov <aesok@post.ru>
15030
506e6808 15031 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 15032 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
15033 * config/mips/mips-protos.h (mips_function_value): Remove.
15034 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
15035 (mips_function_value_1): ... this. Make static. Handle receiving
15036 the function type in 'fn_decl_or_type' argument.
15037 (mips_function_value, mips_libcall_value,
15038 mips_function_value_regno_p): New function.
15039 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15040 TARGET_FUNCTION_VALUE_REGNO_P): Define.
15041
d253656a
L
150422011-03-27 H.J. Lu <hongjiu.lu@intel.com>
15043
15044 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
15045 and -mavx256-split-unaligned-store.
15046 (ix86_option_override_internal): Split 32-byte AVX unaligned
15047 load/store by default.
15048 (ix86_avx256_split_vector_move_misalign): New.
15049 (ix86_expand_vector_move_misalign): Use it.
15050
15051 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
15052 -mavx256-split-unaligned-store.
15053
15054 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
15055 256bit load/store. Generate unaligned store on misaligned memory
15056 operand.
15057 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
15058 256bit load/store.
15059 (*avx_movdqu<avxmodesuffix>): Likewise.
15060
15061 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
15062 -mavx256-split-unaligned-store.
15063
1ea9206a
RS
150642011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
15065
15066 PR target/38598
15067 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
15068 Update commentary.
15069
b99ce2a8
RS
150702011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
15071
15072 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
15073 opno arguments with an expand_operand. Use create_input_operand.
15074 (mips_prepare_builtin_target): Delete.
15075 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
15076 functions.
15077 (mips_expand_builtin_direct): Use create_output_operand and
15078 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
15079 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
15080 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
15081
69d52339
IR
150822011-03-27 Ira Rosen <ira.rosen@linaro.org>
15083
15084 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
15085 function.
15086 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
15087
ba5e9aca
EB
150882011-03-26 Eric Botcazou <ebotcazou@adacore.com>
15089
15090 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
15091 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
15092 basic blocks and call commit_edge_insertions directly.
15093 (fixup_abnormal_edges): Move from here to...
15094 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
15095 on the edges and return whether some have actually been inserted.
15096 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
15097 compensation code.
15098
5d369d58
AB
150992011-03-26 Andrey Belevantsev <abel@ispras.ru>
15100
15101 PR rtl-optimization/48144
15102 * sel-sched-ir.c (merge_history_vect): Factor out from ...
15103 (merge_expr_data): ... here.
15104 (av_set_intersect): Rename to av_set_code_motion_filter.
15105 Update all callers. Call merge_history_vect when an expression
15106 is found in both sets.
15107 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
15108
f082c000
AM
151092011-03-26 Alan Modra <amodra@gmail.com>
15110
15111 * config/rs6000/predicates.md (word_offset_memref_op): Handle
15112 cmodel medium addresses.
15113 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
15114 64-bit gpr loads and stores.
15115 (rs6000_secondary_reload_ppc64): New function.
15116 * config/rs6000/rs6000-protos.h: Declare it.
15117 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
15118
8ac5e12e
AM
151192011-03-26 Alan Modra <amodra@gmail.com>
15120
15121 PR target/47487
15122 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
15123 GNU Go in traceback table.
15124
c2654ded
RH
151252011-03-25 Richard Henderson <rth@redhat.com>
15126
15127 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
15128 if there are exactly 6 operands.
15129 (set_storage_via_setmem): Similarly.
15130
ba78087b
KT
151312011-03-25 Kai Tietz <ktietz@redhat.com>
15132
15133 * collect2.c (write_c_file_stat): Handle backslash
15134 as right-hand directory separator.
15135 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
15136 checking just for slash.
15137 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
15138 instead of checking for trailing slash.
15139 * gcc.c (record_temp_file): Use filename_cmp instead
15140 of strcmp.
15141 (do_spec_1): Likewise.
15142 (replace_outfile_spec_function): Likewise.
15143 (is_directory): Use filename_ncmp instead of strncmp.
15144 (print_multilib_info): Likewise.
15145 * gcov.c (find_source): Use filename_cmp instead
15146 instead of strcmp.
15147 (make_gcov_file_name): Fix order of slash/backslash
15148 checks.
15149 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
15150 (add_standard_paths): Likewise.
15151 * mips-tfile.c (saber_stop): Handle backslash.
15152 * prefix.c (update_path): Use filename_ncmp instead of
15153 strncmp.
15154 * profile.c (output_location): Use filename_cmp instead
15155 of strcmp.
15156 * read-md.c (handle_toplevel_file): Handle backslash.
15157 * tlink.c (frob_extension): Likewise.
15158 * tree-cfg.c (same_line_p): Use filename_cmp instead of
15159 strcmp.
15160 * tree-dump.c (dequeue_and_dump): Handle backslash.
15161 * tree.c (get_file_function_name): Likewise.
15162 * gengtype.c (read_input_list): Likewise.
15163 (get_file_realbasename): Likewise.
15164 (get_output_file_with_visibility): Use filename_cmp
15165 instead of strcmp.
15166
75f6ec9a
RS
151672011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
15168
15169 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
15170 case to VFPv1.
15171
6c4e2997
NF
151722011-03-25 Nathan Froyd <froydnj@codesourcery.com>
15173
15174 * fold-const.c (expr_location_or): New function.
15175 (fold_truth_not_expr): Call it.
15176
0edf1bb2
JL
151772011-03-25 Jeff Law <law@redhat.com>
15178
15179 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
15180 va_end.
15181 * c-family/c-common.c (def_fn_type): Likewise.
15182 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
15183 * emit-rtl.c (gen_rtvec): Likewise.
15184 * lto/lto-lang.c (def_fn_type): Likewise.
15185
fdc2de95
RG
151862011-03-25 Richard Guenther <rguenther@suse.de>
15187
15188 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
15189 also generate copies.
15190 (fini_copy_prop): Handle constant values properly.
15191
21385db0
JJ
151922011-03-25 Jakub Jelinek <jakub@redhat.com>
15193
15194 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
15195 mode size instead of bitsize with DWARF2_ADDR_SIZE.
15196 (hash_loc_operands, compare_loc_operands): Handle
15197 DW_OP_GNU_entry_value.
15198
6510e8bb
KT
151992011-03-25 Kai Tietz <ktietz@redhat.com>
15200
15201 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
15202 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
15203 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
15204 comment and use macro TARGET_64BIT_MS_ABI instead.
15205 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
15206 and change default behavior for 32-bit MS_ABI.
15207 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
15208 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
15209 32-bit, too.
15210 (ix86_cfun_abi): Likewise.
15211 (ix86_maybe_switch_abi): Adjust comment.
15212 (init_cumulative_args): Check for bit-ness in MS_ABI case.
15213 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
15214 instead of checking for SYSV_ABI.
15215 (ix86_nsaved_sseregs): Likewise.
15216 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
15217 to 16 bytes.
15218 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
15219 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
15220 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
15221 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
15222 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
15223
34019e28
RG
152242011-03-25 Richard Guenther <rguenther@suse.de>
15225
15226 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
15227 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
15228 (verify_gimple): Remove.
15229 * tree-cfg.c (verify_gimple_call): Merge verification
15230 from verify_stmts.
15231 (verify_gimple_phi): Merge verification from verify_stmts.
15232 (verify_gimple_label): New function.
15233 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
15234 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
15235 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
15236 (verify_stmts): Rename to verify_gimple_in_cfg.
15237 (verify_gimple_in_cfg): New function.
15238 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
15239 * tree-ssa.c (verify_ssa): Likewise.
15240 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
15241
605896f5
RG
152422011-03-25 Richard Guenther <rguenther@suse.de>
15243
15244 * passes.c (init_optimization_passes): Add FRE pass after
15245 early SRA.
15246
7baa7c13
BS
152472011-03-25 Bernd Schmidt <bernds@codesourcery.com>
15248 Andrew Stubbs <ams@codesourcery.com>
15249
15250 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
15251 for Cortex-A8.
15252 (arm_movdi_vfp_cortexa8): New pattern.
15253 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
15254 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
15255 instructions when tuning for Cortex-A8. Set attribute "arch".
15256 * config/arm/arm.md: Move include arm-tune.md up a bit.
15257 (define_attr "arch"): Add "onlya8" and "nota8" values.
15258 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
15259
45dbce1b
NF
152602011-03-25 Nathan Froyd <froydnj@codesourcery.com>
15261
4ff08abf 15262 PR bootstrap/48282
45dbce1b
NF
15263 Revert:
15264 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
15265
15266 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15267 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
15268 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15269 * passes.c (init_optimization_passes): Move
15270 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15271
ac9a30ae
KT
152722011-03-25 Kai Tietz <ktietz@redhat.com>
15273
15274 * c-typeck.c (comptypes_internal): Replace target
15275 hook call of comp_type_attributes by version in tree.c file.
15276 * gimple.c (gimple_types_compatible_p_1): Likewise.
15277 * tree-ssa.c (useless_type_conversion_p): Likewise.
15278 * tree.c (build_type_attribute_qual_variant): Likewise.
15279 (attribute_value_equal): New static helper function.
15280 (comp_type_attributes): New function.
15281 (merge_attributes): Use attribute_value_equal for comparison.
15282 (attribute_list_contained): Likewise.
15283 * tree.h (comp_type_attributes): New prototype.
15284
afdac116
RG
152852011-03-25 Richard Guenther <rguenther@suse.de>
15286
15287 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
15288 of complex types at -O0.
15289 (verify_gimple_assign_binary): Likewise.
15290 (verify_gimple_assign_ternary): Likewise.
15291
ec6165f8
MW
152922011-03-24 Mark Wielaard <mjw@redhat.com>
15293
15294 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
15295 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
15296
2a5ac39a
MW
152972011-03-24 Mark Wielaard <mjw@redhat.com>
15298
15299 PR debug/48041
15300 * dwarf2out.c (output_abbrev_section): Only write table when
15301 abbrev_die_table_in_use > 1.
15302
e533b2a4
RH
153032011-02-24 Richard Henderson <rth@redhat.com>
15304
15305 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
15306 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
15307 (alpha_expand_unaligned_load_words): Use extql.
15308 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
15309 (emit_insxl): Handle all modes for consistency.
15310
0b2a7367
RH
153112011-02-24 Richard Henderson <rth@redhat.com>
15312
15313 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
15314 (alpha_expand_unaligned_load): Likewise.
15315 (alpha_expand_unaligned_store): Likewise.
15316 (alpha_expand_unaligned_load_words): Likewise.
15317 (alpha_expand_unaligned_store_words): Likewise.
15318 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
15319 (alpha_split_lock_test_and_set_12): Likewise.
15320 (print_operand, alpha_fold_builtin_extxx): Likewise.
15321 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
15322 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
15323 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
15324 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
15325 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
15326 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
15327 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
15328 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
15329 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
15330 (extwl, extll, extql): Similarly.
15331 (inswh, inslh, insqh): Similarly.
15332 (mskbl, mskwl, mskll, mskql): Similarly.
15333 (mskwh, msklh, mskqh): Similarly.
15334
315b2bef
RH
153352011-02-24 Richard Henderson <rth@redhat.com>
15336
15337 * config/alpha/alpha.md (attribute isa): Add er, ner.
15338 (attribute enabled): Handle them.
15339 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
15340
67102517
RH
153412011-02-24 Richard Henderson <rth@redhat.com>
15342
15343 * config/alpha/alpha.md (attribute isa): Add vms.
15344 (attribute enabled): Handle it.
15345 (*movsf): Merge *movsf_{nofix,fix,nofp}.
15346 (*movdf): Merge *movdf_{nofix,fix,nofp}.
15347 (*movtf): Rename from *movtf_internal for consistency.
15348 (*movsi): Merge with *movsi_nt_vms.
15349 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
15350 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
15351 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
15352 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
15353
6aba5cb4
RH
153542011-02-24 Richard Henderson <rth@redhat.com>
15355
15356 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
15357 (extendqisi2, extendhisi2): Likewise.
15358 (extendqidi2): Simplify BWX/non-BWX expansions.
15359 (extendhidi2): Similarly.
15360
bdfb351b
RH
153612011-02-24 Richard Henderson <rth@redhat.com>
15362
15363 * config/alpha/alpha.md (attribute isa): New.
15364 (attribute enabled): New.
15365 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
15366 (zero_extendqisi2, zero_extendqidi2): Similarly.
15367 (zero_extendhisi2, zero_extendhidi2): Similarly.
15368 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
15369
6abe71eb
RH
153702011-02-24 Richard Henderson <rth@redhat.com>
15371
15372 * config/alpha/predicates.md (input_operand): Revert last change;
15373 update comment to mention 32-bit VMS rather than Windows.
15374
7114321e
NF
153752011-03-24 Nathan Froyd <froydnj@codesourcery.com>
15376
15377 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
15378 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
15379 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
15380 * passes.c (init_optimization_passes): Move
15381 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
15382
c8679567
EB
153832011-03-24 Eric Botcazou <ebotcazou@adacore.com>
15384
15385 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
15386
27173058
UB
153872011-03-24 Uros Bizjak <ubizjak@gmail.com>
15388
15389 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
15390 correctly.
15391
6f0c9f06
JJ
153922011-03-24 Jakub Jelinek <jakub@redhat.com>
15393
15394 PR debug/48204
15395 * simplify-rtx.c (simplify_const_unary_operation): Call
15396 real_convert when changing mode class with FLOAT_EXTEND.
15397
662666e5
NC
153982011-03-24 Nick Clifton <nickc@redhat.com>
15399
15400 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
15401 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
15402 * config/rx/rx.c (rx_option_override): Set align_jumps,
15403 align_loops and align_labels if not set by the user.
15404 (rx_align_for_label): New function.
15405 (rx_max_skip_for_label): New function.
15406 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
15407 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
15408 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
15409 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
15410 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
15411
2b99b2b8
RS
154122011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
15413
15414 PR rtl-optimization/48263
15415 * optabs.c (expand_binop_directly): Reinstate convert_modes code
15416 and original commutative_p handling. Use maybe_gen_insn.
15417
ccecd6ea
AK
154182011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15419
15420 * reload.c (find_reloads_subreg_address): Add address_reloaded
15421 parameter and return true there if the full address has been
15422 reloaded.
15423 (find_reloads_toplev): Pass address_reloaded flag.
15424 (find_reloads_address_1): Don't use address_reloaded parameter.
15425
67295642
JL
154262011-03-24 Jeff Law <law@redhat.com>
15427
15428 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
15429 unused variable "ann".
15430 (remove_unused_locals): Likewise.
15431
15432 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
15433 statement.
15434
15435 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
15436 after it is freed.
15437
212aa74f
AK
154382011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15439
15440 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
15441 for invalid symbolic addresses.
15442 (s390_secondary_reload): Don't use s390_check_symref_alignment for
15443 larl operands.
15444
fe784e0d
EB
154452011-03-24 Eric Botcazou <ebotcazou@adacore.com>
15446
15447 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
15448 the argument in calls to fold_truth_not_expr.
15449
63ee8641
NF
154502011-03-24 Nathan Froyd <froydnj@codesourcery.com>
15451
15452 * tree.c (record_node_allocation_statistics): New function.
15453 (make_node_stat, copy_node_stat, build_string): Call it.
15454 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
15455 (build1_stat, build_omp_clause): Likewise.
15456
61be2a1c
RS
154572011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
15458
15459 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
15460 last commit.
15461
a881aaa7
RG
154622011-03-24 Richard Guenther <rguenther@suse.de>
15463
15464 PR tree-optimization/48271
15465 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
15466 blocks that still exist.
15467
dbaa912c
RG
154682011-03-24 Richard Guenther <rguenther@suse.de>
15469
15470 PR tree-optimization/48270
15471 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
15472 not free datarefs before ddrs.
15473
1d60cc55
EB
154742011-03-24 Eric Botcazou <ebotcazou@adacore.com>
15475
15476 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
15477 from the address built for a reference with variable offset.
15478
c78dd519
UB
154792011-03-24 Uros Bizjak <ubizjak@gmail.com>
15480
15481 PR target/48237
15482 * config/i386/i386.md (*movdf_internal_rex64): Do not split
15483 alternatives that can be handled with movq or movabsq insn.
15484 (*movdf_internal): Disable for !TARGET_64BIT.
15485 (*movdf_internal_nointeger): Ditto.
15486 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
15487
b25b9e8f
NF
154882011-03-24 Nathan Froyd <froydnj@codesourcery.com>
15489
15490 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
15491 (FUNCTION_ARG_ADVANCE): Likewise.
15492 * tm.texi.in: Change references to them to hook references.
15493 * tm.texi: Regenerate.
c78dd519 15494 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
15495 (default_function_incoming_arg): Likewise.
15496 (default_function_arg_advance): Likewise.
c78dd519 15497 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
15498 (function_arg_advance): Likewise.
15499 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
15500
190b2187
RG
155012011-03-24 Richard Guenther <rguenther@suse.de>
15502
15503 PR middle-end/48269
15504 * tree-object-size.c (addr_object_size): Do not double-account
15505 for MEM_REF offsets.
15506
a183b5c7
DN
155072011-03-24 Diego Novillo <dnovillo@google.com>
15508
15509 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 15510 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
15511 (lto_input_data_block): Move from lto-opts.c. Make extern.
15512 Update all users.
15513 (lto_input_string): Rename from input_string. Make extern.
15514 Update all users.
15515 * lto-streamer-out.c (lto_output_string_with_length): Rename from
15516 output_string_with_length.
15517 Output 0 to indicate a non-NULL string. Update all callers to
15518 not emit 0.
15519 (lto_output_string): Rename from output_string. Make extern.
15520 Update all users.
15521 (lto_output_decl_state_streams): Make extern.
15522 (lto_output_decl_state_refs): Make extern.
15523 * lto-streamer.h (lto_input_string): Declare.
15524 (lto_input_data_block): Declare.
15525 (lto_output_string): Declare.
15526 (lto_output_string_with_length): Declare.
15527 (lto_output_decl_state_streams): Declare.
15528 (lto_output_decl_state_refs): Declare.
15529
cfef45c8
RG
155302011-03-24 Richard Guenther <rguenther@suse.de>
15531
15532 PR tree-optimization/46562
15533 * tree.c (build_invariant_address): New function.
15534 * tree.h (build_invariant_address): Declare.
15535 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
15536 a renamed function moved ...
15537 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
15538 Take valueization callback parameter.
15539 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
15540 * gimple-fold.h: New file.
15541 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
15542 (ccp_fold, fold_const_aggregate_ref,
15543 fold_ctor_reference, fold_nonarray_ctor_reference,
15544 fold_array_ctor_reference, fold_string_cst_ctor_reference,
15545 get_base_constructor): Move ...
15546 * gimple-fold.c: ... here.
15547 (gimple_fold_stmt_to_constant_1): New function
15548 split out from ccp_fold. Take a valueization callback parameter.
15549 Valueize all operands.
15550 (gimple_fold_stmt_to_constant): New wrapper function.
15551 (fold_const_aggregate_ref_1): New function split out from
15552 fold_const_aggregate_ref. Take a valueization callback parameter.
15553 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
15554 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
15555 invariant POINTER_PLUS_EXPRs to invariant form.
15556 (vn_valueize): New function.
15557 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
15558 * tree-vrp.c (vrp_valueize): New function.
15559 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
15560 to fold statements to constants.
15561 * tree-ssa-pre.c (eliminate): Properly guard propagation of
15562 function declarations.
15563 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
15564 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
15565
5e0a7e40
RS
155662011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
15567
15568 * config/h8300/predicates.md (jump_address_operand): Fix register
15569 mode check.
15570
bfe068c3
IR
155712011-03-24 Ira Rosen <ira.rosen@linaro.org>
15572
15573 * doc/invoke.texi (max-stores-to-sink): Document.
15574 * params.h (MAX_STORES_TO_SINK): Define.
15575 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
15576 if either vectorization or if-conversion is disabled.
15577 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
15578 tree-vect-data-refs.c vect_equal_offsets.
15579 (dr_equal_offsets_p): New function.
15580 (find_data_references_in_bb): Remove static.
15581 * tree-data-ref.h (find_data_references_in_bb): Declare.
15582 (dr_equal_offsets_p): Likewise.
15583 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
15584 (vect_drs_dependent_in_basic_block): Update calls to
15585 vect_equal_offsets.
15586 (vect_check_interleaving): Likewise.
15587 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
15588 (cond_if_else_store_replacement): Rename to...
15589 (cond_if_else_store_replacement_1): ... this. Change arguments and
15590 documentation.
15591 (cond_if_else_store_replacement): New function.
15592 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
15593 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
15594
4908b0bf
CLT
155952011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
15596
15597 PR target/46934
15598 * config/arm/arm.md (casesi): Use the gen_int_mode() function
15599 to subtract lower bound instead of GEN_INT().
15600
2be478a2
JW
156012011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
15602
15603 PR other/48179
15604 PR other/48221
15605 PR other/48234
15606 * doc/extend.texi (Alignment): Move section to match order in TOC.
15607 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
15608 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
15609
0c617be4
JL
156102011-03-23 Jeff Law <law@redhat.com>
15611
15612 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
15613 before removing the edge.
15614
15615 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
15616 it may have been freed by redirect_branch_edge or
15617 redirect_edge_succ_nodup.
15618
58da96fe
RG
156192011-03-23 Richard Guenther <rguenther@suse.de>
15620
c78dd519 15621 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
15622 (check_va_list_escapes): Likewise.
15623 (check_all_va_list_escapes): Likewise.
15624
b8beb4d1
RG
156252011-03-23 Richard Guenther <rguenther@suse.de>
15626
15627 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
15628 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
15629 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
15630 (alias.o): Likewise.
15631 (ipa-type-escape.o): Remove.
15632 (ipa-struct-reorg.o): Likewise.
15633 (GTFILES): Remove ipa-struct-reorg.c.
15634 * alias.c: Do not include ipa-type-escape.h.
15635 * tree-ssa-alias.c: Likewise.
15636 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
15637 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
15638 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
15639 and ipa-type-escape passes.
15640 * tree-pass.h (pass_ipa_type_escape): Remove.
15641 (pass_ipa_struct_reorg): Likewise.
15642 * ipa-struct-reorg.h: Remove.
15643 * ipa-struct-reorg.c: Likewise.
15644 * ipa-type-escape.h: Likewise.
15645 * ipa-type-escape.c: Likewise.
15646 * doc/invoke.texi (-fipa-struct-reorg): Remove.
15647 (--param struct-reorg-cold-struct-ratio): Likewise.
15648 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15649 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15650 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
15651
f137aa63
AK
156522011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15653
15654 * config/s390/2084.md: Enable all insn reservations also for z9_ec
15655 cpu attribute value.
15656 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
15657 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
15658 * config/s390/s390.c (processor_flags_table): New constant array.
15659 (s390_handle_arch_option): Remove.
15660 (s390_handle_option): Remove s390_handle_arch_option invocations
15661 and OPT_mwarn_framesize_ handling.
15662 (s390_option_override): Remove s390_handle_arch_option invocation.
15663 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
15664 warnings.
15665 * config/s390/s390.md (cpu attribute): Add z9_ec value.
15666 * config/s390/s390.opt (s390_tune, s390_arch)
15667 (march=): Replace s390_arch_option enum and values with
15668 processor_type. Set variable name to s390_arch. Set
15669 initialization value.
15670 (mtune=): Replace s390_arch_option with processor_type. Set
15671 variable name to s390_tune. Set initialization value.
15672
bf90208f
JB
156732011-03-23 Julian Brown <julian@codesourcery.com>
15674
15675 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
15676 accesses which are not naturally aligned.
15677
3460fdf3
RS
156782011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
15679
15680 PR target/47553
15681 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
15682
a5c7d693
RS
156832011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
15684
15685 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
15686 parameter from "int" to "enum insn_code".
15687 (expand_operand_type): New enum.
15688 (expand_operand): New structure.
15689 (create_expand_operand): New function.
15690 (create_fixed_operand, create_output_operand): Likewise
15691 (create_input_operand, create_convert_operand_to): Likewise.
15692 (create_convert_operand_from, create_address_operand): Likewise.
15693 (create_integer_operand): Likewise.
15694 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
15695 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15696 (expand_insn, expand_jump_insn): Likewise.
15697 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
15698 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
15699 (expand_movstr, expand_builtin___clear_cache): Likewise.
15700 (expand_builtin_lock_release): Likewise.
15701 * explow.c (allocate_dynamic_stack_space): Likewise.
15702 (probe_stack_range): Likewise. Allow check_stack to FAIL,
15703 and use the default handling in that case.
15704 * expmed.c (check_predicate_volatile_ok): Delete.
15705 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
15706 (emit_cstore): Likewise.
15707 * expr.c (emit_block_move_via_movmem): Likewise.
15708 (set_storage_via_setmem, expand_assignment): Likewise.
15709 (emit_storent_insn, try_casesi): Likewise.
15710 (emit_single_push_insn): Likewise. Allow the expansion to fail.
15711 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
15712 (expand_vec_shift_expr, expand_binop_directly): Likewise.
15713 (expand_twoval_unop, expand_twoval_binop): Likewise.
15714 (expand_unop_direct, emit_indirect_jump): Likewise.
15715 (emit_conditional_move, vector_compare_rtx): Likewise.
15716 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
15717 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
15718 (expand_sync_lock_test_and_set): Likewise.
15719 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
15720 (emit_unop_insn): Likewise.
15721 (expand_copysign_absneg): Change icode to an insn_code.
15722 (create_convert_operand_from_type): New function.
15723 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
15724 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15725 (expand_insn, expand_jump_insn): Likewise.
15726 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
15727 than const_int_operand for operand 2.
15728
78fadbab
AK
157292011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15730
15731 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
15732 if possible.
15733
5f02387d
NF
157342011-03-22 Nathan Froyd <froydnj@codesourcery.com>
15735
15736 * emit-rtl.c (emit_pattern_before_noloc): New function.
15737 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
15738 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
15739 (emit_pattern_after_noloc): New function.
15740 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
15741 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
15742
fdf3e18a
NF
157432011-03-22 Nathan Froyd <froydnj@codesourcery.com>
15744
15745 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
15746 (__ffsDI2): Likewise.
15747
42d085c1
RH
157482011-03-22 Richard Henderson <rth@redhat.com>
15749
15750 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
15751 of !TARGET_ABI_OPEN_VMS.
15752 (alpha_trampoline_init, alpha_start_function): Likewise.
15753 (alpha_expand_epilogue, alpha_file_start): Likewise.
15754 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
15755 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
15756 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
15757 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
15758 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
15759
cabbe12a
JM
157602011-03-22 Joseph Myers <joseph@codesourcery.com>
15761
15762 * config/s390/s390-opts.h: New.
15763 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
15764 s390_arch_flags, s390_warn_framesize, s390_stack_size,
15765 s390_stack_guard): Remove.
15766 (s390_handle_arch_option): Return void. Take enum
15767 s390_arch_option value instead of string and searching array.
15768 (s390_handle_option): Don't assert that global structures are in
15769 use. Access variables via opts pointer. Use error_at. Don't use
15770 sscanf for -mstack-guard= or -mstack-size=. Update call to
15771 s390_handle_arch_option.
15772 (s390_option_override): Update call to s390_handle_arch_option.
15773 (s390_emit_prologue): Use %d format for s390_stack_size in
15774 diagnostic. Use %wd for HOST_WIDE_INT.
15775 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
15776 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
15777 * config/s390/s390.opt (config/s390/s390-opts.h): New
15778 HeaderInclude entry.
15779 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
15780 s390_arch_flags, s390_warn_framesize): New Variable entries.
15781 (s390_arch_option): New Enum and EnumValue entries.
15782 (march=): Use Enum instead of Var.
15783 (mstack-guard=, mstack-size=): Use UInteger and Var.
15784 (mtune=): Use Enum.
15785
05b12036
JM
157862011-03-22 Joseph Myers <joseph@codesourcery.com>
15787
15788 * config/score/score.c (score_handle_option): Don't assert that
15789 global structures are in use. Access target_flags via opts
15790 pointer. Use value of -march= option to determine target_flags
15791 settings.
15792 * config/score/score.opt (march=): Use Enum.
15793 (score_arch): New Enum and EnumValue entries.
15794
dd51e35a
JM
157952011-03-22 Joseph Myers <joseph@codesourcery.com>
15796
15797 * config/mep/mep.c (option_mtiny_specified): Remove.
15798 (mep_option_override): Move register handling for -mivc2 from
15799 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
15800 instead of option_mtiny_specified.
15801 (mep_handle_option): Access target_flags via opts pointer. Don't
15802 assert that global structures are in use. Defer part of -mivc2
15803 handling and move it to mep_option_override.
15804 * config/mep/mep.opt (IVC2): New Mask entry.
15805 (mivc2): Use Var and Defer instead of Mask.
15806
4a8d3d91
JM
158072011-03-22 Joseph Myers <joseph@codesourcery.com>
15808
15809 * config/v850/v850-opts.h: New.
15810 * config/v850/v850.c (small_memory): Replace with
15811 small_memory_physical_max array. Make that array static const.
15812 (v850_handle_memory_option): Take integer value of argument. Take
15813 gcc_options pointer, option text and location. Return void.
15814 Update for changes to small memory structures.
15815 (v850_handle_option): Access target_flags via opts pointer. Don't
15816 assert that global structures are in use. Update calls to
15817 v850_handle_memory_option.
c78dd519
UB
15818 (v850_encode_data_area): Update references to small memory settings.
15819 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
15820 (enum small_memory_type): Move to v850-opts.h.
15821 * config/v850/v850.opt (config/v850/v850-opts.h): New
15822 HeaderInclude entry.
15823 (small_memory_max): New Variable entry.
15824 (msda): Replace by pair of options msda= and msda-. Use UInteger.
15825 (mtda, mzda): Likewise.
15826
117fdbfa
JM
158272011-03-22 Joseph Myers <joseph@codesourcery.com>
15828
15829 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
15830 pointer. Don't assert that global structures are in use.
15831
d715091c
JM
158322011-03-22 Joseph Myers <joseph@codesourcery.com>
15833
15834 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
15835 via opts pointer. Don't assert that global structures are in use.
15836
1bb721dc
JM
158372011-03-22 Joseph Myers <joseph@codesourcery.com>
15838
15839 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
15840 (munix=93): Use Var.
15841 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
15842 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
15843 * config/pa/pa-opts.h: New.
15844 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
15845 (pa_handle_option): Don't assert that global structures are in
15846 use. Access target_flags via opts pointer. Don't handle
15847 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
15848 OPT_munix_98 here.
15849 (pa_option_override): Handle deferred OPT_mfixed_range_.
15850
cd8d8754
JM
158512011-03-22 Joseph Myers <joseph@codesourcery.com>
15852
15853 * config/mn10300/mn10300-opts.h: New.
15854 * config/mn10300/mn10300.c (mn10300_processor,
15855 mn10300_tune_string): Remove.
15856 (mn10300_handle_option): Don't assert that global structures are
15857 in use. Access mn10300_processor via opts pointer. Don't handle
15858 OPT_mtune_ here.
15859 * config/mn10300/mn10300.h (enum processor_type): Move to
15860 mn10300-opts.h.
15861 (mn10300_processor): Remove.
15862 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
15863 HeaderInclude entry.
15864 (mn10300_processor): New Variable entry.
15865 (mtune=): Use Var.
15866
24e6e6b1
JM
158672011-03-22 Joseph Myers <joseph@codesourcery.com>
15868
15869 * config/microblaze/microblaze.c: Don't include opts.h.
15870 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
15871 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
15872 (mno-clearbss): Use Var and Warn.
15873
8a784afb
JM
158742011-03-22 Joseph Myers <joseph@codesourcery.com>
15875
15876 * config/m32r/m32r-opts.h: New.
15877 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
15878 (m32r_handle_option): Don't assert that global structures are in
15879 use. Access target_flags and m32r_cache_flush_func via opts
15880 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
15881 OPT_mno_flush_trap here.
15882 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
15883 include of m32r-opts.h.
15884 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
15885 HeaderInclude entry.
15886 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
15887 (mmodel=): Use Enum and Var.
15888 (m32r_model): New Enum and EnumValue entries.
15889 (mno-flush-trap): Use Var.
15890 (msdata=): Use Enum and Var.
15891 (m32r_sdata): New Enum and EnumValue entries.
15892
bbfc9a8c
JM
158932011-03-22 Joseph Myers <joseph@codesourcery.com>
15894
15895 * config/m32c/m32c.c: Don't include opts.h.
15896 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
15897 m32c_handle_option): Remove.
15898 (m32c_option_override): Check global_options_set.x_target_memregs
15899 instead of target_memregs_set.
15900 * config/m32c/m32c.h (target_memregs): Remove.
15901 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
15902 variable.
15903
e24b8335
JM
159042011-03-22 Joseph Myers <joseph@codesourcery.com>
15905
15906 * config/iq2000/iq2000-opts.h: New.
15907 * config/iq2000/iq2000.c: Don't include opts.h.
15908 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 15909 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
15910 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
15911 HeaderInclude entry.
15912 (iq2000_tune): New Variable entry.
15913 (march=): Add comment. Use Enum.
15914 (iq2000_arch): New Enum and EnumValue entries.
15915 (mcpu=): Use Enum and Var.
15916 (iq2000_tune): New Enum and EnumValue entries.
15917
e6cc0c98
JM
159182011-03-22 Joseph Myers <joseph@codesourcery.com>
15919
15920 * config/ia64/ia64-opts.h: New.
15921 * config/ia64/ia64.c (ia64_tune): Remove.
15922 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
15923 here. Use error_at.
15924 (ia64_option_override): Handle deferred OPT_mfixed_range_.
15925 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
15926 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
15927 HeaderInclude entry.
15928 (ia64_tune): New Variable entry.
15929 (mfixed-range=): Use Defer and Var.
15930 (mtune=): Use Enum and Var.
15931 (ia64_tune): New Enum and EnumValue entries.
15932
db25893c
JM
159332011-03-22 Joseph Myers <joseph@codesourcery.com>
15934
15935 * config/frv/frv-opts.h: New.
15936 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
15937 frv-opts.h.
15938 (frv_cpu_type): Remove.
15939 * config/frv/frv.c: Don't include opts.h.
15940 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 15941 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
15942 (frv_cpu_type): New Variable entry.
15943 (frv_cpu): New Enum and EnumValue entries.
15944
6c223f5d
JM
159452011-03-22 Joseph Myers <joseph@codesourcery.com>
15946
15947 * config/cris/cris.c (cris_handle_option): Access target_flags via
15948 opts pointer. Don't assert that global structures are in use.
15949 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
15950 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
15951
bbd399cf
JM
159522011-03-22 Joseph Myers <joseph@codesourcery.com>
15953
15954 * config/bfin/bfin-opts.h: New.
15955 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
15956 bfin_si_revision, bfin_workarounds): Remove.
15957 (bfin_cpus): Make static const.
15958 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
15959 not bfin_lib_id_given.
15960 (bfin_handle_option): Don't set bfin_lib_id_given. Access
15961 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 15962 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
15963 * config/bfin/bfin.h: Include bfin-opts.h.
15964 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
15965 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
15966 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
15967 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
15968 entries.
15969
5e1b4d5a
JM
159702011-03-22 Joseph Myers <joseph@codesourcery.com>
15971
15972 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
15973 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
15974 or -msoft-float here.
15975 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
15976 -msoft-float and -mhard-float.
c78dd519 15977 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
15978 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15979 msoft-float.
15980 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
15981 -msoft-float.
15982 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
15983 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
15984 not mhard-float.
15985 (LIBGCC_SPEC): Don't handle -msoft-float.
15986 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
15987 -mhard-float.
15988 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15989 msoft-float.
15990 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
15991 -mfloat-abi=*, not -msoft-float and -mhard-float.
15992 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
15993 -msoft-float.
15994 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
15995 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
15996 mhard-float and msoft-float.
15997 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
15998 mfloat-abi=soft in comments, not mhard-float and msoft-float.
15999 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16000 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
16001 mhard-float.
16002 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
16003 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
16004 msoft-float.
16005 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
16006 not mhard-float.
16007 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
16008 not msoft-float.
16009
800d1de1
RH
160102011-03-22 Richard Henderson <rth@redhat.com>
16011
16012 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
16013 TARGET_ABI_WINDOWS_NT.
16014 (alpha_output_function_end_prologue): Likewise.
16015 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
16016 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16017 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
16018 (trap, *movsi_nt_vms): Likewise.
16019 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
16020 (*tablejump_osf_nt_internal): Remove.
16021 * config/alpha/predicates.md (input_operand): Only test Pmode.
16022
c59ddd2b
JM
160232011-03-22 Joseph Myers <joseph@codesourcery.com>
16024
16025 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
16026 via opts pointer. Use error_at. Don't assert that global
16027 structures are in use.
16028
1333f97f
JM
160292011-03-22 Joseph Myers <joseph@codesourcery.com>
16030
16031 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
16032 (ix86_handle_option): Access ix86_isa_flags and
16033 ix86_isa_flags_explicit via opts pointer. Don't assert that
16034 global structures are in use.
16035 (ix86_function_specific_save, ix86_function_specific_restore):
16036 Update ix86_isa_flags_explicit field name.
c78dd519 16037 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
16038 (ix86_isa_flags_explicit): Rename TargetSave entry to
16039 x_ix86_isa_flags_explicit.
16040
75db85d8
RH
160412011-03-22 Richard Henderson <rth@redhat.com>
16042
16043 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
16044 (alpha_option_override, direct_return): Likewise.
16045 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
16046 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
16047 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
16048 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
16049 (alpha_expand_epilogue, alpha_end_function): Likewise.
16050 (alpha_init_libfuncs): Likewise.
16051 (struct machine_function): Remove unicosmk members.
16052 (print_operand) ['t']: Remove.
16053 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
16054 unicosmk_output_module_name, unicosmk_output_common,
16055 current_section_align, unicosmk_output_text_section_asm_op,
16056 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
16057 unicosmk_section_type_flags, unicosmk_unique_section,
16058 unicosmk_asm_named_section, unicosmk_insert_attributes,
16059 unicosmk_output_align, unicosmk_defer_case_vector,
16060 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
16061 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
16062 unicosmk_output_ssib, unicosmk_add_call_info_word,
16063 unicosmk_extern_head, unicosmk_output_default_externs,
16064 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
16065 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
16066 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
16067 * config/alpha/alpha-protos.h: Update.
16068 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
16069 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
16070 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
16071 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
16072 (*mulsi_se, mulvsi3): Likewise.
16073 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
16074 (*divmodsi_internal, call, call_value, realign): Likewise.
16075 (moddi3, umoddi3): Likewise; remove duplicate expander.
16076 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
16077 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
16078 (*movdi_nofix): Remove r/U alternative.
16079 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
16080 * config/alpha/constraints.md ("U"): Remove.
16081 * config/alpha/predicates.md (call_operand"): Don't test
16082 TARGET_ABI_UNICOSMK.
16083
96e45421
JM
160842011-03-22 Joseph Myers <joseph@codesourcery.com>
16085
16086 * target.def (handle_option): Take gcc_options and
16087 cl_decoded_option pointers and location_t.
16088 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
16089 * doc/tm.texi: Regenerate.
16090 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
16091 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
16092 * lto-opts.c (lto_reissue_options): Generate option structure for
16093 targetm.handle_option call.
16094 * opts.c (target_handle_option): Update call to
16095 targetm.handle_option. Remove assertions about values now passed
16096 down to hook.
16097 * targhooks.c (default_target_handle_option): New.
16098 * targhooks.h (default_target_handle_option): Declare.
16099 * config/alpha/alpha.c: Include opts.h.
16100 (alpha_handle_option): Update to new hook interface.
16101 * config/arm/arm.c: Include opts.h.
16102 (arm_handle_option): Update to new hook interface.
16103 * config/arm/t-arm (arm.o): Update dependencies.
16104 * config/bfin/bfin.c: Include opts.h.
16105 (bfin_handle_option): Update to new hook interface.
16106 * config/cris/cris.c: Include opts.h.
16107 (cris_handle_option): Update to new hook interface.
16108 * config/frv/frv.c: Include opts.h.
16109 (frv_handle_option): Update to new hook interface.
16110 * config/i386/i386.c: Include opts.h.
16111 (ix86_handle_option): Update to new hook interface.
16112 (ix86_valid_target_attribute_inner_p): Generate option structure
16113 for call to ix86_handle_option.
16114 * config/i386/t-i386 (i386.o): Update dependencies.
16115 * config/ia64/ia64.c: Include opts.h.
16116 (ia64_handle_option): Update to new hook interface.
16117 * config/ia64/t-ia64 (ia64.o): Update dependencies.
16118 * config/iq2000/iq2000.c: Include opts.h.
16119 (iq2000_handle_option): Update to new hook interface.
16120 * config/m32c/m32c.c: Include opts.h.
16121 (m32c_handle_option): Update to new hook interface.
16122 * config/m32r/m32r.c: Include opts.h.
16123 (m32r_handle_option): Update to new hook interface.
16124 * config/m68k/m68k.c: Include opts.h.
16125 (m68k_handle_option): Update to new hook interface.
16126 * config/mep/mep.c: Include opts.h.
16127 (mep_handle_option): Update to new hook interface.
16128 * config/microblaze/microblaze.c: Include opts.h.
16129 (microblaze_handle_option): Update to new hook interface.
16130 * config/mips/mips.c: Include opts.h.
16131 (mips_handle_option): Update to new hook interface.
16132 * config/mn10300/mn10300.c: Include opts.h.
16133 (mn10300_handle_option): Update to new hook interface.
16134 * config/pa/pa.c: Include opts.h.
16135 (pa_handle_option): Update to new hook interface.
16136 * config/pdp11/pdp11.c: Include opts.h.
16137 (pdp11_handle_option): Update to new hook interface.
16138 * config/rs6000/rs6000.c: Include opts.h.
16139 (rs6000_handle_option): Update to new hook interface.
16140 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
16141 * config/rx/rx.c: Include opts.h.
16142 (rx_handle_option): Update to new hook interface.
16143 * config/s390/s390.c: Include opts.h.
16144 (s390_handle_option): Update to new hook interface.
16145 * config/score/score.c: Include opts.h.
16146 (score_handle_option): Update to new hook interface.
16147 * config/sh/sh.c: Include opts.h.
16148 (sh_handle_option): Update to new hook interface.
16149 * config/sparc/sparc.c: Include opts.h.
16150 (sparc_handle_option): Update to new hook interface.
16151 * config/v850/v850.c: Include opts.h.
16152 (v850_handle_option): Update to new hook interface.
16153
66017846
JM
161542011-03-22 Joseph Myers <joseph@codesourcery.com>
16155
16156 * gcc.c (driver_unknown_option_callback): Only permit and save
16157 unknown -Wno- options.
16158 (driver_wrong_lang_callback): Save options directly instead of via
16159 driver_unknown_option_callback.
16160
e8b97ccd
EB
161612011-03-22 Eric Botcazou <ebotcazou@adacore.com>
16162
16163 * combine.c (simplify_set): Try harder to find the best CC mode when
16164 simplifying a nested COMPARE on the RHS.
16165
ebb9f8b0
JM
161662011-03-22 Joseph Myers <joseph@codesourcery.com>
16167
16168 * config/alpha/gnu.h: Remove.
16169 * config/arc: Remove directory.
16170 * config/arm/netbsd.h: Remove.
16171 * config/arm/t-pe: Remove.
16172 * config/crx: Remove directory.
16173 * config/i386/netbsd.h: Remove.
16174 * config/m68hc11: Remove directory.
16175 * config/m68k/uclinux-oldabi.h: Remove.
16176 * config/mcore/mcore-pe.h: Remove.
16177 * config/mcore/t-mcore-pe: Remove.
16178 * config/netbsd-aout.h: Remove.
16179 * config/rs6000/gnu.h: Remove.
16180 * config/sh/sh-symbian.h: Remove.
16181 * config/sh/symbian-base.c: Remove.
16182 * config/sh/symbian-c.c: Remove.
16183 * config/sh/symbian-cxx.c: Remove.
16184 * config/sh/symbian-post.h: Remove.
16185 * config/sh/symbian-pre.h: Remove.
16186 * config/sh/t-symbian: Remove.
16187 * config/svr3.h: Remove.
16188 * config/vax/netbsd.h: Remove.
16189 * config.build: Don't handle i[34567]86-*-pe.
16190 * config.gcc: Remove handling of deprecations for most deprecated
16191 targets.
16192 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
16193 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
16194 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
16195 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
16196 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
16197 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
16198 Remove cases.
16199 * config.host: Don't handle i[34567]86-*-pe.
16200 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
16201 (ASM_SPEC32): Don't handle -mcall-gnu.
16202 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
16203 -mcall-gnu.
16204 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
16205 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
16206 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
16207 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
16208 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
16209 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
16210 conditional on SYMBIAN.
16211 * configure.ac: Don't handle powerpc*-*-gnu*.
16212 * configure: Regenerate.
16213 * doc/extend.texi (interrupt attribute): Don't mention CRX.
16214 * doc/install-old.texi (m6811, m6812): Don't mention.
16215 * doc/install.texi (arc-*-elf*): Don't document multilib option.
16216 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
16217 (m68k-uclinuxoldabi): Don't mention.
16218 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
16219 Remove.
16220 (-mcall-gnu): Remove.
16221 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
16222 families): Remove constraint documentation.
16223
999a7d80
MS
162242011-03-22 Marius Strobl <marius@FreeBSD.org>
16225
16226 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
16227 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
16228 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
16229
45540bcf
MM
162302011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
16231
16232 PR target/48226
16233 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
16234 vector when peeking at the next token for vector, don't expand the
16235 keywords.
16236
980a0ff4
GJL
162372011-03-21 Georg-Johann Lay <avr@gjlay.de>
16238
16239 * config/avr/avr-protos.h (expand_epilogue): Change prototype
16240 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
16241 * config/avr/avr.c (init_cumulative_args)
16242 (avr_function_arg_advance): Use it.
16243 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
16244 sibcall epilogues.
16245 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
16246 (avr_function_ok_for_sibcall): ...this new function.
16247 (avr_lookup_function_attribute1): New static Function.
16248 (avr_naked_function_p, interrupt_function_p)
16249 (signal_function_p, avr_OS_task_function_p)
16250 (avr_OS_main_function_p): Use it.
16251 * config/avr/avr.md ("sibcall", "sibcall_value")
16252 ("sibcall_epilogue"): New expander.
16253 ("*call_insn", "*call_value_insn"): New insn.
16254 ("call_insn", "call_value_insn"): Remove
16255 ("call", "call_value", "epilogue"): Change expander to handle
16256 sibling calls.
16257
49168734
NC
162582011-03-21 Nick Clifton <nickc@redhat.com>
16259
16260 * doc/invoke.texi (Overall Options): Move closing brace to end of
16261 options list.
16262 (Optimization Options): Add missing @gol.
16263 (Directory Options): Likewise.
16264 (i386 and x86-64 Options): Likewise.
16265 (RS6000 and PowerPC Options): Likewise.
16266 (i386 and x86-64 Windows Options): Likewise.
16267 (V850 Options): Add text missing from descriptions.
16268
bdfe906f
RH
162692011-03-22 Richard Henderson <rth@redhat.com>
16270
16271 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
16272 (avr_incoming_return_addr_rtx): New.
16273 (emit_push_byte): New.
16274 (expand_prologue): Use it. Remove incorrect dwarf annotation for
16275 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
16276 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
16277 (emit_pop_byte): New.
16278 (expand_epilogue): Use it. Pop frame pointer by bytes.
16279 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
16280 (INCOMING_RETURN_ADDR_RTX): New.
16281 (INCOMING_FRAME_SP_OFFSET): New.
16282 (ARG_POINTER_CFA_OFFSET): New.
16283 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
16284 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
16285 (pophi): Remove.
16286
d090a5aa
RH
16287 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
16288
fdf3e18a
NF
162892011-03-22 Nathan Froyd <froydnj@codesourcery.com>
16290
16291 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16292 (FUNCTION_ARG_ADVANCE): Likewise.
16293 * tm.texi.in: Change references to them to hook references.
16294 * tm.texi: Regenerate.
16295 * targhooks.c (default_function_arg): Eliminate check for target
16296 macro.
16297 (default_function_incoming_arg): Likewise.
16298 (default_function_arg_advance): Likewise.
c78dd519 16299 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
16300 (function_arg_advance): Likewise.
16301 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16302
009d3fcf
NF
163032011-03-22 Nathan Froyd <froydnj@codesourcery.com>
16304
16305 * tree.c (build_call_1): New function.
16306 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
16307
7bec30e1
RG
163082011-03-22 Richard Guenther <rguenther@suse.de>
16309
16310 PR tree-optimization/48228
16311 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
16312 for single-arg PHIs.
16313
0b7e851b
AB
163142011-03-22 Andrey Belevantsev <abel@ispras.ru>
16315
16316 PR rtl-optimization/48143
16317 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
16318 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
16319 sse2_cvtps2pd): Likewise.
16320
d89afca5
AK
163212011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16322
16323 * recog.c (canonicalize_change_group): Use validate_unshare_change.
16324
f471fe72
RG
163252011-03-22 Richard Guenther <rguenther@suse.de>
16326
16327 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
16328 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
16329 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
16330 and REALIGN_LOAD_EXPR.
16331 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
16332 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
16333 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
16334 DOT_PROD_EXPR case ...
16335 (expand_expr_real_2): ... here.
16336 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
16337 and REALIGN_LOAD_EXPR.
16338 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
16339 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
16340 (vect_create_epilog_for_reduction): Likewise.
16341 (vectorizable_reduction): Likewise.
16342 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
16343 * tree-vect-stmts.c (vectorizable_load): Likewise.
16344
f2f81d57
EB
163452011-03-22 Eric Botcazou <ebotcazou@adacore.com>
16346
16347 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
16348
ab081dd6
AK
163492011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16350
16351 * config/s390/s390.c (s390_delegitimize_address): Fix offset
16352 handling for PLTOFF/GOTOFF.
16353
6fd5332b
NC
163542011-03-22 Nick Clifton <nickc@redhat.com>
16355
16356 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
16357 trailing backslash from the end of the macro definition.
16358
01841ac0
AK
163592011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16360
16361 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
16362 and PLT unspecs.
16363
2ef6ce06
RS
163642011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
16365
16366 * expr.h (prepare_operand): Move to...
16367 * optabs.h (prepare_operand): ...here and change the insn code
16368 parameter from "int" to "enum insn_code".
16369 (insn_operand_matches): Declare.
16370 * expr.c (init_expr_target): Use insn_operand_matches.
16371 (compress_float_constant): Likewise.
16372 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
16373 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
16374 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
16375 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
16376 Likewise.
2ef6ce06
RS
16377 (gen_cond_trap): Likewise.
16378 (prepare_operand): Likewise. Change icode to an insn_code.
16379 (insn_operand_matches): New function.
16380 * reload.c (find_reloads_address_1): Use insn_operand_matches.
16381 * reload1.c (gen_reload): Likewise.
16382 * targhooks.c (default_secondary_reload): Likewise.
16383
9e43ad68
UB
163842011-03-21 Uros Bizjak <ubizjak@gmail.com>
16385
9a96da32
UB
16386 * config/alpha/alpha.md (unspec): New define_c_enum.
16387 (unspecv): Ditto.
16388
163892011-03-21 Uros Bizjak <ubizjak@gmail.com>
16390
16391 PR debug/48214
9e43ad68
UB
16392 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
16393 between a call and its CALL_ARG_LOCATION note.
16394
31408f60
EB
163952011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16396
16397 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
16398
163992011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
16400
16401 PR c/42544
16402 PR c/48197
16403 * c-common.c (shorten_compare): If primopN is first sign-extended
16404 to opN and then zero-extended to result type, set primopN to opN.
16405
9dfd55f5
DJ
164062011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
16407
16408 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
16409 for barrier handlers.
16410
f3c33d9d
MM
164112011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
16412
16413 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
16414 UNSPEC constants to be in the unspec enumeration, and redefine
16415 all UNSPECV constants to be in the unspecv enumeration, so that
16416 dumps print which unspec/unspec_volatile this is.
16417 * config/rs6000/vector.md (UNSPEC_*): Ditto.
16418 * config/rs6000/paired.md (UNSPEC_*): Ditto.
16419 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
16420 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
16421 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
16422
16423 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
16424 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
16425 UNSPECV_LWSYNC, since these are used as unspec_volatile.
16426 * config/rs6000/sync.md (isync, lwsync): Ditto.
16427
ac43f774
RG
164282011-03-21 Richard Guenther <rguenther@suse.de>
16429
16430 * params.def (lto-min-partition): Fix typo.
16431
411cdbd8
RG
164322011-03-21 Richard Guenther <rguenther@suse.de>
16433
16434 PR c/47939
16435 * c-decl.c (grokdeclarator): Drop to the main variant only
16436 for array types. Drop flag_gen_aux_info check.
16437
1cd9e416
RG
164382011-03-21 Richard Guenther <rguenther@suse.de>
16439
16440 PR translation/47911
16441 * params.def (lto-partitions): Fix typo.
16442 (lto-min-partition): Fix wording.
16443
ada5ad67
AT
164442011-03-21 Andreas Tobler <andreast@fgznet.ch>
16445
16446 * config/rs6000/t-freebsd: Remove duplication from file.
16447
f9613c9a
RG
164482011-03-21 Richard Guenther <rguenther@suse.de>
16449
16450 PR middle-end/47661
16451 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
16452
9bfbc1eb
RG
164532011-03-21 Richard Guenther <rguenther@suse.de>
16454
16455 PR lto/48210
16456 * params.def (lto-partitions): Require at least 1 partition.
16457
a2268084
RO
164582011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16459
16460 * gthr-solaris.h: Remove.
16461 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
16462 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
16463 (LIB_SPEC): Likewise.
16464 * config/sol2.opt (threads): Remove.
9e43ad68 16465 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
16466 (sparc*-*-solaris2*): Likewise.
16467 * configure.ac (enable_threads): Enable solaris support.
16468 * configure: Regenerate.
9e43ad68 16469 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
16470 * doc/install.texi (Configuration, --enable-threads=lib): Remove
16471 solaris.
16472
c43d9a1b
RO
164732011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16474
16475 * config.gcc: Obsolete *-*-solaris2.8*.
16476 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16477
084239f4
RO
164782011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16479
16480 PR bootstrap/48135
16481 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
16482 reference. Solaris 8 perl works.
16483
64cadbe7
RO
164842011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16485
16486 PR bootstrap/48135
16487 * doc/install.texi (Prerequisites): Move jar etc. up.
16488 Explain support library version requirements.
16489
eb975109
RO
164902011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16491
16492 PR bootstrap/48135
16493 * doc/install.texi (Prerequisites): Move Perl to build
16494 requirements. Always necessary on Solaris 2 with Sun ld.
16495
8a509ffd
RO
164962011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16497
16498 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
16499 binutils 2.21.
16500 (Specific, i?86-*-solaris2.[89]): Likewise.
16501 (Specific, i?86-*-solaris2.10): Likewise.
16502 (Specific, mips-sgi-irix6): Likewise.
16503 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
16504 Update for binutils 2.21.
16505
8fbc58a1
RO
165062011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16507
16508 * configure.ac (gcc_cv_lto_plugin): Fix typo.
16509 Allow -fuse-linker-plugin for non-default plugin linker.
16510 * configure: Regenerate.
16511
7e84ad0b
NP
165122011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
16513
16514 PR bootstrap/48167
16515 * gengtype.c (files_rules): Added rule for cp/parser.h.
16516
2f36e14b
JJ
165172011-03-21 Jakub Jelinek <jakub@redhat.com>
16518
16519 PR target/48213
16520 * config/s390/s390.c (s390_delegitimize_address): Don't call
16521 lowpart_subreg if orig_x has BLKmode.
16522
62d784f7
KT
165232011-03-21 Kai Tietz <ktietz@redhat.com>
16524
16525 PR target/12171
9e43ad68
UB
16526 * doc/plugins.texi: Adjust documentation for plugin register_callback.
16527 * tree.h (attribute_spec): Add new member affects_type_identity.
16528 * attribs.c (empty_attribute_table): Adjust attribute_spec
16529 initializers.
62d784f7
KT
16530 * config/alpha/alpha.c: Likewise.
16531 * config/arc/arc.c: Likewise.
16532 * config/arm/arm.c: Likewise.
16533 * config/avr/avr.c: Likewise.
16534 * config/bfin/bfin.c: Likewise.
16535 * config/crx/crx.c: Likewise.
16536 * config/darwin.h: Likewise.
16537 * config/h8300/h8300.c: Likewise.
16538 * config/i386/cygming.h: Likewise.
16539 * config/i386/i386.c: Likewise.
16540 * config/ia64/ia64.c: Likewise.
16541 * config/m32c/m32c.c: Likewise.
16542 * config/m32r/m32r.c: Likewise.
16543 * config/m68hc11/m68hc11.c: Likewise.
16544 * config/m68k/m68k.c: Likewise.
16545 * config/mcore/mcore.c: Likewise.
16546 * config/mep/mep.c: Likewise.
16547 * config/microblaze/microblaze.c: Likewise.
16548 * config/mips/mips.c: Likewise.
16549 * config/rs6000/rs6000.c: Likewise.
16550 * config/rx/rx.c: Likewise.
16551 * config/sh/sh.c: Likewise.
16552 * config/sol2.h: Likewise.
16553 * config/sparc/sparc.c: Likewise.
16554 * config/spu/spu.c: Likewise.
16555 * config/stormy16/stormy16.c: Likewise.
16556 * config/v850/v850.c: Likewise.
16557
54833ec0
CLT
165582011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
16559
16560 * simplify-rtx.c (simplify_binary_operation_1): Handle
16561 (xor (and A B) C) case when B and C are both constants.
16562
14a41392
MX
165632011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
16564
16565 * tree-dfa.c (add_referenced_var): Fix typo in comment.
16566
806c3492
EB
165672011-03-20 Eric Botcazou <ebotcazou@adacore.com>
16568
16569 PR bootstrap/48168
16570 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
16571
65e0a0f3
JJ
165722011-03-20 Jakub Jelinek <jakub@redhat.com>
16573
16574 PR rtl-optimization/48156
16575 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
16576 assume df and df_lr are not NULL.
16577
b6a75dda
RR
165782011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16579
16580 PR debug/48023
16581 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
16582 between a call and its CALL_ARG_LOCATION note.
16583
5969b52d
KK
165842011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
16585
16586 PR debug/48178
16587 * config/sh/sh.c (find_barrier): Don't emit a constant pool
16588 between a call and its corresponding CALL_ARG_LOCATION note.
16589
f773c2bd
AS
165902011-03-19 Anatoly Sokolov <aesok@post.ru>
16591
16592 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
16593 instead of loop. Use HARD_REGISTER_NUM_P predicate.
16594 * haifa-sched.c (setup_ref_regs): Ditto.
16595 * caller-save.c (add_used_regs_1): Ditto.
16596 * dse.c (look_for_hardregs): Ditto.
16597 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
16598 * sched-rgn.c (check_live_1): Ditto.
16599
8bf872f9
JM
166002011-03-18 Joseph Myers <joseph@codesourcery.com>
16601
16602 * c-decl.c (diagnose_mismatched_decls): Give an error for
16603 redefining a typedef with variably modified type.
16604
ff8e2159
JM
166052011-03-18 Joseph Myers <joseph@codesourcery.com>
16606
16607 * c-decl.c (grokfield): Don't allow typedefs for structures or
16608 unions with no tag by default.
16609 * doc/extend.texi (Unnamed Fields): Update.
16610
16cc4440
UB
166112011-03-18 Uros Bizjak <ubizjak@gmail.com>
16612
16613 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16614 Rewrite using indirect functions.
16615 (lwp_slwpcb): Ditto.
16616 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
16617 (avx_vinsertf128<mode>): Ditto.
16618
e101e12e
AK
166192011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16620
16621 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
16622 unspecs.
16623
4627c7fb
AK
166242011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16625
16626 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 16627 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 16628
2d36b47f
MK
166292011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
16630
16631 PR rtl-optimization/48170
16632 * gcse.c (hoist_code): Remove bogus asserts.
16633
2a3d7659
JL
166342011-03-18 Georg-Johann Lay <avr@gjlay.de>
16635
16636 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
16637 computation for prologue/epilogue.
16638
34c3ef05
RO
166392011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16640
16641 * Makefile.in (check-consistency): Remove.
16642
81f2b976
JJ
166432011-03-18 Jakub Jelinek <jakub@redhat.com>
16644
16645 PR debug/48176
16646 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
16647 arange_table_in_use is 0, but either text_section_used or
16648 cold_text_section_used is true. Don't call it if
16649 !info_section_emitted.
16650
68fd7765
AS
166512011-03-18 Anatoly Sokolov <aesok@post.ru>
16652
16653 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
16654 FUNCTION_VALUE_REGNO_P): Remove.
16655 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
16656 Remove.
16657 * config/avr/avr.c (avr_ret_register): Make static inline.
16658 (avr_function_value_regno_p): New function.
16659 (avr_libcall_value): Make static. Add 'func' argument.
16660 (avr_function_value): Make static. Rename 'func' argument to
16661 'fn_decl_or_type', forward it to avr_libcall_value. Call
16662 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 16663 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 16664
b4ef8aac
JM
166652011-03-18 Jason Merrill <jason@redhat.com>
16666
16667 PR c++/23372
16668 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
16669
09a52fc3
RG
166702011-03-18 Richard Guenther <rguenther@suse.de>
16671
16672 * doc/install.texi (--enable-gold): Remove.
16673 (--with-plugin-ld): Document.
16674 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
16675
2a3d7659 166762011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
16677
16678 PR middle-end/47790
16679 * expr.c (optimize_bitfield_assignment_op): Revamp to work
16680 again after expansion changes.
16681
2abbb0fe
CLT
166822011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
16683
16684 * combine.c (try_combine): Do simplification only call of
16685 subst() on i2 even when i1 is present. Update comments.
16686
2efd0aa6
KK
166872011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
16688
16689 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
16690 and UNSPEC_PCREL_SYMOFF.
16691
30a49b23
AK
166922011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16693
16694 * config/s390/s390.md: Use define_c_enum for the unspec constant
16695 definitions.
16696
419e1853
JJ
166972011-03-18 Richard Henderson <rth@redhat.com>
16698 Jakub Jelinek <jakub@redhat.com>
16699
16700 PR bootstrap/48161
16701 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
16702 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
16703
37875856
L
167042011-03-17 H.J. Lu <hongjiu.lu@intel.com>
16705
16706 PR middle-end/47725
16707 * combine.c (cant_combine_insn_p): Don't check zero/sign
16708 extended hard registers.
16709
76069764
L
167102011-03-17 H.J. Lu <hongjiu.lu@intel.com>
16711
16712 PR middle-end/47725
16713 * combine.c (cant_combine_insn_p): Check zero/sign extended
16714 hard registers.
16715
24da2019
AS
167162011-03-17 Anatoly Sokolov <aesok@post.ru>
16717
16718 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16719 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
16720 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
16721 Change return type to bool.
16722 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16723
a82ff31f
JJ
167242011-03-17 Jakub Jelinek <jakub@redhat.com>
16725
8b29c87a
JJ
16726 PR debug/48163
16727 * var-tracking.c (prepare_call_arguments): If CALL target
16728 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
16729 pc instead of looking it up using cselib_lookup and use
16730 Pmode for it if x has VOIDmode.
16731 * dwarf2out.c (gen_subprogram_die): If also both first and
16732 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
16733
a82ff31f
JJ
16734 PR debug/48163
16735 * function.c (assign_parms): For data.passed_pointer parms
16736 use MEM of data.entry_parm instead of data.entry_parm itself
16737 as DECL_INCOMING_RTL.
16738 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
16739 also when passed and declared mode is the same, DECL_RTL
16740 is a MEM with pseudo as address and DECL_INCOMING_RTL is
16741 a MEM too.
16742
82ce305c
JL
167432011-03-16 Jeff Law <law@redhat.com>
16744
16745 PR rtl-optimization/37273
16746 * ira-costs.c (scan_one_insn): Detect constants living in memory and
16747 handle them like argument loads from stack slots. Do not double
16748 count memory for memory constants and argument loads from stack slots.
16749
fe58e02b
L
167502011-03-17 H.J. Lu <hongjiu.lu@intel.com>
16751
16752 PR debug/48160
16753 * var-tracking.c (prepare_call_arguments): Check SUBREG.
16754
6fc4dbc7
L
167552011-03-17 H.J. Lu <hongjiu.lu@intel.com>
16756
16757 PR target/48171
16758 * config/i386/i386.opt: Add Save to -mavx and -mfma.
16759
db3ed0b3
JJ
167602011-03-17 Jakub Jelinek <jakub@redhat.com>
16761
8054a389
JJ
16762 PR bootstrap/48153
16763 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
16764 if dwarf_strict.
16765 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
16766 Clear call_arg_locations and call_arg_loc_last always.
16767
db3ed0b3
JJ
16768 PR middle-end/48152
16769 * var-tracking.c (prepare_call_arguments): If argument needs to be
16770 passed by reference, adjust argtype and mode.
16771
1bce4ff3
RG
167722011-03-17 Richard Guenther <rguenther@suse.de>
16773
16774 PR middle-end/48134
16775 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
16776 a value make sure to fold the statement.
16777
7c71147d
CLT
167782011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
16779
16780 PR target/43872
16781 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
16782 return condition with !cfun->calls_alloca.
16783
0e1ee172
RG
167842011-03-17 Richard Guenther <rguenther@suse.de>
16785
16786 PR bootstrap/48148
16787 * lto-cgraph.c (input_overwrite_node): Clear the abstract
16788 origin for decls in other ltrans units.
16789 (input_varpool_node): Likewise.
16790
f8bce518
RG
167912011-03-17 Richard Guenther <rguenther@suse.de>
16792
16793 PR middle-end/48165
16794 * tree-object-size.c (compute_object_offset): Properly return
16795 the offset operand of MEM_REFs as sizetype.
16796
1b6fa860
JJ
167972011-03-17 Jakub Jelinek <jakub@redhat.com>
16798
dabd47e7
JJ
16799 PR rtl-optimization/48141
16800 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
16801 * dse.c: Include params.h.
16802 (active_local_stores_len): New variable.
16803 (add_wild_read, dse_step1): Clear it when setting active_local_stores
16804 to NULL.
16805 (record_store, check_mem_read_rtx): Decrease it when removing
16806 from the chain.
16807 (scan_insn): Likewise. Increase it when adding to chain, if it
16808 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
16809 set active_local_stores to NULL before the addition.
16810 * Makefile.in (dse.o): Depend on $(PARAMS_H).
16811
1b6fa860
JJ
16812 PR rtl-optimization/48141
16813 * dse.c (record_store): If no positions are needed in an insn
16814 that cannot be deleted, at least unchain it from active_local_stores.
16815
7b5cb7d6
DS
168162011-03-16 Dodji Seketeli <dodji@redhat.com>
16817
16818 PR debug/47510
16819 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
16820 (lookup_type_die_strip_naming_typedef): ... here.
16821 (get_context_die): Use it.
16822 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
16823 the anonymous struct named by the naming typedef.
16824
585e9d9d
L
168252011-03-16 H.J. Lu <hongjiu.lu@intel.com>
16826
16827 PR target/48154
16828 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
16829 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16830
6261ab0e
JL
168312011-03-16 Jeff Law <law@redhat.com>
16832
16833 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 16834 check for operands of conditional. Allow type to be a pointer.
6261ab0e 16835
0b0081ec
RG
168362011-03-16 Richard Guenther <rguenther@suse.de>
16837
16838 PR tree-optimization/48149
16839 * fold-const.c (fold_binary_loc): Fold
16840 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
16841
64a3d647
RG
168422011-03-16 Richard Guenther <rguenther@suse.de>
16843
16844 PR tree-optimization/26134
16845 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
16846 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
16847 (non_rewritable_mem_ref_base): Handle complex type component
16848 accesses, constrain offsets for vector and complex extracts
16849 more properly.
16850
ef13324e
RG
168512011-03-16 Richard Guenther <rguenther@suse.de>
16852
16853 PR tree-optimization/48146
16854 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
16855 operands avoiding the need for renaming.
16856
f0eddb90
RG
168572011-03-16 Richard Guenther <rguenther@suse.de>
16858
16859 * gimple-fold.c (maybe_fold_reference): Open-code relevant
16860 constant folding. Move MEM_REF canonicalization first.
16861 Rely on fold_const_aggregate_ref for initializer folding.
16862 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
16863
e42348b8
JJ
168642011-03-16 Jakub Jelinek <jakub@redhat.com>
16865
29f10e71
JJ
16866 PR middle-end/48136
16867 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16868 arg0/arg1 or their arguments are always fold converted to matching
16869 types.
16870
e42348b8
JJ
16871 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
16872 to nargs.
16873
55b46574
RO
168742011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16875
16876 PR lto/46944
16877 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
16878 Handle in-tree gold.
16879 (ld_vers): Extract binutils version for gold.
16880 (gcc_cv_ld_hidden): Handle gold here.
16881 (gcc_cv_lto_plugin): Determine level of linker plugin support.
16882 * configure: Regenerate.
16883 * config.in: Regenerate.
16884 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
16885 -fuse-linker-plugin otherwise.
16886 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
16887 (LINK_COMMAND_SPEC): Use it.
16888 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
16889
2b1c5433
JJ
168902011-03-16 Jakub Jelinek <jakub@redhat.com>
16891
c2969d8e
JJ
16892 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
16893 * calls.c: Remove debug.h include.
16894 (emit_call_1): Don't call virtual_call_token debug hook.
16895 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
16896 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
16897 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
16898 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
16899 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
16900 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
16901 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
16902 dwarf2out_virtual_call): Remove.
16903 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
16904 copy_call_info and virtual_call hooks.
16905 (dwarf2out_init): Don't initialize vcall_insn_table,
16906 debug_dcall_section and debug_vcall_section.
16907 (prune_unused_types): Don't mark nodes from dcall_table.
16908 (dwarf2out_finish): Don't output dcall or vcall tables.
16909 * final.c (final_scan_insn): Don't call direct_call or
16910 virtual_call debug hooks.
16911 * debug.h (struct gcc_debug_hooks): Remove direct_call,
16912 virtual_call_token, copy_call_info and virtual_call hooks.
16913 (debug_nothing_uid): Remove prototype.
16914 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
16915 copy_call_info and virtual_call hooks.
16916 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
16917 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
16918 * debug.c (do_nothing_debug_hooks): Likewise.
16919 (debug_nothing_uid): Remove.
16920 * doc/invoke.texi (-fenable-icf-debug): Remove.
16921 * common.opt (-fenable-icf-debug): Likewise.
16922
325f5379
JJ
16923 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
16924 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
16925 call's MEM. Handle functions returning aggregate through a hidden
16926 first pointer. For virtual calls add clobbered pc to call arguments
16927 chain.
16928 * dwarf2out.c (gen_subprogram_die): Emit
16929 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
16930 can't be emitted.
16931
a58a8e4b
JJ
16932 PR debug/45882
16933 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
16934 * rtl.h (ENTRY_VALUE_EXP): Define.
16935 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
16936 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
16937 * print-rtl.c (print_rtx): Likewise.
16938 * gengtype.c (adjust_field_rtx_def): Likewise.
16939 * var-tracking.c (vt_add_function_parameter): Adjust
16940 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
16941 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
16942 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
16943 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
16944 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
16945
2b1c5433
JJ
16946 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
16947 Call var_location debug hook even on CALL_INSNs.
16948 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
16949 * rtl.def (ENTRY_VALUE): New.
16950 * dwarf2out.c: Include cfglayout.h.
16951 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
16952 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
16953 (struct call_arg_loc_node): New type.
16954 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
16955 tail_call_site_count): New variables.
16956 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
16957 DW_TAG_GNU_call_site_parameter.
16958 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
16959 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
16960 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
16961 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
16962 and DW_AT_GNU_all_source_call_sites.
16963 (mem_loc_descriptor): Handle ENTRY_VALUE.
16964 (add_src_coords_attributes): Don't add enything if
16965 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
16966 (dwarf2out_abstract_function): Save and clear call_arg_location,
16967 call_site_count and tail_call_site_count around dwarf2out_decl call.
16968 (gen_call_site_die): New function.
16969 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
16970 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
16971 (dwarf2out_function_decl): Clear call_arg_locations,
16972 call_arg_loc_last, set call_site_count and tail_call_site_count
16973 to -1 and free block_map.
16974 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
16975 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
16976 followed by any real instructions.
16977 (dwarf2out_begin_function): Set call_site_count and
16978 tail_call_site_count to 0.
16979 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
16980 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
16981 attempt to force a DIE for it and worst case remove the attribute.
16982 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
16983 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
16984 the decl itself.
16985 * var-tracking.c: Include tm_p.h.
16986 (vt_stack_adjustments): For calls call note_register_arguments.
16987 (argument_reg_set): New variable.
16988 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
16989 ensure the VALUE is resolved.
16990 (call_arguments): New variable.
16991 (prepare_call_arguments): New function.
16992 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
16993 (struct expand_loc_callback_data): Add ignore_cur_loc field.
16994 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
16995 always use the best expression.
16996 (vt_expand_loc): Add ignore_cur_loc argument.
16997 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
16998 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
16999 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
17000 note for all calls.
17001 (vt_add_function_parameter): Use cselib_lookup_from_insn.
17002 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
17003 argument. Don't call cselib_preserve_only_values and
17004 cselib_reset_table.
17005 (note_register_arguments): New function.
17006 (vt_initialize): Compute argument_reg_set. Call
17007 vt_add_function_parameters before processing basic blocks instead of
17008 afterwards. For calls call prepare_call_arguments before calling
17009 cselib_process_insn.
17010 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
17011 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
17012 (var-tracking.o): Depend on $(TM_P_H).
17013 * cfglayout.h (insn_scope): New prototype.
17014 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
17015 * cfglayout.c (insn_scope): No longer static.
17016 * insn-notes.def (CALL_ARG_LOCATION): New.
17017 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
17018 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
17019 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
17020 nothing for DECL_EXTERNAL BLOCK_VARS.
17021
9ef13bd0
AM
170222011-03-16 Alan Modra <amodra@gmail.com>
17023
17024 PR target/45844
17025 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
17026 create invalid offset address for vsx splat insn.
17027 * config/rs6000/predicates.md (splat_input_operand): New.
17028 * config/rs6000/vsx.md (vsx_splat_*): Use it.
17029
56b67510
XDL
170302011-03-15 Xinliang David Li <davidxl@google.com>
17031
17032 PR c/47837
17033 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
17034 (normalize_preds): New function.
17035 (is_use_properly_guarded): Normalize def predicates.
17036
80fffdef
RR
170372011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17038
732f37c6 17039 PR target/46788
80fffdef
RR
17040 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
17041 in the output template.
17042
930672ad
RG
170432011-03-15 Richard Guenther <rguenther@suse.de>
17044
17045 PR middle-end/47650
17046 * tree-pretty-print.c (dump_function_declaration): Properly
17047 dump unprototyped and varargs function types.
17048
c7ee7b45
RG
170492011-03-15 Richard Guenther <rguenther@suse.de>
17050
17051 PR tree-optimization/13954
17052 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
17053 and friends.
17054
b2ad5e37
RG
170552011-03-15 Richard Guenther <rguenther@suse.de>
17056
17057 PR tree-optimization/48037
17058 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
17059 selects into BIT_FIELD_REFs.
17060 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
17061 vector select.
17062
7ee93d4e
JJ
170632011-03-15 Jakub Jelinek <jakub@redhat.com>
17064
17065 PR tree-optimization/48129
17066 * builtins.c (fold_builtin_snprintf): Convert to type of
17067 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
17068 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
17069
e106efc7
RG
170702011-03-15 Richard Guenther <rguenther@suse.de>
17071
17072 PR tree-optimization/41490
17073 * tree-ssa-dce.c (propagate_necessity): Handle returns without
17074 value but with VUSE.
17075 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
17076 return statements.
17077 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
17078 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
17079 * tree-tailcall.c (find_tail_calls): Ignore returns.
17080
17dea42f
RG
170812011-03-15 Richard Guenther <rguenther@suse.de>
17082
17083 PR middle-end/48031
17084 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
17085 or variable-indexed array accesses when in gimple form.
17086
01c77a60
RG
170872011-03-15 Richard Guenther <rguenther@suse.de>
17088
16cc4440 17089 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 17090
77b0791e
AM
170912011-03-15 Alan Modra <amodra@gmail.com>
17092
17093 PR target/48032
17094 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
17095 presume symbol_refs without a symbol_ref_decl are suitably
17096 aligned, nor other trees we may see here. Handle anchor symbols.
17097 (legitimate_constant_pool_address_p): Comment. Add mode param.
17098 Check cmodel=medium addresses. Adjust all calls.
17099 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
17100 creating cmodel=medium optimized access to locals.
17101 * config/rs6000/constraints.md (R): Pass QImode to
17102 legitimate_constant_pool_address_p.
17103 * config/rs6000/predicates.md (input_operand): Pass mode to
17104 legitimate_constant_pool_address_p.
17105 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
17106 Update prototype.
17107
35f61ba4
MM
171082011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
17109
17110 PR target/48053
17111 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
17112 64-bit constants being loaded into registers other than GPRs such
17113 as loading 0 into a VSX register.
17114
07332e6d
RO
171152011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17116
16cc4440 17117 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 17118
de888d90
JJ
171192011-03-14 Jakub Jelinek <jakub@redhat.com>
17120
ba3ceb2d
JJ
17121 PR middle-end/47917
17122 * builtins.c (fold_builtin_snprintf): New function.
17123 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
17124 (fold_builtin_4): Likewise.
17125
2e64f8b8
JJ
17126 PR middle-end/38878
17127 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
17128 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
17129 and C - X == X also strip nops from +/-/p+ operand.
17130 When optimizing -X == C, fold C to arg0's type.
17131
de888d90
JJ
17132 PR debug/47946
17133 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
17134 emit it as add_AT_int instead of add_AT_unsigned.
17135
171362011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
17137
17138 * unwind-dw2.c: Include sys/sdt.h if it exists.
17139 (_Unwind_DebugHook): Use STAP_PROBE2.
17140 * config.in, configure: Rebuild.
17141 * configure.ac: Check for sys/sdt.h.
17142
d34abfd2
UB
171432011-03-14 Uros Bizjak <ubizjak@gmail.com>
17144
17145 * config/i386/i386.md (ROUND_FLOOR): New constant.
17146 (ROUND_CEIL): Ditto.
17147 (ROUND_TRUNC): Ditto.
17148 (ROUND_MXCSR): Ditto.
17149 (ROUND_NO_EXC): Ditto.
17150 (rint<mode>2): Use new defines instead of numerical constants.
17151 (floor<mode>2): Ditto.
17152 (ceil<mode>2): Ditto.
17153 (btrunc<mode>2): Ditto.
17154 * config/i386/i386-builtin-types.def: Define ROUND function type
17155 aliases.
17156 * config/i386/i386.c (enum ix86_builtins): Add
17157 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
17158 (struct builtin_description): Add
17159 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
17160 (ix86_expand_sse_round): New static function.
17161 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
17162 function types.
17163 (ix86_builtin_vectorized_function): Handle
17164 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
17165
87f9e23d
TT
171662011-03-14 Tom Tromey <tromey@redhat.com>
17167
17168 * c-parser.c (c_parser_asm_string_literal): Clear
17169 warn_overlength_strings.
17170
b3ab9ea2
TT
171712011-03-14 Tom Tromey <tromey@redhat.com>
17172
17173 * c-parser.c (disable_extension_diagnostics): Save
17174 warn_overlength_strings.
17175 (restore_extension_diagnostics): Restore warn_overlength_strings.
17176
6bd73dd8
JJ
171772011-03-14 Jakub Jelinek <jakub@redhat.com>
17178
17179 * BASE-VER: Change to 4.7.0.
17180
7f4d6e1b
RG
171812011-03-14 Richard Guenther <rguenther@suse.de>
17182
17183 PR middle-end/48098
17184 * tree.c (build_vector_from_val): Adjust assert to requirements
17185 and reality.
17186
c6104ef1
JJ
171872011-03-14 Jakub Jelinek <jakub@redhat.com>
17188
17189 PR bootstrap/48102
d34abfd2 17190 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 17191
dfa95e19
AT
171922011-03-14 Andreas Tobler <andreast@fgznet.ch>
17193
f60c2554 17194 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
17195 terms of target_flags_explicit. Adjust copyright year.
17196
17197 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
17198 * config/rs6000/t-freebsd: New file. Add override for
17199 LIB2FUNCS_EXTRA.
17200
bb322018
CD
172012011-03-13 Chris Demetriou <cgd@google.com>
17202
17203 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
17204 (-fno-diagnostics-show-option): this, to reflect current default.
17205 (-Werror=): Update text about -fno-diagnostics-show-option.
17206
12b1c80b
PB
172072011-03-12 Peter Bergner <bergner@vnet.ibm.com>
17208
17209 PR target/48053
17210 * config/rs6000/predicates.md (easy_vector_constant_add_self,
17211 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
17212 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
17213 mode is not V2DImode or V2DFmode.
17214 (vspltis_constant): Do not handle V2DImode and V2DFmode.
17215 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
17216 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
17217 registers to 0.
17218 (movdi_internal64): Likewise.
17219
57d598f7
SP
172202011-03-12 Sebastian Pop <sebastian.pop@amd.com>
17221
17222 PR tree-optimization/47127
17223 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
17224 parameter.
17225 (set_cloog_options): Same.
17226 (scop_to_clast): Same.
17227 (print_clast_stmt): Do not call cloog_state_malloc and
17228 cloog_state_free.
17229 (print_generated_program): Same.
17230 (gloog): Same.
17231 * graphite-clast-to-gimple.h (cloog_state): Declared.
17232 (scop_to_clast): Adjust declaration.
17233 * graphite.c (cloog_state): Defined here.
17234 (graphite_initialize): Call cloog_state_malloc.
17235 (graphite_finalize): Call cloog_state_free.
17236
f231b5ff
JM
172372011-03-11 Jason Merrill <jason@redhat.com>
17238
17239 * attribs.c (lookup_attribute_spec): Take const_tree.
17240 * tree.h: Adjust.
17241
6a4e2bd5
JM
172422011-03-11 Joseph Myers <joseph@codesourcery.com>
17243
17244 * config/sparc/sparc.c (sparc_option_override): Use
17245 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
17246
a758fd67
RG
172472011-03-11 Richard Guenther <rguenther@suse.de>
17248
17249 PR tree-optimization/48067
17250 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
17251 multiplication result will be only used once on the target
17252 stmt.
17253
03dfda54
RG
172542011-03-11 Richard Guenther <rguenther@suse.de>
17255
17256 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
17257
5f11a50a
RG
172582011-03-11 Richard Guenther <rguenther@suse.de>
17259
17260 PR lto/48073
17261 * tree.c (find_decls_types_r): Do not walk types only reachable
17262 from IDENTIFIER_NODEs.
17263
4074f163
JJ
172642011-03-11 Jakub Jelinek <jakub@redhat.com>
17265
17266 PR middle-end/48044
17267 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
17268 all vnode->force_output nodes as needed.
17269
30f7cdcd
JM
172702011-03-11 Jason Merrill <jason@redhat.com>
17271
17272 PR c++/48069
17273 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
17274 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
17275
62ecfeb8
MJ
172762011-03-11 Martin Jambor <mjambor@suse.cz>
17277
17278 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
17279 cgraph_node.
17280
e89e03ab
JJ
172812011-03-11 Jakub Jelinek <jakub@redhat.com>
17282
17283 PR tree-optimization/48063
17284 * ipa-inline.c (cgraph_decide_inlining): Don't try to
17285 inline functions called once if !tree_can_inline_p (node->callers).
17286
efbe978b 172872011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 17288
efbe978b
EB
17289 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
17290 extra_objs.
9d6193a7
CL
17291 * config/score/score3.c: Delete.
17292 * config/score/score3.h: Delete.
17293 * config/score/mul-div.S: Delete.
17294 * config/score/sfp-machine.h: Add new file.
17295 * config/score/constraints.md: Add new file.
17296 * config/score/t-score-softfp: Add new file.
efbe978b 17297 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
17298 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
17299 (score7_extra_constraint): Delete.
efbe978b 17300 (score7_option_override): Remove unused code.
9d6193a7
CL
17301 * config/score/score.c: Remove score3 and score5 define and code.
17302 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 17303 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
17304 * config/score/score.opt: Remove score3 and score5 options.
17305
5de27cca
JDA
173062011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17307
17308 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
17309 when _HPUX_SOURCE is defined.
17310 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
17311
18d92053
JM
173122011-03-10 Jason Merrill <jason@redhat.com>
17313
17314 PR c++/48029
17315 * stor-layout.c (layout_type): Don't set structural equality
17316 on arrays of incomplete type.
17317 * tree.c (type_hash_eq): Handle comparing them properly.
17318
67a2f76d
JJ
173192011-03-10 Jakub Jelinek <jakub@redhat.com>
17320
17321 PR debug/48043
18d92053 17322 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
17323 result mode matches original rtl mode.
17324
d845b2f9
NC
173252011-03-10 Nick Clifton <nickc@redhat.com>
17326
17327 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 17328 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 17329
db7ec035
JJ
173302011-03-09 Jakub Jelinek <jakub@redhat.com>
17331
17332 PR rtl-optimization/47866
17333 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
17334 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
17335 if target wasn't scalar.
17336 * function.c (assign_stack_temp_for_type): Assert that neither
17337 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
17338 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
17339 macro.
17340 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
17341
5d304e47
AK
173422011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17343
17344 * config/s390/s390-protos.h (s390_label_align): New prototype.
17345 * config/s390/s390.c (s390_label_align): New function.
17346 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
17347
93b826f0
MM
173482011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
17349
17350 PR target/47755
17351 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
17352 V2DI/V2DF constants. Only all 0's or all 1's are easy.
17353 (output_vec_const_move): Ditto.
17354
ef78aed6
AS
173552011-03-08 Anatoly Sokolov <aesok@post.ru>
17356
17357 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
17358 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
17359 * config/mips/mips.c (mips_preferred_reload_class): Make static.
17360 Change 'rclass' argument and result type to reg_class_t.
17361 (TARGET_PREFERRED_RELOAD_CLASS): Define.
17362
5f892aa0
GJL
173632011-03-08 Georg-Johann Lay <avr@gjlay.de>
17364
9e43ad68
UB
17365 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17366 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
17367 (TARGET_MEMORY_MOVE_COST): Define.
17368 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 17369
32bd2409
JJ
173702011-03-08 Jakub Jelinek <jakub@redhat.com>
17371
530a4800
JJ
17372 PR debug/47881
17373 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
17374 removed anything.
17375
32bd2409
JJ
17376 PR tree-optimization/48022
17377 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
17378 for EQ/NE_EXPR.
17379
c7148991
JJ
173802011-03-07 Jakub Jelinek <jakub@redhat.com>
17381
17382 PR debug/47991
17383 * var-tracking.c (find_use_val): Return NULL for
17384 cui->sets && cui->store_p BLKmode MEMs.
17385
43070a6e
AS
173862011-03-07 Anatoly Sokolov <aesok@post.ru>
17387
17388 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
17389 Remove.
17390 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
17391 xstormy16_print_operand_address): Remove.
17392 * config/stormy16/stormy16.c (xstormy16_print_operand,
17393 xstormy16_print_operand_address): Make static.
17394 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17395
efbe978b 173962011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
17397
17398 PR target/47862
17399 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17400 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
17401 before definition.
17402
cec8ac0b
ZD
174032011-03-07 Zdenek Dvorak <ook@ucw.cz>
17404
17405 PR bootstrap/48000
17406 * cfgloopmanip.c (fix_bb_placements): Return immediately
17407 if FROM is BASE_LOOP's header.
17408
59527282
PW
174092011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
17410
17411 * gimplify.c (gimplify_function_tree): Fix building calls
17412 to __builtin_return_address.
17413
617718f7
AM
174142011-03-07 Alan Modra <amodra@gmail.com>
17415
17416 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
17417 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
17418 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
17419 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
17420 return_mode args.
17421 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
17422 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
17423 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
17424 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
17425 * config/rs6000/rs6000.c
17426 (rs6000_elf_end_indicate_exec_stack): Rename to..
17427 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
17428 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
17429 (rs6000_file_start): ..here.
17430 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
17431 file scope variables.
17432 (call_ABI_of_interest): New function.
17433 (init_cumulative_args): Set above vars when function return value
17434 is a float, vector, or small struct.
17435 (rs6000_function_arg_advance_1): Likewise for function args.
17436 (rs6000_va_start): Set rs6000_passes_float if variable arg function
17437 references float args.
17438
38528d50
MX
174392011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
17440
17441 * doc/cfg.texi: Remove "See" before @ref.
17442 * doc/invoke.texi: Likewise.
17443
f42cf4f4
JM
174442011-03-05 Jason Merrill <jason@redhat.com>
17445
17446 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
17447
804a304d
AG
174482011-03-05 Anthony Green <green@moxielogic.com>
17449
17450 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
17451
634ee309
ZD
174522011-03-05 Zdenek Dvorak <ook@ucw.cz>
17453
17454 PR rtl-optimization/47899
17455 * cfgloopmanip.c (fix_bb_placements): Fix first argument
17456 to flow_loop_nested_p when moving the loop upward.
17457
6fe471c8
RE
174582011-03-05 Richard Earnshaw <rearnsha@arm.com>
17459
17460 PR target/47719
17461 * arm.md (movhi_insn_arch4): Accept any immediate constant.
17462
cc58ceee
JJ
174632011-03-05 Jakub Jelinek <jakub@redhat.com>
17464
17465 PR tree-optimization/47967
17466 * ipa-cp.c (build_const_val): Return NULL instead of creating
17467 VIEW_CONVERT_EXPR for mismatching sizes.
17468 (ipcp_create_replace_map): Return NULL if build_const_val failed.
17469 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
17470 give up on versioning.
17471
ea868305
AM
174722011-03-05 Alan Modra <amodra@gmail.com>
17473
17474 PR target/47986
17475 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
17476 full cmodel medium/large lo_sum + high addresses.
17477
bc6ce334
AK
174782011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17479
17480 * config/s390/s390.c (s390_decompose_address): Reject non-literal
17481 pool references in UNSPEC_LTREL_OFFSET.
17482
87e7b310
JH
174832011-03-04 Jan Hubicka <jh@suse.cz>
17484
17485 PR lto/47497
17486 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
17487 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
17488 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
17489 Add node pointers.
87e7b310
JH
17490 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
17491 cgraph_add_thunk): Add node pointers.
17492 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
17493 associated to right node.
17494 (input_node): Update use of cgraph_same_body_alias
17495 and cgraph_add_thunk.
17496
d9c64246
CF
174972011-03-04 Changpeng Fang <changpeng.fang@amd.com>
17498
17499 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
17500 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
17501 modes when the flag -mprefer-avx128 is on.
d9c64246 17502
08707076
RS
175032011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
17504
17505 * dwarf2out.c (compare_loc_operands): Fix address handling.
17506
52517c81
AM
175072011-03-04 Alan Modra <amodra@gmail.com>
17508
17509 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
17510
b147c5b9
RG
175112011-03-04 Richard Guenther <rguenther@suse.de>
17512
17513 PR middle-end/47968
17514 * expmed.c (extract_bit_field_1): Prefer vector modes that
17515 vec_extract patterns can handle.
17516
8750672f
RG
175172011-03-04 Richard Guenther <rguenther@suse.de>
17518
17519 PR middle-end/47975
17520 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
17521
9eac0f2a
RH
175222011-03-04 Richard Henderson <rth@redhat.com>
17523
17524 * explow.c (emit_stack_save): Remove 'after' parameter.
17525 (emit_stack_restore): Likewise.
17526 * expr.h: Update to match.
17527 * builtins.c, calls.c, stmt.c: Likewise.
17528 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
17529 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
17530 * function.c (expand_function_end): Insert the emit_stack_save
17531 sequence before parm_birth_insn instead of after.
17532
dfee1406
UB
175332011-03-03 Uros Bizjak <ubizjak@gmail.com>
17534
17535 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
17536 (ssse3_pmaddubsw128): Ditto.
17537 (ssse3_pmaddubsw): Ditto.
17538
f1d4c3de
SE
175392011-03-03 Steve Ellcey <sje@cup.hp.com>
17540
17541 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
17542
71f3a3f5
JJ
175432011-03-03 Jakub Jelinek <jakub@redhat.com>
17544
423ed416
JJ
17545 PR c/47963
17546 * gimplify.c (omp_add_variable): Only call omp_notice_variable
17547 on TYPE_SIZE_UNIT if it is a DECL.
17548
71f3a3f5
JJ
17549 PR debug/47283
17550 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
17551 first operand is not is_gimple_mem_ref_addr, try to fold it.
17552 If the operand still isn't is_gimple_mem_ref_addr, clear
17553 MEM_EXPR on op0.
17554
4b1a5c0d
RG
175552011-03-03 Richard Guenther <rguenther@suse.de>
17556
17557 PR middle-end/47283
17558 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
17559 match comment.
17560 (refs_may_alias_p_1): For release branches return true if
17561 we are confused by our input.
17562
b46616fd
AK
175632011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17564
17565 * config/s390/s390.c (s390_function_value): Rename to ...
17566 (s390_function_and_libcall_value): ... this.
17567 (s390_function_value): New function.
17568 (s390_libcall_value): New function.
dfee1406 17569 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
17570 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
17571 target macro definitions.
17572 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
17573
46d8fabb
JM
175742011-03-02 Joseph Myers <joseph@codesourcery.com>
17575
17576 * config/i386/freebsd64.h (CC1_SPEC): Define.
17577 * config/i386/linux64.h (CC1_SPEC): Define.
17578 * config/i386/x86-64.h (CC1_SPEC): Don't define.
17579
6b1ce545
AS
175802011-03-02 Anatoly Sokolov <aesok@post.ru>
17581
17582 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17583 Remove.
17584 * config/stormy16/stormy16.c: Include reload.h.
17585 (xstormy16_memory_move_cost): New function.
17586 (TARGET_MEMORY_MOVE_COST): Define.
17587
34161e98
RS
175882011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
17589
17590 PR rtl-optimization/47925
17591 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
17592 with side effects. Remove the more-specific check for volatile asms.
17593
f60a97cf
AM
175942011-03-02 Alan Modra <amodra@gmail.com>
17595
17596 PR target/47935
17597 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
17598 toc relative addresses for valid offsets.
17599
f2ca11ca
RG
176002011-03-01 Richard Guenther <rguenther@suse.de>
17601
17602 PR tree-optimization/47890
17603 * tree-vect-loop.c (get_initial_def_for_induction): Set
17604 related stmt properly.
17605
7a00d9ea
RG
176062011-03-01 Richard Guenther <rguenther@suse.de>
17607
17608 PR lto/47924
17609 * lto-streamer.c (lto_record_common_node): Also register
17610 the canonical type.
17611
06c7edcc
RG
176122011-03-01 Richard Guenther <rguenther@suse.de>
17613
17614 PR lto/46911
17615 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17616 Do not stream DECL_ABSTRACT_ORIGIN.
17617 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17618 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17619 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17620 Do not stream DECL_ABSTRACT_ORIGIN.
17621 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
17622 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
17623
998871e9
AS
176242011-02-28 Anatoly Sokolov <aesok@post.ru>
17625
17626 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
17627 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 17628 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
17629 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
17630 Add 'outgoing' argument.
17631 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
17632 function.
17633 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17634 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17635
94369251
KT
176362011-02-28 Kai Tietz <kai.tietz@onevision.com>
17637
17638 PR debug/28047
17639 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
17640 (lookup_filename): Likewise.
b2e2ea67 17641 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 17642
80a832cd
JJ
176432011-02-28 Bernd Schmidt <bernds@codesourcery.com>
17644 Jakub Jelinek <jakub@redhat.com>
17645
17646 PR middle-end/47893
17647 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
17648 (assign_stack_local_1): Change last argument type to int.
17649 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
17650 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 17651 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
17652 (assign_stack_local): Adjust caller.
17653 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
17654 of assign_stack_local, pass 0 as last argument.
17655 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
17656 callers.
17657
1b500976
JJ
176582011-02-28 Jakub Jelinek <jakub@redhat.com>
17659
f61c6f34
JJ
17660 PR debug/47283
17661 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
17662 Use target address_mode and pointer_mode hooks instead of hardcoded
17663 Pmode and ptr_mode. Handle some simple cases of extending if
17664 POINTERS_EXTEND_UNSIGNED < 0.
17665 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
17666 Call convert_debug_memory_address.
17667 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
17668 convert_debug_memory_address.
17669
1b500976
JJ
17670 PR middle-end/46790
17671 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
17672 * configure: Regenerated.
17673 * config.in: Regenerated.
17674 * varasm.c (default_function_section): Return NULL
b2e2ea67 17675 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 17676
2f2935b6
MJ
176772011-02-28 Martin Jambor <mjambor@suse.cz>
17678
17679 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
17680 the description to match the printed values.
17681
474086eb
RG
176822011-02-28 Richard Guenther <rguenther@suse.de>
17683
17684 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
17685 of the copied scope tree.
17686
15bf6f3a
RW
176872011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17688
17689 * doc/extend.texi (Function Attributes): Avoid deeply (and
17690 wrongly) nested tables.
17691
f6b439c9
JJ
176922011-02-27 Jakub Jelinek <jakub@redhat.com>
17693
17694 PR middle-end/47903
17695 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
17696 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
17697 r isn't op0 nor op1.
17698
1d8ca2c7
GJL
176992011-02-23 Georg-Johann Lay <avr@gjlay.de>
17700
17701 * config/avr/avr.md: Remove magic comment for emacs.
17702
593fca4b
GJL
177032011-02-23 Georg-Johann Lay <avr@gjlay.de>
17704
17705 PR target/45261
17706 * config/avr/avr.c (avr_option_override): Use error on bad options.
17707 (avr_help): New function.
17708 (TARGET_HELP): Define.
17709
6609216e
GJL
177102011-02-22 Georg-Johann Lay <avr@gjlay.de>
17711
17712 PR target/42240
17713 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
17714 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
17715
03d458af
GP
177162011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
17717
17718 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
17719 (ARM Options): Ditto.
17720 (i386 and x86-64 Options): Ditto.
17721 (RX Options): Ditto.
17722 (SPARC Options): Ditto.
17723
1c379b78
TC
177242011-02-26 Tijl Coosemans <tijl@coosemans.org>
17725
17726 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
17727 FreeBSD 6 and later. Generally use cpu generic.
17728
d5ed058c 177292011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 17730
d5ed058c
GP
17731 * doc/cpp.texi: Update copyright years.
17732
509d65dd 177332011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 17734
509d65dd 17735 PR target/46898
308d39cd
SB
17736 * config/lm32/lm32.md (ashrsi3): Added needed variable.
17737
509d65dd 177382011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 17739
509d65dd 17740 PR target/46898
308d39cd
SB
17741 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
17742 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
17743 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
17744 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 17745 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
17746 (gen_int_relational): Move declarations to start of function.
17747
822ba6d7
EB
177482011-02-25 Eric Botcazou <ebotcazou@adacore.com>
17749
17750 PR tree-optimization/45470
17751 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
17752 can throw internally only.
17753 * tree-vect-stmts.c (vectorizable_call): Likewise.
17754
ef795fc2
AS
177552011-02-24 Anatoly Sokolov <aesok@post.ru>
17756
17757 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
17758 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
17759 * config/stormy16/stormy16-protos.h
17760 (xstormy16_preferred_reload_class): Remove.
17761 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
17762 static. Change 'rclass' argument and return type to reg_class_t.
17763 (TARGET_PREFERRED_RELOAD_CLASS,
17764 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
17765
1c3277ee
RG
177662011-02-24 Richard Guenther <rguenther@suse.de>
17767
17768 * lto-streamer-in.c (input_bb): Do not find referenced vars
17769 in debug statements.
17770
67e18edb
JM
177712011-02-23 Jason Merrill <jason@redhat.com>
17772
17773 * common.opt (fabi-version): Document v5 and v6.
17774
b14fad9d
RG
177752011-02-23 Richard Guenther <rguenther@suse.de>
17776
17777 PR tree-optimization/47849
17778 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
17779
7fcf46f5
JZ
177802011-02-23 Jie Zhang <jie@codesourcery.com>
17781
17782 * opts-common.c (decode_cmdline_option): Print empty string
17783 argument as "" in decoded->orig_option_with_args_text.
17784 * gcc.c (execute): Print empty string argument as ""
17785 in the verbose output.
17786 (do_spec_1): Keep empty string argument.
17787
f85b70fd
NF
177882011-02-23 Nathan Froyd <froydnj@codesourcery.com>
17789
17790 * config.gcc: Declare score-* and crx-* obsolete.
17791
b152a615
JZ
177922011-02-23 Jie Zhang <jie@codesourcery.com>
17793
17794 PR rtl-optimization/47763
17795 * web.c (web_main): Ignore naked clobber when replacing register.
17796
bb6e77bc
AS
177972011-02-22 Anatoly Sokolov <aesok@post.ru>
17798
17799 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
17800 Remove.
17801
68bf6491
SP
178022011-02-22 Sebastian Pop <sebastian.pop@amd.com>
17803
17804 PR doc/47848
17805 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
17806
88ee1fc7
MS
178072011-02-22 Mike Stump <mikestump@comcast.net>
17808
17809 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
17810 assembler.
17811 * configure: Regenerate.
17812
6042d1dd
CLT
178132011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
17814
17815 PR rtl-optimization/46002
17816 * ira-color.c (update_copy_costs): Change class intersection
17817 test to reg_class_contents[] test of 'hard_regno'.
17818
7de97f9e
JM
178192011-02-21 Joseph Myers <joseph@codesourcery.com>
17820
17821 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
17822 than Driver option.
17823 * config/hpux11.opt (mt): Likewise.
17824 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
17825 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
17826 * config/vax/elf.opt (mno-asm-pic): Likewise.
17827 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
17828
d1d46f9f
MS
178292011-02-21 Mike Stump <mikestump@comcast.net>
17830
17831 PR target/47822
17832 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
17833 tree so we can get save the type.
17834 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
17835 for CFString instead of trying to use past the end of the builtins.
17836 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
17837 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
17838 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
17839 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
17840 Rename to darwin_builtin_cfstring.
17841 (darwin_init_cfstring_builtins): Return the built type.
17842
23e0d930
UB
178432011-02-21 Uros Bizjak <ubizjak@gmail.com>
17844
17845 PR target/47840
17846 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
17847 (_mm256_insert_epi64): Use _mm_insert_epi64.
17848
192997cf
AS
178492011-02-21 Anatoly Sokolov <aesok@post.ru>
17850
17851 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17852 * config/stormy16/stormy16-protos.h
17853 (xstormy16_mode_dependent_address_p): Remove.
17854 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
17855 Make static. Change return type to bool. Change argument type to
17856 const_rtx. Remove dead code.
17857 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17858
e292d003
RG
178592011-02-21 Richard Guenther <rguenther@suse.de>
17860
17861 PR lto/47820
17862 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17863 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17864 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
17865 TUs context.
23e0d930 17866 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
17867 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17868
77f846e9
RG
178692011-02-20 Richard Guenther <rguenther@suse.de>
17870
17871 PR lto/47822
17872 * tree.c (free_lang_data_in_decl): Clean builtins from
17873 the TU decl BLOCK_VARS.
23e0d930 17874
b2cddfc8
AO
178752011-02-19 Alexandre Oliva <aoliva@redhat.com>
17876
17877 PR debug/47620
17878 PR debug/47630
17879 * haifa-sched.c (fix_tick_ready): Skip tick computation
17880 for debug insns.
17881
becf4c11
RG
178822011-02-19 Richard Guenther <rguenther@suse.de>
17883
17884 PR lto/47647
17885 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
17886 Remove lazy BLOCK_VARS streaming.
17887 (lto_input_ts_block_tree_pointers): Likewise.
17888 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
17889
27f98305
JM
178902011-02-19 Joseph Myers <joseph@codesourcery.com>
17891
17892 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
17893
064bf3f4
JM
178942011-02-19 Joseph Myers <joseph@codesourcery.com>
17895
17896 * config/i386/biarch32.h, config/i386/mach.h,
17897 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
17898
9215ddc3
JJ
178992011-02-19 Jakub Jelinek <jakub@redhat.com>
17900
17901 PR target/47800
17902 * config/i386/i386.md (peephole2 for shift and plus): Use
17903 operands[1] original mode in the first insn.
17904
8b021004
MS
179052011-02-18 Mike Stump <mikestump@comcast.net>
17906
65ded153 17907 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 17908
f84ae14c
JH
179092011-02-18 Jan Hubicka <jh@suse.cz>
17910
17911 PR middle-end/47788
65ded153
EB
17912 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
17913 to zero when the function is not inlinable at all.
f84ae14c 17914
eddabc80
JDA
179152011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17916
17917 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
17918 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
17919 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
17920 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
17921 * config/pa/t-pa64: Likewise.
17922 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
17923
ca3da783
JJ
179242011-02-18 Jakub Jelinek <jakub@redhat.com>
17925
17926 PR driver/47787
17927 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
17928
430aa868
JDA
179292011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17930
17931 PR target/47792
17932 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
17933
4bf7ff7e
AS
179342011-02-18 Anatoly Sokolov <aesok@post.ru>
17935
17936 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
17937 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
17938 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
17939 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
17940 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
17941 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
17942 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
17943 m32r_load_postinc_p, m32r_store_preinc_predec_p,
17944 m32r_legitimate_address_p): New functions.
17945 * config/m32r/constraints.md (constraint "S"): Don't use
17946 STORE_PREINC_PREDEC_P.
17947 (constraint "U"): Don't use LOAD_POSTINC_P.
17948
7efcf910
CLT
179492011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
17950
17951 PR rtl-optimization/46178
17952 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
17953 compute ira_hard_regno_cover_class[].
17954
237d6259
RG
179552011-02-18 Richard Guenther <rguenther@suse.de>
17956
17957 PR lto/47798
17958 * lto-streamer.h (lto_global_var_decls): Declare.
17959 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
17960 statics for global var processing.
17961
12d80acc
RG
179622011-02-18 Richard Guenther <rguenther@suse.de>
17963
17964 PR tree-optimization/47737
17965 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
17966 edge dominance check.
17967
abfea58d
JJ
179682011-02-18 Jakub Jelinek <jakub@redhat.com>
17969
17970 PR debug/47780
17971 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
17972 avoid invalid rtx sharing.
17973
f73c8882
GP
179742011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
17975
17976 * doc/cpp.texi (Obsolete Features): Add background on the
17977 origin of assertions.
17978
d764a8e6
IS
179792011-02-17 Iain Sandoe <iains@gcc.gnu.org>
17980
17981 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 17982 objc_abi == 2.
d764a8e6
IS
17983 * config/darwin.c (output_objc_section_asm_op): Added support for
17984 ABI v1 and v2.
17985 (is_objc_metadata): New.
17986 (darwin_objc2_section): New.
17987 (darwin_objc1_section): New.
17988 (machopic_select_section): Added support for ABI v1 and v2.
17989 (darwin_emit_objc_zeroed): New.
17990 (darwin_output_aligned_bss): Detect objc metadata and treat it
17991 appropriately.
17992 (darwin_asm_output_aligned_decl_common): Same.
17993 (darwin_asm_output_aligned_decl_local): Same.
17994 * config/darwin-sections.def: Updated for ABI v1 and v2.
17995 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
17996 compiling Objective-C code for the NeXT runtime, default to using
17997 ABI version 0 for 32-bit, and version 2 for 64-bit.
17998
0a8134ca
JM
179992011-02-17 Joseph Myers <joseph@codesourcery.com>
18000
18001 * common.opt (optimize_fast): New Variable.
18002 * opts.c (default_options_optimization): Use opts->x_optimize_fast
18003 instead of local variable ofast.
18004
0a256240
NP
180052011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
18006
18007 * doc/invoke.texi (fobjc-abi-version): Documented.
18008 (fobjc-nilcheck): Documented.
18009 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
18010 version.
18011
fa381cb2
JM
180122011-02-17 Joseph Myers <joseph@codesourcery.com>
18013
18014 PR driver/47390
18015 * common.opt (export-dynamic): New Driver option.
18016 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
18017
5437eaa6
JM
180182011-02-17 Joseph Myers <joseph@codesourcery.com>
18019
18020 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
18021
bb7e6d55
AO
180222011-02-17 Alexandre Oliva <aoliva@redhat.com>
18023 Jan Hubicka <jh@suse.cz>
18024
18025 PR debug/47106
18026 PR debug/47402
18027 * cfgexpand.c (account_used_vars_for_block): Remove.
18028 (estimated_stack_frame_size): Use referenced vars.
18029 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
18030 that were referenced in the original function. Test src_fn
18031 rather than cfun. Drop redundant get_var_ann.
18032 (setup_one_parameter): Drop redundant get_var_ann.
18033 (declare_return_variable): Likewise.
18034 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
18035 (copy_arguments_for_versioning): Drop redundant get_var_ann.
18036 * ipa-inline.c (compute_inline_parameters): Do not compute
18037 disregard_inline_limits here.
bb7e6d55
AO
18038 (compute_inlinable_for_current, pass_inlinable): New.
18039 (pass_inline_parameters): Require PROP_referenced_vars.
18040 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 18041 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
18042 (cgraph_analyze_function): Set .disregard_inline_limits.
18043 * tree-sra.c (convert_callers): Compute inliner parameters
18044 only for functions already in SSA form.
18045
f181a8a7
JM
180462011-02-17 Joseph Myers <joseph@codesourcery.com>
18047
18048 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
18049 -mlittle-endian-data.
18050
c6869789
JM
180512011-02-17 Joseph Myers <joseph@codesourcery.com>
18052
18053 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
18054 -mno-fpu, not -fpu and -no-fpu.
18055 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
18056 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
18057
fbf4bfd3
UB
180582011-02-17 Uros Bizjak <ubizjak@gmail.com>
18059
18060 PR target/43653
18061 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
18062 input reload with PLUS RTX.
18063
70be5dc7
JM
180642011-02-16 Joseph Myers <joseph@codesourcery.com>
18065
18066 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
18067 of InverseVar(MDMX).
18068
30b1646e
JM
180692011-02-16 Joseph Myers <joseph@codesourcery.com>
18070
18071 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
18072 --m4-340.
18073
ab7b71e9
JM
180742011-02-16 Joseph Myers <joseph@codesourcery.com>
18075
18076 * config/mn10300/mn10300.opt (mno-crt0): New.
18077
466f3f08
JM
180782011-02-16 Joseph Myers <joseph@codesourcery.com>
18079
18080 * config/m68k/uclinux.opt (static-libc): New Driver option.
18081
8226cd7b
JM
180822011-02-16 Joseph Myers <joseph@codesourcery.com>
18083
18084 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
18085
45cab1d7
JM
180862011-02-16 Joseph Myers <joseph@codesourcery.com>
18087
18088 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
18089 %{muser-extend-enabled}.
18090
65aab64f
RG
180912011-02-16 Richard Guenther <rguenther@suse.de>
18092
18093 PR tree-optimization/47738
18094 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
18095 the TODO from tree_predictive_commoning.
18096
fc2fa4fb
JL
180972011-02-15 Jeff Law <law@redhat.com>
18098
18099 Revert
18100 2011-01-25 Jeff Law <law@redhat.com>
18101
18102 PR rtl-optimization/37273
18103 * ira-costs.c (scan_one_insn): Detect constants living in memory and
18104 handle them like argument loads from stack slots. Do not double
18105 count memory for memory constants and argument loads from stack slots.
18106
4e380b8e
L
181072011-02-15 H.J. Lu <hongjiu.lu@intel.com>
18108
18109 PR middle-end/47725
18110 * combine.c (cant_combine_insn_p): Revert the last change.
18111
e3a69bb4
MM
181122011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
18113
18114 PR target/47755
18115 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
18116 mode for vector constants. Remove code that checks for TImode.
18117
de650422
AO
181182011-02-15 Alexandre Oliva <aoliva@redhat.com>
18119
18120 PR debug/47106
18121 PR debug/47402
18122 * cgraph.h (compute_inline_parameters): Return void.
18123 * ipa-inline.c (compute_inline_parameters): Adjust.
18124
30925d94
AO
181252011-02-15 Alexandre Oliva <aoliva@redhat.com>
18126
18127 PR debug/47106
18128 PR debug/47402
18129 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
18130 rather than decl.
18131 * cfgexpand.c (estimated_stack_frame_size): Likewise.
18132 * ipa-inline.c (compute_inline_parameters): Adjust.
18133
1b9a784a
AO
181342011-02-15 Alexandre Oliva <aoliva@redhat.com>
18135
18136 PR debug/47106
18137 PR debug/47402
18138 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
18139 Adjust all users. Pass FN to...
18140 * tree-flow-inline.h (first_referenced_var): ... this. Add
18141 fn argument.
18142 * ipa-struct-reorg.c: Adjust.
18143 * tree-dfa.c: Adjust.
18144 * tree-into-ssa.c: Adjust.
18145 * tree-sra.c: Adjust.
18146 * tree-ssa-alias.c: Adjust.
18147 * tree-ssa-live.c: Adjust.
18148 * tree-ssa.c: Adjust.
18149 * tree-ssanames.c: Adjust.
18150 * tree-tailcall.c: Adjust.
18151
27c6b086
AO
181522011-02-15 Alexandre Oliva <aoliva@redhat.com>
18153
18154 PR debug/47106
18155 PR debug/47402
18156 * tree-flow.h (referenced_var_lookup): Add fn parameter.
18157 Adjust all callers.
18158 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
18159 * tree-flow-inline.h: Adjust.
18160 * gimple-pretty-print.c: Adjust.
18161 * tree-into-ssa.c: Adjust.
18162 * tree-ssa.c: Adjust.
18163 * cfgexpand.c: Adjust.
18164
679e8183
NF
181652011-02-15 Nathan Froyd <froydnj@codesourcery.com>
18166
fbf4bfd3
UB
18167 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
18168 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18169 (EXTRA_CONSTRAINT): Delete.
18170 * config/iq2000/constraints.md: New file.
18171 * config/iq2000/iq2000.md: Include it.
679e8183
NF
18172 (define_insn ""): Delete.
18173 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
18174 unsupported constraint letters from patterns.
18175 (call_value, call_value_internal1): Likewise.
18176 (call_value_multiple_internal1): Likewise.
18177
a45d420a
NC
181782011-02-15 Nick Clifton <nickc@redhat.com>
18179
18180 * config/mn10300/mn10300.c: Include tm-constrs.h.
18181 (struct liw_data): New data structure describing an LIW candidate
18182 instruction.
18183 (extract_bundle): Use struct liw_data. Allow small integer
18184 operands for some instructions.
18185 (check_liw_constraints): Use struct liw_data. Remove swapped
18186 parameter. Add comments describing the checks. Fix bug when
18187 assigning the source of liw1 to the source of liw2.
18188 (liw_candidate): Delete. Code moved into extract_bundle.
18189 (mn10300_bundle_liw): Use struct liw_data. Check constraints
18190 before swapping.
18191 * config/mn10300/predicates.md (liw_operand): New predicate.
18192 Allows registers and small integer constants.
18193 * config/mn10300/constraints.md (O): New constraint. Accetps
18194 integers in the range -8 to +7 inclusive.
18195 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
18196 for moving a small integer into a register. Give this alternative
18197 LIW attributes.
18198 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
18199 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
18200 using the J,K,L and M constraints,
18201 (liw): Remove SI mode on second operands to allow for HI and QI
18202 mode values.
18203 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
18204 instruction.
18205
8a73faf1
L
182062011-02-15 H.J. Lu <hongjiu.lu@intel.com>
18207
18208 PR middle-end/47725
18209 * combine.c (cant_combine_insn_p): Check zero/sign extended
18210 hard registers.
18211
48feba28
RG
182122011-02-15 Richard Guenther <rguenther@suse.de>
18213
18214 PR tree-optimization/47743
18215 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
18216 for a non-type-compatible VN lookup bail out.
18217
ad1c1eeb
NF
182182011-02-15 Nathan Froyd <froydnj@codesourcery.com>
18219
18220 * config/fr30/constraints.md: New file.
18221 * config/fr30/fr30.md: Include it.
18222 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
18223 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18224 (EXTRA_CONSTRAINT): Delete.
18225
49ac143d
NF
182262011-02-15 Nathan Froyd <froydnj@codesourcery.com>
18227
18228 * config/frv/constraints.md: New file.
18229 * config/frv/predicates.md: Include it.
18230 * config/frv/frv.c (reg_class_from_letter): Delete.
18231 (frv_option_override): Don't initialize it.
18232 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
18233 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
18234 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
18235 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
18236 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
18237 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18238 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
18239 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
18240 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
18241 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
18242 (REG_CLASS_FROM_CONSTRAINT): Delete.
18243
c95f9494
JJ
182442011-02-15 Jakub Jelinek <jakub@redhat.com>
18245
18246 PR middle-end/47581
18247 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
18248 if frame size is 0 in a leaf function.
18249
13aed611
RO
182502011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18251
18252 PR pch/14940
18253 * config/alpha/host-osf.c: New file.
18254 * config/alpha/x-osf: New file.
18255 * config.host (alpha*-dec-osf*): Use it.
18256
b09c3081
AS
182572011-02-14 Anatoly Sokolov <aesok@post.ru>
18258
18259 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18260 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
18261 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
18262 (rx_mode_dependent_address_p): ...this. Make static. Change argument
18263 type to const_rtx.
18264 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18265
d634083b
NF
182662011-02-14 Nathan Froyd <froydnj@codesourcery.com>
18267
18268 * config/stormy16/constraints.md: New file.
18269 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
18270 Use satisfies_constraint_Q and satisfies_constraint_R.
18271 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
18272 Delete.
18273 (xstormy16_legitiamte_address_p): Declare.
18274 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
18275 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18276 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 18277 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
18278 Un-staticize.
18279 (xstormy16_extra_constraint_p): Delete.
18280
c7dd803e
EB
182812011-02-14 Eric Botcazou <ebotcazou@adacore.com>
18282
18283 PR tree-optimization/46494
18284 * loop-unroll.c (split_edge_and_insert): Adjust comment.
18285 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
18286 (pass_rtl_loop_done): Add TODO_verify_flow.
18287 * fwprop.c (pass_rtl_fwprop): Likewise.
18288 * modulo-sched.c (pass_sms): Likewise.
18289 * tree-ssa-dom.c (pass_dominator): Likewise.
18290 * tree-ssa-loop-ch.c (pass_ch): Likewise.
18291 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
18292 (pass_tree_loop_done): Likewise.
18293 * tree-ssa-pre.c (execute_pre): Likewise.
18294 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
18295 * tree-ssa-sink.c (pass_sink_code): Likewise.
18296 * tree-vrp.c (pass_vrp): Likewise.
18297
c6150df6
NF
182982011-02-14 Nathan Froyd <froydnj@codesourcery.com>
18299
c7dd803e
EB
18300 * config/v850/constraints.md: New file.
18301 * config/v850/v850.md: Include it.
18302 * config/v850/predicates.md (reg_or_0_operand): Use
18303 satisfies_constraint_G.
18304 (special_symbolref_operand): Use satisfies_constraint_K.
18305 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
18306 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
18307 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
18308 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
18309 (EXTRA_CONSTRAINT): Delete.
18310 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
18311 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
18312 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 18313
30dd1ea3
AS
183142011-02-14 Anatoly Sokolov <aesok@post.ru>
18315
18316 PR target/47696
18317 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
18318 description.
18319
944f4bb3
NF
183202011-02-14 Nathan Froyd <froydnj@codesourcery.com>
18321
18322 * config/mcore/constraints.md: New file.
18323 * config/mcore/mcore.md: Include it.
18324 * config/mcore/mcore.c (reg_class_from_letter): Delete.
18325 * config/mcore/mcore.h (reg_class_from_letter): Delete.
18326 (REG_CLASS_FROM_LETTER): Delete.
18327 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
18328 insn_const_int_ok_for_constraint.
18329 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
18330 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
18331 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18332 (EXTRA_CONSTRAINT): Delete.
18333
ad56a54c
RO
183342011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18335
18336 PR ada/41929
18337 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
18338 (IS_SIGHANDLER): Define.
18339 (sparc64_is_sighandler): New function, split off from
18340 sparc64_fallback_frame_state.
18341 (sparc_is_sighandler): New function, split off from
18342 sparc_fallback_frame_state.
18343 (sparc64_fallback_frame_state): Merge with ...
18344 (sparc_fallback_frame_state): ... this into ...
18345 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
18346 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
18347 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
18348 stack instead of hardcoded offsets.
ad56a54c 18349
fbf4bfd3 183502011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
18351
18352 PR target/45808
18353 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
18354
029c8f3e
RW
183552011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18356
18357 * configure: Regenerate.
18358
a016dc83
JM
183592011-02-12 Joseph Myers <joseph@codesourcery.com>
18360
18361 PR driver/45731
18362 * gcc.c (asm_options): Correct spec matching --target-help.
18363
8957a0ec
MJ
183642011-02-12 Martin Jambor <mjambor@suse.cz>
18365
18366 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
18367 to gimple call error.
18368
6ef828bc
MS
183692011-02-12 Mike Stump <mikestump@comcast.net>
18370
18371 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
18372 comments in backslash regions.
18373
a4015be5
MS
183742011-02-12 Mike Stump <mikestump@comcast.net>
18375 Jakub Jelinek <jakub@redhat.com>
18376 Iain Sandoe <iains@gcc.gnu.org>
18377
18378 PR target/47324
18379 * dwarf2out.c (output_cfa_loc): When required, apply the
18380 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
18381 (output_loc_sequence): Likewise.
18382 (output_loc_operands_raw): Likewise.
18383 (output_loc_sequence_raw): Likewise.
18384 (output_cfa_loc): Likewise.
18385 (output_loc_list): Suppress register number adjustment when
18386 calling output_loc_sequence()
18387 (output_die): Likewise.
18388
5378dda2
AS
183892011-02-12 Anatoly Sokolov <aesok@post.ru>
18390
18391 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18392 Remove macros.
18393 * config/xtensa/xtensa.c (xtensa_register_move_cost,
18394 xtensa_memory_move_cost): New functions.
18395 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
18396
f3d533d3
AO
183972011-02-12 Alexandre Oliva <aoliva@redhat.com>
18398
18399 PR lto/47225
18400 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
18401 in the current directory.
18402 * configure: Rebuilt.
18403
9d53403c
IS
184042011-02-12 Iain Sandoe <iains@gcc.gnu.org>
18405
18406 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 18407 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
18408 correct indents of the preceding block.
18409
a350a6c8
IS
184102011-02-12 Iain Sandoe <iains@gcc.gnu.org>
18411
18412 * gcc.c (driver_handle_option): Concatenate the argument to -F with
18413 the switch.
18414
bab79a40
JM
184152011-02-11 Joseph Myers <joseph@codesourcery.com>
18416
18417 * common.opt (nostartfiles): New Driver option.
18418
1bbc6693
XDL
184192011-02-11 Xinliang David Li <davidxl@google.com>
18420
18421 PR tree-optimization/47707
18422 * tree-chrec.c (convert_affine_scev): Keep type precision.
18423
1da7d8c0
EB
184242011-02-11 Eric Botcazou <ebotcazou@adacore.com>
18425
18426 PR tree-optimization/47420
18427 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
18428
184292011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
18430
18431 PR rtl-optimization/47614
18432 * rtl.h (check_for_inc_dec): Declare.
18433 * dse.c (check_for_inc_dec): Externalize...
18434 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
18435 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
18436
4df47bca
JM
184372011-02-11 Joseph Myers <joseph@codesourcery.com>
18438
18439 PR driver/47678
18440 * gcc.c (main): Do not compile inputs if there were errors in
18441 option handling.
18442 * opts-common.c (read_cmdline_option): Check for wrong language
18443 after other error checks.
18444
61502ca8
NF
184452011-02-11 Nathan Froyd <froydnj@codesourcery.com>
18446
18447 * cgraph.c: Fix comment typos.
18448 * cgraph.h: Likewise.
18449 * cgraphunit.c: Likewise.
18450 * ipa-cp.c: Likewise.
18451 * ipa-inline.c: Likewise.
18452 * ipa-prop.c: Likewise.
18453 * ipa-pure-const.c: Likewise.
18454 * ipa-ref.c: Likewise.
18455 * ipa-reference.c: Likewise.
18456
b63f974e
JJ
184572011-02-11 Jakub Jelinek <jakub@redhat.com>
18458
d50c5e0c
JJ
18459 PR debug/47684
18460 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 18461
6dd2a13c
RO
184622011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18463
18464 PR testsuite/47400
18465 * doc/sourcebuild.texi (Require Support): Document
18466 dg-require-ascii-locale.
18467
4a087ccf
MX
184682011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
18469
18470 * doc/lto.texi (Write summary): Fix missing parentheses.
18471
a4403164
DD
184722011-02-10 DJ Delorie <dj@redhat.com>
18473
18474 * config/m32c/m32c.c (m32c_option_override): Disable
18475 -fcombine-stack-adjustments until flag value tracking and compare
18476 optimization can be rewritten.
18477
4fac45bd
PB
184782011-02-10 Peter Bergner <bergner@vnet.ibm.com>
18479
18480 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
18481 PROCESSOR_POWER7.
18482 (PROCESSOR_DEFAULT64): Likewise.
18483
72602cd1
RH
184842011-02-10 Richard Henderson <rth@redhat.com>
18485
18486 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
18487 change from 2011-02-03.
18488 * config/rx/rx.c (flags_from_code): Likewise.
18489 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
18490 is valid, n/pz otherwise.
18491 (rx_select_cc_mode): Return CCmode if Y is not zero.
18492
ea57f573
RG
184932011-02-10 Richard Guenther <rguenther@suse.de>
18494
ea4c3e65 18495 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 18496
92b1d23b
RG
184972011-02-10 Richard Guenther <rguenther@suse.de>
18498
18499 PR tree-optimization/47677
18500 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
18501
525a2d06
JJ
185022011-02-10 Jakub Jelinek <jakub@redhat.com>
18503
18504 PR target/47665
18505 * combine.c (make_compound_operation): Only change shifts into
18506 multiplication for SCALAR_INT_MODE_P.
18507
06c969bd
JZ
185082011-02-10 Jie Zhang <jie@codesourcery.com>
18509
18510 PR testsuite/47622
18511 Revert
18512 2011-02-05 Jie Zhang <jie@codesourcery.com>
18513 PR debug/42631
18514 * web.c (entry_register): Don't clobber the number of the
18515 first uninitialized reference in used[].
18516
282ec48e
RG
185172011-02-09 Richard Guenther <rguenther@suse.de>
18518
18519 PR tree-optimization/47664
18520 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
18521 all edges again.
18522
df98c3e8
DE
185232011-02-09 David Edelsohn <dje.gcc@gmail.com>
18524
d0f21cd6
DE
18525 PR target/46481
18526 PR target/47032
df98c3e8
DE
18527 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
18528 PROCESSOR_POWER7.
18529 (PROCESSOR_DEFAULT64): Same.
18530 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
18531
67b6839f
RO
185322011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18533
18534 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
18535
4fd73214
MJ
185362011-02-09 Martin Jambor <mjambor@suse.cz>
18537
18538 PR middle-end/45505
18539 * tree-sra.c (struct access): New flags grp_scalar_read and
18540 grp_scalar_write. Changed description of assignment read and write
18541 flags.
18542 (dump_access): Dump new flags, reorder all of them.
18543 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
18544 to detect multiple scalar reads.
18545 (analyze_access_subtree): Use the new scalar read write flags instead
18546 of the old flags. Adjusted comments.
18547
91140cd3
DD
185482011-02-08 DJ Delorie <dj@redhat.com>
18549
18550 PR target/47548
18551 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
18552 patterns.
18553
4254bbfe
JM
185542011-02-08 Joseph Myers <joseph@codesourcery.com>
18555
18556 * config/m68k/uclinux.opt: New.
18557 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
18558
f1fda84e
JM
185592011-02-08 Joseph Myers <joseph@codesourcery.com>
18560
18561 * config/cris/elf.opt (sim): New Driver option.
18562
4933ae74
JM
185632011-02-08 Joseph Myers <joseph@codesourcery.com>
18564
18565 * config/xtensa/elf.opt: New.
18566 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
18567
4ad70280
JM
185682011-02-08 Joseph Myers <joseph@codesourcery.com>
18569
18570 * config/vax/elf.opt: New.
18571 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
18572
20893707
JM
185732011-02-08 Joseph Myers <joseph@codesourcery.com>
18574
18575 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
18576
b8e7038e
JM
185772011-02-08 Joseph Myers <joseph@codesourcery.com>
18578
18579 * config/gnu-user.opt: New.
18580 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
18581 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
18582 *-*-uclinux*): Use gnu-user.opt.
18583
e1c5225a
TS
185842011-02-08 Thomas Schwinge <thomas@schwinge.name>
18585
18586 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
18587 * config/i386/gnu.h (CPP_SPEC): Likewise.
18588
5e46b0c6
ILT
185892011-02-08 Ian Lance Taylor <iant@google.com>
18590
18591 * common.opt (fcx-limited-range): Add SetByCombined flag.
18592 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
18593 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
18594 (fassociative-math, freciprocal-math): Likewise.
18595 (funsafe-math-optimizations): Likewise.
18596 * opth-gen.awk: Handle SetByCombined.
18597 * optc-gen.awk: Likewise.
ea4c3e65 18598 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
18599 (set_unsafe_math_optimizations_flags): Likewise.
18600 * doc/options.texi (Option properties): Document SetByCombined.
18601
32243d46
JM
186022011-02-08 Joseph Myers <joseph@codesourcery.com>
18603
18604 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
18605 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
18606 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
18607 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
18608 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
18609
479c1fb3
SP
186102011-02-08 Sebastian Pop <sebastian.pop@amd.com>
18611
18612 PR tree-optimization/46834
18613 PR tree-optimization/46994
18614 PR tree-optimization/46995
18615 * graphite-sese-to-poly.c (used_outside_reduction): New.
18616 (detect_commutative_reduction): Call used_outside_reduction.
18617 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
18618 translate_scalar_reduction_to_array only when at least one
18619 loop-phi/close-phi tuple has been detected.
18620
3865a06f
RG
186212011-02-08 Richard Guenther <rguenther@suse.de>
18622
18623 PR middle-end/47639
18624 * tree-vect-generic.c (expand_vector_operations_1): Update
18625 stmts here ...
18626 (expand_vector_operations): ... not here. Cleanup EH info
18627 and the CFG if required.
18628
62902f3f
RG
186292011-02-08 Richard Guenther <rguenther@suse.de>
18630
18631 PR tree-optimization/47641
18632 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
18633 require type compatibility.
18634
0efb9d64
AK
186352011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18636
18637 * gimple-low.c (lower_function_body): Don't remove the location of
18638 the return statement here.
18639 (lower_gimple_return): Do it here instead but only if the return
18640 statement is actually used twice.
18641
034b8ae4
RG
186422011-02-08 Richard Guenther <rguenther@suse.de>
18643
18644 PR tree-optimization/47632
18645 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
18646 unused up_to_stmt parameter, return whether cfg-cleanup is
18647 necessary, remove EH info properly.
18648 (forward_propagate_into_gimple_cond): Adjust caller.
18649 (forward_propagate_into_cond): Likewise.
18650 (forward_propagate_comparison): Likewise.
18651 (tree_ssa_forward_propagate_single_use_vars): Make
18652 forward_propagate_comparison case similar to the two others.
18653
298362c8
NC
186542011-02-08 Nick Clifton <nickc@redhat.com>
18655
18656 * config/mn10300/mn10300.opt (mliw): New command line option.
18657 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
18658 (liw_bundling): New automaton.
18659 (liw): New attribute.
18660 (liw_op): New attribute.
18661 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
18662 (movsi_internal): Add LIW attributes.
18663 (andsi3): Likewise.
18664 (iorsi3): Likewise.
18665 (xorsi3): Likewise.
18666 (addsi3): Separate register and immediate alternatives.
18667 Add LIW attributes.
18668 (subsi3): Likewise.
18669 (cmpsi): Likewise.
18670 (aslsi3): Likewise.
18671 (lshrsi3): Likewise.
18672 (ashrsi3): Likewise.
18673 (liw): New pattern.
18674 * config/mn10300/mn10300.c (liw_op_names): New
18675 (mn10300_print_operand): Handle 'W' operand descriptor.
18676 (extract_bundle): New function.
18677 (check_liw_constraints): New function.
18678 (liw_candidate): New function.
18679 (mn10300_bundle_liw): New function.
18680 (mn10300_reorg): New function.
18681 (TARGET_MACHINE_DEPENDENT_REORG): Define.
18682 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
18683 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
18684 __LIW__ or __NO_LIW__.
18685 * doc/invoke.texi: Describe the -mliw command line option.
18686
90488014
JDA
186872011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18688
18689 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
18690 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
18691 pthread_mutex_unlock): Remove.
18692 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
18693 * config/pa/t-pa64: Likewise.
18694 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
18695 shared libc if not linking against libpthread.
18696 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18697
689ff841
IS
186982011-02-07 Iain Sandoe <iains@gcc.gnu.org>
18699
18700 PR target/47558
18701 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
18702 on 10.6 and later to ensure that we always use the unwinder from
18703 the system. Only add -no_compact_unwind when tarteting darwin
18704 10.6 or later.
18705
821014aa
SE
187062011-02-07 Steve Ellcey <sje@cup.hp.com>
18707
18708 PR target/46997
18709 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
18710 (vec_interleave_lowv2sf): Ditto.
18711 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
18712 (vec_extract_oddv2sf): Ditto.
18713
41cf94fb
MS
187142011-02-07 Mike Stump <mikestump@comcast.net>
18715
62dea57d 18716 PR target/42333
41cf94fb
MS
18717 Add __ieee_divdc3 entry point.
18718 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
18719 entry point.
18720 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
18721 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
18722 * config/darwin.c (darwin_rename_builtins): Add.
18723 * config/darwin-protos.h (darwin_rename_builtins): Add.
18724
ee09a3dd
MM
187252011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
18726
18727 PR target/47636
18728 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
18729 for the condition.
18730
83296cd0
MS
187312011-02-07 Mike Stump <mikestump@comcast.net>
18732
ea4c3e65 18733 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 18734
0f4e946f
DC
187352011-02-07 Denis Chertykov <chertykov@gmail.com>
18736
18737 PR target/47534
18738 * config/avr/libgcc.S (exit): Move .endfunc
18739
1ec87690
RG
187402011-02-07 Richard Guenther <rguenther@suse.de>
18741
18742 PR tree-optimization/47615
18743 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
18744 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
18745 (run_scc_vn): Initialize it.
18746 (visit_reference_op_load): Use it.
18747 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
18748
b46ae6da
UW
187492011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18750
18751 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
18752 DImode trapping arithmetic libfuncs.
18753
c0aae19c
RG
187542011-02-07 Richard Guenther <rguenther@suse.de>
18755
18756 PR tree-optimization/47621
18757 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
18758 two duplicates ...
18759 (execute_update_addresses_taken): ... here. Make it more
18760 conservative in what we accept.
18761
295d926b
JM
187622011-02-06 Joseph Myers <joseph@codesourcery.com>
18763
18764 * config/sparc/freebsd.h (ASM_SPEC): Define.
18765 * config/sparc/vxworks.h (ASM_SPEC): Define.
18766
bdeb2471
JM
187672011-02-06 Joseph Myers <joseph@codesourcery.com>
18768
18769 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18770
d5d3781a
SB
187712011-02-06 Steven Bosscher <steven@gcc.gnu.org>
18772
18773 * doc/invoke.texi: Remove reference to compiler internals from
18774 user documentation.
18775
18776 * reg-notes.def: Remove REG_VALUE_PROFILE.
18777 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
18778
c42c09fc
JJ
187792011-02-05 Jakub Jelinek <jakub@redhat.com>
18780
18781 PR middle-end/47610
18782 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 18783 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 18784
beea2755
JZ
187852011-02-05 Jie Zhang <jie@codesourcery.com>
18786
18787 PR debug/42631
18788 * web.c (entry_register): Don't clobber the number of the
18789 first uninitialized reference in used[].
18790
a130584a
SP
187912011-02-04 Sebastian Pop <sebastian.pop@amd.com>
18792
18793 PR tree-optimization/46194
18794 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
18795 (build_classic_dist_vector_1): Do not represent classic distance
18796 vectors when the access functions are variating in different loops.
18797
962101ac
JM
187982011-02-04 Joseph Myers <joseph@codesourcery.com>
18799
18800 * config/mips/iris6.opt: New.
18801 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
18802
55eaaa5b
RH
188032011-02-04 Richard Henderson <rth@redhat.com>
18804 Steve Ellcey <sje@cup.hp.com>
18805
18806 PR target/46997
18807 * config/ia64/predicates.md (mux1_brcst_element): New.
18808 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
18809 * config/ia64/ia64.c (ia64_unpack_assemble): New.
18810 (ia64_unpack_sign): New.
18811 (ia64_expand_unpack): Rewrite using new routines.
18812 (ia64_expand_widen_sum): Ditto.
18813 (ia64_expand_dot_prod_v8qi): Ditto.
18814 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
18815 routines, add endian check.
18816 (pmpy2_even): Rename from pmpy2_r, add endian check.
18817 (pmpy2_odd): Rename from pmpy2_l, add endian check.
18818 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
18819 (vec_widen_smult_hi_v4hi): Ditto.
18820 (vec_widen_umult_lo_v4hi): Ditto.
18821 (vec_widen_umult_hi_v4hi): Ditto.
18822 (mulv2si3): Change endian checks.
18823 (sdot_prodv4hi): Rewrite with new calls.
18824 (udot_prodv4hi): New.
18825 (vec_pack_ssat_v4hi): Add endian check.
18826 (vec_pack_usat_v4hi): Ditto.
18827 (vec_pack_ssat_v2si): Ditto.
18828 (max1_even): Rename from max1_r, add endian check.
18829 (max1_odd): Rename from max1_l, add endian check.
18830 (*mux1_rev): Format change.
18831 (*mux1_mix): Ditto.
18832 (*mux1_shuf): Ditto.
18833 (*mux1_alt): Ditto.
18834 (*mux1_brcst_v8qi): Use new predicate.
18835 (vec_extract_evenv8qi): Remove endian check.
18836 (vec_extract_oddv8qi): Ditto.
18837 (vec_interleave_lowv4hi): Format change.
18838 (vec_interleave_highv4hi): Ditto.
18839 (mix2_even): Rename from mix2_r, add endian check.
18840 (mix2_odd): Rename from mux2_l, add endian check.
18841 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
18842 (vec_extract_evenodd_helper): Format change.
18843 (vec_extract_evenv4hi): Remove endian check.
18844 (vec_extract_oddv4hi): Remove endian check.
18845 (vec_interleave_lowv2si): Format change.
18846 (vec_interleave_highv2si): Format change.
18847 (vec_initv2si): Remove endian check.
18848 (vecinit_v2si): Add endian check.
18849 (reduc_splus_v2sf): Add endian check.
18850 (reduc_smax_v2sf): Ditto.
18851 (reduc_smin_v2sf): Ditto.
18852 (vec_initv2sf): Remove endian check.
18853 (fpack): Add endian check.
18854 (fswap): Add endian check.
18855 (vec_interleave_highv2sf): Add endian check.
18856 (vec_interleave_lowv2sf): Add endian check.
18857 (fmix_lr): Add endian check.
18858 (vec_setv2sf): Format change.
18859 (*vec_extractv2sf_0_be): Use shift to extract operand.
18860 (*vec_extractv2sf_1_be): New.
18861 (vec_pack_trunc_v4hi): Add endian check.
18862 (vec_pack_trunc_v2si): Format change.
18863
dcde5957
JJ
188642011-02-04 Jakub Jelinek <jakub@redhat.com>
18865
18866 PR inline-asm/23200
18867 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 18868 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
18869 (stmt_is_replaceable_p): New function.
18870 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
18871 callers.
18872 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
18873 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
18874 SSA_NAME_DEF_STMT.
18875 * tree-flow.h (stmt_is_replaceable_p): New prototype.
18876
a64a8e5a
JM
188772011-02-04 Joseph Myers <joseph@codesourcery.com>
18878
18879 * config/rs6000/xilinx.opt: New.
18880 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
18881
4da2ed2f
JM
188822011-02-04 Joseph Myers <joseph@codesourcery.com>
18883
18884 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
18885
a6e508f9
AS
188862011-02-03 Anatoly Sokolov <aesok@post.ru>
18887
18888 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
18889 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18890 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
18891 secondary_reload_info, xtensa_secondary_reload): Remove.
18892 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
18893 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18894 (xtensa_preferred_reload_class): Make static. Change return and
18895 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
18896 Use CONST_DOUBLE_P predicate.
18897 (xtensa_preferred_output_reload_class): New function.
18898 (xtensa_secondary_reload): Make static.
18899
82dc0de3
JM
189002011-02-03 Joseph Myers <joseph@codesourcery.com>
18901
18902 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
18903 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
18904 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
18905
7fece979
JJ
189062011-02-03 Jakub Jelinek <jakub@redhat.com>
18907
18908 PR middle-end/31490
18909 * output.h (SECTION_RELRO): Define.
18910 (SECTION_MACH_DEP): Adjust.
18911 (get_variable_section): New prototype.
18912 * varpool.c (varpool_finalize_named_section_flags): New function.
18913 (varpool_assemble_pending_decls): Call it.
18914 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
18915 * cgraphunit.c (cgraph_output_in_order): Call
18916 varpool_finalize_named_section_flags.
18917 * varasm.c (get_section): Allow section flags conflicts between
18918 relro and read-only sections if the section hasn't been declared yet.
18919 Set SECTION_OVERRIDE after diagnosing section type conflict.
18920 (get_variable_section): No longer static.
18921 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
18922 readonly sections that need relocations.
18923 (decl_readonly_section_1): New function.
18924 (decl_readonly_section): Use it.
18925
18926 Revert:
509d65dd 18927 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
18928 Steve Ellcey <sje@cup.hp.com>
18929
18930 PR middle-end/31490
18931 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
18932 if section attribute used.
18933
d18d5478
JJ
189342011-02-03 Jakub Jelinek <jakub@redhat.com>
18935
18936 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
18937 * config/darwin.c (SECTION_NO_ANCHOR): Define.
18938 (darwin_init_sections): Remove assertion.
18939
6479ed4b
NC
189402011-02-03 Nick Clifton <nickc@redhat.com>
18941
18942 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
18943 lt and ge.
38be4072 18944 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
18945 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
18946 instead of "n" and "pz".
18947 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
18948 CC_FLAG_S.
18949
89843f5d
JJ
189502011-02-03 Jakub Jelinek <jakub@redhat.com>
18951
65450d64
JJ
18952 PR target/47312
18953 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
18954 fma, expand FMA_EXPR as fma{,f,l} call.
18955
7d58701c
JJ
18956 PR lto/47274
18957 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
18958 copy them into a unsigned char variable and pass address of it to
18959 lto_output_data_stream.
18960
89843f5d
JJ
18961 PR target/47564
18962 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
18963 around backend_init_target and lang_dependent_init_target calls.
18964 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
18965 (verify_cgraph_node): Don't call set_cfun here. Use
18966 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
18967 Set error_found for incorrectly represented calls to thunks.
18968
4deef538
AO
189692011-02-03 Alexandre Oliva <aoliva@redhat.com>
18970
18971 PR debug/43092
18972 PR rtl-optimization/43494
18973 * rtl.h (for_each_inc_dec_fn): New type.
18974 (for_each_inc_dec): Declare.
18975 * rtlanal.c (struct for_each_inc_dec_ops): New type.
18976 (for_each_inc_dec_find_inc_dec): New fn.
18977 (for_each_inc_dec_find_mem): New fn.
18978 (for_each_inc_dec): New fn.
18979 * dse.c (struct insn_size): Remove.
18980 (replace_inc_dec, replace_inc_dec_mem): Remove.
18981 (emit_inc_dec_insn_before): New fn.
18982 (check_for_inc_dec): Use it, along with for_each_inc_dec.
18983 (canon_address): Pass mem modes to cselib_lookup.
18984 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
18985 (cselib_lookup_from_insn): Likewise.
18986 (cselib_subst_to_values): Likewise.
18987 * cselib.c (find_slot_memmode): New var.
18988 (cselib_find_slot): New fn. Use it instead of
18989 htab_find_slot_with_hash everywhere.
18990 (entry_and_rtx_equal_p): Use find_slot_memmode.
18991 (autoinc_split): New fn.
18992 (rtx_equal_for_cselib_p): Rename and implement in terms of...
18993 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
18994 Deal with autoinc. Special-case recursion into MEMs.
18995 (cselib_hash_rtx): Likewise.
18996 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
18997 address and MEM modes.
18998 (cselib_subst_to_values): Add memmode, pass it on.
18999 Deal with autoinc.
19000 (cselib_lookup): Add memmode argument, pass it on.
19001 (cselib_lookup_from_insn): Add memmode.
19002 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
19003 (struct cselib_record_autoinc_data): New.
19004 (cselib_record_autoinc_cb): New fn.
19005 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
19006 mode to cselib_lookup. Reset autoinced REGs here instead of...
19007 (cselib_process_insn): ... here.
19008 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
19009 to cselib_lookup.
19010 (add_uses): Likewise, also to cselib_subst_to_values.
19011 (add_stores): Likewise.
19012 * sched-deps.c (add_insn_mem_dependence): Pass mode to
19013 cselib_subst_to_values.
19014 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
19015 * gcse.c (do_local_cprop): Adjusted.
19016 * postreload.c (reload_cse_simplify_set): Adjusted.
19017 (reload_cse_simplify_operands): Adjusted.
19018 * sel-sched-dump (debug_mem_addr_value): Pass mode.
19019
1551d44a
AO
190202011-02-03 Alexandre Oliva <aoliva@redhat.com>
19021
19022 PR tree-optimization/45122
19023 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
19024 unsafe assumptions when there's more than one loop exit.
19025
c9485473
MM
190262011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
19027
19028 PR target/47272
19029 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
19030 Document using vector double with the load/store builtins, and
19031 that the load/store builtins always use Altivec instructions.
19032
19033 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
19034 to use altivec memory instructions, even on VSX.
19035 (vector_altivec_store_<mode>): Ditto.
19036
19037 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
19038 function.
19039
19040 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19041 V2DF, V2DI support to load/store overloaded builtins.
19042
19043 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
19044 altivec load/store builtins for V2DF/V2DI types.
19045
19046 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
19047 set avoid indexed addresses on power6 if -maltivec.
19048 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
19049 vector_altivec_load/vector_altivec_store builtins.
19050 (altivec_expand_st_builtin): Ditto.
19051 (altivec_expand_builtin): Add VSX memory builtins.
19052 (rs6000_init_builtins): Add V2DI types to internal types.
19053 (altivec_init_builtins): Add support for V2DF/V2DI altivec
19054 load/store builtins.
19055 (rs6000_address_for_altivec): Insure memory address is appropriate
19056 for Altivec.
19057
19058 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
19059 vec_vsx_ld and vec_vsx_st.
19060 (vsx_store_<mode>): Ditto.
19061
19062 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
19063 variables to hold long long types for VSX vector memory builtins.
19064 (RS6000_BTI_unsigned_long_long): Ditto.
19065 (long_long_integer_type_internal_node): Ditti.
19066 (long_long_unsigned_type_internal_node): Ditti.
19067
19068 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
19069 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
19070 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
19071
19072 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
19073 short cuts.
19074 (vec_vsx_st): Ditto.
19075
b24d1acf
JM
190762011-02-02 Joseph Myers <joseph@codesourcery.com>
19077
19078 * config/pa/pa-hpux10.opt: New.
19079 * config/hpux11.opt (pthread): New Driver option.
19080 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
19081 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
19082
aa18dd0f
JM
190832011-02-02 Joseph Myers <joseph@codesourcery.com>
19084
19085 * config/ia64/vms.opt: New.
19086 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
19087
28fc3eee
MM
190882011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
19089
19090 PR target/47580
19091 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
19092 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
19093 generator functions.
19094 (vsx_floatuns<VSi><mode>2): Ditto.
19095 (vsx_fix_trunc<mode><VSi>2): Ditto.
19096 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
19097
b5838b1f
JM
190982011-02-02 Joseph Myers <joseph@codesourcery.com>
19099
19100 * config/i386/djgpp.opt (posix): New Driver option.
19101
0db8fa89
GP
191022011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
19103
19104 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
19105 Move to the unsupported targets list.
19106
9cd4f22a
PB
191072011-02-02 Peter Bergner <bergner@vnet.ibm.com>
19108
19109 PR rtl-optimization/47525
19110 * df-scan.c: Update copyright years.
19111 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
19112 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
19113
9ed8059c
RO
191142011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19115
19116 * config/i386/sysv4.h (TARGET_VERSION): Remove.
19117 (SUBTARGET_RETURN_IN_MEMORY): Remove.
19118 (ASM_OUTPUT_ASCII): Remove.
19119 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
19120
2a737389
JL
191212011-02-02 Jeff Law <law@redhat.com>
19122
19123 PR middle-end/47543
19124 * reload.c (find_reloads_address): Handle reg+d address where both
19125 components are invalid by reloading the entire address.
19126
9dac82c4
SP
191272011-02-02 Sebastian Pop <sebastian.pop@amd.com>
19128 Richard Guenther <rguenther@suse.de>
19129
19130 PR tree-optimization/40979
19131 PR bootstrap/47044
19132 * passes.c (init_optimization_passes): After LIM call copy_prop
19133 and DCE to clean up.
19134 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
19135
14dd9aab
SP
191362011-02-02 Sebastian Pop <sebastian.pop@amd.com>
19137
19138 PR tree-optimization/47576
19139 PR tree-optimization/47555
19140 * doc/invoke.texi (scev-max-expr-complexity): Documented.
19141 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
19142 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
19143 * tree-scalar-evolution.c (follow_ssa_edge): Use
19144 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
19145
5cbf5c20
RG
191462011-02-02 Richard Guenther <rguenther@suse.de>
19147
19148 PR tree-optimization/47566
19149 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
19150
83d70792
AO
191512011-02-02 Alexandre Oliva <aoliva@redhat.com>
19152
e829c321
AO
19153 PR debug/47106
19154 PR debug/47402
19155 * tree-inline.c (declare_return_variable): Remove unused caller
19156 variable.
19157
83d70792
AO
19158 PR debug/47106
19159 PR debug/47402
19160 * tree-flow-inline.h (clear_is_used, is_used_p): New.
19161 * cfgexpand.c (account_used_vars_for_block): Use them.
19162 * tree-nrv.c (tree_nrv): Likewise.
19163 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
19164 (dump_scope_block): Likewise.
19165 (remove_unused_locals): Likewise.
19166
aaa2ac93
AO
19167 PR debug/47106
19168 PR debug/47402
19169 * tree-inline.c (declare_return_variable): Add result decl to
19170 local decls only once.
19171 * gimple-low.c (record_vars_into): Mark newly-created variables
19172 as referenced.
19173
a59d15cf
AO
191742011-02-02 Alexandre Oliva <aoliva@redhat.com>
19175
19176 PR debug/47498
19177 PR debug/47501
19178 PR debug/45136
19179 PR debug/45130
19180 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19181 debug insns.
19182 (no_real_insns_p, schedule_block, set_priorities): Drop special
19183 treatment of boundary debug insns.
38be4072 19184 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
19185 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
19186 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19187 (BOUNDARY_DEBUG_INSN_P): Likewise.
19188 (SCHEDULE_DEBUG_INSN_P): Likewise.
19189 * sched-rgn.c (init_ready_list): Drop special treatment of
19190 boundary debug insns.
19191 * final.c (rest_of_clean_state): Clear notes' BB.
19192
6fc2f091
JM
191932011-02-01 Joseph Myers <joseph@codesourcery.com>
19194
19195 * config/openbsd.opt (assert=): New Driver option.
19196
fc523387
JM
191972011-02-01 Joseph Myers <joseph@codesourcery.com>
19198
19199 * config/i386/nto.opt: New.
19200 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
19201
6d9821e5
JM
192022011-02-01 Joseph Myers <joseph@codesourcery.com>
19203
19204 * config/i386/netware.opt: New.
19205 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
19206
cef932d4
JM
192072011-02-01 Joseph Myers <joseph@codesourcery.com>
19208
19209 * config/interix.opt (posix): New Driver option.
19210
22843acd
DD
192112011-02-01 DJ Delorie <dj@redhat.com>
19212
56490b74
DD
19213 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
19214
22843acd
DD
19215 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
19216 class for A0/A1.
19217
199c8f2f
SP
192182011-02-01 Sebastian Pop <sebastian.pop@amd.com>
19219
19220 PR tree-optimization/47561
19221 * toplev.c (process_options): Print the Graphite flags. Add
19222 flag_loop_flatten to the list of options requiring Graphite.
19223
926bcf22
JM
192242011-02-01 Joseph Myers <joseph@codesourcery.com>
19225
19226 * config/i386/cygming.opt (posix): New Driver option.
19227
59793c51
JM
192282011-02-01 Joseph Myers <joseph@codesourcery.com>
19229
19230 * config/arm/vxworks.opt: New.
19231 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
19232
183c38a4
JM
192332011-02-01 Joseph Myers <joseph@codesourcery.com>
19234
19235 * config/alpha/elf.opt: New.
19236 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
19237 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
19238
9939e416
RG
192392011-02-01 Richard Guenther <rguenther@suse.de>
19240
19241 PR tree-optimization/47559
19242 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
19243 store-motion on references that can throw.
19244
4a3c9687
BS
192452011-02-01 Bernd Schmidt <bernds@codesourcery.com>
19246
19247 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
19248 * tree-pass.h (TDF_CSELIB): New macro.
19249 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
19250 cselib_lookup): Check for it rather than for TDF_DETAILS.
19251
dd3b31fb
L
192522011-02-01 H.J. Lu <hongjiu.lu@intel.com>
19253
19254 PR driver/47547
19255 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
19256 is HOST_BIT_BUCKET.
19257
19258 * opts.c (finish_options): Don't add x_aux_base_name if it is
19259 HOST_BIT_BUCKET.
19260
34c1de79
RG
192612011-02-01 Richard Guenther <rguenther@suse.de>
19262
19263 PR tree-optimization/47555
19264 Revert
19265 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
19266
19267 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
19268
dd2804d2
SB
192692011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
19270
19271 PR gcc/46692
19272 * config/lm32/t-lm32: Add multilib for all CPU options.
19273
3fd3b156
RG
192742011-02-01 Richard Guenther <rguenther@suse.de>
19275
19276 PR tree-optimization/47541
19277 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
19278 sure to have a field at offset zero.
19279
f16072b6
JM
192802011-01-31 Joseph Myers <joseph@codesourcery.com>
19281
19282 * config/arc/arc.opt (EB, EL): New Driver options.
19283
6456cf2e
JM
192842011-01-31 Joseph Myers <joseph@codesourcery.com>
19285
19286 * config/alpha/osf5.opt: New.
19287 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
19288
cdde6ab4
JM
192892011-01-31 Joseph Myers <joseph@codesourcery.com>
19290
19291 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
19292
7633415c
SP
192932011-01-31 Sebastian Pop <sebastian.pop@amd.com>
19294
19295 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
19296 -floop-interchange.
19297 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
19298 is an alias of -floop-interchange and that it requires the
19299 Graphite infrastructure.
19300 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
19301 flag_loop_interchange based on the value of flag_tree_loop_linear.
19302
0425d6f5
JJ
193032011-01-31 Jakub Jelinek <jakub@redhat.com>
19304 Richard Guenther <rguenther@suse.de>
19305
19306 PR tree-optimization/47538
19307 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
19308 type instead of r1type, except for comparisons. For right
19309 shifts and comparisons punt if there are mismatches in
19310 sizetype vs. non-sizetype types.
19311
500b16c3
RO
193122011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19313
19314 * doc/sourcebuild.texi (Effective-Target Keywords): Document
19315 avx_runtime.
19316
e279edb0
RO
193172011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19318
19319 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
19320 version number.
19321 * configure: Regenerate.
19322
c6092243
RO
193232011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19324
19325 * configure.ac (gcc_cv_ld_static_option): Define.
19326 (gcc_cv_ld_dynamic_option): Define.
19327 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
19328 instead.
19329 (HAVE_LD_STATIC_DYNAMIC): Update message.
19330 (LD_STATIC_OPTION): Define.
19331 (LD_DYNAMIC_OPTION): Define.
19332 * configure: Regenerate.
19333 * config.in: Regenerate.
19334 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
19335 HAVE_LD_STATIC_DYNAMIC]: Use them.
19336
d7862be3
NC
193372011-01-31 Nick Clifton <nickc@redhat.com>
19338
19339 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
19340 registers inside interrupt handlers if the handler is not a leaf
19341 function.
19342
ba4ec0e0
NC
193432011-01-31 Nick Clifton <nickc@redhat.com>
19344
19345 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
19346 reg_renumber returning an INVALID_REGNUM.
19347
29a63921
AO
193482011-01-31 Alexandre Oliva <aoliva@redhat.com>
19349
19350 PR libgcj/44341
19351 * doc/install.texi: Document host options discarded when cross
19352 configuring target libraries.
19353
ef591d3f
AO
193542011-01-31 Alexandre Oliva <aoliva@redhat.com>
19355
19356 Reverted:
19357 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
19358 PR debug/45136
19359 PR debug/45130
19360 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19361 debug insns.
19362 (no_real_insns_p, schedule_block, set_priorities): Drop special
19363 treatment of boundary debug insns.
38be4072 19364 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
19365 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19366 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19367 (BOUNDARY_DEBUG_INSN_P): Likewise.
19368 (SCHEDULE_DEBUG_INSN_P): Likewise.
19369 * sched-rgn.c (init_ready_list): Drop special treatment of
19370 boundary debug insns.
19371 * final.c (rest_of_clean-state): Clear notes' BB.
19372
61052244
AM
193732011-01-31 Alan Modra <amodra@gmail.com>
19374
19375 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
19376 toc relative expressions as we do in print_operand_address.
19377
c4c8962b
KH
193782011-01-30 Kazu Hirata <kazu@codesourcery.com>
19379
19380 * doc/extend.texi: Follow spelling conventions.
19381 * doc/invoke.texi: Fix a typo.
19382
e543b94c
JM
193832011-01-30 Joseph Myers <joseph@codesourcery.com>
19384
19385 * config/hpux11.opt: New.
19386 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
19387 ia64*-*-hpux*): Use hpux11.opt.
19388
509d65dd 193892011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
19390
19391 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
19392 to tmake_file.
19393
7be03a0e
GP
193942011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
19395
19396 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
19397 support sites.
19398
419d1d37
GP
193992011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
19400
b596ed64
GP
19401 * doc/install.texi (Binaries): Remove outdated reference for
19402 Motorola 68HC11/68HC12 downloads.
19403
194042011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 19405
419d1d37
GP
19406 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
19407 Drepper's paper.
19408
4406d0e9
JW
194092011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
19410
19411 PR bootstrap/47147
19412 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
19413 used by NetBSD.
19414
38be4072 194152011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
19416
19417 * value-prof.c (check_counter): Corrected error message.
19418
0cd98787
JZ
194192011-01-29 Jie Zhang <jie@codesourcery.com>
19420
19421 * config/arm/arm.c (arm_legitimize_reload_address): New.
19422 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
19423 arm_legitimize_reload_address.
38be4072 19424 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 19425
9b798ac5
ILT
194262011-01-28 Ian Lance Taylor <iant@google.com>
19427
19428 * godump.c (go_define): Ignore macros whose definitions include
19429 two adjacent operands.
19430
591e29d9
JJ
194312011-01-28 Jakub Jelinek <jakub@redhat.com>
19432
19433 PR target/42894
19434 * varasm.c (force_const_mem): Store copy of x in desc->constant
19435 instead of x itself.
19436 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
19437 itself into REG_EQUAL note.
19438
62dcc44a
JM
194392011-01-28 Joseph Myers <joseph@codesourcery.com>
19440
19441 * config/freebsd.opt (posix, rdynamic): New Driver options.
19442
c9f58b9a
RO
194432011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19444
19445 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
19446 -Bstatic/-Bdynamic.
19447 * configure: Regenerate.
19448
5f02b9db
JM
194492011-01-27 Joseph Myers <joseph@codesourcery.com>
19450
19451 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
19452 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
19453
5df97412
AS
194542011-01-27 Anatoly Sokolov <aesok@post.ru>
19455
19456 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
19457 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
19458 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19459 (s390_preferred_reload_class): Make static. Change return and
19460 'rclass' argument type to reg_class_t.
19461
779d4b91
JH
194622011-01-27 Jan Hubicka <jh@suse.cz>
19463
19464 PR middle-end/46949
19465 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
19466 (process_function_and_variable_attributes): Check defined weakrefs.
19467
e80b21ed
MJ
194682011-01-27 Martin Jambor <mjambor@suse.cz>
19469
19470 PR tree-optimization/47228
19471 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
19472 build_ref_for_offset.
19473
6dcc4f31
UW
194742011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19475
19476 * config/spu/spu-elf.h (ASM_SPEC): Remove.
19477
509d65dd 194782011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
19479
19480 PR rtl-optimization/46856
19481 * postreload.c (reload_combine_recognize_const_pattern): Do not
19482 separate cc0 setter and user on cc0 targets.
19483
04af8788
NP
194842011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
19485
19486 PR c/43082
19487 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
19488 passed a VOID_TYPE expression, immediately emit an error and
19489 return error_mark_node.
19490
f7a60085
JL
194912011-01-26 Jeff Law <law@redhat.com>
19492
19493 PR rtl-optimization/47464
19494 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
19495 rather than may_trap_p as needed.
19496
5c2917ec
DD
194972011-01-26 DJ Delorie <dj@redhat.com>
19498
19499 PR rtl-optimization/46878
19500 * combine.c (insn_a_feeds_b): Check for the implicit cc0
19501 setter/user dependency as well.
19502
bef16e87
EB
195032011-01-26 Eric Botcazou <ebotcazou@adacore.com>
19504
19505 PR rtl-optimization/44469
19506 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
19507 after removing trivially dead basic blocks.
19508
c75d884b
JM
195092011-01-26 Joseph Myers <joseph@codesourcery.com>
19510
19511 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
19512 * config/frv/frv.h (LINK_SPEC): Likewise.
19513 * config/i386/netware.h (LINK_SPEC): Likewise.
19514 * config/m68k/linux.h (ASM_SPEC): Likewise.
19515 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
19516 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19517 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19518 * config/sparc/linux.h (ASM_SPEC): Likewise.
19519 * config/sparc/linux64.h (ASM_SPEC): Likewise.
19520 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19521
d3153553
JM
195222011-01-26 Joseph Myers <joseph@codesourcery.com>
19523
19524 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
19525 * config/frv/frv.h (ASM_SPEC): Likewise.
19526 * config/m68k/linux.h (ASM_SPEC): Likewise.
19527 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19528 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
19529 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19530 * config/sparc/linux.h (ASM_SPEC): Likewise.
19531 * config/sparc/linux64.h (ASM_SPEC): Likewise.
19532 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19533
b89b1e9d
JM
195342011-01-26 Joseph Myers <joseph@codesourcery.com>
19535
19536 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
19537 * config/frv/frv.h (LINK_SPEC): Likewise.
19538 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
19539
12eb1a9c
JM
195402011-01-26 Joseph Myers <joseph@codesourcery.com>
19541
19542 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
19543 * config/frv/frv.h (ASM_SPEC): Likewise.
19544 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
19545 * config/m68k/linux.h (ASM_SPEC): Likewise.
19546 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
19547 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19548 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19549 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
19550 * config/sparc/linux.h (ASM_SPEC): Likewise.
19551 * config/sparc/linux64.h (ASM_SPEC): Likewise.
19552 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19553 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
19554
e435f098
SE
195552011-01-26 Steve Ellcey <sje@cup.hp.com>
19556
19557 PR target/46997
19558 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
19559 (*mux2): Ditto.
19560 (vec_extract_evenodd_help): Ditto.
19561 (vec_extract_evenv4hi): Ditto.
19562 (vec_extract_oddv4hi): Ditto.
19563 (vec_interleave_lowv2si): Ditto.
19564 (vec_interleave_highv2si): Ditto.
19565 (vec_extract_evenv2si): Ditto.
19566 (vec_extract_oddv2si: Ditto.
19567 (vec_pack_trunc_v2si): Ditto.
19568
34f0eee0
JH
195692011-01-22 Jan Hubicka <jh@suse.cz>
19570
19571 PR target/47237
19572 * cgraph.h (cgraph_local_info): New field can_change_signature.
19573 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
19574 signature can change.
19575 (ipcp_estimate_growth): Call sequence simplify only if calle signature
19576 can change.
19577 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
19578 (cgraph_function_versioning): We can not change signature of functions
19579 that don't allow that.
19580 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
19581 (lto_input_node): Likewise.
38be4072
UB
19582 * ipa-inline.c (compute_inline_parameters): Compute
19583 local.can_change_signature.
34f0eee0 19584 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
19585 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
19586 functions that can not change signature.
34f0eee0 19587 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
19588 init_cumulative_args): Do not use local calling conventions
19589 for functions that can not change signature.
34f0eee0 19590
980ca891
JH
195912011-01-22 Jan Hubicka <jh@suse.cz>
19592
19593 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
19594
768e3c60
RG
195952011-01-26 Richard Guenther <rguenther@suse.de>
19596
19597 PR tree-optimization/47190
61052244
AM
19598 * cgraphunit.c (process_common_attributes): New function.
19599 (process_function_and_variable_attributes): Use it.
768e3c60 19600
21d6a1c7
RG
196012011-01-26 Richard Guenther <rguenther@suse.de>
19602
19603 PR lto/47423
19604 * cgraphbuild.c (record_eh_tables): Record reference to personality
19605 function.
19606
48bb58b1
AO
196072011-01-26 Alexandre Oliva <aoliva@redhat.com>
19608
19609 PR debug/45454
19610 * sel-sched.c (moveup_expr): Don't let debug insns prevent
19611 non-debug insns from moving up.
19612
58c741a6
DK
196132011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
19614
19615 PR target/40125
19616 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
19617 t-dlldir{,-x} fragment for build and add it to tmake_file.
19618 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
19619 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
19620 * config/i386/t-dlldir: New file.
19621 (SHLIB_DLLDIR): Define.
19622 * config/i386/t-dlldir-x: New file.
19623 (SHLIB_DLLDIR): Define.
19624 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
19625 (SHLIB_INSTALL): Use it.
19626
bff99262
CLT
196272011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
19628
19629 PR target/47246
19630 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
19631 lower bound of the allowed Thumb-2 coprocessor load/store
19632 index range to -256. Add explaining comment.
19633
82c03907
ILT
196342011-01-25 Ian Lance Taylor <iant@google.com>
19635
19636 * godump.c (go_define): Improve lexing of macro expansion to only
19637 accept expressions which match Go spec.
19638
47ea1edf
DK
196392011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
19640
d4dba752 19641 PR c++/43601
47ea1edf
DK
19642 * tree.c (handle_dll_attribute): Handle it.
19643 * doc/extend.texi (@item dllexport): Mention it.
19644 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
19645
744f0946
ILT
196462011-01-25 Ian Lance Taylor <iant@google.com>
19647
19648 PR tree-optimization/26854
19649 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
19650 (decl_jump_unsafe): Move higher in file, with no other change.
19651 (bind): Set has_jump_unsafe_decl if appropriate.
19652 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
19653 (check_earlier_gotos): Likewise.
19654 (c_check_switch_jump_warnings): Likewise.
19655
5734f2b3
JW
196562011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
19657
19658 * doc/invoke.texi (Warning Options): Add missing hyphen.
19659 (-fprofile-dir): Minor grammatical fixes.
19660 (-fbranch-probabilities): Likewise.
19661
9bdbdcef
AO
196622011-01-25 Alexandre Oliva <aoliva@redhat.com>
19663
19664 PR debug/45136
19665 PR debug/45130
19666 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19667 debug insns.
19668 (no_real_insns_p, schedule_block, set_priorities): Drop special
19669 treatment of boundary debug insns.
38be4072 19670 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
19671 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19672 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19673 (BOUNDARY_DEBUG_INSN_P): Likewise.
19674 (SCHEDULE_DEBUG_INSN_P): Likewise.
19675 * sched-rgn.c (init_ready_list): Drop special treatment of
19676 boundary debug insns.
19677 * final.c (rest_of_clean-state): Clear notes' BB.
19678
b305e3da
SP
196792011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19680
19681 * Makefile.in (LAMBDA_H): Removed.
19682 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
19683 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
19684 lambda-trans.o, and tree-loop-linear.o.
19685 (lto-symtab.o): Remove dependence on LAMBDA_H.
19686 (tree-loop-linear.o): Remove rule.
19687 (lambda-mat.o): Same.
19688 (lambda-trans.o): Same.
19689 (lambda-code.o): Same.
19690 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
19691 (tree-vect-slp.o): Same.
19692 * hwint.h (gcd): Moved here.
19693 (least_common_multiple): Same.
19694 * lambda-code.c: Removed.
19695 * lambda-mat.c: Removed.
19696 * lambda-trans.c: Removed.
19697 * lambda.h: Removed.
19698 * tree-loop-linear.c: Removed.
19699 * lto-symtab.c: Do not include lambda.h.
19700 * omega.c (gcd): Removed.
19701 * passes.c (init_optimization_passes): Remove pass_linear_transform.
19702 * tree-data-ref.c (print_lambda_vector): Moved here.
19703 (lambda_vector_copy): Same.
19704 (lambda_matrix_copy): Same.
19705 (lambda_matrix_id): Same.
19706 (lambda_vector_first_nz): Same.
19707 (lambda_matrix_row_add): Same.
19708 (lambda_matrix_row_exchange): Same.
19709 (lambda_vector_mult_const): Same.
19710 (lambda_vector_negate): Same.
19711 (lambda_matrix_row_negate): Same.
19712 (lambda_vector_equal): Same.
19713 (lambda_matrix_right_hermite): Same.
19714 * tree-data-ref.h: Do not include lambda.h.
19715 (lambda_vector): Moved here.
19716 (lambda_matrix): Same.
19717 (dependence_level): Same.
19718 (lambda_transform_legal_p): Removed declaration.
19719 (lambda_collect_parameters): Same.
19720 (lambda_compute_access_matrices): Same.
19721 (lambda_vector_gcd): Same.
19722 (lambda_vector_new): Same.
19723 (lambda_vector_clear): Same.
19724 (lambda_vector_lexico_pos): Same.
19725 (lambda_vector_zerop): Same.
19726 (lambda_matrix_new): Same.
19727 * tree-flow.h (least_common_multiple): Removed declaration.
19728 * tree-parloops.c (lambda_trans_matrix): Moved here.
19729 (LTM_MATRIX): Same.
19730 (LTM_ROWSIZE): Same.
19731 (LTM_COLSIZE): Same.
19732 (LTM_DENOMINATOR): Same.
19733 (lambda_trans_matrix_new): Same.
19734 (lambda_matrix_vector_mult): Same.
19735 (lambda_transform_legal_p): Same.
19736 * tree-pass.h (pass_linear_transform): Removed declaration.
19737 * tree-ssa-loop.c (tree_linear_transform): Removed.
19738 (gate_tree_linear_transform): Removed.
19739 (pass_linear_transform): Removed.
19740 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
19741 flag_loop_interchange.
19742
6bdfdb96
JJ
197432011-01-25 Jakub Jelinek <jakub@redhat.com>
19744
19745 PR tree-optimization/47265
19746 PR tree-optimization/47443
19747 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
19748 if name still has some uses.
19749
e4cba915
MJ
197502011-01-25 Martin Jambor <mjambor@suse.cz>
19751
19752 PR tree-optimization/47382
19753 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
19754 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
19755
509d65dd 197562011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
19757
19758 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
19759 sjlj_except_unwind_info.
19760
194313e2
RG
197612011-01-25 Richard Guenther <rguenther@suse.de>
19762
19763 PR tree-optimization/47426
19764 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
19765 visible functions results escape.
19766
147a0bcf
JJ
197672011-01-25 Jakub Jelinek <jakub@redhat.com>
19768
19769 PR target/45701
19770 * config/arm/arm.c (any_sibcall_uses_r3): New function.
19771 (arm_get_frame_offsets): Use it.
19772
db963b52
SP
197732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19774 Jakub Jelinek <jakub@redhat.com>
19775
19776 PR tree-optimization/47271
19777 * tree-if-conv.c (bb_postdominates_preds): New.
19778 (if_convertible_bb_p): Call bb_postdominates_preds.
19779 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
19780 (predicate_scalar_phi): Call bb_postdominates_preds.
19781
bcddd3b9
NC
197822011-01-25 Nick Clifton <nickc@redhat.com>
19783
19784 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
19785 * config/rx/rx.c (rx_function_value): Likewise.
19786 (rx_promote_function_mode): Likewise.
19787 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
19788 in order to make it legitimate.
38be4072
UB
19789 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
19790 make sure that the first operand is the same as the result register.
bcddd3b9
NC
19791 (addsi3_unspec): Delete.
19792 (subdi3): Do not accept immediate operands.
19793 (subdi3_internal): Likewise.
19794
7e6cb022
JL
197952011-01-25 Jeff Law <law@redhat.com>
19796
19797 PR rtl-optimization/37273
19798 * ira-costs.c (scan_one_insn): Detect constants living in memory and
19799 handle them like argument loads from stack slots. Do not double
19800 count memory for memory constants and argument loads from stack slots.
19801
9ffa621e
JJ
198022011-01-25 Jakub Jelinek <jakub@redhat.com>
19803
19804 PR tree-optimization/47427
19805 PR tree-optimization/47428
19806 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19807 coalesce if the new root var would be TREE_READONLY.
19808
5bd6e652
RG
198092011-01-25 Richard Guenther <rguenther@suse.de>
19810
19811 PR middle-end/47414
19812 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
19813 correct type for TBAA.
19814
7c48ea69
SP
198152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19816
19817 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
19818 (close_phi_written_to_memory): Call for_each_index with
19819 dr_indices_valid_in_loop.
19820
38013f25
SP
198212011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19822
19823 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
19824 when it is initialized.
19825
5c640e29
SP
198262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19827
19828 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
19829 call to graphite_find_data_references_in_stmt.
19830 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
19831 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
19832 call to graphite_find_data_references_in_stmt.
19833 (analyze_drs_in_stmts): Same.
19834 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
19835 in which the scalar analysis of indices is performed.
19836 (create_data_ref): Same. Update call to dr_analyze_indices.
19837 (find_data_references_in_stmt): Update call to create_data_ref.
19838 (graphite_find_data_references_in_stmt): Same.
19839 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
19840 declaration.
19841 (create_data_ref): Same.
19842 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
19843 call to create_data_ref.
19844
ac53c069
SP
198452011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19846
19847 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 19848 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 19849
3d17df15
SP
198502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19851
19852 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
19853 VAR_DECL, PARM_DECL, and RESULT_DECL.
19854
c513da01
SP
198552011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19856
19857 * graphite-dependences.c (reduction_dr_1): Allow several reductions
19858 in a reduction PBB.
19859 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
19860 that have already been marked as PBB_IS_REDUCTION.
19861
3a292d59
SP
198622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19863
19864 * graphite-scop-detection.c (same_close_phi_node): New.
19865 (remove_duplicate_close_phi): New.
19866 (make_close_phi_nodes_unique): New.
19867 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
19868
ba858447
SP
198692011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19870
19871 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
19872 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
19873 of both data references to be the same.
19874
8d865c56
SP
198752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19876
38be4072
UB
19877 * graphite-dependences.c (build_lexicographical_constraint): Remove
19878 the gdim parameter.
19879 (build_lexicographical_constraint): Adjust call to
19880 ppl_powerset_is_empty.
8d865c56
SP
19881 (dependence_polyhedron): Same.
19882 (graphite_legal_transform_dr): Same.
19883 (graphite_carried_dependence_level_k): Same.
38be4072
UB
19884 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
19885 parameter.
8d865c56
SP
19886 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
19887
50034a36
SP
198882011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19889
19890 * graphite-sese-to-poly.c
19891 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
19892 (close_phi_written_to_memory): New.
19893 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
19894 and unshare_expr.
19895
0deada9e
SP
198962011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19897
19898 * doc/install.texi: Update the expected version number of PPL to 0.11.
19899 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
19900 #if PPL_VERSION_MINOR < 11.
19901
d7d3d6af
SP
199022011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19903
19904 * graphite-dependences.c: Include graphite-cloog-util.h.
19905 (new_poly_ddr): Inlined into dependence_polyhedron.
19906 (free_poly_ddr): Moved close by new_poly_ddr.
19907 (dependence_polyhedron_1): Renamed dependence_polyhedron.
19908 Early return NULL when ppl_powerset_is_empty returns true.
19909 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
19910 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
19911 (graphite_legal_transform_dr): Call new_poly_ddr.
19912 (graphite_carried_dependence_level_k): Same.
19913 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
19914 (dot_transformed_deps_stmt_1): Removed.
19915 (dot_deps_stmt_1): Call dot_deps_stmt_2.
19916 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
19917 (dot_deps_1): Call dot_deps_2.
19918 * Makefile.in (graphite-dependences.o): Add missing dependence on
19919 graphite-cloog-util.h.
19920
28c5db57
SP
199212011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19922
19923 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
19924 (build_lexicographical_constraint): Same.
19925 (dependence_polyhedron_1): Same.
19926 (graphite_legal_transform_dr): Same.
19927 (graphite_carried_dependence_level_k): Same.
19928 * graphite-ppl.c (ppl_powerset_is_empty): New.
19929 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
19930 * tree-data-ref.c (dump_data_reference): Print the basic block index.
19931
5168d98f
SP
199322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19933
19934 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
19935 the "a followed by b" relation and document it.
19936
4a40293a
SP
199372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19938
19939 * graphite-dependences.c (build_lexicographical_constraint): Stop the
19940 iteration when the bag of constraints is empty.
19941
271fb6fa
SP
199422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19943
19944 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
19945
92d23680
SP
199462011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19947
19948 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
19949 nest and two loop depths as parameters.
19950 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
19951 lst_perfect_nestify.
19952
2f51deff
SP
199532011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19954
19955 * graphite-dependences.c (print_pddr): Call
19956 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
19957
07f3593c
SP
199582011-01-25 Sebastian Pop <sebastian.pop@amd.com>
19959
19960 * graphite-ppl.c (debug_gmp_value): New.
19961 * graphite-ppl.h (debug_gmp_value): Declared.
19962
3fae6099
TG
199632011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
19964
19965 * doc/install.texi: Document availability of cloog-0.16.
19966
1c3ba85b
SP
199672011-01-25 Vladimir Kargov <kargov@gmail.com>
19968
19969 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
19970 invalid postdominance info.
19971
e8ba94fc
JH
199722011-01-24 Jan Hubicka <jh@suse.cz>
19973
19974 PR c/21659
19975 * doc/extend.texi (weak pragma): Drop claim that it must
19976 appear before definition.
19977 * varasm.c (merge_weak, declare_weak): Only sanity check
19978 that DECL is not output at a time it is declared weak.
19979
2b6e2d13
KZ
199802011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
19981
19982 * machmode.def: Fixed comments.
1c3ba85b 19983
9841210f
KT
199842011-01-24 Kai Tietz <kai.tietz@onevision.com>
19985
19986 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
19987
199882011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
19989
19990 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 19991 WORDS_BIG_ENDIAN.
e046112d 19992
a6c5070a
L
199932011-01-24 H.J. Lu <hongjiu.lu@intel.com>
19994
19995 PR target/46519
19996 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
19997 (block_info): Add scanned and prev.
19998 (move_or_delete_vzeroupper_2): Return if the basic block
19999 has been scanned and the upper 128bit state is unchanged
20000 from the last scan.
20001 (move_or_delete_vzeroupper_1): Return true if the exit
20002 state is changed.
20003 (move_or_delete_vzeroupper): Visit basic blocks using the
20004 work-list based algorithm based on vt_find_locations in
20005 var-tracking.c.
20006
20007 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
20008
a40d79d7
NC
200092011-01-24 Nick Clifton <nickc@redhat.com>
20010
20011 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
20012 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
20013 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
20014 then define __v850e1__.
20015 * doc/invoke.texi: Document -mv850es.
20016
440eb8de
RH
200172011-01-24 Richard Henderson <rth@redhat.com>
20018
20019 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
20020 compound unordered comparisons.
20021 * config/rx/rx.c (rx_split_fp_compare): Remove.
20022 * config/rx/rx-protos.h: Update.
20023 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
20024 (cbranchsf4): Don't call rx_split_fp_compare.
20025 (*cbranchsf4): Use rx_split_cbranch.
20026 (*cmpsf): Don't accept "i" constraint.
20027 (*conditional_branch): Only valid after reload.
20028 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
20029
3ff79f99
MM
200302011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
20031
20032 PR target/47385
20033 * config/rs6000/altivec.md (vector constant splitters): Add
20034 support for creating vector single precision constants if -mvsx is
20035 used and we would create the constant using Altivec primitives.
20036
ff3d9d08
BS
200372011-01-23 Bernd Schmidt <bernds@codesourcery.com>
20038 Richard Sandiford <rdsandiford@googlemail.com>
20039
20040 PR rtl-optimization/47166
20041 * reload1.c (emit_reload_insns): Disable the spill_reg_store
20042 mechanism for PRE_MODIFY and POST_MODIFY.
20043 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
20044 reloadreg.
20045
7fcaf152
AS
200462011-01-23 Andreas Schwab <schwab@linux-m68k.org>
20047
8788adb6 20048 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 20049
d09b58c4
JH
200502011-01-22 Jan Hubicka <jh@suse.cz>
20051
20052 PR lto/47333
20053 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
20054
e8ff8c5a
JH
200552011-01-22 Jan Hubicka <jh@suse.cz>
20056
20057 PR tree-optimization/43884
20058 PR lto/44334
8788adb6 20059 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
20060 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
20061
ccaed3ba
AS
200622011-01-22 Anatoly Sokolov <aesok@post.ru>
20063
20064 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
20065 * config/s390/s390.c (s390_register_move_cost,
20066 s390_memory_move_cost): New.
20067 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
20068
0cecee06
UW
200692011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20070
20071 PR middle-end/47401
20072 * except.c (sjlj_assign_call_site_values): Move setting the
20073 crtl->uses_eh_lsda flag to ...
20074 (sjlj_mark_call_sites): ... here.
20075 (sjlj_emit_function_enter): Support NULL dispatch label.
20076 (sjlj_build_landing_pads): In a function with no landing pads
20077 that still has must-not-throw regions, generate code to register
20078 a personality function with empty LSDA.
20079
e692f276
RH
200802011-01-21 Richard Henderson <rth@redhat.com>
20081
1b7ae0b7
RH
20082 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
20083
3843787f
RH
20084 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
20085
e692f276
RH
20086 * compare-elim.c: New file.
20087 * Makefile.in (OBJS-common): Add it.
20088 (compare-elim.o): New.
20089 * common.opt (fcompare-elim): New.
20090 * opts.c (default_options_table): Add OPT_fcompare_elim.
20091 * tree-pass.h (pass_compare_elim_after_reload): New.
20092 * passes.c (init_optimization_passes): Add it.
20093 * recog.h: Protect against re-inclusion.
20094 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
20095 * doc/invoke.texi (-fcompare-elim): Document it.
20096 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
20097 * doc/tm.texi: Rebuild.
20098
9a7c2050
NC
200992011-01-22 Nick Clifton <nickc@redhat.com>
20100
20101 * config/rx/rx.md (cstoresf4): Pass comparison operator to
20102 rx_split_fp_compare.
20103
15ba5696
NC
201042011-01-22 Nick Clifton <nickc@redhat.com>
20105
20106 * config/rx/rx.md (UNSPEC_CONST): New.
20107 (deallocate_and_return): Wrap the amount popped off the stack in
20108 an UNSPEC_CONST in order to stop it being rejected by
20109 -mmax-constant-size.
20110 (pop_and_return): Add a "(return)" rtx.
20111 (call): Drop the immediate operand.
20112 (call_internal): Likewise.
20113 (call_value): Likewise.
20114 (call_value_internal): Likewise.
20115 (sibcall_internal): Likewise.
20116 (sibcall_value_internal): Likewise.
20117 (sibcall): Likewise. Generate an explicit call using
20118 sibcall_internal.
20119 (sibcall_value): Likewise.
20120 (mov<>): FAIL if a constant operand is not legitimate.
20121 (addsi3_unpsec): New pattern.
9a7c2050 20122
38be4072 20123 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
20124 (ok_for_max_constant): New function.
20125 (gen_safe_add): New function.
20126 (rx_expand_prologue): Use gen_safe_add.
20127 (rx_expand_epilogue): Likewise.
20128 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
20129 UNSPEC CONSTs.
20130
caaf13d3
JL
201312011-01-21 Jeff Law <law@redhat.com>
20132
20133 PR tree-optimization/47053
20134 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
20135 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
20136 statements are deleted.
20137 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
20138 is nonempty, then purge dead edges and cleanup the CFG.
20139
12c30f2f
AO
201402011-01-21 Alexandre Oliva <aoliva@redhat.com>
20141
20142 PR debug/47402
20143 Temporarily revert:
20144 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
20145 PR debug/47106
20146 * tree-dfa.c (create_var_ann): Mark variable as used.
20147
7360d2ac
JJ
201482011-01-21 Jakub Jelinek <jakub@redhat.com>
20149
aaa52a96
JJ
20150 PR middle-end/45566
20151 * except.c (convert_to_eh_region_ranges): Emit queued no-region
20152 notes from other section in hot/cold partitioning even if
20153 last_action is -3. Increment call_site_base.
20154
7360d2ac
JJ
20155 PR rtl-optimization/47366
20156 * fwprop.c (forward_propagate_into): Return bool. If
20157 any changes are made, -fnon-call-exceptions is used and
20158 REG_EH_REGION note is present, call purge_dead_edges
20159 and return true if it purged anything.
20160 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
20161 any EH edges were purged.
20162
e90b336f
JL
201632011-01-21 Jeff Law <law@redhat.com>
20164
20165 PR rtl-optimization/41619
20166 * caller-save.c (setup_save_areas): Break out code to determine
20167 which hard regs are live across calls by examining the reload chains
20168 so that it is always used.
20169 Eliminate code which checked REG_N_CALLS_CROSSED.
20170
3ffe07e1
JJ
201712011-01-21 Jakub Jelinek <jakub@redhat.com>
20172
20173 PR tree-optimization/47355
20174 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
20175 NOP has non-debug uses beyond PHIs in new_bb.
20176
1c7d0b34
AO
201772011-01-21 Alexandre Oliva <aoliva@redhat.com>
20178
20179 PR debug/47106
20180 * cfgexpand.c (account_used_vars_for_block): Only account vars
20181 that are annotated as used.
20182 (estimated_stack_frame_size): Don't set TREE_USED.
20183 * tree-dfa.c (create_var_ann): Mark variable as used.
20184
f99cc488
RG
201852011-01-21 Richard Guenther <rguenther@suse.de>
20186
20187 PR middle-end/47395
20188 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
20189
3bc27de7
RG
201902011-01-21 Richard Guenther <rguenther@suse.de>
20191
20192 PR tree-optimization/47365
20193 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
20194 (vn_reference_lookup_pieces): Adjust.
20195 (vn_reference_lookup): Likewise.
20196 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
20197 (vn_reference_lookup_3): Only look through kills if in
20198 VN_WALKREWRITE mode.
20199 (vn_reference_lookup_pieces): Adjust.
20200 (vn_reference_lookup): Likewise.
20201 (visit_reference_op_load): Likewise.
20202 (visit_reference_op_store): Likewise.
20203 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
20204 (compute_avail): Likewise.
20205 (eliminate): Likewise.
20206
d8debb1d
JJ
202072011-01-21 Jakub Jelinek <jakub@redhat.com>
20208
20209 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
20210 DECL_IGNORED_P non-reg vars if they are used.
20211
3a2df831
JJ
20212 PR tree-optimization/47391
20213 * varpool.c (const_value_known_p): Return false if
20214 decl is volatile.
20215
1dd584a2
KT
202162011-01-21 Kai Tietz <kai.tietz@onevision.com>
20217
20218 PR bootstrap/47215
20219 * config/i386/i386.c (ix86_local_alignment): Handle
20220 case for va_list_type_node is nil.
20221 (ix86_canonical_va_list_type): Likewise.
20222
7f9f095e
AM
202232011-01-21 Alan Modra <amodra@gmail.com>
20224
20225 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
20226 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
20227
837b01f6
RR
202282011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20229
20230 * config/arm/arm.md (define_attr type): Rename f_load
20231 and f_store to f_fpa_load and f_fpa_store. Update.
20232 (write_conflict): Deal with rename fallout.
20233 (*push_fp_multi): Likewise.
20234 * config/arm/fpa.md (f_load): Use f_fpa_load.
20235 (f_store): Use f_fpa_store.
20236 (*movsf_fpa): Likewise.
20237 (*movdf_fpa): Likewise.
20238 (*movxf_fpa): Likewise.
20239 (*thumb2_movsf_fpa): Likewise.
20240 (*thumb2_movdf_fpa): Likewise.
20241 (*thumb2_movxf_fpa): Likewise.
20242 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
20243 f_loadd and f_stored.
20244 (*thumb2_movdi_vfp): Likewise.
20245 (*thumb2_movsf_vfp): Fix attribute to f_loads.
20246 (*thumb2_movsi_vfp): Likewise.
20247 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
20248 Use f_loads instead of f_load.
20249 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
20250
a1a79768
AS
202512011-01-20 Anatoly Sokolov <aesok@post.ru>
20252
20253 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20254 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
20255 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20256 (xtensa_mode_dependent_address_p): New function.
20257 (constantpool_address_p): Make static. Change return type to bool.
20258 Change argument type to const_rtx. Use CONST_INT_P predicate.
20259
427f6cec
AO
202602011-01-20 Alexandre Oliva <aoliva@redhat.com>
20261
20262 PR debug/46583
20263 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
20264
583ac69c
JJ
202652011-01-20 Jakub Jelinek <jakub@redhat.com>
20266
20267 PR debug/47283
20268 * cfgexpand.c (expand_debug_expr): Instead of generating
20269 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
20270 etc. handling.
20271
93e452ed
RG
202722011-01-20 Richard Guenther <rguenther@suse.de>
20273
20274 PR middle-end/47370
20275 * tree-inline.c (remap_gimple_op_r): Recurse manually for
20276 the pointer operand of MEM_REFs.
20277
28fc44f3
JJ
202782011-01-20 Jakub Jelinek <jakub@redhat.com>
20279
20280 PR tree-optimization/46130
20281 * ipa-split.c (consider_split): If return_bb contains non-virtual
20282 PHIs other than for retval or if split_function would not adjust it,
20283 refuse to split.
20284
ddd268f2
RG
202852011-01-20 Richard Guenther <rguenther@suse.de>
20286
20287 PR tree-optimization/47167
20288 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
20289 Revert previous change, only avoid enumeral type changes.
20290
882020aa
MS
202912011-01-19 Mike Stump <mikestump@comcast.net>
20292
20293 * doc/tm.texi.in (BRANCH_COST): Englishify.
20294 * doc/tm.texi (BRANCH_COST): Likewise.
20295
7edb6247
DS
202962011-01-19 Dodji Seketeli <dodji@redhat.com>
20297
20298 PR c++/47291
20299 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
20300 (gen_scheduled_generic_parms_dies): New functions.
20301 (gen_struct_or_union_type_die): Schedule template parameters DIEs
20302 generation for the end of CU compilation.
20303 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 20304
23d5ed5d
AO
203052011-01-19 Alexandre Oliva <aoliva@redhat.com>
20306
20307 PR debug/46240
20308 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
20309 debug bind stmt on merge edges.
20310
37d6a488
AO
203112011-01-19 Alexandre Oliva <aoliva@redhat.com>
20312
20313 PR debug/47079
20314 PR debug/46724
20315 * function.c (instantiate_expr): Instantiate incoming rtl of
20316 implicit arguments, and recurse on VALUE_EXPRs.
20317 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
20318 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
20319
689f2c82
AO
203202011-01-19 Alexandre Oliva <aoliva@redhat.com>
20321
20322 * c-parser.c (c_parser_for_statement): Initialize
20323 collection_expression.
20324
03029de4
JM
203252011-01-19 Joseph Myers <joseph@codesourcery.com>
20326
20327 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
20328
3e03217e
JM
203292011-01-19 Joseph Myers <joseph@codesourcery.com>
20330
20331 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
20332 (LINK_SHLIB_SPEC): Don't use %(link_path).
20333 (SUBTARGET_EXTRA_SPECS): Remove link_path.
20334
5bbe9b3f
JM
203352011-01-19 Joseph Myers <joseph@codesourcery.com>
20336
20337 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
20338 (NO_SHARED_LIB_SUPPORT): Remove.
20339 (LINK_SHLIB_SPEC): Remove one conditional definition.
20340
368e0b39
JM
203412011-01-19 Joseph Myers <joseph@codesourcery.com>
20342
20343 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
20344 %{call_shared}.
20345 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
20346 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
20347 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
20348 %{call_shared} and conditionals on these options not being passed.
20349 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
20350 %{call_shared}.
20351
ed7656f6
JJ
203522011-01-19 Jakub Jelinek <jakub@redhat.com>
20353
68457901
JJ
20354 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
20355 simplify.
20356
ed7656f6
JJ
20357 * ipa-split.c: Spelling fixes.
20358
e0d1958f
RH
203592011-01-19 Richard Henderson <rth@redhat.com>
20360
20361 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
20362 (*mulsi3): Likewise.
20363
27098b6b
RH
20364 * longlong.h [__mn10300__] (count_leading_zeros): New.
20365 [__mn10300__] (umul_ppmm, smul_ppmm): New.
20366 [__mn10300__] (add_ssaaaa, subddmmss): New.
20367 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
20368 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
20369
d6be7c36
UW
203702011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20371
20372 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
20373
b1efde2a
RH
203742011-01-19 Richard Henderson <rth@redhat.com>
20375
44217823
RH
20376 * config/mn10300/mn10300.md (addsi3_flags): New.
20377 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
20378 (subsi3_flags, subc_internal, subdi3): New.
20379 (subdi3_internal, *subdi3_degenerate): New.
20380 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
20381
37a185d7
RH
20382 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
20383 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
20384 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
20385 * config/mn10300/mn10300-protos.h: Update.
20386 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
20387 (return_ret): Likewise. Rename from return_internal_regs.
20388 (return_internal): Remove.
20389
040c5757
RH
20390 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
20391 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
20392 (mn10300_legitimate_constant_p): Likewise.
20393 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
20394 (mn10300_frame_size): New.
20395 (mn10300_expand_prologue): Use it.
20396 (mn10300_expand_epilogue): Likewise.
20397 (mn10300_initial_offset): Likewise.
20398 * config/mn10300/mn10300-protos.h: Update.
20399 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
20400 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
20401 (prologue, epilogue, return_internal): Tidy output code.
20402 (mn10300_store_multiple_operation, return): Likewise.
20403 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
20404 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
20405 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
20406 (load_pic, am33_load_pic): New.
20407 (mn10300_load_pic0, mn10300_load_pic1): New.
20408
bad41521
RH
20409 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
20410 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
20411 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
20412 (cc_flags_for_mode, cc_flags_for_code): New.
20413 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
20414 overflow flag is not valid. Validate that the flags we need
20415 for the comparison are valid.
20416 (mn10300_output_cmp): Remove.
20417 (mn10300_output_add): New.
20418 (mn10300_select_cc_mode): Use cc_flags_for_code.
20419 (mn10300_split_cbranch): New.
20420 (mn10300_match_ccmode): New.
20421 (mn10300_split_and_operand_count): New.
20422 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
20423 to the function.
20424 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
20425 (addsi3): ... here. Use mn10300_output_add.
20426 (*addsi3_flags): New.
20427 (*am33_subsi3, *mn10300_subsi3): Merge...
20428 (subsi3): ... here. Use attribute isa.
20429 (*subsi3_flags): New.
20430 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
20431 when possible.
20432 (*am33_andsi3, *mn10300_andsi3): Merge...
20433 (andsi3): ... here.
20434 (*andsi3_flags): New.
20435 (andsi3 splitters): New.
20436 (*am33_iorsi3, *mn10300_iorsi3): Merge...
20437 (iorsi3): ... here.
20438 (*iorsi3_flags): New.
20439 (*am33_xorsi3, *mn10300_xorsi3): Merge...
20440 (xorsi3): ... here.
20441 (*xorsi3_flags): New.
20442 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
20443 (one_cmplsi2): ... here.
20444 (*one_cmplsi2_flags): New.
20445 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
20446 instead of "dax" in constraints. Use mn10300_split_cbranch.
20447 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
20448 use matching constraints to eliminate a self-comparison.
20449 (*integer_conditional_branch): Rename from integer_conditional_branch.
20450 Use int_mode_flags to match CC_REG.
20451 (*cbranchsi4_btst, *btstsi): New.
20452 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
20453 mn10300_split_cbranch.
20454 (*am33_cmpsf): Rename from am33_cmpsf.
20455 (*float_conditional_branch): Rename from float_conditional_branch.
20456 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
20457 (zero_extendqisi2): ... here.
20458 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
20459 (zero_extendhisi2): ... here.
20460 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
20461 (extendqisi2): ... here.
20462 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
20463 (extendhisi2): ... here.
20464 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
20465 (ashlsi3): ... here.
20466 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
20467 (lshrsi3): ... here.
20468 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
20469 (ashrsi3): ... here.
20470 (consecutive add peephole): Remove.
20471 * config/mn10300/predicates.md (label_ref_operand): New.
20472 (int_mode_flags): New.
20473 (CCZN_comparison_operator): New.
20474
9efb4993
RH
20475 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
20476 (throughput_42_latency_43): New reservation.
20477 (mulsidi3, umulsidi3): New expanders.
20478 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
20479 the MDR register to allocation; separately allocate the low and
20480 high parts of the DImode result.
20481 (umulsidi3_internal): Similarly.
20482 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
20483 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
20484 (udivsi3, umodsi3): Remove.
20485 (udivmodsi4, divmodsi4): New expanders.
20486 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
20487 (*divmodsi4): Simiarly.
20488 (ext_internal): New.
20489
c25a21f5
RH
20490 * config/mn10300/constraints.md ("z"): New constraint.
20491 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
20492 (FIXED_REGISTERS): Don't fix MDR.
20493 (CALL_USED_REGSITERS): Reformat nicely.
20494 (REG_ALLOC_ORDER): Add MDR.
20495 (enum regclass): Add MDR_REGS.
20496 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
20497 (IRA_COVER_CLASSES): Add MDR_REGS.
20498 (REGNO_REG_CLASS): Handle MDR_REG.
20499 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
20500 (mn10300_register_move_cost): Likewise.
20501 * config/mn10300/mn10300.md (MDR_REG): New.
20502 (*movsi_internal): Handle moves to/from MDR_REGS.
20503
36846b26
RH
20504 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
20505 POST_MODIFY.
20506 (mn10300_secondary_reload): Tidy combination reload classes.
20507 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
20508 addresses for AM33. Allow symbolic offsets for reg+imm.
20509 (mn10300_regno_in_class_p): New.
20510 (mn10300_legitimize_reload_address): New.
20511 * config/mn10300/mn10300.h (enum reg_class): Remove
20512 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
20513 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
20514 SP_OR_GENERAL_REGS.
20515 (REG_CLASS_NAMES): Update to match.
20516 (REG_CLASS_CONTENTS): Likewise.
20517 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
20518 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
20519 (REGNO_IN_RANGE_P): Remove.
20520 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
20521 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
20522 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
20523 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
20524 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
20525 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
20526 (REGNO_GENERAL_P): New.
20527 (HAVE_POST_MODIFY_DISP): New.
20528 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
20529 (LEGITIMIZE_RELOAD_ADDRESS): New.
20530 * config/mn10300/mn10300-protos.h: Update.
20531
8b119bb6
RH
20532 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
20533 DATA_REGS for AM33 stack-pointer destination.
20534 (mn10300_preferred_output_reload_class): Likewise.
20535 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
20536 into a form appropriate for ...
20537 (TARGET_SECONDARY_RELOAD): New.
20538 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
20539 * config/mn10300/mn10300-protos.h: Update.
20540 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
20541 reload_insi; use the "A" constraint for the scratch; handle AM33
20542 moves of sp to non-address registers.
20543
b1efde2a
RH
20544 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
20545 (*movqi_internal): ... here.
20546 (*am33_movhi, *mn10300_movhi): Merge into...
20547 (*movhi_internal): ... here.
20548 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
20549 as the source/destination of moves from/to SP.
20550 (movsf): Only allow for AM33-2.
1c3ba85b 20551 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
20552 any integer constant constraint. Only allow for AM33-2. Tidy
20553 all of the alternative outputs.
20554 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
20555 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
20556 for MN103.
20557 (udivsi3, umodsi3): New patterns for MN103 only.
20558
b899fd78
JR
205592011-01-19 Joern Rennecke <amylaar@spamcop.net>
20560
20561 * doc/tm.texi.in: Spell out that a lack of register class unions
20562 can lead to ICEs.
20563 * doc/tm.texi: Regenerate.
20564
afaaa67d
JJ
205652011-01-19 Jakub Jelinek <jakub@redhat.com>
20566
2e0642cd
JJ
20567 PR rtl-optimization/47337
20568 * dce.c (check_argument_store): New function.
20569 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
20570
afaaa67d
JJ
20571 PR tree-optimization/47290
20572 * tree-eh.c (infinite_empty_loop_p): New function.
20573 (cleanup_empty_eh): Use it.
20574
d2cd871f
SE
205752011-01-18 Steve Ellcey <sje@cup.hp.com>
20576
20577 PR target/46997
20578 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
20579 (a64_expand_widen_sum): Ditto.
20580 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
20581 (vec_extract_evenodd_help): Ditto.
20582 (vec_extract_evenv4hi): Ditto.
20583 (vec_extract_oddv4hi): Ditto.
20584 (vec_extract_evenv2si): Ditto.
20585 (vec_extract_oddv2si): Ditto.
20586 (vec_extract_evenv2sf): Ditto.
20587 (vec_extract_oddv2sf): Ditto.
20588 (vec_pack_trunc_v4hi: Ditto.
20589 (vec_pack_trunc_v2si): Ditto.
20590 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
20591 (vec_interleave_highv8qi): Ditto.
20592 (mix1_r): Ditto.
20593 (vec_extract_oddv8qi): Ditto.
20594 (vec_interleave_lowv4hi): Ditto.
20595 (vec_interleave_highv4hi): Ditto.
20596 (vec_interleave_lowv2si): Ditto.
20597 (vec_interleave_highv2si): Ditto.
20598
41a1208a
JDA
205992011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20600
20601 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
20602 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
20603 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
20604 (pa_c_mode_for_suffix): New.
20605 (TARGET_EXPAND_BUILTIN): Define.
20606 (TARGET_C_MODE_FOR_SUFFIX): Define.
20607 (pa_builtins): Define.
20608 (pa_init_builtins): Register __float128 type and init new support
20609 builtins.
20610 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
20611 * config/pa/quadlib.c (_U_Qfcopysign): New.
20612
1ecad98e
EB
206132011-01-18 Eric Botcazou <ebotcazou@adacore.com>
20614
20615 PR middle-end/46894
20616 * explow.c (allocate_dynamic_stack_space): Do not assume more than
20617 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
20618 are defined.
20619
d4f2460a
UW
206202011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20621
20622 PR tree-optimization/47179
20623 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
20624 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
20625
4994da65
RG
206262011-01-18 Richard Guenther <rguenther@suse.de>
20627
20628 PR rtl-optimization/47216
20629 * emit-rtl.c: Include tree-flow.h.
20630 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
20631 of replicating it with different semantics.
20632 * Makefile.in (emit-rtl.o): Adjust.
20633
1eb458d1
RR
206342011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20635
38be4072 20636 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 20637 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 20638
e7ef91dc
JJ
206392011-01-18 Jakub Jelinek <jakub@redhat.com>
20640
20641 PR rtl-optimization/47299
20642 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 20643 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
20644 * expmed.c (expand_widening_mult): Don't try to optimize constant
20645 multiplication if op0 has VOIDmode. Convert op1 constant to mode
20646 before using it.
20647
535b7874
RW
206482011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20649
20650 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
20651 spacing after 'e.g.', typos, comma, hyphenation.
20652
27bf36f3
RH
206532011-01-17 Richard Henderson <rth@redhat.com>
20654
8a5b5449
RH
20655 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
20656 (rx_restricted_mem_operand): New.
20657 (rx_shift_operand): Use register_operand.
20658 (rx_source_operand, rx_compare_operand): Likewise.
20659 * config/rx/rx.md (addsi3_flags): New expander.
20660 (adddi3): Rewrite as expander.
20661 (adc_internal, *adc_flags, adddi3_internal): New patterns.
20662 (subsi3_flags): New expander.
20663 (subdi3): Rewrite as expander.
20664 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
20665
784f69be
RH
20666 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
20667 (rx_init_builtins): Remove sat builtin.
20668 (rx_expand_builtin): Likewise.
20669 * config/rx/rx.md (ssaddsi3): New.
20670 (*sat): Rename from sat. Represent the CC_REG input.
20671
f033541c
RH
20672 * config/rx/predicates.md (rshift_operator): New.
20673 * config/rx/rx.c (rx_expand_insv): Remove.
20674 * config/rx/rx-protos.h: Update.
20675 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
20676 operand to the canonical position.
20677 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
20678 (*bitclr, *bitclr_in_memory): Similarly.
20679 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
20680 (insv): Retain the zero_extract in the expansion.
20681
34fee389
RH
20682 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
20683 (bswaphi2, bitinvert, revw): Likewise.
20684
265c835f
RH
20685 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
20686 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
20687 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
20688 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
20689 (bitset, bitset_in_memory): Likewise.
20690 (bitinvert, bitinvert_in_memory): Likewise.
20691 (bitclr, bitclr_in_memory): Likewise.
20692 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
20693 (rx_strend, rx_cmpstrn): Likewise.
20694 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
20695 (bitop peep2 patterns): Remove.
20696
b4d83be3
RH
20697 * config/rx/rx.c (rx_match_ccmode): New.
20698 * config/rx/rx-protos.h: Update.
20699 * config/rx/rx.md (abssi2): Clobber, don't set flags.
20700 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
20701 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
20702 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
20703 (fix_truncsfsi2, floatsisf2): Likewise.
20704 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
20705 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
20706 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
20707 (*subsi3_flags, *xorsi3_flags): New.
20708
d0acb939
RH
20709 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
20710
c06fc3d9
RH
20711 * config/rx/rx.c (rx_print_operand): Remove workaround for
20712 unsplit comparison operations.
20713
2882702b
RH
20714 * config/rx/rx.md (movsicc): Split after reload.
20715 (*movsicc): Merge *movsieq and *movsine via match_operator.
20716 (*stcc): New pattern.
20717
6f7310f2
RH
20718 * config/rx/rx.c (rx_float_compare_mode): Remove.
20719 * config/rx/rx.h (rx_float_compare_mode): Remove.
20720 * config/rx/rx.md (cstoresi4): Split after reload.
20721 (*sccc): New pattern.
20722
e963cb1a
RH
20723 * config/rx/predicates.md (label_ref_operand): New.
20724 (rx_z_comparison_operator): New.
20725 (rx_zs_comparison_operator): New.
20726 (rx_fp_comparison_operator): New.
20727 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
20728 Validate that the flags are set properly for the comparison.
20729 (rx_gen_cond_branch_template): Remove.
20730 (rx_cc_modes_compatible): Remove.
20731 (mode_from_flags): New.
20732 (flags_from_code): Rename from flags_needed_for_conditional.
20733 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
20734 (rx_select_cc_mode): Likewise.
20735 (rx_split_fp_compare): New.
20736 (rx_split_cbranch): New.
20737 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
20738 (*cbranchsi4): Use match_operator and rx_split_cbranch.
20739 (*cbranchsf4): Similarly.
20740 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
20741 match_operator and rx_split_cbranch.
20742 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
20743 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
20744 (*cmpsi): Rename from cmpsi.
20745 (*tstsi): Rename from tstsi.
20746 (*cmpsf): Rename from cmpsf; use CC_Fmode.
20747 (*conditional_branch): Rename from conditional_branch.
20748 (*reveresed_conditional_branch): Remove.
20749 (b<code>): Remove expander.
20750 * config/rx/rx-protos.h: Update.
20751
af530bb4
RH
20752 * config/rx/rx.c (rx_compare_redundant): Remove.
20753 * config/rx/rx.md (cmpsi): Don't use it.
20754 * config/rx/rx-protos.h: Update.
20755
27bf36f3
RH
20756 * config/rx/rx-modes.def (CC_F): New mode.
20757 * config/rx/rx.c (rx_select_cc_mode): New.
20758 * config/rx/rx.h (SELECT_CC_MODE): Use it.
20759 * config/rx/rx-protos.h: Update.
20760
d7fde127
RH
207612011-01-17 Richard Henderson <rth@redhat.com>
20762
20763 * except.c (dump_eh_tree): Fix stray ; after for statement.
20764
6ff38230
RG
207652011-01-17 Richard Guenther <rguenther@suse.de>
20766
20767 PR tree-optimization/47313
20768 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
20769 handling before copying the body. Properly deal with
20770 by-reference result in SSA form.
20771
114ce554
ILT
207722011-01-17 Ian Lance Taylor <iant@google.com>
20773
bf5cd92b 20774 PR target/47219
114ce554
ILT
20775 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
20776 (struct_value_alias_set): Don't define.
20777 (sparc_option_override): Don't set sparc_sr_alias_set and
20778 struct_value_alias_set.
20779 (save_or_restore_regs): Use gen_frame_mem rather than calling
20780 set_mem_alias_set.
20781 (sparc_struct_value_rtx): Likewise.
20782
98c6d93c
L
207832011-01-17 H.J. Lu <hongjiu.lu@intel.com>
20784
20785 PR target/47318
7a81008b 20786 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
20787 (_mm_maskstore_pd): Likewise.
20788 (_mm_maskload_ps): Likewise.
20789 (_mm_maskstore_ps): Likewise.
20790 (_mm256_maskload_pd): Change mask to __m256i.
20791 (_mm256_maskstore_pd): Likewise.
20792 (_mm256_maskload_ps): Likewise.
20793 (_mm256_maskstore_ps): Likewise.
20794
20795 * config/i386/i386-builtin-types.def: Updated.
20796 (ix86_expand_special_args_builtin): Likewise.
20797
20798 * config/i386/i386.c (bdesc_special_args): Update
20799 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
20800 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
20801 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
20802 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
20803
20804 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
20805 Use <avxpermvecmode> on mask register.
20806 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
20807
b9361af2 208082011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
20809 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20810 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
20811
20812 PR target/46655
20813 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
20814 if <= USHRT_MAX in 32-bit mode.
20815
b7ae9eb5
RW
208162011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20817
20818 * doc/install.texi (Configuration, Specific): Wrap long
20819 lines in examples. Allow line wrapping in long options
20820 and URLs where beneficial for PDF output.
20821
4377fad9
RS
208222011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
20823
20824 * config/mips/mips.c (mips_classify_symbol): Don't return
20825 SYMBOL_PC_RELATIVE for nonlocal labels.
20826
55959ffa 208272011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 20828
55959ffa
EB
20829 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
20830
208312011-01-15 Jan Hubicka <jh@suse.cz>
20832
20833 PR tree-optimization/47276
be46831f
JH
20834 * ipa.c (function_and_variable_visibility): Do not try to mark alias
20835 declarations as needed.
20836
05842ff5
MJ
208372011-01-15 Martin Jambor <mjambor@suse.cz>
20838
20839 * common.opt (fdevirtualize): New flag.
20840 * doc/invoke.texi (Option Summary): Document it.
20841 * opts.c (default_options_table): Add devirtualize flag.
20842 * ipa-prop.c (detect_type_change): Return immediately if
20843 devirtualize flag is not set.
20844 (detect_type_change_ssa): Likewise.
20845 (compute_known_type_jump_func): Likewise.
20846 (ipa_analyze_virtual_call_uses): Likewise.
20847
f65cf2b7
MJ
208482011-01-14 Martin Jambor <mjambor@suse.cz>
20849
20850 PR tree-optimization/45934
20851 PR tree-optimization/46302
20852 * ipa-prop.c (type_change_info): New type.
20853 (stmt_may_be_vtbl_ptr_store): New function.
20854 (check_stmt_for_type_change): Likewise.
20855 (detect_type_change): Likewise.
20856 (detect_type_change_ssa): Likewise.
20857 (compute_complex_assign_jump_func): Check for dynamic type change.
20858 (compute_complex_ancestor_jump_func): Likewise.
20859 (compute_known_type_jump_func): Likewise.
20860 (compute_scalar_jump_functions): Likewise.
20861 (ipa_analyze_virtual_call_uses): Likewise.
20862 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
20863
eb5bb0fd
JM
208642011-01-14 Joseph Myers <joseph@codesourcery.com>
20865
20866 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
20867 * config/i386/i386.opt (msse5): New Alias.
20868
f2060fbe
JM
208692011-01-14 Joseph Myers <joseph@codesourcery.com>
20870
20871 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20872 * config/sparc/linux64.h (CC1_SPEC): Likewise.
20873 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20874 * config/sparc/sparc.h (CC1_SPEC): Likewise.
20875
3a7b4385
JM
208762011-01-14 Joseph Myers <joseph@codesourcery.com>
20877
20878 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
20879 -mcpu options.
20880 * config/sparc/linux64.h (CC1_SPEC): Likewise.
20881 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20882 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
20883 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
20884 Likewise.
20885 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
20886
a7b778f8
JM
208872011-01-14 Joseph Myers <joseph@codesourcery.com>
20888
38be4072 20889 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 20890
a7edae0a
MS
208912011-01-14 Mike Stump <mikestump@comcast.net>
20892
20893 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
20894 * config/fr30/fr30.md: Likweise
20895 (movsi_push): Likewise.
20896 (movsi_pop): Likewise.
20897 (enter_func): Likewise.
20898 * config/moxie/moxie.md (movsi_push): Likewise.
20899 (movsi_pop): Likewise.
20900
cbabf03f
JM
209012011-01-14 Joseph Myers <joseph@codesourcery.com>
20902
20903 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
20904 %{no_archive} %{exact_version}.
20905 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
20906 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
20907 %{no_archive} %{exact_version}.
20908 * config/mips/openbsd.h (LINK_SPEC): Likewise.
20909 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
20910 * config/mips/vxworks.h: Likewise.
20911
438da41a
JM
209122011-01-14 Joseph Myers <joseph@codesourcery.com>
20913
38be4072 20914 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 20915
da290a42
JM
209162011-01-14 Joseph Myers <joseph@codesourcery.com>
20917
20918 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
20919 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
20920
8989d00e
JM
209212011-01-14 Joseph Myers <joseph@codesourcery.com>
20922
20923 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
20924 -nodefaultlib.
20925
a3010a69
JM
209262011-01-14 Joseph Myers <joseph@codesourcery.com>
20927
20928 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
20929 for mcpu not cpu.
20930 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
20931 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
20932 not cpu.
20933 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
20934 Don't handle -shlib.
20935
e7f2f537
JM
209362011-01-14 Joseph Myers <joseph@codesourcery.com>
20937
20938 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
20939 (CC1_SPEC): Don't handle -profile.
20940
34830bfd
JM
209412011-01-14 Joseph Myers <joseph@codesourcery.com>
20942
20943 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
20944 * config/mips/mips.h (CC1_SPEC): Likewise.
20945
b2d36e74
JM
209462011-01-14 Joseph Myers <joseph@codesourcery.com>
20947
20948 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
20949 * config/mips/mips.h (CC1_SPEC): Likewise.
20950
dabadc52
JM
209512011-01-14 Joseph Myers <joseph@codesourcery.com>
20952
20953 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
20954 * config/m32r/linux.h (LINK_SPEC): Likewise.
20955 * config/mips/linux.h (LINK_SPEC): Likewise.
20956 * config/mips/linux64.h (LINK_SPEC): Likewise.
20957 * config/sparc/linux.h (LINK_SPEC): Likewise.
20958 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20959 LINK_SPEC): Likewise.
20960 * config/xtensa/linux.h (LINK_SPEC): Likewise.
20961
43ee6785
JM
209622011-01-14 Joseph Myers <joseph@codesourcery.com>
20963
20964 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
20965 %{version:-v}.
20966 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
20967
45e79dfd
JM
209682011-01-14 Joseph Myers <joseph@codesourcery.com>
20969
20970 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
20971 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20972
37e9e71d
JM
209732011-01-14 Joseph Myers <joseph@codesourcery.com>
20974
20975 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
20976
bb127cd8
RO
209772011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20978
20979 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
20980 supports -Bstatic/-Bdynamic.
20981 * configure: Regenerate.
20982
89a012ea 209832011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 20984 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
20985
20986 PR target/46037
20987 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
20988 when checking debug_info_level. Test write_symbols instead of
20989 debug_hooks->var_location when setting flag_var_tracking_uninit.
20990
7352c013
RG
209912011-01-14 Richard Guenther <rguenther@suse.de>
20992
20993 PR tree-optimization/47179
20994 * target.def (ref_may_alias_errno): New target hook.
20995 * targhooks.h (default_ref_may_alias_errno): Declare.
20996 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
20997 (default_ref_may_alias_errno): New function.
20998 * target.h (struct ao_ref_s): Declare.
20999 * tree-ssa-alias.c: Include target.h.
21000 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
21001 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
21002 (targhooks.o): Likewise.
21003 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
21004 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
21005
9a6c9288
RG
210062011-01-14 Richard Guenther <rguenther@suse.de>
21007
21008 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
21009
0fdb0d27
RG
210102011-01-14 Richard Guenther <rguenther@suse.de>
21011
21012 PR tree-optimization/47280
21013 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
21014 return CFG changes.
21015 (tree_ssa_forward_propagate_single_use_vars): Deal with
21016 CFG changes from associate_plusminus.
21017
8f66db3b
RG
210182011-01-14 Richard Guenther <rguenther@suse.de>
21019
21020 PR middle-end/47281
21021 Revert
21022 2011-01-11 Richard Guenther <rguenther@suse.de>
21023
280d9630
EB
21024 PR tree-optimization/46076
21025 * tree-ssa.c (useless_type_conversion_p): Conversions from
21026 unprototyped to empty argument list function types are useless.
8f66db3b 21027
6c0c92e6
RG
210282011-01-14 Richard Guenther <rguenther@suse.de>
21029
21030 PR tree-optimization/47286
280d9630 21031 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 21032
db09f943
MJ
210332011-01-14 Martin Jambor <mjambor@suse.cz>
21034
21035 PR middle-end/46823
21036 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
21037
dde8a3a4
AS
210382011-01-13 Anatoly Sokolov <aesok@post.ru>
21039
21040 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
21041 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21042 * config/xtensa/xtensa.c (xtensa_libcall_value,
21043 xtensa_function_value_regno_p): New functions.
21044 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
21045
a2b63a20
KT
210462011-01-13 Kai Tietz <kai.tietz@onevision.com>
21047
21048 PR c++/47213
21049 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
21050 PE specific hook.
21051 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
21052 New function prototype.
21053 * config/i386/winnt.c (i386_pe_assemble_visibility):
21054 Warn only if attribute was specified by user.
21055
b41f0b34
MM
210562011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
21057
21058 PR target/47251
21059 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
21060 floating point.
21061 (floatunsdidf2_fcfidu): Ditto.
21062
3f3c098d
AK
210632011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21064
21065 * config/s390/s390.c (print_operand_address): Replace 'error' with
21066 'output_operand_lossage'.
21067 (print_operand): Likewise.
21068
29fa95ed
JL
210692011-01-13 Jeff Law <law@redhat.com>
21070
280d9630 21071 PR rtl-optimization/39077
29fa95ed
JL
21072 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
21073 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
21074 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
21075 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
21076 * gcse.c (prune_insertions_deletions): New function.
21077 (compute_pre_data): Use it.
21078
71d12276
DS
210792011-01-13 Dodji Seketeli <dodji@redhat.com>
21080
21081 PR debug/PR46973
21082 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
21083 static function.
61052244 21084 (prune_unused_types_mark): Use it.
71d12276 21085
9b0f04e7
AB
210862011-01-13 Andrey Belevantsev <abel@ispras.ru>
21087
21088 PR rtl-optimization/45352
1c3ba85b 21089 * sel-sched.c: Update copyright years.
9b0f04e7 21090 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 21091 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 21092
d6a3e264
RH
210932011-01-12 Richard Henderson <rth@redhat.com>
21094
a49b692a
RH
21095 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
21096 (TARGET_MD_ASM_CLOBBERS): New.
21097
126b1483
RH
21098 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
21099 (TARGET_DELEGITIMIZE_ADDRESS): New.
21100
f3d9d2e0
RH
21101 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
21102 (clzsi2, *bsch): New patterns.
21103
d84760c9
RH
21104 * config/mn10300/mn10300.md (INT): New mode iterator.
21105 (*mov<INT>_clr): New pattern, and peep2 to generate it.
21106
ec815d65
RH
21107 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
21108 flag_split_wide_types.
21109
d6a3e264
RH
21110 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
21111 (mn10300_trampoline_init): Rewrite without a template, an immediate
21112 load and a direct branch.
21113 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
21114
0f8ab434
AS
211152011-01-12 Anatoly Sokolov <aesok@post.ru>
21116
21117 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
21118 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
21119 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
21120 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
21121
d8a24b65
KT
211222011-01-12 Kai Tietz <kai.tietz@onevision.com>
21123
21124 PR debug/47209
21125 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
21126 of type.
21127
56e22cab
JH
211282011-01-12 Jan Hubicka <jh@suse.cz>
21129
21130 PR driver/47244
21131 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
21132 (PLUGIN_COND_CLOSE): New macro.
21133 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
21134
4b18b3c2
RG
211352011-01-12 Richard Guenther <rguenther@suse.de>
21136
21137 PR lto/47259
21138 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
21139 register variables in a MEM_REF.
21140
8e38461c
JM
211412011-01-12 Joseph Myers <joseph@codesourcery.com>
21142
21143 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
21144 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
21145 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
21146 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
21147 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
21148 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
21149 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
21150 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
21151 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
21152 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
21153 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
21154 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
21155 * config/gnu-user.h: New. Copied from linux.h.
21156 (LINUX_TARGET_STARTFILE_SPEC): Rename to
21157 GNU_USER_TARGET_STARTFILE_SPEC.
21158 (LINUX_TARGET_ENDFILE_SPEC): Rename to
21159 GNU_USER_TARGET_ENDFILE_SPEC.
21160 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
21161 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
21162 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
21163 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
21164 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
21165 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
21166 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
21167 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
21168 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
21169 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
21170 * config/arm/linux-eabi.h (CC1_SPEC): Use
21171 GNU_USER_TARGET_CC1_SPEC.
21172 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
21173 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
21174 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
21175 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
21176 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
21177 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
21178 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
21179 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
21180
a570fc16
RG
211812011-01-12 Richard Guenther <rguenther@suse.de>
21182
21183 PR other/46946
21184 * doc/invoke.texi (ffast-math): Document it is turned on
21185 with -Ofast.
21186
b0223c3e
JH
211872011-01-12 Jan Hubicka <jh@suse.cz>
21188
21189 PR tree-optimization/47233
ca1e00b3
EB
21190 * opts.c (common_handle_option): Disable ipa-reference with profile
21191 feedback.
b0223c3e 21192
1c3ba85b 211932011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
21194
21195 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
21196 error message.
21197
d853ee42
NP
211982011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
21199
21200 * c-parser.c (c_lex_one_token): Updated and reindented some
21201 comments. No changes in code.
21202
4053a5a0
ILT
212032011-01-11 Ian Lance Taylor <iant@google.com>
21204
21205 * godump.c (go_output_var): Don't output the variable if there is
21206 already a type with the same name.
21207
fa3e04d2
ILT
212082011-01-11 Ian Lance Taylor <iant@google.com>
21209
21210 * godump.c (go_format_type): Don't generate float80.
21211
885fe07c
RH
212122011-01-11 Richard Henderson <rth@redhat.com>
21213
72d6e3c5
RH
21214 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
21215 declaration. Rewrite for both speed and size.
21216 (mn10300_address_cost_1): Remove.
21217 (mn10300_register_move_cost): New.
21218 (mn10300_memory_move_cost): New.
21219 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
21220 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
21221 extensions, shifts, BSWAP, CLZ.
21222 (mn10300_wide_const_load_uses_clr): Remove.
21223 (TARGET_REGISTER_MOVE_COST): New.
21224 (TARGET_MEMORY_MOVE_COST): New.
21225 * config/mn10300/mn10300-protos.h: Update.
21226 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
21227
df37c023
RH
21228 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
21229 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
21230 * config/mn10300/mn10300-protos.h: Update.
21231 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
21232 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
21233 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
21234 (*test_int_bitfield, *test_byte_bitfield): Remove.
21235 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 21236 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 21237
85a337b5
RH
21238 * config/mn10300/constraints.md ("c"): Rename from "A".
21239 ("A", "D"): New constraint letters.
21240 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
21241 (fmssf4, fnmasf4, fnmssf4): Likewise.
21242
a5c727e3
RH
21243 * config/mn10300/mn10300.md (isa): New attribute.
21244 (enabled): New attribute.
21245
0d9e23f4
RH
21246 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
21247 (abssf2, negsf2): Define only for hardware fp.
21248 (sqrtsf2): Reformat.
21249 (addsf3, subsf3, mulsf3): Merge expander and insn.
21250
c157b3f0
RH
21251 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
21252 (DEBUGGER_AUTO_OFFSET): Remove.
21253 (DEBUGGER_ARG_OFFSET): Remove.
21254
cc909bba
RH
21255 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
21256 Emit register stores with the same offsets as the hardware.
21257 (mn10300_store_multiple_operation): Don't check that the register
21258 save offsets are monotonic.
21259 * config/mn10300/mn10300-protos.h: Update.
21260
e3b5c2f3
RH
21261 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
21262
885fe07c
RH
21263 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
21264 in terms of the value on the stack, not the MDR register.
21265
6e701822
JH
212662011-01-11 Jan Hubicka <jh@suse.cz>
21267
21268 PR lto/45721
21269 PR lto/45375
21270 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
21271 (symbol_alias_set_destroy, symbol_alias_set_contains,
21272 propagate_aliases_backward): Declare.
21273 * lto-streamer-out.c (struct sets): New sturcture.
21274 (trivally_defined_alias): New function.
21275 (output_alias_pair_p): Rewrite.
21276 (output_unreferenced_globals): Fix output of alias pairs.
21277 (produce_symtab): Likewise.
21278 * ipa.c (function_and_variable_visibility): Set weak alias destination
21279 as needed in lto.
21280 * varasm.c (symbol_alias_set_t): Remove.
21281 (symbol_alias_set_destroy): Export.
21282 (propagate_aliases_forward, propagate_aliases_backward): New functions
21283 based on ...
21284 (compute_visible_aliases): ... this one; remove.
21285 (trivially_visible_alias): New
21286 (trivially_defined_alias): New.
21287 (remove_unreachable_alias_pairs): Rewrite.
21288 (finish_aliases_1): Reorganize code checking if alias is defined.
21289 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
21290 in LTO mode.
21291
1b248907
RG
212922011-01-11 Richard Guenther <rguenther@suse.de>
21293
21294 PR tree-optimization/46076
21295 * tree-ssa.c (useless_type_conversion_p): Conversions from
21296 unprototyped to empty argument list function types are useless.
21297
b1923f0a
RG
212982011-01-11 Richard Guenther <rguenther@suse.de>
21299
21300 PR middle-end/45235
21301 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
21302 volatile MEMs as MEM_READONLY_P.
21303
e98965af
RG
213042011-01-11 Richard Guenther <rguenther@suse.de>
21305
21306 PR tree-optimization/47239
21307 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
21308
9f9ca914
JL
213092011-01-11 Jeff Law <law@redhat.com>
21310
1ee3ea05 21311 PR tree-optimization/47086
9f9ca914
JL
21312 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
21313 IVs from statements that might throw.
21314
345fdcb7
JH
213152011-01-10 Jan Hubicka <jh@suse.cz>
21316
21317 PR lto/45375
21318 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
21319
c459c97b
JH
213202011-01-10 Jan Hubicka <jh@suse.cz>
21321
21322 PR lto/45375
21323 * profile.c (read_profile_edge_counts): Ignore profile inconistency
21324 when correcting profile.
21325
06c9eb51
JH
213262011-01-10 Jan Hubicka <jh@suse.cz>
21327
21328 PR lto/46083
21329 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
21330 DECL_FINI_PRIORITY.
21331 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
21332 Restore DECL_FINI_PRIORITY.
21333
ae9fd815
RW
213342011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21335
21336 * doc/gimple.texi: Fix quoting of multi-word return values in
21337 @deftypefn statements. Ensure presence of return value. Wrap
21338 overlong @deftypefn lines.
21339 (is_gimple_operand, is_gimple_min_invariant_address): Remove
21340 descriptions of removed functions.
21341 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
21342 of multi-word return value in @deftypefn statement.
21343
0ecb4a7c
RW
213442011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21345
21346 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
21347 (Conditional Expressions, Logical Operators)
21348 (Statement and operand traversals): Do not indent smallexample
21349 code. Fix duplicate function argument in example.
21350
2e5e346d
JL
213512011-01-10 Jeff Law <law@redhat.com>
21352
1ee3ea05 21353 PR tree-optimization/47141
2e5e346d
JL
21354 * ipa-split.c (split_function): Handle case where we are
21355 returning a value and the return block has a virtual operand phi.
21356
cf9712cc
JH
213572011-01-10 Jan Hubicka <jh@suse.cz>
21358
1c3ba85b 21359 PR tree-optimization/47234
cf9712cc
JH
21360 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
21361 (pass_feedback_split_functions): Declare.
21362 * passes.c (init_optimization_passes): Add ipa-split as subpass of
21363 tree-profile.
21364 * ipa-split.c (gate_split_functions): Update comments; disable
21365 split-functions for profile_arc_flag and branch_probabilities.
21366 (gate_feedback_split_functions): New function.
21367 (execute_feedback_split_functions): New function.
21368 (pass_feedback_split_functions): New global var.
21369
94cd932c
L
213702011-01-10 H.J. Lu <hongjiu.lu@intel.com>
21371
21372 PR lto/46760
21373 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
21374 calling gimple_call_set_cannot_inline.
21375
fbbfcaf1
IS
213762011-01-10 Iain Sandoe <iains@gcc.gnu.org>
21377
21378 * config/darwin-sections.def: Remove unused section.
21379
d06865bf
DK
213802011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
21381
21382 PR c++/47218
21383 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
21384
96bbfbac
NP
213852011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
21386
21387 PR objc/47232
21388 * c-parser.c (c_parser_declaration_or_fndef): Improved
21389 error message.
21390
1ba6516f
KT
213912011-01-09 Kai Tietz <kai.tietz@onevision.com>
21392
21393 * config/i386/winnt.c (i386_pe_start_function): Make sure
21394 to switch back to function's section.
21395
0c5d770e
IS
213962011-01-09 Iain Sandoe <iains@gcc.gnu.org>
21397
21398 PR gcc/46902
21399 PR testsuite/46912
21400 * plugin.c: Move include of dlfcn.h from here...
21401 * system.h: ... to here.
21402
214032011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
21404
21405 * doc/cpp.texi (C++ Named Operators): Fix markup for header
21406 file name.
21407 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
21408 two extra empty pages in PDF output.
21409
046608a3
NP
214102011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
21411
21412 PR objc/47078
21413 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
21414 for error recovery purposes behave as if it was not specified so
21415 that the default type is usd.
21416
8cb114b9
JH
214172011-01-07 Jan Hubicka <jh@suse.cz>
21418
21419 PR tree-optmization/46469
21420 * ipa.c (function_and_variable_visibility): Clear needed flags on
21421 nodes with external decls; handle weakrefs merging correctly.
21422
b294a75e
JM
214232011-01-07 Joseph Myers <joseph@codesourcery.com>
21424
21425 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
21426 not false.
21427
96bdf9b4
JH
214282011-01-07 Jan Hubicka <jh@suse.cz>
21429
f60c2554 21430 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
21431 and no longer claim that gold is required for linker plugin.
21432 * configure: Regenerate.
21433 * gcc.c (PLUGIN_COND): New macro.
21434 (LINK_COMMAND_SPEC): Use it.
21435 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
21436 * config.in (HAVE_LTO_PLUGIN): New.
21437 * configure.ac (--with-lto-plugin): New parameter; autodetect
21438 HAVE_LTO_PLUGIN.
21439
17afc0fe
JH
214402011-01-07 Jan Hubicka <jh@suse.cz>
21441
21442 PR tree-optimization/46367
21443 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
21444 when we can update original.
21445 (cgraph_mark_inline_edge): Sanity check.
21446 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
21447
d4c48c0f
UW
214482011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21449
21450 * config/spu/spu.h (ASM_COMMENT_START): Define.
21451
96f5b137
L
214522011-01-07 H.J. Lu <hongjiu.lu@intel.com>
21453
21454 PR driver/42445
21455 * gcc.c (%>S): New.
21456 (SWITCH_KEEP_FOR_GCC): Likewise.
21457 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
21458 (do_spec_1): Handle "%>".
21459
21460 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
21461
c6a8f6de
JJ
214622011-01-07 Jakub Jelinek <jakub@redhat.com>
21463
c21bbd7a
JJ
21464 PR target/47201
21465 * config/i386/i386.c (ix86_delegitimize_address): If
21466 simplify_gen_subreg fails, return orig_x.
21467
c6a8f6de
JJ
21468 PR bootstrap/47187
21469 * value-prof.c (gimple_stringop_fixed_value): Handle
21470 lhs of the call properly.
21471
fe95fbf9
JH
214722011-01-07 Jan Hubicka <jh@suse.cz>
21473
21474 PR lto/45375
21475 * lto-opt.c (lto_reissue_options): Set flag_shlib.
21476
14d11d40
IS
214772011-01-07 Iain Sandoe <iains@gcc.gnu.org>
21478
72e961c8
EB
21479 * target.def (function_switched_text_sections): New hook.
21480 * doc/tm.texi: Regenerated.
21481 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 21482 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
21483 (final_scan_insn): Call function_switched_text_sections when a
21484 mid-function section change occurs.
14d11d40 21485 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
21486 * config/darwin-protos.h (darwin_function_switched_text_sections):
21487 Likewise.
14d11d40 21488 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 21489 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 21490
0b764288
IS
214912011-01-07 Iain Sandoe <iains@gcc.gnu.org>
21492
21493 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
21494 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
21495 the secondary code fragment when outputting for DWARF == 2.
21496
2ac6bb04
AS
214972011-01-07 Anatoly Sokolov <aesok@post.ru>
21498
21499 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
21500 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
21501 Remove.
21502 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
21503 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
21504
9f82de11
EB
215052011-01-06 Eric Botcazou <ebotcazou@adacore.com>
21506
21507 PR debug/46704
280d9630
EB
21508 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
21509 when it is not empty.
9f82de11
EB
21510
215112011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 21512
1ed72abf 21513 Bobcat Enablement
14b52538 21514 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 21515 (case ${target}): Add btver1.
14b52538 21516 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 21517 -march=native recognize btver1 processors.
14b52538 21518 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 21519 btver1 def_and_undef
14b52538 21520 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
21521 btver1 cost table.
21522 (m_BTVER1): New definition.
21523 (m_AMD_MULTIPLE): Includes m_BTVER1.
21524 (initial_ix86_tune_features): Add btver1 tune.
21525 (processor_target_table): Add btver1 entry.
21526 (static const char *const cpu_names): Add btver1 entry.
21527 (software_prefetching_beneficial_p): Add btver1.
21528 (ix86_option_override_internal): Add btver1 instruction sets.
21529 (ix86_issue_rate): Add btver1.
21530 (ix86_adjust_cost): Add btver1.
14b52538 21531 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
21532 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
21533 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
21534 * config/i386/i386.md (define_attr "cpu"): Add btver1.
21535
e1a973d8
RO
215362011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21537
21538 PR target/43309
21539 * config/i386/i386.c (legitimize_tls_address)
21540 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
21541 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
21542 (tls_initial_exec_64_sun): New pattern.
21543
c73f67c5
GP
215442011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
21545
21546 * doc/invoke.texi (Overall Options): Improve wording and markup
21547 of the description of -wrapper.
21548
bc4c6f9c
JM
215492011-01-06 Joseph Myers <joseph@codesourcery.com>
21550
21551 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
21552 rdynamic, threads): New Driver options.
21553
adb75db0
RO
215542011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21555
21556 PR target/38118
21557 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
21558 if coming from .tdata.
21559 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
21560
402c1cb4
JH
215612011-01-06 Jan Hubicka <jh@suse.cz>
21562
21563 PR lto/47188
21564 * collect2.c (main): Do not enable LTOmode when plugin is active.
21565
a4da6485
RO
215662011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21567
21568 PR other/45915
21569 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
21570 --version output if supported.
21571 * configure: Regenerate.
21572
028dbdf4
JM
215732011-01-06 Joseph Myers <joseph@codesourcery.com>
21574
21575 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
21576 Driver options.
21577
dfe776dd
JJ
215782011-01-06 Jakub Jelinek <jakub@redhat.com>
21579
21580 PR c/47150
21581 * c-convert.c (convert): When converting a complex expression
21582 other than COMPLEX_EXPR to a different complex type, ensure
21583 c_save_expr is called instead of save_expr, unless in_late_binary_op.
21584 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
21585 when converting COMPLEX_TYPE.
21586
210dedfe
IR
215872011-01-06 Ira Rosen <irar@il.ibm.com>
21588
21589 PR tree-optimization/47139
21590 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
21591 only the last reduction value is used outside the loop. Update
21592 documentation.
21593
cd33a412
JM
215942011-01-05 Joseph Myers <joseph@codesourcery.com>
21595
21596 * config/rtems.opt: New.
21597 * config.gcc (*-*-rtems*): Use rtems.opt.
21598
819edd94
CF
215992011-01-05 Changpeng Fang <changpeng.fang@amd.com>
21600
21601 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
21602 processors do not support 3DNow instructions.
21603
dc242c4a
UW
216042011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21605
21606 * config/spu/spu.c (spu_option_override): Set parameter
21607 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
21608
be286227
JH
216092011-01-05 Jan Hubicka <jh@suse.cz>
21610
21611 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
21612 at the command line.
21613
644e637f
MJ
216142011-01-05 Martin Jambor <mjambor@suse.cz>
21615
21616 PR lto/47162
21617 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
21618 deltas on streamed outgoing edges.
21619 (output_node_opt_summary): Output info for outgoing edges only when
21620 the node is in new parameter set.
21621 (output_cgraph_opt_summary): New parameter set, passed to the two
21622 aforementioned functions. Update its forward declaration and its
21623 callee too.
21624
7bd11157
TT
216252011-01-05 Tom Tromey <tromey@redhat.com>
21626
21627 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
21628 operator to c_finish_omp_atomic.
21629 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
21630 (build_unary_op): Update.
21631 (build_modify_expr): Update.
21632 (build_asm_expr): Update.
21633
f626b979
UW
216342011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21635
21636 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
21637 newly inserted insns.
21638 (pad_bb): Likewise.
21639 (spu_emit_branch_hint): Likewise.
21640 (insert_hbrp_for_ilb_runout): Likewise.
21641 (spu_machine_dependent_reorg): Call df_finish_pass after
21642 schedule_insns returns.
21643
4c825c02
UW
216442011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21645
21646 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
21647
5e9fba51
EB
216482011-01-05 Eric Botcazou <ebotcazou@adacore.com>
21649
21650 PR tree-optimization/47005
21651 * tree-sra.c (struct access): Add 'non_addressable' bit.
21652 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
21653 (decide_one_param_reduction): Return 0 if the parameter is passed by
21654 reference and one of the accesses in the group is non_addressable.
21655
3ebb5ca6
EB
216562011-01-04 Eric Botcazou <ebotcazou@adacore.com>
21657
21658 PR tree-optimization/47056
21659 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
21660 (mark_load): Likewise. Handle FUNCTION_DECL specially.
21661 (mark_store): Likewise. Pass STMT to ipa_record_reference.
21662
d5d4d14e
EB
216632011-01-04 Eric Botcazou <ebotcazou@adacore.com>
21664
21665 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
21666 initializer. Skip view conversions from aggregate types.
21667
d996ef70
KT
216682011-01-04 Kai Tietz <kai.tietz@onevision.com>
21669
21670 PR bootstrap/47055
21671 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
21672
509d65dd 216732011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
21674
21675 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
21676 obvious typo.
21677
55c623b5
UW
216782011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21679
21680 * function.c (thread_prologue_and_epilogue_insns): Do not crash
21681 on empty epilogue sequences.
21682
b98d6b35
JM
216832011-01-04 Joseph Myers <joseph@codesourcery.com>
21684
21685 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
21686 non-static): New Driver options.
21687
a0d43bac
JZ
216882011-01-04 Jie Zhang <jie@codesourcery.com>
21689
21690 PR driver/47137
21691 * gcc.c (default_compilers[]): Set combinable field to 0
21692 for all assembly languages.
21693
2b18eb32
MX
216942011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
21695
21696 * config/mips/loongson3a.md: New file.
21697 * config/mips/mips.md: Include loongson3a.md.
21698 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
21699 TUNE_LOONGSON_3A.
21700
42a48c4f
EB
217012011-01-03 Eric Botcazou <ebotcazou@adacore.com>
21702
21703 PR middle-end/47017
21704 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
21705 instead of convert_memory_address_addr_space on the base expression.
21706
9c1732c4
UW
217072011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21708
21709 * config/spu/spu.c (spu_option_override): Update error text
21710 for bad -march= / -mtune= values.
21711
aa474365
UW
217122011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21713
21714 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
21715 if branch-hint optimization will be performed.
21716
9766135b
JJ
217172011-01-03 Jakub Jelinek <jakub@redhat.com>
21718
371556ee
JJ
21719 PR tree-optimization/47148
21720 * ipa-split.c (split_function): Convert arguments to
21721 DECL_ARG_TYPE if possible.
21722
1ac12fa2
JJ
21723 PR tree-optimization/47155
21724 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
21725 when computing uns.
21726
9766135b
JJ
21727 PR rtl-optimization/47157
21728 * combine.c (try_combine): If undobuf.other_insn becomes
21729 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
21730 and set *new_direct_jump_p too.
21731
f4a2e571
SP
217322011-01-03 Sebastian Pop <sebastian.pop@amd.com>
21733
21734 PR tree-optimization/47021
21735 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
21736
9f8e43c0
JJ
217372011-01-03 Jakub Jelinek <jakub@redhat.com>
21738
21739 * gcc.c (process_command): Update copyright notice dates.
21740 * gcov.c (print_version): Likewise.
21741 * gcov-dump.c (print_version): Likewise.
21742 * mips-tfile.c (main): Likewise.
21743 * mips-tdump.c (main): Likewise.
21744
1a2e38f3
MJ
217452011-01-03 Martin Jambor <mjambor@suse.cz>
21746
21747 PR tree-optimization/46801
21748 * tree-sra.c (type_internals_preclude_sra_p): Check whether
21749 aggregate fields start at byte boundary instead of the bit-field flag.
21750
56b721c5
L
217512011-01-03 H.J. Lu <hongjiu.lu@intel.com>
21752
21753 PR driver/47137
21754 * gcc.c (main): Revert revision 168407.
21755
839d549b
MJ
217562011-01-03 Martin Jambor <mjambor@suse.cz>
21757
21758 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
21759
4ce99a20 217602011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
21761
21762 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
21763 vector optab to expand vector/scalar shift, update gimple to vector.
21764
76df0ae6
MJ
217652011-01-03 Martin Jambor <mjambor@suse.cz>
21766
21767 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
21768 a thunk.
21769
ce47fda3
MJ
217702011-01-03 Martin Jambor <mjambor@suse.cz>
21771
21772 PR tree-optimization/46984
21773 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
21774 HOST_WIDE_INT.
21775 (cgraph_create_indirect_edge): Fixed line length.
21776 (cgraph_indirect_call_info): Declare.
21777 (cgraph_make_edge_direct) Update declaration.
21778 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
21779 (cgraph_create_indirect_edge): Use it.
21780 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
21781 callees.
21782 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
21783 the new thunk_delta representation.
21784 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
21785 HOST_WIDE_INT.
21786 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
21787 (ipa_read_indirect_edge_info): Likewise.
21788 * lto-cgraph.c (output_edge_opt_summary): New function.
21789 (output_node_opt_summary): Call it on all outgoing edges.
21790 (input_edge_opt_summary): New function.
21791 (input_node_opt_summary): Call it on all outgoing edges.
21792
1e67fa1f
L
217932011-01-02 H.J. Lu <hongjiu.lu@intel.com>
21794
21795 PR driver/47137
21796 * gcc.c (main): Don't check have_o when settting combine_inputs.
21797
6656b2ac
EB
217982011-01-02 Eric Botcazou <ebotcazou@adacore.com>
21799
21800 * regrename.c: Add general comment describing the pass.
21801 (struct du_head): Remove 'length' field.
21802 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
21803 (regrename_optimize): Do not sort chains. Rework comments, add others.
21804 Force renaming to the preferred class (if any) in the first pass and do
21805 not consider registers that belong to it in the second pass.
21806 (create_new_chain): Do not set 'length' field.
21807 (scan_rtx_reg): Likewise.
21808
bc470c24
JJ
218092011-01-02 Jakub Jelinek <jakub@redhat.com>
21810
4e996296
JJ
21811 PR tree-optimization/47140
21812 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
21813 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
21814 to bit_value_binop.
21815
bc470c24 21816 PR rtl-optimization/47028
6656b2ac
EB
21817 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
21818 parm_birth_insn instead of at the beginning of first bb.
bc470c24 21819
5af62fcd 218202011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
21821
21822 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
21823 Remove the word "see" before "@pxref".
21824 * doc/rtl.texi: Remove the word "see" before "@pxref".
21825
0e20c89f
JH
218262011-01-01 Jan Hubicka <jh@suse.cz>
21827
6656b2ac
EB
21828 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
21829 memory.
0e20c89f 21830
220e83ca
KT
218312011-01-01 Kai Tietz <kai.tietz@onevision.com>
21832
21833 PR target/38662
6656b2ac 21834 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 21835
ad41bd84 21836\f
797103eb 21837Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
21838
21839Copying and distribution of this file, with or without modification,
21840are permitted in any medium without royalty provided the copyright
21841notice and this notice are preserved.