]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
arm-protos.h (offset_ok_for_ldrd_strd): New declaration.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
56289ed2
SD
12012-10-22 Sameera Deshpande <sameera.deshpande@arm.com>
2 Greta Yorsh <Greta.Yorsh@arm.com>
3
4 * config/arm/arm-protos.h (offset_ok_for_ldrd_strd): New
5 declaration.
6 (operands_ok_ldrd_strd): Likewise.
7 * config/arm/arm.c (offset_ok_for_ldrd_strd): New function.
8 (operands_ok_ldrd_strd): Likewise.
9 * config/arm/arm.md (thumb2_ldrd, thumb2_ldrd_base): New patterns.
10 (thumb2_ldrd_base_neg): Likewise.
11 (thumb2_strd, thumb2_strd_base, thumb_strd_base_neg): Likewise.
12 * predicates.md (ldrd_strd_offset_operand): New predicate.
13 * config/arm/constraints.md (Do): New constraint.
14
8df77722
HPN
152012-10-22 Hans-Peter Nilsson <hp@bitrange.com>
16
a271e61c
HPN
17 * config/mmix/mmix.md ("nonlocal_goto_receiver"): Refer to the
18 frame-pointer as an operand.
19 ("*nonlocal_goto_receiver_expanded"): Ditto. Use
20 mmix_output_register_setting instead of naked output_asm_insn for
21 the offset from the frame-pointer to the saved rO.
22 * config/mmix/mmix.c (mmix_output_register_setting): Emit NEGU for
23 values -255..0.
24 * config/mmix/predicates.md ("frame_pointer_operand"): New.
25 * config/mmix/constraints.md ("Yf"): New.
26
8df77722
HPN
27 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
28 expand_builtin_setjmp_receiver.
29 (expand_label): Adjust, call expand_builtin_setjmp_receiver
30 with NULL for the label parameter.
31 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
32 the frame-pointer. Adjust comments.
33 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
34 only if LABEL is non-NULL.
35
cab54dfa
UB
362012-10-21 Uros Bizjak <ubizjak@gmail.com>
37
38 * config/i386/i386-protos.h (memory_address_length): Add new bool
39 argument. Update all uses.
40 * config/i386/i386.c (memory_address_length): If not LEA insn, then
41 add length of addr32 prefix based on mode of base or index register.
42 (ix86_attr_length_address_default) <TYPE_LEA>: Do not handle SImode
43 addresses here. Update call to memory_address_length.
44 (ix86_print_address_operand): Use SImode_address_operand predicate.
45 * config/i386/predicates.md (SImode_address_operand): New.
46 * config/i386/i386.md (lea<mode>): Use SImode_address_operand
47 to calculate "mode" attribute. Use SImode_address_operand predicate
48 instead of open-coding accepted RTX codes.
49
dff1289d
JR
502012-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
51
52 * rtl.def (ADDR_DIFF_VEC): Fix comment typo.
53
a3a720d0
EB
542012-10-21 Eric Botcazou <ebotcazou@adacore.com>
55
56 PR rtl-optimization/44194
57 * calls.c (expand_call): Allow sibling calls in the PARALLEL case.
58
ce86ad58
TB
592012-10-21 Tobias Burnus <burnus@net-b.de>
60
61 PR fortran/54725
62 * Makefile.in (TARGET_SYSTEM_ROOT_DEFINE): New.
63
699ae4b5
CLT
642012-10-21 Chung-Lin Tang <cltang@codesourcery.com>
65
66 * config/xtensa/xtensa.c (xtensa_expand_builtin): Remove unused 'arg'
67 variable.
68
929634d8
EB
692012-10-20 Eric Botcazou <ebotcazou@adacore.com>
70
71 PR rtl-optimization/54315
72 * calls.c (expand_call): Don't deal specifically with BLKmode values
73 returned in naked registers.
74 * expr.h (copy_blkmode_from_reg): Adjust prototype.
cab54dfa
UB
75 * expr.c (copy_blkmode_from_reg): Rename first parameter into
76 TARGET and make it required. Assert that SRCREG hasn't BLKmode.
77 Add a couple of short-circuits for common cases and be prepared
78 for sub-word registers.
929634d8
EB
79 (expand_assignment): Call copy_blkmode_from_reg for BLKmode values
80 returned in naked registers.
81 (store_expr): Likewise.
82 (store_field): Likewise.
83
e598c332
JH
842012-10-20 Jan Hubicka <jh@suse.cz>
85
86 * loop-unroll.c (decide_unroll_constant_iterations): Don't
87 perform unrolling for loops with low iterations bounds or estimates.
88
bcd8d322
JH
892012-10-20 Jan Hubicka <jh@suse.cz>
90
91 * loop-iv.c (iv_number_of_iterations): Record the upper bound
92 only if there are no further conditions on it.
93
4a0ae68e
MLI
942012-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
95
96 PR c/53063
97 PR c/40989
98 * opts.c (finish_options): Remove explicit handling from here.
99
8e383849
JR
1002012-10-20 Joern Rennecke <joern.rennecke@embecosm.com>
101 Richard Sandiford <rdsandiford@googlemail.com>
102
103 * emit-rtl.c (copy_delay_slot_insn): New function.
104 * emit-rtl.h (copy_delay_slot_insn): Declare.
105 * reorg.c: Include "emit-rtl.h".
106 (steal_delay_list_from_target): Use copy_delay_slot_insn.
107 (fill_slots_from_thread, fill_simple_delay_slots): Likewise.
108
f6df08e6
JR
109 * final.c (shorten_branches): When optimizing, start with small
110 length and increase from there, and don't decrease lengths.
111
4d84e22c
JH
1122012-10-19 Jan Hubicka <jh@suse.cz>
113
cab54dfa
UB
114 * builtins.def (BUILT_IN_UNREACHABLE): Make
115 ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST.
4d84e22c
JH
116 * builtin-attrs.def (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
117
ad1a0853
MM
1182012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com>
119 Dominique Dhumieres <dominiq@lps.ens.fr>
120
121 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume
122 OPTION_MASK_STRICT_ALIGN is defined.
123 (MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined,
124 define this to 0 for the 3 ports that use it.
125
126 * config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do
127 check for ports not having -mstrict-align here, move test to
128 rs6000-cpus.def.
129 (MASK_STRICT_ALIGN): Likewise.
130 (rs6000_debug_reg_global): Print out correct target flag words if
131 -mdebug=reg.
132
af89bd04
MP
1332012-10-19 Marek Polacek <polacek@redhat.com>
134
135 PR middle-end/54945
136 * fold-const.c (fold_sign_changed_comparison): Punt if folding
137 pointer/non-pointer comparison.
138
cf5607f8
GY
1392012-10-19 Greta Yorsh <Greta.Yorsh@arm.com>
140
141 * doc/sourcebuild.texi (Effective-Target Keywords): Document
142 new effective target keyword arm_prefer_ldrd_strd.
143
e665269a
RG
1442012-10-19 Richard Guenther <rguenther@suse.de>
145
146 PR tree-optimization/54981
147 * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p):
148 Do not consider debug stmts as uses.
149
dfc2e2ac
RB
1502012-10-19 Richard Biener <rguenther@suse.de>
151
152 PR tree-optimization/54976
153 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
154 Robustify against odd inner_mode inputs.
155
57fc62cb
ZC
1562012-10-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
157
158 PR target/54892
159 * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
160 sure the mode is correct when falling through from above cases.
161
b11f0116
BC
1622012-10-19 Bin Cheng <bin.cheng@arm.com>
163
164 * common.opt (flag_ira_hoist_pressure): New.
165 * doc/invoke.texi (-fira-hoist-pressure): Describe.
166 * ira-costs.c (ira_set_pseudo_classes): New parameter.
167 * ira.h: Update copyright dates.
168 (ira_set_pseudo_classes): Update prototype.
169 * haifa-sched.c (sched_init): Update call.
170 * ira.c (ira): Update call.
171 * regmove.c: Update copyright dates.
172 (regmove_optimize): Update call.
173 * loop-invariant.c: Update copyright dates.
174 (move_loop_invariants): Update call.
175 * gcse.c: (struct bb_data): New structure.
176 (BB_DATA): New macro.
177 (curr_bb, curr_reg_pressure): New static variables.
178 (should_hoist_expr_to_dom): Rename from hoist_expr_reaches_here_p.
179 Change parameter expr_index to expr.
180 New parameters pressure_class, nregs and hoisted_bbs.
181 Use reg pressure to determine the distance expr can be hoisted.
182 (hoist_code): Use reg pressure to direct the hoist process.
183 (get_regno_pressure_class, get_pressure_class_and_nregs)
184 (change_pressure, calculate_bb_reg_pressure): New.
185 (one_code_hoisting_pass): Calculate register pressure. Allocate
186 and free data.
187
8cba9a05
BC
1882012-10-19 Bin Cheng <bin.cheng@arm.com>
189
190 * gcse.c: Update copyright dates.
191 (hoist_expr_reaches_here_p): Change parameter type from char *
192 to sbitmap.
193
05242957
SH
1942012-10-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
195
196 * config.gcc
197 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
198 "arm*-*-rtemseabi*" to "arm*-*-rtems*".
199
38e1b75f
AM
2002012-10-19 Alan Modra <amodra@gmail.com>
201
202 * configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
203 (HAVE_LD_LARGE_TOC): Likewise.
204 * configure: Regenerate.
205
abe6d88d
AM
2062012-10-19 Alan Modra <amodra@gmail.com>
207
208 * config/rs6000/predicates.md (splat_input_operand): Don't call
209 input_operand for MEMs. Instead check for volatile and call
210 memory_address_addr_space_p with modified mode.
211
13299a8e
UB
2122012-10-18 Uros Bizjak <ubizjak@gmail.com>
213
214 * config/i386/i386.md (rdpmc): Remove expander.
215 (rdtsc): Ditto.
216 (rdtscp): Ditto.
217 (rdpmc): Rename from *rdpmc.
218 (rdpmc_rex64): Rename from *rdpmc_rex64.
219 (rdtsc): Rename from *rdtsc.
220 (rdtsc_rex64): Rename from *rdtsc_rex64.
221 (rdtscp): Rename from *rdtscp.
222 (rdtscp_rex64): Rename from *rdtscp_rex64.
223
224 * config/i386/i386.c (struct builtin_description bdesc_special_args)
225 <IX86_BUILTIN_RDTSC>: Use CODE_FOR_NOTHING.
226 <IX86_BUILTIN_RDTSCP>: Ditto.
227 (struct builtin_description bdesc__args) <IX86_BUILTIN_RDPMC>: Ditto.
228 (ix86_expand_builtin) <IX86_BUILTIN_{RDPMC,RDTSC,RDTSCP}>: Handle here.
229
86cf62b8
JBG
2302012-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
231
232 * config/sh/sh.c: Fix comment to silence warning.
233
855828f1
MGD
2342012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
235 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21a11667 236 Sameera Deshpande <sameera.deshpande@arm.com>
855828f1 237
21a11667
JBG
238 * config/arm/cortex-a15-neon.md: New file.
239 * config/arm/cortex-a15.md (cortex_a15_call): Adjust reservation.
240 (cortex_a15_load1): Likewise.
241 (cortex_a15_load3): Likewise.
242 (cortex_a15_store1): Likewise.
243 (cortex_a15_store3): Likewise.
244 (cortex-a15-neon.md): Include.
855828f1 245
1ba24090
SB
2462012-10-18 Segher Boessenkool <segher@kernel.crashing.org>
247
248 * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Add mode.
249 (altivec_vsumsws_nomode): Delete.
250 (reduc_splus_<mode>, reduc_uplus_<mode>): Call gen_altivec_vsumsws
251 instead of gen_altivec_vsumsws_nomode.
13299a8e 252 (altivec_lvlx, altivec_lvlxl, altivec_lvrx, altivec_lvrxl): Add mode.
1ba24090
SB
253 * config/rs6000/rs6000.md (probe_stack): Rename to...
254 (probe_stack_<mode>): ... this. Add mode. Change pattern to
255 use std instead of stw when appropriate.
256 (probe_stack): New expander.
257 (move_from_CR_ov_bit): Add mode.
258 (splitter for compare_plus_ne0_<mode>, splitter for
259 compare_plus_ne0_<mode>_1): Remove constraints.
260 * config/rs6000/sync.md (loadsync): Rename to...
261 (loadsync_<mode>): ... this. Add mode.
262 (atomic_load<mode>): Adjust.
263
1a17bd35
EB
2642012-10-18 Eric Botcazou <ebotcazou@adacore.com>
265
266 * loop-invariant.c: Include target.h.
267 (check_dependency): Return false for an uninitialized argument register
268 that is likely to be spilled.
269 * Makefile.in (loop-invariant.o): Add $(TARGET_H).
270
27a9462d
EB
2712012-10-18 Eric Botcazou <ebotcazou@adacore.com>
272
273 * except.c (sjlj_emit_function_enter): Remove unused variable.
274
c4216388
MGD
2752012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
276 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
277
13299a8e 278 * config/arm/arm.c (neon_builtin_data): Add vfma and vfms builtins.
21a11667
JBG
279 * config/arm/neon-docgen.ml (intrinsic_groups): Add
280 fused-multiply-* groups.
281 * config/neon-gen.ml (print_feature_test_start): New function.
282 (print_feature_test_end): Likewise.
283 (print_variant): Print feature test macros.
284 * config/arm/neon-testgen.ml (emit_prologue): Allow different
285 tests to require different effective targets.
286 (effective_target): New function.
287 (test_intrinsic): Specify correct effective targets.
288 * gcc/config/arm/neon.md (fma<VCVTF:mode>4_intrinsic): New pattern.
289 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
290 (neon_vfma<VCVFT:mode>): New expand.
291 (neon_vfms<VCVFT:mode>): Likewise.
292 * config/neon.ml (opcode): Add Vfma and Vfms.
293 (features): Add Requires_feature.
294 (ops): Add VFMA and VFMS intrinsics.
295 * config/arm/arm_neon.h: Regenerate.
296 * doc/arm-neon-intrinsics.texi: Likewise.
c4216388 297
c61f8c3b
RG
2982012-10-18 Richard Guenther <rguenther@suse.de>
299
300 * lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
301 * lto-streamer-in.c (lto_input_tree): Use it.
302 * lto-streamer-out.c (lto_output_tree): Likewise, for
303 !TREE_OVERFLOW integer constants only.
304 * tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function.
305 (unpack_value_fields): Call it.
306 (streamer_read_integer_cst): Simplify.
307 * tree-streamer-out.c (pack_ts_int_cst_value_fields): New function.
308 (streamer_pack_tree_bitfields): Call it.
309 (streamer_write_integer_cst): Adjust.
310
c4216388 3112012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
595fefee
MGD
312 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
313
21a11667
JBG
314 * config.gcc: Add support for ARMv8 for arm*-*-* targets.
315 * config/arm/arm-arches.def: Add armv8-a
316 * config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8,
317 crypto-neon-fp-armv8. Add crypto field.
318 * config/arm/arm-tables.opt: Regenerate.
319 * config/arm/arm.c (FL_FOR_ARCH8A): Likewise.
320 (arm_arch8): New global variable.
321 (ARM_FPU): Add crypto parameter.
322 (arm_option_override): Set arm_arch8, update comments.
323 * config/arm/arm.h (TARGET_CRYPTO): New macro.
324 (arm_fpu_desc): Add crypto field.
325 (base_architecture): Add ARMv8 entry.
326 (arm_arch8): New variable declaration.
327 * config/arm/bpabi.h: ARMv8 supports BE8.
328 * doc/invoke.texi: Document ARMv8 options.
595fefee 329
a3770d3b
AH
3302012-10-17 Aldy Hernandez <aldyh@redhat.com>
331
332 PR middle-end/54893
21a11667
JBG
333 * trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed
334 transactions.
a3770d3b 335
a7b159a4
AH
3362012-10-17 Aldy Hernandez <aldyh@redhat.com>
337
338 PR rtl-optimization/54900
339 * ifcvt.c (noce_can_store_speculate_p): Call
340 memory_must_be_modified_in_insn_p.
341 * alias.c (memory_must_be_modified_in_insn_p): New.
342 (set_dest_equal_p): New.
343 * rtl.h (memory_must_be_modified_in_p): Protoize.
344
4d967549
MM
3452012-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
346
347 * config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
348 replace target_flags that gives us 63 possible switches.
349 (x_rs6000_isa_flags): Save area for rs6000_isa_flags.
13299a8e 350 (x_rs6000_isa_flags_explicit): Save area for rs6000_isa_flags_explicit.
4d967549
MM
351 (rs6000_target_flags_explicit): Delete in favor of
352 x_rs6000_isa_flags_explicit.
353 (-mpowerpc64): Change all switches that used to be in target_flags
354 to now be in rs6000_isa_flags. In using rs6000_isa_flags, the
355 options machinary will generate names of the form OPITON_<xxx>
13299a8e 356 instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of MASK_<xxx>.
4d967549
MM
357 (-mpowerpc-gpopt): Likewise.
358 (-mpowerpc-gfxopt): Likewise.
359 (-mmfcrf): Likewise.
360 (-mpopcntb): Likewise.
361 (-mfprnd): Likewise.
362 (-mcmpb): Likewise.
363 (-mmfpgpr): Likewise.
364 (-maltivec): Likewise.
365 (-mhard-dfp): Likewise.
366 (-mmulhw): Likewise.
367 (-mdlmzb): Likewise.
368 (-mmultiple): Likewise.
369 (-mstring): Likewise.
370 (-msoft-float): Likewise.
371 (-mhard-float): Likewise.
372 (-mpopcntd): Likewise.
373 (-mvsx): Likewise.
374 (-mno-update): Likewise.
375 (-mupdate): Likewise.
376 (-mrecip-precision): Likewise.
377 (-mminimal-toc): Likewise.
378 (-misel): Likewise.
379 * config/rs6000/aix64.opt (-maix64): Likewise.
380 (-maix32): Likewise.
381 * config/rs6000/sysv4.opt (-mstrict-align): Likewise.
382 (-mrelocatable): Likewise.
383 (-mlittle-endian): Likewise.
384 (-mlittle): Likewise.
385 (-mbig-endian): LIkewise.
386 (-mbig): Likewise.
387 (-meabi): Likewise.
388 (-m64): Likewise.
389 (-m32): Likewise.
390 * config/rs6000/darwin.opt (-m64): Likewise.
391 (-m32): Likewise.
392
393 * config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
394 masks used in rs6000.c here, since they are more logically in this
395 file. Convert from being enums to just #defines, since the types
396 of these masks is now HOST_WIDE_INT instead of int. For
397 POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
398 in the mask. Change the use in rs6000.c not to do the OR of
399 MASK_SOFT_FLOAT.
400 (ISA_2_1_MASKS): Likewise.
401 (ISA_2_2_MASKS): Likewise.
402 (ISA_2_4_MASKS): Likewise.
403 (ISA_2_5_MASKS_EMBEDDED): Likewise.
404 (ISA_2_5_MASKS_SERVER): Likewise.
405 (POWERPC_7400_MASK): Likewise.
406 (POWERPC_MASKS): Likewise.
407 * config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
408 (ISA_2_1_MASKS): Likewise.
409 (ISA_2_2_MASKS): Likewise.
410 (ISA_2_4_MASKS): Likewise.
411 (ISA_2_5_MASKS_EMBEDDED): Likewise.
412 (ISA_2_5_MASKS_SERVER): Likewise.
413 (POWERPC_7400_MASK): Likewise.
414 (POWERPC_MASKS): Likewise.
415 (rs6000_option_override_internal): Likewise.
416
417 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
418 all uses of target_flags to rs6000_isa_flags. Change all uses of
419 target_flags_explicit to rs6000_isa_flags_explicit. Change the
420 use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
421 we use a secondary flags word. Save/restore/print the new flags
422 word when switching contexts with different target attributes.
423 (rs6000_option_override_internal): Likewise.
424 (rs6000_darwin_file_start): Likewise.
425 (rs6000_opt_masks): Likewise.
426 (rs6000_inner_target_options): Likewise.
427 (rs6000_pragma_target_parse): Likewise.
428 (rs6000_set_current_function): Likewise.
429 (rs6000_function_specific_save): Likewise.
430 (rs6000_function_specific_restore): Likewise.
431 (rs6000_function_specific_print): Likewise.
432 (rs6000_can_inline_p): Likewise.
13299a8e 433 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
4d967549
MM
434 (rs6000_cpu_cpp_builtins): Likewise.
435 * common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
436 Likewise.
437
438 * config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
439 Var(...) for all of the isa switches, the options machinery now
440 uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
441 Use #define to map the old name into the new name. For switches
442 that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
443 the definition if those switches were defined.
444 (MASK_ALTIVEC): Likewise.
445 (MASK_CMPB): Likewise.
446 (MASK_DFP): Likewise.
447 (MASK_DLMZB): Likewise.
448 (MASK_EABI): Likewise.
449 (MASK_FPRND): Likewise.
450 (MASK_HARD_FLOAT): Likewise.
451 (MASK_ISEL): Likewise.
452 (MASK_MFCRF): Likewise.
453 (MASK_MFPGPR): Likewise.
454 (MASK_MULHW): Likewise.
455 (MASK_MULTIPLE): Likewise.
456 (MASK_NO_UPDATE): Likewise.
457 (MASK_POPCNTB): Likewise.
458 (MASK_POPCNTD): Likewise.
459 (MASK_PPC_GFXOPT): Likewise.
460 (MASK_PPC_GPOPT): Likewise.
461 (MASK_RECIP_PRECISION): Likewise.
462 (MASK_SOFT_FLOAT): Likewise.
463 (MASK_STRICT_ALIGN): Likewise.
464 (MASK_STRING): Likewise.
465 (MASK_UPDATE): Likewise.
466 (MASK_VSX): Likewise.
467 (MASK_POWERPC64): Likewise.
468 (MASK_64BIT): Likewise.
469 (MASK_RELOCATABLE): Likewise.
470 (MASK_LITTLE_ENDIAN): Likewise.
471 (MASK_MINIMAL_TOC): Likewise.
472 (MASK_REGNAMES): Likewise.
473 (MASK_PROTOTYPE): Likewise.
474 (rs6000_isa_flags_explicit): Define in terms of the
475 global_options_set structure.
476
477 * gcc/config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
13299a8e
UB
478 Change use of target_flags to rs6000_isa_flags, target_flags_explicit
479 to rs6000_isa_flags_explicit, and MASK_<xxx> to OPTION_MASK_<xxx>.
480 * gcc/config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
481 * gcc/config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
482 * gcc/config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
483 * gcc/config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
484 * gcc/config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
4d967549 485 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13299a8e
UB
486 * gcc/config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
487 * gcc/config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
4d967549
MM
488 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
489 (OPTION_LITTLE_ENDIAN): Likewise.
490 (OPTION_RELOCATABLE): Likewise.
491 (OPTION_EABI): Likewise.
492 (OPTION_PROTOTYPE): Likewise.
493 * gcc/config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
13299a8e 494 * gcc/config/rs6000/option-defaults.h (OPTION_MASK_64BIT): Likewise.
4d967549
MM
495 (OPT_ARCH32): Likewise.
496 (OPT_ARCH64): Likewise.
497 * gcc/config/rs6000/sysv4.h (TARGET_TOC): Likewise.
498 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
499 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
500 (TARGET_OS_SYSV_CPP_BUILTINS): Likewise.
501
502 * config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
503 dependency.
504
bf45c4c0
JH
5052012-10-17 Jan Hubicka <jh@suse.cz>
506
507 * cfgloopmanip.c (copy_loop_info): New function.
508 (duplicate_loop): Use it.
509 (loop_version): Use it.
510 * loop-unswitch.c (unswitch_loop): Use it.
511 * cfgloop.h (copy_loop_info): Declare.
512
b7442c2f
JH
5132012-10-17 Jan Hubicka <jh@suse.cz>
514
515 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel
13299a8e
UB
516 parameter and use it to estimate code optimized out in the final
517 iteration.
b7442c2f
JH
518 (loop_edge_to_cancel): New function.
519 (try_unroll_loop_completely): New IRRED_IVALIDATED parameter;
520 handle unrolling loops with bounds given via max_loop_iteratins;
521 handle unrolling non-inner loops when code size shrinks;
522 tidy dump output; when the last iteration loop still stays
523 as loop in the CFG forcongly redirect the latch to
524 __builtin_unreachable.
525 (canonicalize_loop_induction_variables): Add irred_invlaidated
526 parameter; record niter bound derrived; dump
527 max_loop_iterations bounds; call try_unroll_loop_completely
528 even if no niter bound is given.
529 (canonicalize_induction_variables): Handle irred_invalidated.
530 (tree_unroll_loops_completely): Handle non-innermost loops;
531 handle irred_invalidated.
532 * cfgloop.h (unlop): Declare.
533 * cfgloopmanip.c (unloop): Export.
534 * tree.c (build_common_builtin_nodes): Build BULTIN_UNREACHABLE.
535
90922d36
MM
5362012-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
537
538 * opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx>
539 for Mask options, whether they use Var(...) or not.
540
541 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): Use
542 TARGET_<xxx> instead of OPTION_<xxx>.
543 * config/i386/i386.h (TARGET_64BIT): Likewise.
544 (TARGET_MMX): Likewise.
545 (TARGET_3DNOW): Likewise.
546 (TARGET_3DNOW_A): Likewise.
547 (TARGET_SSE): Likewise.
548 (TARGET_SSE2): Likewise.
549 (TARGET_SSE3): Likewise.
550 (TARGET_SSSE3): Likewise.
551 (TARGET_SSE4_1): Likewise.
552 (TARGET_SSE4_2): Likewise.
553 (TARGET_AVX): Likewise.
554 (TARGET_AVX2): Likewise.
555 (TARGET_FMA): Likewise.
556 (TARGET_SSE4A): Likewise.
557 (TARGET_FMA4): Likewise.
558 (TARGET_XOP): Likewise.
559 (TARGET_LWP): Likewise.
560 (TARGET_ROUND): Likewise.
561 (TARGET_ABM): Likewise.
562 (TARGET_BMI): Likewise.
563 (TARGET_BMI2): Likewise.
564 (TARGET_LZCNT): Likewise.
565 (TARGET_TBM): Likewise.
566 (TARGET_POPCNT): Likewise.
567 (TARGET_SAHF): Likewise.
568 (TARGET_MOVBE): Likewise.
569 (TARGET_CRC32): Likewise.
570 (TARGET_AES): Likewise.
571 (TARGET_PCLMUL): Likewise.
572 (TARGET_CMPXCHG16B): Likewise.
573 (TARGET_FSGSBASE): Likewise.
574 (TARGET_RDRND): Likewise.
575 (TARGET_F16C): Likewise.
576 (TARGET_RTM ): Likewise.
577 (TARGET_HLE): Likewise.
578 (TARGET_RDSEED): Likewise.
579 (TARGET_PRFCHW): Likewise.
580 (TARGET_ADX): Likewise.
581 (TARGET_64BIT): Likewise.
582 (TARGET_MMX): Likewise.
583 (TARGET_3DNOW): Likewise.
584 (TARGET_3DNOW_A): Likewise.
585 (TARGET_SSE): Likewise.
586 (TARGET_SSE2): Likewise.
587 (TARGET_SSE3): Likewise.
588 (TARGET_SSSE3): Likewise.
589 (TARGET_SSE4_1): Likewise.
590 (TARGET_SSE4_2): Likewise.
591 (TARGET_AVX): Likewise.
592 (TARGET_AVX2): Likewise.
593 (TARGET_FMA): Likewise.
594 (TARGET_SSE4A): Likewise.
595 (TARGET_FMA4): Likewise.
596 (TARGET_XOP): Likewise.
597 (TARGET_LWP): Likewise.
598 (TARGET_ROUND): Likewise.
599 (TARGET_ABM): Likewise.
600 (TARGET_BMI): Likewise.
601 (TARGET_BMI2): Likewise.
602 (TARGET_LZCNT): Likewise.
603 (TARGET_TBM): Likewise.
604 (TARGET_POPCNT): Likewise.
605 (TARGET_SAHF): Likewise.
606 (TARGET_MOVBE): Likewise.
607 (TARGET_CRC32): Likewise.
608 (TARGET_AES): Likewise.
609 (TARGET_PCLMUL): Likewise.
610 (TARGET_CMPXCHG16B): Likewise.
611 (TARGET_FSGSBASE): Likewise.
612 (TARGET_RDRND): Likewise.
613 (TARGET_F16C): Likewise.
614 (TARGET_RTM): Likewise.
615 (TARGET_HLE): Likewise.
616 (TARGET_RDSEED): Likewise.
617 (TARGET_PRFCHW): Likewise.
618 (TARGET_ADX): Likewise.
619 (TARGET_LP64): Likewise.
620 (TARGET_X32): Likewise.
621 (TARGET_ISA_ROUND): Likewise.
622 * config/i386/darwin.h (TARGET_64BIT): Likewise.
623
624 * doc/options.texi (Mask): Update documentation to specify only
625 TARGET_<xxx> is generated.
626
42083999
GY
6272012-10-17 Greta Yorsh <Greta.Yorsh@arm.com>
628
21a11667
JBG
629 * config/arm/arm.md (UNSPEC_PROLOGUE_USE): Rename this...
630 (UNSPEC_REGISTER_USE): ... to this.
631 (prologue_use): Rename this...
42083999 632 (force_register_use): ... to this and update output assembly.
21a11667
JBG
633 (epilogue) Rename gen_prologue_use to gen_force_register_use.
634 * config/arm/arm.c (arm_expand_prologue): Likewise.
635 (thumb1_expand_epilogue): Likewise.
636 (arm_expand_epilogue): Likewise.
637 (arm_expand_epilogue): Likewise.
42083999 638
eb5af262
GJL
6392012-10-17 Georg-Johann Lay <avr@gjlay.de>
640
641 * config/avr/avr-arch.h (avr_extra_arch_macro): Remove prototype.
642 * config/avr/avr.c (avr_extra_arch_macro): Remove variable.
643 (avr_option_override): Remove setting of avr_extra_arch_macro.
644 * config/avr/avr-c.c (avr_extra_arch_macro): Replace with
645 avr_current_device->macro.
646
3855380a
RB
6472012-10-17 Richard Biener <rguenther@suse.de>
648
649 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
650 Do not write TREE_CHAIN of PARM_DECLs.
651 (write_ts_decl_non_common_tree_pointers): Instead stream
652 the DECL_ARGUMENTS chain.
653 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
654 Do not read TREE_CHAIN of PARM_DECLs.
655 (lto_input_ts_decl_non_common_tree_pointes): Instead read
656 the DECL_ARGUMENTS as chain.
657
e0de0c3b
SB
6582012-10-17 Steven Bosscher <steven@gcc.gnu.org>
659
660 * config/iq2000/iq2000.h (call_used_regs): Remove definition.
661
3768afe9
EB
6622012-10-16 Eric Botcazou <ebotcazou@adacore.com>
663
664 PR rtl-optimization/54870
665 * tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
666 * cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
667 SSA_NAME pointer that points to a partition if there is at least
668 one variable with it set in the partition.
669 * dse.c (local_variable_can_escape): New predicate.
670 (can_escape): Call it.
671 * gimplify.c (mark_addressable): If this is a partitioned decl, also
672 mark the SSA_NAME pointer that points to a partition.
673
8c266ffa
SB
6742012-10-16 Steven Bosscher <steven@gcc.gnu.org>
675
676 * df-problems.c (df_kill_notes): Split up in two functions.
677 (df_remove_dead_and_unused_notes): New function, first half of
678 df_kill notes to remove all REG_DEAD and REG_UNUSED notes.
679 (df_remove_dead_eq_notes): New function, second half of df_kill_notes
680 to remove REG_EQUAL and REG_EQUIV notes referring to dead registers.
681 (df_note_bb_compute): Call df_remove_dead_and_unused_notes instead
682 of df_kill_notes. Call df_remove_dead_eq_notes after processing insn.
683
684 * web.c (web): Re-add DF_RD_PRUNE_DEAD_DEFS;
685
d564b816
ILT
6862012-10-16 Ian Lance Taylor <iant@google.com>
687
688 * doc/extend.texi (Return Address): Change
689 __builtin_extract_return_address to
690 __builtin_extract_return_addr.
691
da4fdf2d
SB
6922012-10-16 Steven Bosscher <steven@gcc.gnu.org>
693
694 * rtl.h (get_call_rtx_from): New prototype.
695 * rtlanal.c (get_call_rtx_from): New function.
696 * calls.c (emit_call_1): Use it.
697 * dse.c (scan_insn): Likewise
698 * dwarf2out.c (dwarf2out_var_location): Likewise.
699 * sched-deps.c (call_may_noreturn_p): Likewise.
700 * var-tracking.c (prepare_call_arguments): Likewise.
701 * config/sh/sh.c (sh_adjust_cost): Likewise.
702
f841b683
TV
7032012-10-16 Tom de Vries <tom@codesourcery.com>
704
705 * expr.c (move_by_pieces, move_by_pieces_ninsns, can_store_by_pieces)
706 (store_by_pieces_1): Don't enter loop when no more data is left.
707
2407343c
JR
7082012-10-16 Joern Rennecke <joern.rennecke@embecosm.com>
709
710 * loop-doloop.c (doloop_modify): Pass doloop_end pattern to
711 gen_doloop_begin.
712 (doloop_optimize): Pass flag to indicate if loop is entered at top
713 to gen_doloop_end.
714 * config/arm/thumb2.md (doloop_end): Accept extra operand.
715 * config/bfin/bfin.md (doloop_end): Likewise.
716 * config/c6x/c6x.md (doloop_end): Likewise.
717 * config/ia64/ia64.md (doloop_end): Likewise.
718 * config/mep/mep.md (doloop_begin, doloop_end): Likewise.
719 * config/rs6000/rs6000.md (doloop_end): Likewise.
720 * config/s390/s390.md (doloop_end): Likewise.
721 * config/sh/sh.md (doloop_end): Likewise.
722 * config/spu/spu.md (doloop_end): Likewise.
723 * config/tilegx/tilegx.md (doloop_end): Likewise.
724 * config/tilepro/tilepro.md (doloop_end): Likewise.
725 * doc/md.texi (doloop_end): Document new operand.
726 * basic-block.h (contains_no_active_insn_p): Declare.
727 * cfgrtl.c (contains_no_active_insn_p): New function, factored
728 out of ...
729 (forwarder_block_p): ... here.
730
d919140b
MLI
7312012-10-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
732
733 PR c/53063
734 PR c/40989
735 * doc/options.texi (EnabledBy): Document new form.
736 * optc-gen.awk: Handle new form of EnabledBy.
737 * common.opt (Wunused-but-set-parameter): Use EnabledBy.
738 (Wunused-parameter): Likewise.
739 * opts.c (finish_options): Do not handle them explicitly.
740 * opt-functions.awk (search_var_name): New.
741
65d4f2cd
MLI
7422012-10-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
743
744 PR c/53063
745 PR c/40989
746 * optc-gen.awk: Handle new form of LangEnabledBy.
747 * opts.c (set_Wstrict_aliasing): Declare here. Make static.
748 * common.opt (Wstrict-aliasing=,Wstrict-overflow=): Do not use Init.
749 * doc/options.texi (LangEnabledBy): Document new form.
750 * flags.h (set_Wstrict_aliasing): Do not declare.
751
80de67b8
UW
7522012-10-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
753
754 * reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE
755 parameter. Always replace normal subreg with memory reference
756 whenever possible. Return NULL otherwise.
757 (find_reloads_toplev): Always call find_reloads_subreg_address
758 for subregs of registers equivalent to a memory location.
759 Only recurse further if find_reloads_subreg_address fails.
760 (find_reloads_address_1): Only call find_reloads_subreg_address
761 for subregs of registers equivalent to a memory location.
762 Properly handle failure of find_reloads_subreg_address.
763
cded4e9e
JJ
7642012-10-16 Jakub Jelinek <jakub@redhat.com>
765
0fe03ac3
JJ
766 PR debug/54796
767 * rtl.h: Document jump flag on VALUE.
768 * cselib.h (cselib_set_value_sp_based,
769 cselib_sp_based_value_p): New prototypes.
770 * alias.c (find_base_term): For cselib_sp_based_value_p
771 return static_reg_base_value[STACK_POINTER_REGNUM].
772 * cselib.c (SP_BASED_VALUE_P): Define.
773 (cselib_set_value_sp_based, cselib_sp_based_value_p): New functions.
774 * var-tracking.c (add_stores): Call cselib_set_value_sp_based
775 for not yet preserved VALUEs of sp on sp assignments if
776 hard_frame_pointer_adjustment != -1.
777 (vt_initialize): When setting hard_frame_pointer_adjustment,
778 disassociate sp from its previous value and call
779 cselib_set_value_sp_based on a new VALUE created for sp.
780
cded4e9e
JJ
781 PR tree-optimization/54889
782 * tree-vect-stmts.c (vectorizable_load): Add VIEW_CONVERT_EXPR if
783 ARRAY_REF newref doesn't have compatible type with vectype element
784 type, use vectype element type for MEM_REF.
785
c7fb4c7a
SB
7862012-10-16 Steven Bosscher <steven@gcc.gnu.org>
787
788 * combine.c (record_dead_and_set_regs): Iterate over hard register set
789 with a hard_reg_set_iterator.
790 * cse.c (invalidate_for_call): Likewise.
791 * gcse.c (compute_hash_table_work): Likewise.
792 * loop-iv.c (simplify_using_initial_values): Likewise.
793 * postreload-gcse.c (record_opr_changes): Likewise.
794 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
795 * var-tracking.c (dataflow_set_clear_at_call): Likewise.
796
a4da41e1
ER
7972012-10-15 Easwaran Raman <eraman@google.com>
798
799 * optabs.c (emit_cmp_and_jump_insn_1): Add a new parameter to
800 specificy the probability of taking the jump.
801 (emit_cmp_and_jump_insns): Likewise.
802 (expand_compare_and_swap_loop): Make the jump predicted not taken.
803 * dojump.c (do_compare_rtx_and_jump): Remove the code attaching
804 REG_BR_PROB note and pass probability to emit_cmp_and_jump_insns.
805 * cfgbuild.c (compute_outgoing_frequencies): Do not guess outgoing
806 probabilities for branches with more than two successors.
807 * expr.c (emit_block_move_via_loop): Predict the loop backedge loop
808 to be highly taken.
809 (try_casesi): Pass the probability of jumping to the default label.
810 (try_tablejump): Likewise.
811 (do_tablejump): Likewise.
812 * expr.h (try_tablejump): Add a new parameter.
813 (try_casesi): Likewise.
814 (emit_cmp_and_jump_insns): Add probability as default parameter with a
815 default value of -1.
816 * except.c (sjlj_emit_function_enter): Pass probability to
817 emit_cmp_and_jump_insns.
818 * stmt.c (case_node): Add new fields PROB and SUBTREE_PROB.
819 (do_jump_if_equal): Pass probability for REG_BR_PROB note.
820 (add_case_node): Pass estimated probability of jumping to the case
821 label.
822 (emit_case_decision_tree): Pass default_prob to emit_case_nodes.
823 (get_outgoing_edge_probs): New function.
824 (conditional_probability): Likewise.
825 (reset_out_edges_aux): Likewise.
826 (compute_cases_per_edge): Likewise.
827 (emit_case_dispatch_table): Update probabilities of edges coming out
828 of the switch statement.
829 (expand_case): Compute and propagate default edge probability to
830 emit_case_dispatch_table.
831 (expand_sjlj_dispatch_table): Update calls to add_case_node and
832 emit_case_dispatch_table.
833 (balance_case_nodes): Update subtree_prob values.
834 (emit_case_nodes): Compute edge probabilities and add pass them to
835 emit_cmp_and_jump_insns.
836
26943929
OE
8372012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
838
839 PR target/51244
840 * config/sh/sh-protos.h (set_of_reg): New struct.
841 (sh_find_set_of_reg, sh_is_logical_t_store_expr,
842 sh_try_omit_signzero_extend): Declare...
843 * config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
844 sh_try_omit_signzero_extend): ...these new functions.
845 * config/sh/sh.md (*logical_op_t): New insn_and_split.
846 (*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
847 in splitter.
848 (*extend<mode>si2_compact_reg): Convert to insn_and_split.
849 Use sh_try_omit_signzero_extend in splitter.
850 (*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
851 (*cbranch_t): Rewrite combine part in splitter using new
852 sh_find_set_of_reg function.
853
14df3f36
OE
8542012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
855
856 PR target/54760
857 * config/sh/sh.c (sh_find_base_reg_disp): Stop searching insns when
858 hitting a call insn if GBR is marked as call used.
859 * config/sh/iterators.md (QIHISIDI): New mode iterator.
860 * config/sh/predicates.md (gbr_address_mem): New predicate.
861 * config/sh/sh.md (*movdi_gbr_load, *movdi_gbr_store): New
13299a8e
UB
862 insn_and_split. Use QIHISIDI instead of QIHISI in unnamed GBR
863 addressing splits.
14df3f36 864
845f4111
OE
8652012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
866
867 * config/sh/sh.c: Update function attribute comments.
868 * doc/extend.texi (function_vector): Rephrase SH2A specific part.
869 (nosave_low_regs, renesas, trapa_handler): Document SH specific
870 attributes.
871 (sp_switch, trap_exit): Add to index.
872
9945a876
MK
8732012-10-15 Matthias Klose <doko@ubuntu.com>
874
875 * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
876 * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi.
877
13299a8e 8782012-10-15 Uros Bizjak <ubizjak@gmail.com>
860f5e77
UB
879
880 * config/i386/sse.md (UNSPEC_MOVU): Remove.
881 (UNSPEC_LOADU): New.
882 (UNSPEC_STOREU): Ditto.
883 (<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
884 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
885 (<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
886 (<sse2>_movdqu<avxsizesuffix>): Split to ...
887 (<sse2>_loaddqu<avxsizesuffix>): ... this and ...
888 (<sse2>_storedqu<avxsizesuffix>): ... this.
889 (*sse4_2_pcmpestr_unaligned): Update.
890 (*sse4_2_pcmpistr_unaligned): Ditto.
891
892 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
893 gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
894 gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
895 (ix86_expand_vector_move_misalign): Use gen_sse_loadups or
896 gen_sse2_load{dqu,upd} to load from unaligned memory and
897 gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
898 unaligned memory.
899 (struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
900 Use CODE_FOR_sse_loadups.
901 <IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
902 <IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
903 <IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
904 <IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
905 <IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
906 <IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
907 <IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
908 <IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
909 <IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
910 <IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
911 <IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.
912
308a3fe2
DS
9132012-10-15 Dodji Seketeli <dodji@redhat.com>
914
915 * alias.c: Cleanup comments.
916
895e8371
MG
9172012-10-15 Marc Glisse <marc.glisse@inria.fr>
918
919 PR tree-optimization/54915
920 * tree-ssa-forwprop.c (simplify_vector_constructor): Check
921 argument's type.
922
8135e1e6
RB
9232012-10-15 Richard Biener <rguenther@suse.de>
924
925 * data-streamer.h (bp_pack_string_with_length): New function.
926 (bp_pack_string): Likewise.
927 (bp_unpack_indexed_string): Likewise.
928 (bp_unpack_string): Likewise.
929 * data-streamer-out.c (bp_pack_string_with_length): Likewise.
930 (bp_pack_string): Likewise.
931 * data-streamer-in.c (bp_unpack_indexed_string): Likewise.
932 (bp_unpack_string): Likewise.
933 * tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
934 Pack TRANSLATION_UNIT_LANGUAGE here, not ...
935 (write_ts_translation_unit_decl_tree_pointers): ... here. Remove.
936 (streamer_pack_tree_bitfields): Adjust.
937 (streamer_write_tree_body): Likewise.
938 * tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields):
939 Unpack TRANSLATION_UNIT_LANGUAGE here, not ...
940 (lto_input_ts_translation_unit_decl_tree_pointers): ... here. Remove.
941 (unpack_value_fields): Adjust.
942 (streamer_read_tree_body): Likewise.
943
94c765ab
R
9442012-10-15 J"orn Rennecke <joern.rennecke@arc.com>
945
946 * genoutput.c (process_template): Process '*' in '@' alternatives.
947 * doc/md.texi (node Output Statement): Provide example for the above.
948
f843144b
RG
9492012-10-15 Richard Guenther <rguenther@suse.de>
950
951 PR tree-optimization/54920
952 * tree-ssa-pre.c (create_expression_by_pieces): Properly
953 allocate temporary storage for all NARY elements.
954
7bd8fc3b
JR
9552012-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
956
957 * web.c (union_match_dups): Properly handle OP_INOUT match_dups.
958
9506aecb
EB
9592012-10-15 Eric Botcazou <ebotcazou@adacore.com>
960
961 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily
962 copy the object in the MEM_P case.
963
0127aae4
RG
9642012-10-15 Richard Guenther <rguenther@suse.de>
965
966 * tree-streamer-out.c (streamer_pack_tree_bitfields): Back
967 BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.
968 (streamer_write_chain): Write TREE_CHAIN as null-terminated list.
969 (write_ts_exp_tree_pointers): Adjust.
970 (write_ts_binfo_tree_pointers): Likewise.
971 (write_ts_constructor_tree_pointers): Likewise.
972 * tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as
973 null-terminated list.
974 (unpack_value_fields): Unpack BINFO_BASE_ACCESSES and
975 CONSTRUCTOR lengths and materialize the arrays.
976 (lto_input_ts_exp_tree_pointers): Adjust.
977 (lto_input_ts_binfo_tree_pointers): Likewise.
978 (lto_input_ts_constructor_tree_pointers): Likewise.
979
ae9d1af7
HPN
9802012-10-14 Hans-Peter Nilsson <hp@bitrange.com>
981
982 * config/mmix/mmix.c (mmix_opposite_regno): Handle the
983 return-value register too.
984
bf744527
SB
9852012-10-14 Steven Bosscher <steven@gcc.gnu.org>
986
987 PR rtl-optimization/38711
988 * df.h (df_get_live_out, df_get_live_in): Make static inline functions.
989 * df-problems.c (df_get_live_out, df_get_live_in): Moved to df.h.
990 * ira-lives.c (process_bb_node_lives): Use df_get_live_out instead of
991 DF_LR_OUT.
992 * ira-build.c (create_bb_allocnos): Likewise.
993 (create_loop_allocnos): Likewise, and use df_get_live_in instead of
994 DF_LR_IN.
995 * ira-emit.c (generate_edge_moves): Likewise.
996 (add_ranges_and_copies): Likewise.
997 * ira-color.c (ira_loop_edge_freq): Use df_get_live_out instead of
998 DF_LR_OUT, and df_get_live_in instead of DF_LR_IN.
999 * ira.c (mark_elimination): Update DF_LR and DF_LIVE.
1000 (build_insn_chain): Use df_get_live_out instead of DF_LR_OUT.
1001 (do_reload): Remove the DF_LIVE problem for -O1.
1002
6e74642b
SB
10032012-10-14 Steven Bosscher <steven@gcc.gnu.org>
1004
1005 PR rtl-optimization/54919
1006 * loop-unroll.c (struct var_to_expand): Remove accum_pos field.
1007 (analyze_insn_to_expand_var): Do not record accum_pos.
1008 (expand_var_during_unrolling): Use validate_replace_rtx_group to
1009 perform replacement of all references to SET_DEST (set) with the
1010 new register, including references in REG_EQUAL notes.
1011 (insert_var_expansion_initialization): Insert initializatio insns
1012 at the bottom of the pre-header of the loop.
1013
f9bf4777
JH
10142012-10-14 Jan Hubicka <jh@suse.cz>
1015
1016 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
1017 predict loops with multiple exits realistically.
1018 * cfgloopanal.c (single_likely_exit): New function.
1019
7159e638
UB
10202012-10-14 Uros Bizjak <ubizjak@gmail.com>
1021
1022 * config/alpha/alpha.md: Remove empty predicates and/or constraints.
1023 * config/alpha/sync.md: Ditto.
1024
c131069c
UB
10252012-10-13 Uros Bizjak <ubizjak@gmail.com>
1026
1027 * config/alpha/alpha.md (I24MODE): New mode iterator.
1028 (any_divmod): New code iterator.
1029 (<code>si3): Macroize expander from {div,mod,udiv,umod}si3 using
1030 any_divmod code iterator.
1031 (<code>si3): Macroize expander from {div,mod,udiv,umod}di3 using
1032 any_divmod code iterator.
1033 (extendqi<mode>2): Macroize insn from extendqi{hi,si}2 using
1034 I24MODE mode iterator.
1035 (unaligned_store<mode>): Macroize expander from unaligned_store{qi,hi}
1036 using I12MODE mode iterator.
1037 (mov<mode>): Macroize expander from mov{qi,hi} using
1038 I12MODE mode iterator.
1039
4fc2e37d
EB
10402012-10-13 Eric Botcazou <ebotcazou@adacore.com>
1041
1042 PR rtl-optimization/54871
1043 * loop-iv.c (simplify_using_initial_values): When scanning previous
1044 basic blocks, prune the recorded conditions if the current insn was
1045 not used to make a replacement.
1046
1047 * loop-unroll.c (decide_unroll_constant_iterations): Clean up message.
1048 (unroll_loop_constant_iterations): Clarify head comment.
1049 (decide_unroll_runtime_iterations): Clean up message.
1050 (unroll_loop_runtime_iterations): Clarify head comment.
1051 (decide_peel_simple): Clean up message.
1052 (peel_loop_simple): Clarify head comment.
1053 (decide_unroll_stupid): Clean up message.
1054 (unroll_loop_stupid): Clarify head comment.
1055
258ef007
AS
10562012-10-13 Andreas Schwab <schwab@linux-m68k.org>
1057
1058 PR gcov-profile/44728
1059 * gcov.c (create_file_names): When stripping extension only look
1060 at base name.
1061
43ffba00
JH
10622012-10-13 Jan Hubicka <jh@suse.cz>
1063
1064 * loop-iv.c (determine_max_iter): Fix handling of AND.
1065 (iv_number_of_iterations): Record upper bounds as unsigned
1066 values.
1067
544e7e78
SB
10682012-10-13 Steven Bosscher <steven@gcc.gnu.org>
1069
1070 * ira.c (ira): Set current_loops to &ira_loops before recording
1071 loop exits. Release recorded exits and loops early.
1072
5440a1b0
CLT
10732012-10-13 Chung-Lin Tang <cltang@codesourcery.com>
1074
1075 * builtins.c (expand_builtin_set_thread_pointer): Use
1076 create_input_operand() instead of create_fixed_operand().
1077
fdc54592
UB
10782012-10-13 Uros Bizjak <ubizjak@gmail.com>
1079
1080 * config/alpha/alpha.md (FMODE): New mode iterator.
1081 (modesuffix): Handle SF and DF modes.
1082 (opmode): New mode attribute.
1083 (abs<mode>2): Macroize insn from abs{sf,df}2 using FMODE mode iterator.
1084 (*nabs<mode>2): Macroize insn from *nabs{sf,df}2 using
1085 FMODE mode iterator.
1086 (neg<mode>2): Macroize insn from neg{sf,df}2 using FMODE mode iterator.
1087 (copysign<mode>3): Macroize insn from copysign{sf,df}3 using
1088 FMODE mode iterator.
1089 (*ncopysign<mode>3): Macroize insn from *ncopysign{sf,df}3 using
1090 FMODE mode iterator.
1091 (*add<mode>3_ieee): Macroize insn from *add{sf,df}_ieee using
1092 FMODE mode iterator.
1093 (add<mode>3): Macroize insn from add{sf,df}3 using FMODE mode iterator.
1094 (*sub<mode>3_ieee): Macroize insn from *sub{sf,df}3_ieee using
1095 FMODE mode iterator.
1096 (sub<mode>3): Macroize insn from sub{sf,df}3 using FMODE mode iterator.
1097 (*mul<mode>3_ieee): Macroize insn from *mul{sf,df}3_ieee using
1098 FMODE mode iterator.
1099 (mul<mode>3): Macroize insn from mul{sf,df}3 using FMODE mode iterator.
1100 (*div<mode>3_ieee): Macroize insn from *div{sf,df}3_ieee using
1101 FMODE mode iterator.
1102 (div<mode>3): Macroize insn from div{sf,df}3 using FMODE mode iterator.
1103 (*sqrt<mode>2_ieee): Macroize insn from *sqrt{sf,df}2_ieee using
1104 FMODE mode iterator.
1105 (sqrt<mode>2): Macroize insn from sqrt{sf,df}2
1106 using FMODE mode iterator.
1107 (*mov<mode>cc_internal): Macroize insn from *mov{sf,df}cc_internal
1108 using FMODE mode iterator.
1109 (mov<mode>cc): Macroize expander from mov{sf,df}cc
1110 using FMODE mode iterator.
1111
fd90d92c
OE
11122012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1113
1114 PR target/54602
1115 * config/sh/sh.md: Correct define_delay for return insns.
1116 (*movsi_pop): Delete.
1117
db292b0e
OE
11182012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1119
1120 PR target/54680
1121 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_int2sf): Fix swapped
1122 comments.
1123 * config/sh/predicates.md (fpul_operand): Add comment.
1124 (fpul_fsca_operand, fsca_scale_factor): New predicates.
1125 * config/sh/sh.md (fsca): Move below sincossf3 expander. Convert to
fdc54592
UB
1126 insn_and_split. Use fpul_fsca_operand and fsca_scale_factor
1127 predicates. Simplify fpul operand in splitter.
db292b0e 1128
535269f4
JH
11292012-10-12 Jan Hubicka <jh@suse.cz>
1130
1131 * tree-ssa-threadupdate.c (def_split_header_continue_p): Do not
1132 escape the loop.
1133
46042c01
JH
11342012-10-12 Jan Hubicka <jh@suse.cz>
1135
1136 * web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.
1137
313465bb
DN
11382012-10-12 Aaron Gray <aaronngray.lists@gmail.com>
1139 Diego Novillo <dnovillo@google.com>
1140
fd90d92c
OE
1141 * gengtype-lex.l: Support for C++ single line comments.
1142 Support for classes.
313465bb
DN
1143 (CXX_KEYWORD): New. Support C++ keywords inline, public,
1144 protected, private, template, operator, friend, &, ~.
1145 (TYPEDEF): New. Support typedef.
fd90d92c 1146 * gengtype-parser.c: updated 'token_names[]'
fdc54592 1147 (direct_declarator): Add support for parsing functions and ctors.
313465bb
DN
1148
11492012-10-12 Diego Novillo <dnovillo@google.com>
1150
1151 * doc/gty.texi: Document C++ limitations in gengtype.
1152 * gengtype-lex.l (CID): Rename from ID.
1153 (ID): Include scoping '::' as part of the identifier name.
1154 * gengtype-parse.c (token_names): Update.
1155 (token_value_format): Update.
1156 (consume_until_eos): Rename from consume_until_semi.
1157 Remove unused argument IMMEDIATE. Update all callers.
1158 Also consider '}' as a finalizer.
1159 (consume_until_comma_or_eos): Rename from
1160 consume_until_comma_or_semi.
1161 Remove unused argument IMMEDIATE. Update all callers.
1162 Also consider '}' as a finalizer.
1163 (direct_declarator): Add documentation on ctor support.
1164 Add argument IN_STRUCT.
1165 If the token following ID is a '(', consider ID a
1166 function and return NULL.
fdc54592
UB
1167 If the token following '(' is not a '*', and IN_STRUCT is true,
1168 conclude that this is a ctor and return NULL.
313465bb
DN
1169 If the token is IGNORABLE_CXX_KEYWORD, return NULL.
1170 (inner_declarator): Add argument IN_STRUCT.
1171 Update all callers.
fdc54592
UB
1172 (declarator): Add argument IN_STRUCT with default value false.
1173 Update all callers.
313465bb
DN
1174 (type): Document argument NESTED.
1175 Skip over C++ inheritance specifiers.
1176 If a token TYPEDEF is found, emit an error.
fdc54592 1177 If an enum is found inside a class/structure, emit an error.
313465bb
DN
1178 (typedefs, structures, param_structs, variables): Initialize.
1179 (new_structure): Do not complain about duplicate
1180 structures if S has a line location set.
fdc54592
UB
1181 * gengtype-state.c (write_state_type): Remove default handler.
1182 Add handler for TYPE_NONE.
313465bb
DN
1183 (read_state_scalar_char_type):
1184 * gengtype.c: Fix spacing.
1185 * gengtype.h (enum gty_token): Add name. Add token
1186 IGNORABLE_CXX_KEYWORD.
1187
7e4dd63d
CLT
11882012-10-12 Chung-Lin Tang <cltang@codesourcery.com>
1189
1190 * config/arm/arm.md (get_thread_pointersi): Moved to place with
1191 other TLS related patterns.
1192
0889c5c3
RB
11932012-10-12 Richard Biener <rguenther@suse.de>
1194
1195 * tree-streamer-out.c (pack_ts_target_option): Rename from ...
1196 (write_ts_target_option): ... this.
1197 (pack_ts_optimization): Rename from ...
1198 (write_ts_optimization): ... this.
1199 (streamer_pack_tree_bitfields): Pack them in the bitfield section ...
1200 (streamer_write_tree_body): ... not here.
1201 * tree-streamer-in.c (unpack_ts_target_option): Rename from ...
1202 (lto_input_ts_target_option): ... this.
1203 (unpack_ts_optimization): Rename from ...
1204 (lto_input_ts_optimization): ... this.
1205 (unpack_value_fields): Unpack them from the bitfield section ...
1206 (streamer_read_tree_body): ... not from here.
1207
87218838
UB
12082012-10-12 Uros Bizjak <ubizjak@gmail.com>
1209
1210 * config/alpha/alpha.md (vecmodesuffix): New mode attribute.
1211 (modesuffix): Handle V8QI and V4HI modes.
1212 (any_maxmin): New code iterator.
1213 (maxmin): New code attribute.
1214 (<code><mode>3): Macroize insn from {smax,smin,umax,umin}{qi,hi}3
1215 using any_maxmin code iterator and I12MODE mode iterator.
1216 (<code><mode>3): Macroize insn from {smax,smin,umax,umin}{v8qi,v4hi}3
1217 using any_maxmin code iterator and VEC12 mode iterator.
1218
e6ed43b0
MG
12192012-10-12 Marc Glisse <marc.glisse@inria.fr>
1220
1221 * optabs.c (vector_compare_rtx): Change prototype.
1222 (expand_vec_cond_expr): Handle VEC_COND_EXPR whose first operand
1223 is not a comparison.
1224 * gimplify.c (gimplify_expr): Handle VEC_COND_EXPR.
1225
60b95d28
RB
12262012-10-12 Richard Biener <rguenther@suse.de>
1227
1228 PR tree-optimization/54894
1229 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1230 Handle over-aligned scalar types properly.
1231
0b622253
OE
12322012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1233
1234 PR target/54760
1235 * config/sh/sh.c (bdesc): Remove thread pointer built-ins.
1236 * config/sh/sh.md (get_thread_pointer, set_thread_pointer): Append mode
1237 name 'si'.
1238
b4eca9c8
OE
12392012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1240
1241 PR target/51244
1242 * config/sh/sh.md (negsi_cond, negdi_cond, stack_protect_test): Remove
1243 get_t_reg_rtx when invoking gen_branch_true or gen_branch_false.
1244 (*zero_extend<mode>si2_compact): Convert to insn_and_split. Convert
1245 zero extensions of T bit stores to reg moves in splitter. Remove
1246 obsolete unnamed peephole2 that caught zero extensions after negc T bit
1247 stores.
1248 (*branch_true_eq, *branch_false_ne): Delete.
1249 (branch_true, branch_false): Convert insn to expander. Move actual
1250 insn logic to...
1251 (*cbranch_t): ...this new insn_and_split. Try to find preceding
1252 redundant T bit stores and tests and combine them with the conditional
1253 branch if possible in the splitter.
1254 (movrt_xor, *movt_movrt): New insn_and_split.
1255 * config/sh/predicates.md (cbranch_treg_value): New predicate.
1256 * config/sh/sh-protos.h (sh_eval_treg_value): Forward declare...
1257 * config/sh/sh.c (sh_eval_treg_value): ...this new function.
1258 (expand_cbranchsi4, expand_cbranchdi4): Remove get_t_reg_rtx
1259 when invoking gen_branch_true or gen_branch_false.
1260
bd37e09f
UB
12612012-10-11 Uros Bizjak <ubizjak@gmail.com>
1262
1263 * config/alpha/alpha.md (IMODE): New mode iterator.
1264 (I124MODE): Ditto.
1265 (I248MODE): Ditto.
1266 (modesuffix): Handle QI and HI modes.
1267 (zero_extendqi<mode>2): Macroize insn from zero_extendqi{hi,si,di}2
1268 using I248MODE mode iterator.
1269 (zero_extendhi<mode>2): Macroize insn from zero_extendhi{si,di}2
1270 using I48MODE mode iterator.
1271 (andnot<mode>3): Macroize insn from andnot{si,di}3 using
1272 I48MODE mode iterator.
1273 (ins<modesuffix>l_const): Macroize insn from ins{b,w,l}l_const
1274 using I248MODE mode iterator.
1275 (ins<modesuffix>l): Macroize insn from ins{b,w,l}l
1276 using I248MODE mode iterator.
1277 (*mov<mode>cc_internal): Macroize insn from
1278 *mov{qi,hi,si,di}cc_internal using IMODE mode iterator.
1279 (*mov<mode>cc_lbc): Macroize insn from
1280 *mov{qi,hi,si,di}cc_lbc using IMODE mode iterator.
1281 (*mov<mode>cc_lbs): Macroize insn from
1282 *mov{qi,hi,si,di}cc_lbs using IMODE mode iterator.
87218838 1283 (mov<mode>cc): Macroize expander from mov{si,di}cc
bd37e09f
UB
1284 using I48MODE mode iterator.
1285
e6a7da82
SB
12862012-10-11 Steven Bosscher <steven@gcc.gnu.org>
1287
1288 * ira-build.c (ira_loop_tree_body_rev_postorder): New function.
1289 (ira_traverse_loop_tree): Traverse a loop's basic blocks in
1290 reverse post-order of the reversed control-flow direction.
1291 * ira-conflicts.c (ira_build_conflicts): Pass add_copies as
1292 the pre-order function to ira_traverse_loop_tree to preserve
1293 the existing semantics.
1294
1295 * ira-lives.c (remove_some_program_points_and_update_live_ranges):
1296 Squeeze out live range chain elements if their program points are
1297 connected.
1298
db9310ef
JJ
12992012-10-11 Jakub Jelinek <jakub@redhat.com>
1300
d2a934a5
JJ
1301 * tree.def (REDUC_PLUS_EXPR): Fix up comment.
1302
db9310ef
JJ
1303 * fold-const.c (fold_unary_loc): Handle REDUC_MIN_EXPR,
1304 REDUC_MAX_EXPR and REDUC_PLUS_EXPR.
1305
a1dc74f2
JL
13062012-10-11 James Lemke <jwlemke@codesourcery.com>
1307
1308 * config/rs6000/predicates.md (zero_fp_constant): Fix comment.
1309 * config/rs6000/rs6000.md (return_pred): Fix null return.
1310 * config/rs6000/rs6000.c (rs6000_emit_set_const): Fix indentation.
1311 (print_operand): Make FALLTHRU obvious.
1312 (output_cbranch): Correct comment.
1313
cf1e4683
UB
13142012-10-11 Uros Bizjak <ubizjak@gmail.com>
1315
1316 * config/alpha/alpha.md (DWI): New mode attribute.
1317 (*sadd<modesuffix>): Macroize insn from *saddl and *saddq using
1318 I48MODE mode iterator.
1319 (addv<mode>3): Macroize insn from addvsi3 and addvdi3 using
1320 I48MODE mode iterator.
1321 (neg<mode>2): Macroize insn from negsi2 and negdi2 using
1322 I48MODE mode iterator.
1323 (negv<mode>2): Macroize insn from negvsi2 and negvdi2 using
1324 I48MODE mode iterator.
1325 (sub<mode>3): Macroize insn from subsi3 and subdi3 using
1326 I48MODE mode iterator.
1327 (*ssub<modesuffix>): Macroize insn from *ssubl and *ssubq using
1328 I48MODE mode iterator.
1329 (subv<mode>3): Macroize insn from subvsi3 and subvdi3 using
1330 I48MODE mode iterator.
1331 (mul<mode>3): Macroize insn from mulsi3 and muldi3 using
1332 I48MODE mode iterator.
1333 (mulv<mode>3): Macroize insn from mulvsi3 and mulvdi3 using
1334 I48MODE mode iterator.
1335 (*iornot<mode>3): Macroize insn from *iornotsi3 and *iornotdi3 using
1336 I48MODE mode iterator.
1337 (*xornot<mode>3): Macroize insn from *xornotsi3 and *xornotdi3 using
1338 I48MODE mode iterator.
1339
e8548a47
JM
13402012-10-11 Jason Merrill <jason@redhat.com>
1341
1342 * configure.ac (gcc_cv_as_aix_ref): Fix typo.
1343 * configure: Regenerate.
1344
f959607b
CLT
13452012-10-11 Chung-Lin Tang <cltang@codesourcery.com>
1346
1347 * builtins.c (expand_builtin_thread_pointer): New.
1348 (expand_builtin_set_thread_pointer): New.
1349 (expand_builtin): Add BUILT_IN_THREAD_POINTER,
1350 BUILT_IN_SET_THREAD_POINTER expand cases.
1351 * builtins.def (BUILT_IN_THREAD_POINTER):
1352 New __builtin_thread_pointer builtin.
1353 (BUILT_IN_SET_THREAD_POINTER):
1354 New __builtin_set_thread_pointer builtin.
1355 * optabs.def (get_thread_pointer,set_thread_pointer):
1356 New standard names.
1357 * doc/md.texi (Standard Names): Document get_thread_pointer and
1358 set_thread_pointer patterns.
1359 * config/alpha/alpha.md (get_thread_pointerdi): Rename from load_tp.
1360 (set_thread_pointerdi): Rename from set_tp.
1361 * config/alpha/alpha.c (alpha_legitimize_address_1): Change
1362 gen_load_tp calls to gen_get_thread_pointerdi.
1363 (alpha_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
1364 ALPHA_BUILTIN_SET_THREAD_POINTER.
1365 (code_for_builtin): Remove CODE_FOR_load_tp, CODE_FOR_set_tp.
1366 (alpha_init_builtins): Remove __builtin_thread_pointer,
1367 __builtin_set_thread_pointer machine-specific builtins.
1368 (alpha_expand_builtin_thread_pointer): Add hook function for
1369 TARGET_EXPAND_BUILTIN_THREAD_POINTER.
1370 (alpha_expand_builtin_set_thread_pointer): Add hook function for
1371 TARGET_EXPAND_BUILTIN_SET_THREAD_POINTER.
1372 (alpha_fold_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
1373 ALPHA_BUILTIN_SET_THREAD_POINTER cases.
1374 * config/arm/arm.md (get_thread_pointersi): New pattern.
1375 * config/arm/arm-protos.h (arm_load_tp): Add extern declaration.
1376 * config/arm/arm.c (arm_load_tp): Remove static.
1377 (arm_builtins): Remove ARM_BUILTIN_THREAD_POINTER.
1378 (arm_init_tls_builtins): Remove function.
1379 (arm_init_builtins): Remove call to arm_init_tls_builtins().
1380 (arm_expand_builtin): Remove ARM_BUILTIN_THREAD_POINTER case.
1381 * config/mips/mips.md (get_thread_pointer<mode>): New pattern.
1382 * config/mips/mips-protos.h (mips_expand_thread_pointer):
1383 Add extern declaration.
1384 * config/mips/mips.c (mips_expand_thread_pointer):
1385 Renamed from mips_get_tp.
1386 (mips_get_tp): New stub calling mips_expand_thread_pointer.
1387 * config/s390/s390.c (s390_builtin,code_for_builtin_64,
1388 code_for_builtin_31,s390_init_builtins,s390_expand_builtin): Remove.
1389 * config/s390/s390.md (get_tp_64,get_tp_31,set_tp_64,set_tp_31):
1390 Remove.
1391 (get_thread_pointer<mode>,set_thread_pointer<mode>):
1392 New, adapted from removed patterns.
1393 * config/xtensa/xtensa.md (get_thread_pointersi):
1394 Renamed from load_tp.
1395 (set_thread_pointersi): Renamed from set_tp.
1396 * config/xtensa/xtensa.c (xtensa_legitimize_tls_address):
1397 Change gen_load_tp calls to gen_get_thread_pointersi.
1398 (xtensa_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER and
1399 XTENSA_BUILTIN_SET_THREAD_POINTER.
1400 (xtensa_init_builtins): Remove __builtin_thread_pointer,
1401 __builtin_set_thread_pointer machine-specific builtins.
1402 (xtensa_fold_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
1403 XTENSA_BUILTIN_SET_THREAD_POINTER cases.
1404 (xtensa_expand_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
1405 XTENSA_BUILTIN_SET_THREAD_POINTER cases.
1406
0fdce875
MG
14072012-10-11 Marc Glisse <marc.glisse@inria.fr>
1408
1409 * doc/extend.texi (Vector Extensions): C++ improvements.
1410 * doc/generic.texi (LSHIFT_EXPR, RSHIFT_EXPR): Mixed vector-scalar.
1411 (LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, NE_EXPR): Specify
1412 the vector case.
1413 (VEC_COND_EXPR): Document it.
1414
9e2a6301
TG
14152012-10-11 Terry Guo <terry.guo@arm.com>
1416
1417 * config/arm/arm.c (arm_arch6m): New variable to denote armv6-m
1418 architecture.
1419 * config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB
1420 instruction.
1421
81179208
HPN
14222012-10-11 Hans-Peter Nilsson <hp@bitrange.com>
1423
da0fe445 1424 PR target/54373
e2769e90
HPN
1425 * configure.ac (out-of-tree linker .hidden support) Set to "no"
1426 for mmix-knuth-mmixware.
1427 * configure: Regenerate.
1428
56626615
HPN
1429 * configure.ac (gcc_cv_as_comdat_group_group): Default to no.
1430 * configure: Regenerate.
1431
81179208
HPN
1432 * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION): Allow a single
1433 character to quote the VERSION= contents. Sanity-check contents.
1434 * configure.ac ("what linker to use" ld version extraction): Ditto.
1435 * configure: Regenerate.
1436
3cf437d4
SB
14372012-10-10 Segher Boessenkool <segher@kernel.crashing.org>
1438
cf1e4683 1439 * config/rs6000/rs6000.h (PRINT_OPERAND_PUNCT_VALID_P): Delete '.'.
3cf437d4 1440
2de45fb6
JJ
14412012-10-10 Jakub Jelinek <jakub@redhat.com>
1442
1443 PR tree-optimization/54877
1444 * tree-vect-loop.c (vect_is_simple_reduction_1): For MINUS_EXPR
1445 use make_ssa_name instead of copy_ssa_name.
1446
7cb7d208
RB
14472012-10-10 Richard Biener <rguenther@suse.de>
1448
1449 * lto-streamer-in.c (lto_input_location_bitpack): Rename to ...
1450 (lto_input_location): ... this. Kill original.
1451 (input_eh_region): Adjust.
1452 (input_struct_function_base): Likewise.
1453 (lto_read_tree): Likewise.
1454 * lto-streamer-out.c (lto_output_location_bitpack): Rename to ...
1455 (lto_output_location): ... this. Kill original.
1456 (lto_write_tree): Adjust.
1457 (output_eh_region): Likewise.
1458 (output_struct_function_base): Likewise.
cf1e4683 1459 * lto-streamer.c (lto_streamer_hooks_init): Initialize location hooks.
7cb7d208
RB
1460 * lto-streamer.h (lto_input_location): Adjust prototype.
1461 (lto_output_location): Likewise.
1462 * streamer-hooks.h (struct streamer_hooks): Adjust prototype
1463 of input_location and output_location hooks.
1464 (stream_input_location): New define.
1465 (stream_output_location): Likewise.
1466 * tree-streamer-in.c (unpack_ts_block_value_fields): Adjust.
1467 (unpack_value_fields): Likewise.
1468 (streamer_read_tree_bitfields): Likewise.
1469 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
1470 (lto_input_ts_exp_tree_pointers): Likewise.
1471 (lto_input_ts_block_tree_pointers): Likewise.
1472 * tree-streamer-out.c (pack_ts_block_value_fields): Adjust.
1473 (streamer_pack_tree_bitfields): Likewise.
1474 (write_ts_decl_minimal_tree_pointers): Likewise.
1475 (write_ts_exp_tree_pointers): Likewise.
1476 (write_ts_block_tree_pointers): Likewise.
1477 * gimple-streamer-in.c (input_phi): Adjust.
1478 (input_gimple_stmt): Likewise.
1479 * gimple-streamer-out.c (output_phi): Adjust.
1480 (output_gimple_stmt): Likewise.
1481 * tree-streamer.h (streamer_read_tree_bitfields): Adjust prototype.
1482 (streamer_pack_tree_bitfields): Likewise.
1483
b85aed95
MM
14842012-10-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1485
1486 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Fix signed
1487 vs. unsigned warnings by using enum type for function code.
1488 (paired_expand_builtin): Likewise.
1489 (spe_expand_builtin): Likewise.
1490
1491 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Change
1492 builtin mask, target flags masks type to HOST_WIDE_INT in
1493 preparation for growing the number of ISA switches from 31 to 63.
1494
1495 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Make mask type
1496 HOST_WIDE_INT.
1497
1498 * config/rs6000/rs6000.c (struct builtin_description): Make
1499 builtin mask field HOST_WIDE_INT. Make target flags field
1500 HOST_WIDE_INT in preparation for growing the # of ISA switches.
1501 (struct rs6000_builtin_info_type): Likewise.
1502 (struct rs6000_ptt): Likewise.
1503 (rs6000_builtin_mask_calculate): Likewise.
1504 (rs6000_invalid_builtin): Likewise.
1505 (rs6000_builtin_decl): Likewise.
1506 (rs6000_common_init_builtins): Likewise.
1507 (rs6000_darwin_file_start): Likewise.
1508 (rs6000_final_prescan_insn): Likewise.
1509 (rs6000_inner_target_options): Likewise.
1510 (build_target_option_node): Likewise.
1511 (rs6000_function_specific_print): Likewise.
1512 (DEBUG_FMT_W): New format for printing HOST_WIDE_INT in hex.
1513
1514 * config/rs6000/rs6000-protos.h (rs6000_builtin_mask_calculate):
1515 Make target flags, builtin masks arguments/return values
1516 HOST_WIDE_INT in preparation for growing the number of ISA from 31
1517 to 63.
1518 (rs6000_target_modify_macros): Likewise.
1519 (rs6000_target_modify_macros_ptr): Likewise.
1520
1521 * config/rs6000/rs6000.c (DEBUG_FMT_ID): Move "-32s" to a separate
1522 define and change DEBUG_FMT_<x> to use it.
1523 (DEBUG_FMT_D): Likewise.
1524 (DEBUG_FMT_S): Likewise.
1525 (DEBUG_FMT_X): Delete, no longer used.
1526 (DEBUG_FMT_W): Likewise.
1527 (DEBUG_FMT_WX): New debug format for printing options in a
1528 friendly fashion.
1529 (rs6000_debug_reg_global): If -mdebug=reg, print all of the
1530 options in target_flags and target_flags_explicit. Print the
1531 default options for -mcpu=<xxx>, -mtune=<xxx>, and the default
1532 options. Adjust printing out the builtin options.
1533 (rs6000_option_override_internal): Change printing the builtin
1534 options to use rs6000_print_builtin_options.
1535 (rs6000_function_specific_print): Change to use
1536 rs6000_print_isa_options to print ISA flags.
1537 (rs6000_print_options_internal): New function for expanded
1538 -mdebug=reg option printing to print both the ISA options, and the
1539 builtins that are enabled.
cf1e4683 1540 (rs6000_print_isa_options): New function to print the ISA options.
b85aed95
MM
1541 (rs6000_print_builtin_options): New function to print the builtin
1542 functions enabled.
1543
0365ba7c
JJ
15442012-10-10 Jakub Jelinek <jakub@redhat.com>
1545
b9d4cbc7
JJ
1546 PR target/51109
1547 * config/i386/bdver1.md (bdver1-mult): Remove.
1548
a5fdcc3b
JJ
1549 PR middle-end/54879
1550 * combine.c (count_rtxs): Use RTX_BIN_ARITH resp. RTX_COMM_ARITH
1551 instead of '2' resp. 'c' for GET_RTX_CLASS comparisons.
1552
0365ba7c
JJ
1553 PR middle-end/54862
1554 * simplify-rtx.c (simplify_truncation): Compare UINTVAL instead of
1555 INTVAL of second argument with precision resp. op_precision.
1556
f739e97a
DS
15572012-10-10 Dodji Seketeli <dodji@redhat.com>
1558
1559 PR middle-end/54860 - Make sure attributes hash table is created
1560 * attribs.c (register_scoped_attributes): Ensure the attribute
1561 hash table is created.
1562
85e02264
GG
15632012-10-10 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1564
1565 PR target/51109
b9d4cbc7 1566 * config/i386/bdver1.md (bdver1_int): Automaton has been
85e02264
GG
1567 split to reduce state transitions.
1568
176ae843
RB
15692012-10-10 Richard Biener <rguenther@suse.de>
1570
1571 PR middle-end/54876
1572 * ipa-prop.c (prune_expression_for_jf_1): New function.
1573 (prune_expression_for_jf): Clear EXPR_LOCATION for all
1574 sub-expressions as well.
1575
22ac2c2f
AK
15762012-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1577
1578 * config.gcc: Enable zEC12 for with-arch and with-tune
cf1e4683 1579 configure switches.
22ac2c2f
AK
1580 * common/config/s390/s390-common.c (processor_flags_table): Add
1581 zEC12 entry.
1582 * config/s390/2827.md: New file.
1583 * config/s390/s390-opts.h (enum processor_type): Add
1584 PROCESSOR_2827_ZEC12.
1585 * config/s390/s390.h (enum processor_flags): Add PF_ZEC12.
1586 (TARGET_CPU_ZEC12, TARGET_ZEC12): New macro definitions.
1587 * config/s390/s390.c (zEC12_cost): New definition.
1588 (s390_option_override): Set costs for zEC12.
1589 Set parameter defaults for zEC12.
1590 (legitimate_reload_fp_constant_p): Adjust comment.
1591 (preferred_la_operand_p): Adjust comment.
cf1e4683 1592 (s390_expand_insv): Generate insv pattern without CC clobber for zEC12.
22ac2c2f
AK
1593 (s390_adjust_priority): Add zEC12 check.
1594 (s390_issue_rate): Return 2 for zEC12.
1595 (s390_reorg): Enable code optimizations for zEC12.
1596 (s390_sched_reorder): Reorder insns according to OOO attributes.
1597 (s390_get_sched_attrmask): New function.
1598 (s390_sched_score): New function.
1599 (s390_sched_variable_issue): Update s390_sched_state.
1600 (s390_sched_init): Reset s390_sched_state.
1601 (s390_loop_unroll_adjust): Enable for zEC12.
1602 * config/s390/s390.opt: Add zEC12 processor type value.
1603 * config/s390/s390.md: Enable mnemonic attribute.
1604 (attr cpu, cpu_facility): Add zEC12.
1605 Include 2827.md.
1606 ("*insv<mode>_zEC12", "*insv<mode>_zEC12_noshift")
1607 ("*load_and_trap<mode>"): New insn definition.
1608 ("*cmp_and_trap_unsigned_int<mode>"): Add clt and clgt.
1609
f298688c
DM
16102012-10-09 David S. Miller <davem@davemloft.net>
1611
1612 * config/sparc/sparc.md (type attribute): Add new types 'visl'
1613 (VIS logical operation), 'vismv' (VIS move), and 'pdistn'. Rename
1614 'fgm_pdist' to 'pdist'.
1615 (*movsi_insn): Use vismv and visl.
1616 (*movdi_insn_sp64): Likewise.
1617 (*movsf_insn): Likewise.
1618 (*movdf_insn_sp64): Likewise.
1619 (*mov<VM32:mode>_insn): Likewise, use 'fsrc2s' instead of 'fsrc1s'.
cf1e4683
UB
1620 (*mov<VM64:mode>_insn_sp64): Likewise, use 'fsrc2s'
1621 instead of 'fsrc1s'.
1622 (*mov<VM64:mode>_insn_sp32): Likewise, use 'fsrc2s'
1623 instead of 'fsrc1s'.
f298688c
DM
1624 (VIS logical instructions): Mark as visl.
1625 (pdist_vis): Use 'pdist'.
1626 (pditsn<mode>_vis): Use 'pdistn'.
1627 * config/sparc/ultra1_2.md: Adjust for new VIS attribute types.
1628 * config/sparc/ultra3.md: Likewise.
1629 * config/sparc/niagara.md: Likewise.
1630 * config/sparc/niagara2.md: Likewise.
1631 * config/sparc/niagara4.md: Add cpu units "n4_slot2" and
1632 "n4_load_store" for special store scheduling. Use them in load
1633 and store reservations. Integer divide and multiply can only
1634 issue in slot-1. Represent 1-cycle VIS moves and 3-cycle VIS
1635 logic operations.
1636
e368f44f
DC
16372012-10-10 Dehao Chen <dehao@google.com>
1638
1639 * tree-eh.c (lower_try_finally_onedest): Set correct location for
1640 deallocator.
1641 * gimplify.c (gimplify_expr): Set correct location for TRY stmt.
1642
2c62c8ec
OE
16432012-10-10 Oleg Endo <olegendo@gcc.gnu.org>
1644
1645 PR target/52480
1646 * config/sh/sh.md (extv, extzv): Check that operands[3] is zero,
1647 regardless of the endianness.
1648
703c8606
LC
16492012-10-09 Lawrence Crowl <crowl@google.com>
1650
1651 * Makefile.in (fold-const.o): Add depencence on hash-table.h.
1652 (dse.o): Likewise.
1653 (cfg.o): Likewise.
cf1e4683
UB
1654 * fold-const.c (fold_checksum_tree): Change to new
1655 type-safe hash table.
703c8606
LC
1656 * (print_fold_checksum): Likewise.
1657 * cfg.c (var bb_original): Likewise.
1658 * (var bb_copy): Likewise.
1659 * (var loop_copy): Likewise.
1660 * hash-table.h (template hash_table): Constify parameters for find...
1661 and remove_elt... member functions.
cf1e4683
UB
1662 (hash_table::empty) Correct size expression.
1663 (hash_table::clear_slot) Correct deleted entry assignment.
703c8606
LC
1664 * dse.c (var rtx_group_table): Change to new type-safe hash table.
1665
aa4723d7
SB
16662012-10-09 Steven Bosscher <steven@gcc.gnu.org>
1667
1668 * basic-block. (profile_record): New struct, moved from passes.c.
1669 * cfghooks.h (struct cfg_hooks) <account_profile_record>: New hook.
1670 (account_profile_record): New prototype.
1671 * cfghooks.c (account_profile_record): New function.
1672 * tree-cfg.c (gimple_account_profile_record): New function
1673 (gimple_cfg_hooks): Add it.
1674 * cfgrtl.c (rtl_account_profile_record): New function
1675 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Add it.
1676 * passes.c (check_profile_consistency): Simplify. Move IR-dependent
1677 code around using cfghooks machinery.
1678
be06a8b0
OE
16792012-10-09 Oleg Endo <olegendo@gcc.gnu.org>
1680
1681 PR target/54760
1682 * doc/extend.texi (Target Builtins): Add SH built-in section.
1683 Document __builtin_thread_pointer and __builtin_set_thread_pointer.
1684
a5497b12
VK
16852012-10-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1686
1687 PR middle-end/53397
1688 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
1689 Perform non constant step prefetching in inner loop, only
1690 when it is invariant in the entire loop nest.
1691 * tree-ssa-loop-prefetch.c (dump_mem_details): New function to dump
1692 base, step and delta values of memeory reference analysed for
ca427758 1693 prefetching.
a5497b12 1694 * tree-ssa-loop-prefetch.c (dump_mem_ref): Call dump_mem_details
ca427758 1695 to print base, step and delta values of memory reference.
a5497b12
VK
1696 * cfgloop.h (loop_outermost): New function that returns outermost
1697 loop for a given loop in a loop nest.
a5497b12 1698
7b575cfa
RG
16992012-10-09 Richard Guenther <rguenther@suse.de>
1700
1701 PR middle-end/54837
1702 * cfgexpand.c (expand_debug_source_expr): Move checking
1703 code conditional on a found decl_debug_args vector.
1704
58191b2e
RG
17052012-10-09 Richard Guenther <rguenther@suse.de>
1706
1707 * tree-streamer.c (streamer_tree_cache_get): Move ...
1708 * tree-streamer.h (streamer_tree_cache_get): ... here as inline.
1709
73367f92
JH
17102012-10-09 Jan Hubicka <jh@suse.cz>
1711
1712 * loop-unroll.c (unroll_loop_constant_iterations): Add
1713 update of loop->nb_iterations_upper_bound I missed in my previous
1714 commit; use TRUNC_DIV_EXPR instead of FLOOR_DIV_EXPR to divide
1715 iteration count.
1716 (decide_unroll_runtime_iterations): Avoid overflow.
1717 (unroll_loop_runtime_iterations): Use TRUNC_DIV_EXPR instead of
1718 FLOOR_DIV_EXPR to update iteration bounds.
1719 (decide_peel_simple): Avoid integer overflow when deciding
1720 on number of peelings.
1721 (decide_unroll_stupid): Likewise.
1722
0b8c30f9
TB
17232012-10-09 Tobias Burnus <burnus@net-b.de>
1724
1725 * lto-cgraph.c (input_node_opt_summary): Remove unused code.
1726 * lto-opts.c (append_to_collect_gcc_options): Fix condition.
1727 * lto-symtab.c (lto_cgraph_replace_node): Don't xstrdup string
1728 which is passed to fprintf.
1729
5d9de0d0
PC
17302012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
1731
1732 PR c++/54194
1733 * tree.h: Add EXPR_LOC_OR_LOC.
1734
d72fe292
NC
17352012-10-09 Nick Clifton <nickc@redhat.com>
1736
3b867892 1737 PR rtl-optimization/54739
ca427758 1738 * config/mcore/mcore.md: (anddi3, iordi3, xordi3): Delete patterns.
3b867892 1739
d72fe292
NC
1740 PR target/54661
1741 * config/mcore/mcore.c (mcore_output_movedouble): Fix typo.
1742
a212e43f
MG
17432012-10-09 Marc Glisse <marc.glisse@inria.fr>
1744
1745 PR c++/54427
1746 * fold-const.c (fold_binary_loc): Use build_zero_cst instead of
1747 build_int_cst for a potential vector.
1748
69e3f332
UB
17492012-10-08 Uros Bizjak <ubizjak@gmail.com>
1750
1751 * config/i386/atom.md (atom_sse_4): Merge atom_sse_attr attibutes.
1752 (atom_sse_5): Ditto.
1753
b790dea2
MG
17542012-10-08 Marc Glisse <marc.glisse@inria.fr>
1755
1756 PR target/54400
1757 * config/i386/i386.md (type attribute): Add sseadd1.
1758 (unit attribute): Add support for sseadd1.
1759 (memory attribute): Likewise.
1760 * config/i386/athlon.md: Likewise.
1761 * config/i386/core2.md: Likewise.
1762 * config/i386/atom.md: Likewise.
1763 * config/i386/ppro.md: Likewise.
1764 * config/i386/bdver1.md: Likewise.
ca427758 1765 * config/i386/sse.md (sse3_h<plusminus_insn>v2df3): Split into...
b790dea2
MG
1766 (sse3_haddv2df3): ... expander.
1767 (*sse3_haddv2df3): ... define_insn. Accept permuted operands.
1768 (sse3_hsubv2df3): ... define_insn.
1769 (*sse3_haddv2df3_low): New define_insn.
1770 (*sse3_hsubv2df3_low): New define_insn.
1771
e3a8f1fa
JH
17722012-10-08 Jan Hubicka <jh@suse.cz>
1773
1774 * loop-unswitch.c (unswitch_single_loop): Use
1775 estimated_loop_iterations_int to prevent unswitching when loop
1776 is known to not roll.
1777 * tree-ssa-loop-niter.c (estimated_loop_iterations): Do not segfault
1778 when SCEV is not initialized.
1779 (max_loop_iterations): Likewise.
1780 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Use
1781 estimated_loop_iterations_int to prevent unswithcing when
1782 loop is known to not roll.
1783 * tree-scalar-evolution.c (scev_initialized_p): New function.
1784 * tree-scalar-evolution.h (scev_initialized_p): Likewise.
1785 * loop-unroll.c (decide_peel_once_rolling): Use
1786 max_loop_iterations_int.
1787 (unroll_loop_constant_iterations): Update
1788 nb_iterations_upper_bound and nb_iterations_estimate.
1789 (decide_unroll_runtime_iterations): Use
1790 estimated_loop_iterations or max_loop_iterations;
1791 (unroll_loop_runtime_iterations): fix profile updating.
1792 (decide_peel_simple): Use estimated_loop_iterations
1793 and max_loop_iterations.
1794 (decide_unroll_stupid): Use estimated_loop_iterations
1795 ad max_loop_iterations.
1796 * loop-doloop.c (doloop_modify): Use max_loop_iterations_int.
1797 (doloop_optimize): Likewise.
1798 * loop-iv.c (iv_number_of_iterations): Use record_niter_bound.
1799 (find_simple_exit): Likewise.
1800 * cfgloop.h (struct niter_desc): Remove niter_max.
1801
ee84cd37
MP
18022012-10-08 Marek Polacek <polacek@redhat.com>
1803
1804 PR debug/54831
1805 * var-tracking.c (vt_add_function_parameter): Use condition instead
1806 of gcc_assert.
1807
16fdb75f
DC
18082012-10-08 Dehao Chen <dehao@google.com>
1809
1810 * predict.c (predict_loops): Predict for short-circuit conditions.
1811 (predict_extra_loop_exits): New Function.
1812
7b19209f
SB
18132012-10-08 Steven Bosscher <steven@gcc.gnu.org>
1814
1815 * bitmap.h (bitmap_and_into): Update prototype.
1816 * bitmap.c (bitmap_and_into): Return true if the target bitmap
1817 changed, false otherwise.
1818
1819 * df.h (df_dump_insn_problem_function): New function type.
1820 (struct df_problem): Add two functions, to dump just before and
1821 just after an insn.
1822 (DF_RD_PRUNE_DEAD_DEFS): New changable flag.
1823 (df_dump_insn_top, df_dump_insn_bottom): New prototypes.
1824 * df-core (df_dump_region): Use dump_bb.
1825 (df_dump_bb_problem_data): New function.
1826 (df_dump_top, df_dump_bottom): Rewrite using df_dump_bb_problem_data.
1827 (df_dump_insn_problem_data): New function.
1828 (df_dump_insn_top, df_dump_insn_bottom): New functions.
1829 * df-scan.c (problem_SCAN): Add NULL fields for new members.
1830 * df-problems.c (df_rd_local_compute): Ignore hard registers if
1831 DF_NO_HARD_REGS is in effect.
1832 (df_rd_transfer_function): If DF_RD_PRUNE_DEAD_DEFS is in effect,
1833 prune reaching defs using the LR problem.
1834 (df_rd_start_dump): Fix dumping of DEFs map.
1835 (df_rd_dump_defs_set): New function.
1836 (df_rd_top_dump, df_rd_bottom_dump): Use it.
1837 (problem_RD): Add NULL fields for new members.
1838 (problem_LR, problem_LIVE): Likewise.
1839 (df_chain_bb_dump): New function.
1840 (df_chain_top_dump): Dump only for artificial DEFs and USEs,
1841 using df_chain_bb_dump.
1842 (df_chain_bottom_dump): Likewise.
1843 (df_chain_insn_top_dump, df_chain_insn_bottom_dump): New functions.
1844 (problem_CHAIN): Add them as new members.
1845 (problem_WORD_LR, problem_NOTE): Add NULL fields for new members.
1846 (problem_MD): Likewise.
1847 * cfgrtl.c (rtl_dump_bb): Use df_dump_insn_top and df_dump_insn_bottom.
1848 (print_rtl_with_bb): Likewise.
1849
1850 * dce.c (init_dce): Use DF_RD_PRUNE_DEAD_DEFS.
1851 * loop-invariant.c (find_defs): Likewise.
1852 * loop-iv.c (iv_analysis_loop_init): Likewise.
1853 * ree.c (find_and_remove_re): Likewise.
1854 * web.c (web_main): Likewise.
1855
2991392b
JM
18562012-10-08 Jason Merrill <jason@redhat.com>
1857
1858 * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
1859 ASM_WEAKEN_DECL with #if RS6000_WEAK.
1860
91af9dc9
RG
18612012-10-08 Richard Guenther <rguenther@suse.de>
1862
1863 PR tree-optimization/54825
1864 * tree-ssa-sccvn.c (vn_nary_length_from_stmt): Handle BIT_FIELD_REF.
1865 (init_vn_nary_op_from_stmt): Likewise.
1866 * tree-ssa-pre.c (compute_avail): Use vn_nary_op_lookup_stmt.
1867 * tree-ssa-sccvn.h (sizeof_vn_nary_op): Avoid overflow.
1868
585d0dc4
RG
18692012-10-08 Richard Guenther <rguenther@suse.de>
1870
1871 * tree-ssa-pre.c (postorder_num): New global.
1872 (compute_antic): Initialize all blocks and adjust for
1873 generic postorder.
1874 (my_rev_post_order_compute): Remove.
1875 (init_pre): Use inverted_post_order_compute.
1876
975ccf22
BS
18772012-10-08 Bernd Schmidt <bernds@codesourcery.com>
1878
1879 * sched-int.h (schedule_block): Adjust declaration.
1880 * sched-rgn.c (bb_state_array, bb_state): New static variables.
1881 (sched_rgn_init): Initialize them.
1882 (sched_rgn_free): Free them.
1883 (schedule_region): Save scheduling state for future blocks, and
1884 pass such state to schedule_block.
1885 * params.def (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF): New.
1886 * doc/invoke.texi (--param): Document it.
1887 * haifa-sched.c (schedule_block): New arg init_state. Use it to
1888 initialize state if nonnull. All callers changed.
1889 Call advance_one_cycle after scheduling.
1890
1e422fff
GJL
18912012-10-08 Georg-Johann Lay <avr@gjlay.de>
1892
1893 PR target/54854
1894 * doc/invoke.texi (AVR Options): Remove -mshort-calls.
1895 * config/avr/avr.opt (-mshort-calls): Remove option.
1896 * config/avr/avr.h (AVR_HAVE_JMP_CALL): Don't depend on
1897 TARGET_SHORT_CALLS.
1898
f429813d
OE
18992012-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1900
1901 PR target/54685
1902 * config/sh/sh.md (one_cmplsi2): Make insn_and_split. Add manual
69e3f332
UB
1903 combine matching for an insn sequence where a ge:SI pattern
1904 can be used.
f429813d 1905
e28d52cf
DS
19062012-10-08 Dodji Seketeli <dodji@redhat.com>
1907
1908 PR c++/53528 C++11 attribute support
1909 * plugin.h (register_scoped_attributes): Declare new function.
1910 * tree.h (enu attribute_flags::ATTR_FLAG_CXX_11): New flag.
1911 (lookup_scoped_attribute_spec, cxx_11_attribute_p)
1912 (get_attribute_name, get_attribute_namespace): Declare new functions.
1913 (struct attribute_spec): Remove const qualifier from the members.
1914 * tree.c (comp_type_attributes, private_lookup_attribute)
1915 (lookup_ident_attribute, remove_attribute, merge_attribute)
1916 (attribute_hash_list, attribute_list_contained): Use
1917 get_attribute_name.
1918 * attribs.c (decl_attributes): Don't crash on error_mark_node.
1919 Forbid c++11 attributes appertaining to type-specifiers.
1920 (attribute_hash): Remove global variable.
1921 (attributes_table): New global variable.
1922 (find_attribute_namespace, register_scoped_attribute): New static
1923 functions.
1924 (register_scoped_attributes, lookup_scoped_attribute_spec)
1925 (cxx11_attribute_p, get_attribute_name, get_attribute_namespace):
1926 New public functions.
1927 (init_attributes): Register all the GNU attributes into the "gnu"
1928 namespace.
1929 (register_attribute): Use register_scoped_attribute to register
1930 the attribute into the "gnu" namespace.
1931 (lookup_attribute_spec): Use lookup_scoped_attribute_spec to
1932 lookup the attribute in the "gnu" namespace.
1933 (decl_attributes): Use new get_attribute_namespace and
1934 lookup_scoped_attribute_spec to consider attribute namespaces when
1935 looking up attributes. When operating in c++-11 mode, pass flag
1936 ATTR_FLAG_CXX11 to the spec handler.
1937
f70308d4
GJL
19382012-10-08 Georg-Johann Lay <avr@gjlay.de>
1939
1940 PR target/54815
1941 * config/avr/avr.md (*add<mode>3, add<mode>3, addpsi3): Make
1942 constraint alternative "r,0,r" slighly more expensive.
eef26c05 1943 (sub<mode>3, andqi3, andhi3, andpsi3, andsi3): Ditto.
f70308d4
GJL
1944 (iorqi3, iorhi3, iorpsi3, iorsi3): Ditto.
1945 (xorhi3, xorpsi3, xorsi3): Ditto.
1946
fce1e5fb
OE
19472012-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1948
1949 PR target/54760
1950 * config/sh/sh.md (*mov<mode>_gbr_load, *mov<mode>_gbr_store): New
1951 insns and accompanying unnamed splits.
1952 * config/sh/predicates.md (general_movsrc_operand,
1953 general_movdst_operand): Reject GBR addresses.
1954 * config/sh/sh-protos.h (sh_find_equiv_gbr_addr): New declaration.
1955 * config/sh/sh.c (sh_address_cost, sh_legitimate_address_p,
1956 sh_secondary_reload): Handle GBR addresses.
1957 (base_reg_disp): New class.
1958 (sh_find_base_reg_disp, sh_find_equiv_gbr_addr): New functions.
1959
63f2a6a5
HPN
19602012-10-08 Hans-Peter Nilsson <hp@bitrange.com>
1961
1962 * config/mmix/mmix.c (mmix_output_octa): Don't assume
1963 HOST_WIDEST_INT_PRINT_HEX starts with "0x". Instead use
1964 HOST_WIDE_INT_PRINT_HEX_PURE, falling back to
1965 HOST_WIDEST_INT_PRINT_UNSIGNED.
1966
40c5ed5b
RS
19672012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
1968
1969 * machmode.h (GET_MODE_UNIT_PRECISION): New macro.
1970 * simplify-rtx.c (simplify_truncation): New function,
1971 extracted from simplify_subreg and (in small part) from
1972 simplify_unary_operation_1.
1973 (simplify_unary_operation_1) <TRUNCATE>: Use it. Remove sign bit
1974 test for !TRULY_NOOP_TRUNCATION_MODES_P.
1975 (simplify_subreg): Use simplify_truncate for lowpart subregs
1976 where both the inner and outer modes are scalar integers.
1977 * config/mips/mips.c (mips_truncated_op_cost): New function.
1978 (mips_rtx_costs): Adjust test for BADDU.
1979 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
1980
ed901e4c
JH
19812012-10-07 Jan Hubicka <jh@suse.cz>
1982
1983 * ipa-inline-analysis.c (do_estimate_edge_time): Return actual
1984 time spent by the inlined sequence.
1985 (do_estimate_edge_growth): Rename to ...
5cb41028 1986 (do_estimate_edge_time): ... this one; return size of inlined sequence.
ed901e4c
JH
1987 * ipa-inline.h (do_estimate_edge_size): New.
1988 (do_estimate_edge_growth): Remove.
1989 (estimate_edge_size): New function.
1990 (estimate_edge_growth): Use it.
1991
e75f8f79
JH
19922012-10-07 Jan Hubicka <jh@suse.cz>
1993
1994 * lto-cgraph.c (lto_symtab_encoder_new): New parameter FOR_INPUT.
1995 (lto_symtab_encoder_delete): Update.
1996 (lto_symtab_encoder_encode): Update.
1997 (compute_ltrans_boundary): Update.
1998 (input_symtab): Update.
5cb41028 1999 * lto-streamer.h (lto_symtab_encoder_new): Update.
e75f8f79 2000
4670abb0
RS
20012012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
2002
2003 * config/mips/mips-protos.h (mips_split_type): New enum.
2004 (mips_split_64bit_move_p, mips_split_doubleword_move): Delete.
2005 (mips_split_move_p, mips_split_move, mips_split_move_insn_p)
2006 (mips_split_move_insn): Declare.
2007 * config/mips/mips.c (mips_tuning_info): New variable.
2008 (mips_load_store_insns): Use mips_split_move_insn_p instead of
2009 mips_split_64bit_move_p.
2010 (mips_emit_move_or_split, mips_mult_move_p): New functions.
2011 (mips_split_64bit_move_p): Rename to...
2012 (mips_split_move_p): ...this and take a mips_split_type argument.
2013 Generalize to all moves. Call mips_mult_move_p.
2014 (mips_split_doubleword_move): Rename to...
2015 (mips_split_move): ...this and take a mips_split_type argument.
2016 Assert that mips_split_move_p holds.
2017 (mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn):
2018 New functions.
2019 (mips_output_move): Use mips_split_move_p instead of
2020 mips_split_64bit_move_p. Handle MULT $0, $0 moves.
2021 (mips_save_reg): Use mips_emit_move_or_split.
2022 (mips_sim_reset): Assign to curr_state. Call targetm.sched.init
2023 and advance_state.
2024 (mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and
2025 targetm.sched.init_dfa_post_cycle_insn, if defined.
2026 (mips_sim_next_cycle): Assign to curr_state. Use advance_state
2027 instead of state_transition.
2028 (mips_sim_issue_insn): Assign to curr_state. Use
5cb41028 2029 targetm.sched.variable_issue to see how many more insns can be issued.
4670abb0
RS
2030 (mips_seq_time, mips_mult_zero_zero_cost)
2031 (mips_set_fast_mult_zero_zero_p, mips_set_tuning_info)
2032 (mips_expand_to_rtl_hook): New functions.
2033 (TARGET_EXPAND_TO_RTL_HOOK): Define.
2034 * config/mips/mips.md (move_type): Add imul.
2035 (type): Map imul move_types to imul.
2036 (*movdi_32bit, *movti): Add imul alternatives.
2037 Use mips_split_move_insn_p and mips_split_move_insn instead of
2038 mips_split_64bit_move_p and mips_split_doubleword_move in move
2039 splitters.
2040
03d15315
SB
20412012-10-06 Segher Boessenkool <segher@kernel.crashing.org>
2042
2043 * config/rs6000/rs6000.c (print_operand) ['A']: Delete.
2044
a2ca8577
PC
20452012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
2046
2047 PR c++/52764
2048 * ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
2049 __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
2050 * ginclude/stdint-gcc.h: In C++11 unconditionally define
2051 limit and constant macros.
2052
21c278c9
PC
20532012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
2054
2055 PR c++/54249
2056 * ginclude/stddef.h: In C++11 mode declare nullptr_t in the global
2057 namespace.
2058
c2954538
JH
20592012-10-06 Jan Hubicka <jh@suse.cz>
2060
2061 PR lto/53831
2062 PR lto/54776
2063 * lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack.
2064
f16dd822
DC
20652012-10-06 Dehao Chen <dehao@google.com>
2066
2067 PR debug/54826
2068 * gimple-low.c (lower_stmt): Set the block for call args.
2069
37e5402b
JH
20702012-10-06 Jan Hubicka <jh@suse.cz>
2071
2072 * doc/invoke.texi (-fprofile-report): Document.
2073 * common.opt (-fprofile-report): New option.
2074 * toplev.c (finalize): Call dump_profile_report.
2075 * toplev.h (profile_report): Declare.
2076 * passes.c (profile_record): New static var.
2077 (check_profile_consistency): New function.
2078 (dump_profile_record): New function.
2079 (execute_one_ipa_transform_pass): Call check_profile_consistency.
2080 (execute_one_pass): Likewise.
2081
46591697
JH
20822012-10-06 Jan Hubicka <jh@suse.cz>
2083
21c278c9 2084 PR lto/54790
46591697
JH
2085 * lto-streamer.h (lto_symtab_register_decl, lto_symtab_get_resolution,
2086 lto_mark_nothrow_fndecl, lto_fixup_nothrow_decls): Remove.
2087 * lto-symtab.c (lto_symtab_register_decl): Remove.
2088
2aa3b677
AS
20892012-10-06 Andreas Schwab <schwab@linux-m68k.org>
2090
2091 PR rtl-optimization/54739
5cb41028 2092 * config/m68k/m68k.md (anddi3, iordi3, xordi3, one_cmpldi2): Remove.
2aa3b677 2093
7d11d296
OE
20942012-10-06 Oleg Endo <olegendo@gcc.gnu.org>
2095
2096 PR target/54760
2097 * config/sh/sh.md (define_constants): Add UNSPECV_GBR.
2098 (get_thread_pointer, set_thread_pointer): New expanders.
2099 (load_gbr): Rename to store_gbr. Remove GBR_REG use.
2100 (store_gbr): New insn.
2101 * config/sh/sh.c (prepare_move_operands): Use gen_store_gbr instead of
2102 gen_load_gbr in TLS_MODEL_LOCAL_EXEC case.
2103 (sh1_builtin_p): New function.
2104 (signature_args): Add SH_BLTIN_VP.
2105 (bdesc): Add __builtin_thread_pointer and __builtin_set_thread_pointer.
2106
74bf7dbb
JDA
21072012-10-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2108
8f937c18
JDA
2109 PR rtl-optimization/54739
2110 * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
2111 for 32-bit targets. Adjust expanders.
2112
74bf7dbb
JDA
2113 * config/pa/pa.md: Adjust unamed HImode add insn pattern.
2114
6d9e1220
OE
21152012-10-05 Oleg Endo <olegendo@gcc.gnu.org>
2116
2117 * config/sh/sh.c (builtin_description): Add is_enabled member.
2118 (shmedia_builtin_p): New function.
2119 (bdesc): Use shmedia_builtin_p for existing built-ins.
2120 (sh_media_init_builtins, sh_init_builtins): Merge into single function
2121 sh_init_builtins. Add is_enabled checking. Move variable declarations
2122 to where they are actually used.
2123 (sh_media_builtin_decl, sh_builtin_decl): Merge into single function
2124 sh_builtin_decl. Add is_enabled checking.
2125 (sh_expand_builtin): Move variable declarations to where they are
2126 actually used.
2127
878eef4a
JJ
21282012-10-05 Jakub Jelinek <jakub@redhat.com>
2129
94645a02
JJ
2130 * tree-inline.c (expand_call_inline): Move VAR_DECLs with
2131 PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS
2132 into id->block's BLOCK_VARS.
2133
878eef4a 2134 PR debug/54519
5cb41028
UB
2135 * ipa-split.c (split_function): Add debug args and debug source
2136 and normal stmts for args_to_skip which are gimple regs.
2137 * tree-inline.c (copy_debug_stmt): When inlining, adjust source
2138 debug bind stmts to debug binds of corresponding DEBUG_EXPR_DECL.
878eef4a 2139
870128f2
GJL
21402012-10-05 Georg-Johann Lay <avr@gjlay.de>
2141
2142 * config/avr/avr.md: Fix indentations of insn C snippets.
2143
4f60bf18
RG
21442012-10-05 Richard Guenther <rguenther@suse.de>
2145
2146 PR middle-end/54811
2147 * tree-ssa-live.c (clear_unused_block_pointer_1): Look at
2148 DECL_DEBUG_EXPR again.
2149
bfc61b40
JH
21502012-10-05 Jan Hubicka <jh@suse.cz>
2151 Jakub Jelinek <jakub@redhat.com>
2152
2153 PR tree-optimization/33763
2154 * tree-inline.c (expand_call_inline): Silently ignore always_inline
2155 attribute for redefined extern inline functions.
2156
9ed313cc
JH
21572012-10-04 Jan Hubicka <jh@suse.cz>
2158
2159 * tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove.
2160 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here.
2161 (vect_analyze_loop_operations): Use loop count estimate to rule out
2162 unprofitable vectorization.
5cb41028
UB
2163 (vect_estimate_min_profitable_iters): Return
2164 ret_min_profitable_estimate.
9ed313cc 2165
440d3472
JJ
21662012-10-05 Jakub Jelinek <jakub@redhat.com>
2167
2168 PR tree-optimization/54810
2169 * tree-vrp.c (register_edge_assert_for_2): Handle
2170 NAME = (unsigned) NAME2; if (NAME cmp CST) for
2171 narrowing casts to unsigned integral type like
2172 NAME = NAME2 & CST2; if (NAME cmp CST) where CST2
2173 is the max value of the unsigned integral type.
2174
358a11bb
JL
21752012-10-04 Jeff Law <law@redhat.com>
2176
7b19209f 2177 PR target/50356
358a11bb
JL
2178 * config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.
2179
42adab07
JM
21802012-10-04 Jason Merrill <jason@redhat.com>
2181
2182 * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
2183 ASM_WEAKEN_DECL with #if RS6000_WEAK.
2184
35057bf7
BS
21852012-10-04 Basile Starynkevitch <basile@starynkevitch.net>
2186
7b19209f
SB
2187 * gengtype.c (walk_type): Emit mark_hook when inside a
2188 struct of a union member.
35057bf7 2189
af2e10ee
GJL
21902012-10-04 Georg-Johann Lay <avr@gjlay.de>
2191
2192 * config/avr/predicates.md (flash_operand): New predicate.
2193 * config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
2194 of memory_operand.
2195
fc429b48
TB
21962012-10-04 Tobias Burnus <burnus@net-b.de>
2197
2198 * gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
2199 do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks.
2200 (do_spec_1): Ditto, fix out-of-bound access.
2201 * opts.c (common_handle_option): Plug memleak.
2202
b674cffe
JM
22032012-10-04 Jason Merrill <jason@redhat.com>
2204
2205 * config/darwin.c (darwin_assemble_visibility): Treat
2206 VISIBILITY_INTERNAL as hidden.
2207
2208 * config/darwin-c.c (find_subframework_file): Add missing const.
2209 (framework_construct_pathname): Likewise.
2210
f591bd8f
FW
22112012-10-04 Florian Weimer <fweimer@redhat.com>
2212
2213 * doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
2214 GCC error.
2215
5c1eb617
RG
22162012-10-04 Richard Guenther <rguenther@suse.de>
2217
678771ad
RG
2218 PR middle-end/54735
2219 * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
2220 cleaning up the CFG.
2221
22222012-10-04 Richard Guenther <rguenther@suse.de>
2223
2224 PR lto/47799
5c1eb617
RG
2225 * tree-streamer-out.c (write_ts_block_tree_pointers): For
2226 inlined functions outer scopes write the ultimate origin
2227 as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.
2228 Do not stream the fragment chains.
2229 * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.
2230 * dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.
2231 (dwarf2out_decl): Always output DECL_ABSTRACT function decls.
2232
3b78de56
AC
22332012-10-04 Arnaud Charlet <charlet@adacore.com>
2234
2235 * dumpfile.h, dumpfile.c: Remove TDI_ada.
2236
dee7f32e
YR
22372012-10-04 Yuri Rumyantsev <ysrumyan@gmail.com>
2238
2239 * config/i386/i386.c (ix86_dep_by_shift_count_body) : Add
2240 check on reload_completed since it can be invoked before
2241 register allocation phase in pre-reload schedule.
5cb41028
UB
2242 (ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for
2243 pre-reload schedule to save compile time.
2244 (ix86_sched_reorder) : Do not perform ready list reordering for
2245 pre-reload schedule to save compile time.
dee7f32e
YR
2246 (insn_is_function_arg) : New function. Returns true if lhs of insn is
2247 HW function argument register.
2248 (add_parameter_dependencies) : New function. Add output dependencies
2249 for chain of function adjacent arguments if only there is a move to
2250 likely spilled HW registers. Return first argument if at least one
2251 dependence was added or NULL otherwise.
2252 (avoid_func_arg_motion) : New function. Add output or anti dependency
2253 from insn to first_arg to restrict code motion.
2254 (add_dependee_for_func_arg) : New function. Avoid cross block motion of
2255 function argument through adding dependency from the first non-jump
2256 insn in bb.
5cb41028
UB
2257 (ix86_dependencies_evaluation_hook) : New function. Hook for
2258 pre-reload schedule: avoid motion of function arguments passed in
2259 likely spilled HW registers.
2260 (ix86_adjust_priority) : New function. Hook for pre-reload schedule:
2261 set priority of moves from likely spilled HW registers to maximum to
2262 schedule them as soon as possible.
2263 (ix86_sched_init_global): Do not perform multipass scheduling for
2264 pre-reload schedule to save compile time.
dee7f32e 2265
3d47a53a
UB
22662012-10-04 Uros Bizjak <ubizjak@gmail.com>
2267
2268 * configure.ac (noexception_flags): Add -fasynchronous-unwind-tables.
2269 * configure: Regenerate.
2270
7d9f9bd1
KK
22712012-10-04 Kaz Kojima <kkojima@gcc.gnu.org>
2272
2273 * config/sh/sh.c (sh_can_use_simple_return_p): Return false for
2274 SHmedia and SHcompact using call cookie.
2275 * config/sh/sh.md (epilogue): Emit non-inlined return insns for
2276 SHmedia and SHcompact using call cookie.
2277
91ba65f2
OE
22782012-10-03 Oleg Endo <olegendo@gcc.gnu.org>
2279
2280 PR target/51244
2281 * config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying
2282 unnamed split patterns.
2283
9597375a
OE
22842012-10-03 Oleg Endo <olegendo@gcc.gnu.org>
2285
2286 PR target/50457
2287 * config/sh/sh.c (parse_validate_atomic_model_option): Handle name
2288 strings in sh_atomic_model.
2289 * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation
2290 to ...
2291 * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function.
2292 Add __SH1__ and __SH2__ defines. Add __SH_ATOMIC_MODEL_*__ define.
2293 * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name
2294 variables.
2295 (sh_cpu_cpp_builtins): Declare new function.
2296
846b158c
DC
22972012-10-03 Dehao Chen <dehao@google.com>
2298
2299 PR middle-end/54782
2300 * tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.
2301
9ce3692a 23022012-10-03 Vladimir Makarov <vmakarov@redhat.com>
dfc0f53a
VM
2303
2304 * reginfo.c (max_regno_since_last_resize): New.
2305 (reg_preferred_class, reg_alternate_class): Add assert.
2306 (allocate_reg_info): Initialize allocated reg info.
2307 (resize_reg_info): Make bigger reg_info and initialize new memory.
2308 (reginfo_init): Initialize max_regno_since_last_resize.
2309 (setup_reg_classes): Change assert.
2310
953ac966
AN
23112012-10-03 Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
2312
af2e10ee 2313 * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
953ac966
AN
2314 in SSE and YMM state support check for -march=native.
2315
7fb80860
NC
23162012-10-03 Nick Clifton <nickc@redhat.com>
2317
2318 * config/rx/rx.c (struct decl_chain): New local structure.
2319 (warned_decls): New local variable. Contains a stack of decls for
2320 which warnings have been issued.
2321 (add_warned_decl): Adds a decl to the stack.
2322 (already_warned): Returns true if a given decl is on the stack.
2323 (rx_set_current_function): Issue a warning if multiple fast
2324 interrupt handlers are defined.
2325 * config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option.
2326 * doc/invoke.texi: Document the option.
2327
55d5c6af 23282012-10-03 Mark Kettenis <kettenis@openbsd.org>
af9e6b74
MK
2329
2330 * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
2331 default_use_cxa_atexit to yes.
7fb80860 2332
8b8de8b6
JJ
23332012-10-03 Jakub Jelinek <jakub@redhat.com>
2334
2335 PR rtl-optimization/54792
2336 * sched-deps.c (find_modifiable_mems): Scan also TAIL insn.
2337
d8ea0885
L
23382012-10-02 H.J. Lu <hongjiu.lu@intel.com>
2339
2340 PR target/54785
2341 * doc/invoke.texi: Document -mprefer-avx128.
2342
fa607dda
AP
23432012-10-02 Andrew Pinski <apinski@cavium.com>
2344
2345 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
2346 Don't optimize a truncate of a mem if it is a vector mode.
2347
e9f950ba
AO
23482012-10-02 Alexandre Oliva <aoliva@redhat.com>
2349
2350 PR debug/54551
2351 * Makefile.in (VALTRACK_H): Add hash-table.h.
2352 * valtrack.h: Include hash-table.h.
2353 (struct dead_debug_global_entry): New.
2354 (struct dead_debug_hash_descr): New.
2355 (struct dead_debug_global): New.
2356 (struct dead_debug): Rename to...
2357 (struct dead_debug_local): ... this. Adjust all uses.
2358 (dead_debug_global_init, dead_debug_global_finish): New.
2359 (dead_debug_init): Rename to...
2360 (dead_debug_local_init): ... this. Adjust all callers.
2361 (dead_debug_finish): Rename to...
2362 (dead_debug_local_finish): ... this. Adjust all callers.
2363 * valtrack.c (dead_debug_global_init): New.
2364 (dead_debug_init): Rename to...
2365 (dead_debug_local_init): ... this. Take global parameter.
2366 Save it and initialize used bitmap from it.
2367 (dead_debug_global_find, dead_debug_global_insert): New.
2368 (dead_debug_global_replace_temp): New.
2369 (dead_debug_promote_uses): New.
2370 (dead_debug_finish): Rename to...
2371 (dead_debug_local_finish): ... this. Promote remaining uses.
2372 (dead_debug_global_finish): New.
2373 (dead_debug_add): Try to replace global temps first.
2374 (dead_debug_insert_temp): Support global replacements.
2375 * dce.c (word_dce_process_block, dce_process_block): Add
2376 global_debug parameter. Pass it on.
2377 (fast_dce): Initialize, pass on and finalize global_debug.
2378 * df-problems.c (df_set_unused_notes_for_mw): Adjusted.
2379 (df_create_unused_notes, df_note_bb_compute): Likewise.
2380 (df_note_compute): Justify local-only dead debug analysis.
2381
58b88be9
AO
23822012-10-02 Alexandre Oliva <aoliva@redhat.com>
2383
2384 PR debug/53135
2385 * dwarf2out.c (value_format): Use block4 for dw_val_class_loc
2386 when needed.
2387
75a5b7dd
AO
23882012-10-02 Alexandre Oliva <aoliva@redhat.com>
2389
2390 PR debug/54177
2391 * var-tracking.c (vt_add_function_parameter): Bail if
2392 var_lowpart fails.
2393
a91529c4
L
23942012-10-02 H.J. Lu <hongjiu.lu@intel.com>
2395
2396 PR target/54741
af2e10ee 2397 * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
a91529c4
L
2398 (XSTATE_FP): Likewise.
2399 (XSTATE_SSE): Likewise.
2400 (XSTATE_YMM): Likewise.
2401 (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
2402 SSE and YMM states aren't supported.
2403
dccb154f
RS
24042012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
2405
2406 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
2407 (*baddu_si): ...this new pattern.
2408
a2c19e93
RS
24092012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
2410
2411 * ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
2412 (ira_useful_class_mode_regs): New macro.
2413 * ira.c (clarify_prohibited_class_mode_regs): Set up
2414 ira_useful_class_mode_regs.
2415 * ira-color.c (setup_profitable_hard_regs): Use it to initialise
2416 profitable_hard_regs.
2417
c9d74da6
RS
24182012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
2419
2420 * ira.h (target_ira): Add x_ira_class_singleton.
2421 (ira_class_singleton): New macro.
2422 * ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton.
2423 * ira-build.c (update_conflict_hard_reg_costs): Use
2424 ira_class_singleton to check for classes with a single
2425 allocatable register.
2426 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise.
2427 (single_reg_class): Likewise. When more than one class is specified,
2428 check whether they have the same singleton register.
2429 (process_single_reg_class_operands): Require single_reg_class
2430 to return NO_REGS or a class with a single allocatable register.
2431 Obtain that register from ira_class_singleton.
2432
59a2dfe8
MM
24332012-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2434
2435 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
2436 -mcpu=<xxx> is not specified and the compiler is not configured
2437 using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to
2438 set the initial options.
2439
e34842c6
SS
24402012-10-02 Sharad Singhai <singhai@google.com>
2441
2442 PR testsuite/54772
2443 * tree-vect-stmts.c (vectorizable_operation): Add missing return.
2444
dd2c8bfc
DE
24452012-10-02 David Edelsohn <dje.gcc@gmail.com>
2446
2447 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
2448 set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
2449 (rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE.
2450
13396b6e
JJ
24512012-10-02 Jakub Jelinek <jakub@redhat.com>
2452
2453 PR tree-optimization/54713
2454 * expr.c (categorize_ctor_elements_1): Don't assume purpose is
2455 non-NULL.
2456 * tree-cfg.c (verify_gimple_assign_single): Add verification of
2457 vector CONSTRUCTORs.
2458 * tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
2459 CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
2460 and don't check index.
3d47a53a
UB
2461 * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor
2462 elements first if their type isn't compatible with vector element type.
13396b6e 2463
0f1e8842
EB
24642012-10-02 Eric Botcazou <ebotcazou@adacore.com>
2465
2466 * tree.h (DECL_NONLOCAL_FRAME): New macro.
2467 * tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
2468 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
2469 DECL_NONLOCAL_FRAME flag.
2470 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
2471 DECL_NONLOCAL_FRAME flag.
2472
70a6aea0
MG
24732012-10-02 Marc Glisse <marc.glisse@inria.fr>
2474
2475 * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
2476 boolean_type_node for vectors.
2477
e518aa08
MM
24782012-10-01 Michael Meissner <meissner@linux.vnet.ibm.com>
2479
2480 * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
dd2c8bfc 2481 (rs6000_density_test): Rework to accommodate 09-30 change by
faf86a02 2482 Sharad Singhai.
e518aa08
MM
2483
2484 * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
2485
84df911b
DC
24862012-10-01 Dehao Chen <dehao@google.com>
2487
2488 PR middle-end/54759
0f1e8842 2489 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
84df911b
DC
2490 LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
2491 (slpeel_tree_peel_loop_to_edge): Likewise.
0f1e8842 2492 * tree-vectorizer.c (vectorize_loops): Likewise.
84df911b 2493
cd8b6dc5
AM
24942012-10-01 Andrew MacLeod <amacleod@redhat.com>
2495
2496 PR target/54087
2497 * optabs.c (expand_atomic_fetch_op_no_fallback): New. Factored code
2498 from expand_atomic_fetch_op.
2499 (expand_atomic_fetch_op): Try atomic_{add|sub} operations in terms of
2500 the other one if direct opcode fails.
2501
992103ad
UB
25022012-10-01 Uros Bizjak <ubizjak@gmail.com>
2503
2504 PR rtl-optimization/54457
2505 * simplify-rtx.c (simplify_subreg):
2506 Simplify (subreg:M (op:N ((x:N) (y:N)), 0)
2507 to (op:M (subreg:M (x:N) 0) (subreg:M (x:N) 0)), where
2508 the outer subreg is effectively a truncation to the original mode M.
2509
4f395642
RG
25102012-10-01 Richard Guenther <rguenther@suse.de>
2511
2512 * builtins.def (ATTR_MATHFN_FPROUNDING): Do not use no-vops
2513 with -frounding-math.
2514 * builtin-attrs.def (ATTR_PURE_NOTHROW_NOVOPS_LIST): Remove.
2515 (ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST): Likewise.
2516
1fc1ef37
EB
25172012-10-01 Eric Botcazou <ebotcazou@adacore.com>
2518
2519 * tree.h (copy_mem_ref_info): Delete.
2520 * tree-ssa-address.c (copy_mem_ref_info): Likewise.
2521 (maybe_fold_tmr): Copy flags manually.
2522 * tree-ssa-loop-im.c (simple_mem_ref_in_stmt): Rewrite.
2523
5f6e1c55
MG
25242012-10-01 Marc Glisse <marc.glisse@inria.fr>
2525
2526 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
2527 Detect the identity.
2528 <VEC_CONCAT>: Handle VEC_SELECTs from the same vector.
2529
7bd76b9c
OE
25302012-10-01 Oleg Endo <olegendo@gcc.gnu.org>
2531
2532 PR target/50457
2533 * config/sh/sh.opt (matomic-model): New option.
faf86a02
UB
2534 (msoft-atomic): Mark as deprecated and alias to
2535 matomic-model=soft-gusa.
7bd76b9c
OE
2536 (mhard-atomic): Delete.
2537 * config/sh/predicates.md (gbr_displacement): New predicate.
2538 * config/sh/sh-protos.h (sh_atomic_model): New struct.
2539 (selected_atomic_model): New declaration.
2540 (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, TARGET_ATOMIC_SOFT_GUSA,
2541 TARGET_ATOMIC_HARD_LLCS, TARGET_ATOMIC_SOFT_TCB,
2542 TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX, TARGET_ATOMIC_SOFT_IMASK):
2543 New macros.
2544 * config/sh/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Adapt setting to
2545 default atomic model.
2546 * config/sh/sh.c (selected_atomic_model_): New global variable.
2547 (selected_atomic_model, parse_validate_atomic_model_option): New
2548 functions.
2549 (sh_option_override): Replace atomic selection checks with call to
2550 parse_validate_atomic_model_option.
2551 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
2552 UNSUPPORTED_HARD_ATOMIC_CPU): Delete.
2553 (DRIVER_SELF_SPECS): Remove atomic checks.
2554 config/sh/sync.md: Update documentation comments.
2555 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
2556 atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
2557 atomic_<fetchop_name>_fetch<mode>, atomic_nand_fetch<mode>): Use
2558 TARGET_ATOMIC_ANY as condition. Add TARGET_ATOMIC_STRICT check for
2559 SH4A case. Handle new TARGET_ATOMIC_SOFT_TCB and
2560 TARGET_ATOMIC_SOFT_IMASK cases.
2561 (atomic_test_and_set): Handle new TARGET_ATOMIC_SOFT_TCB and
2562 TARGET_ATOMIC_SOFT_IMASK cases.
2563 (atomic_compare_and_swapsi_hard, atomic_exchangesi_hard,
2564 atomic_fetch_<fetchop_name>si_hard, atomic_fetch_nandsi_hard,
2565 atomic_<fetchop_name>_fetchsi_hard, atomic_nand_fetchsi_hard):
2566 Add TARGET_ATOMIC_STRICT check.
2567 (atomic_compare_and_swap<mode>_hard, atomic_exchange<mode>_hard,
2568 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nand<mode>_hard,
2569 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetch<mode>_hard,
2570 atomic_test_and_set_hard): Use TARGET_ATOMIC_HARD_LLCS condition.
2571 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
2572 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
2573 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
2574 atomic_test_and_set_soft): Append _gusa to the insn names and use
2575 TARGET_ATOMIC_SOFT_GUSA as condition.
faf86a02
UB
2576 (atomic_compare_and_swap<mode>_soft_tcb,
2577 atomic_exchange<mode>_soft_tcb,
7bd76b9c
OE
2578 atomic_fetch_<fetchop_name><mode>_soft_tcb,
2579 atomic_fetch_nand<mode>_soft_tcb,
2580 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
2581 atomic_nand_fetch<mode>_soft_tcb, atomic_test_and_set_soft_tcb):
2582 New insns.
2583 (atomic_compare_and_swap<mode>_soft_imask,
2584 atomic_exchange<mode>_soft_imask,
2585 atomic_fetch_<fetchop_name><mode>_soft_imask,
2586 atomic_fetch_nand<mode>_soft_imask,
2587 atomic_<fetchop_name>_fetch<mode>_soft_imask,
2588 atomic_nand_fetch<mode>_soft_imask, atomic_test_and_set_soft_imask):
2589 New insns.
2590 * doc/invoke.texi (SH Options): Document new matomic-model option.
2591 Remove msoft-atomic and mhard-atomic options.
2592
f686b370
AK
25932012-10-01 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2594
2595 PR target/54746
2596 * config/s390/s390.c (s390_option_override): Add missing break.
2597
b5f47924
SS
25982012-09-30 Sharad Singhai <singhai@google.com>
2599
2600 * dumpfile.c: New file with parts moved from tree-dump.c.
2601 (pflags): New variable.
2602 (alt_flags): Ditto.
2603 (alt_dump_file): Ditto.
2604 (dump_files): Update to include additional fields.
2605 (struct dump_option_value_info): Add additional entries.
2606 (get_dump_file_name): Use command line filename if available.
2607 (dump_open_alternate_stream): New function.
2608 (dump_loc): Ditto.
2609 (dump_gimple_stmt): Ditto.
2610 (dump_gimple_stmt_loc): Ditto.
2611 (dump_generic_expr): Ditto.
2612 (dump_generic_expr_loc): Ditto.
2613 (dump_printf): Ditto.
2614 (dump_printf_loc): Ditto.
2615 (dump_start): Ditto.
2616 (dump_finish): Ditto.
2617 (dump_begin): Ditto.
2618 (dump_enabled_p): Return true if either of the dump types is enabled.
faf86a02
UB
2619 (dump_initialized_p): Return true if either type of dump is
2620 initialized.
b5f47924
SS
2621 (dump_end): Do not close standard streams.
2622 (dump_enable_all): Handle filenames for regular dumps.
2623 (dump_switch_p_1): Handle command-line dump filenames.
2624 (opt_info_enable_all): New function.
2625 (opt_info_switch_p_1): Ditto.
2626 (opt_info_switch_p): Ditto.
2627 (dump_kind_p): Ditto.
2628 (dump_basic_block): Ditto.
2629 (dump_combine_total_stats): Ditto.
2630 (dump_remap_tree_vectorizer_verbose): Ditto.
2631 * gimple-pretty-print.h: Rename dump_gimple_stmt to
2632 pp_gimple_stmt_1. All callers updated.
2633
78c60e3d
SS
26342012-09-30 Sharad Singhai <singhai@google.com>
2635
2636 * doc/invoke.texi: Add documentation for the new -fopt-info option.
2637 * tree-dump.c: Move general dump file related functionality into
2638 dumpfile.c. Remove unneeded headers.
2639 * tree-dump.h: Move function declarations into dumpfile.h.
2640 * dumpfile.h: Include "line-map.h". Add defines for MSG flags.
2641 (struct dump_file_info): Move here from tree-dump.c. Rename flags
2642 to pflags, state to pstate, stream to pstream, filename to
2643 pfilename. All callers updated. Add alt_flags, alt_state,
2644 alt_filenmae, alt_stream.
2645 * tree-vectorizer.c: Include "dumpfile.h". Remove vect_dump.
2646 (vect_set_dump_settings): Remove.
2647 (vect_print_dump_info): Ditto.
2648 * tree-vectorizer.h: Remove declaration of vect_dump and
2649 vect_print_dump_info.
2650 * tree-vect-loop.c: Include "dumpfile.h". Use new dump style.
2651 * tree-vect-data-refs.c: Ditto.
2652 * tree-vect-stmts.c: Ditto.
2653 * tree-vect-slp.c: Ditto.
2654 * tree-vect-patterns.c: Ditto.
2655 * tree-vect-loop-manip.c: Ditto.
78c60e3d
SS
2656 * opts.c (vect_set_verbosity_level): Remove.
2657 (common_handle_option): Handle -fopt-info flag. Deprecate
2658 -ftree-vectorizer-verbose.
2659 * tree-parloops.c (gather_scalar_reductions): Remove reference to
2660 vect_dump.
2661 * flag-types.h: Remove vect_verbosity_levels.
2662 * common.opt: Add -fopt-info. Deprecate -ftree-vectorizer-verbose.
2663 * opts-global.c (dump_remap_tree_vectorizer_verbose): New function.
2664 (handle_common_deferred_options): Handle -fopt-info and
2665 -ftree-vectorizer-verbose.
2666 * Makefile.in: Add dumpfile.o.
2667 (tree-dump.o): Update dependencies.
2668 (tree-vect-loop.o): Ditto.
2669 (tree-vect-loop-manip.o): Ditto.
2670 (tree-vect-slp.o): Ditto.
2671 (tree-vect-stmts.o): Ditto.
2672 (tree-vectorizer.o): Ditto.
2673 (opts.o): Ditto.
2674 * passes.c (finish_optimization_passes): Instead of using
2675 dump_begin/dump_end, use dump_start/dump_finish. Do not use dump_file.
2676 (pass_init_dump_file): Ditto.
2677
4b4de898
JR
26782012-09-30 Joern Rennecke <joern.rennecke@embecosm.com>
2679
2680 PR rtl-optimization/38449:
2681 * hooks.c (hook_bool_const_rtx_const_rtx_true): New function.
2682 * hooks.h (hook_bool_const_rtx_const_rtx_true): Declare.
2683 * target.def: Merge in definitions and documentation for
2684 TARGET_CAN_FOLLOW_JUMP.
2685 * doc/tm.texi.in: Add documentation locations for the above.
2686 * doc/tm.texi: Regenerate.
2687 * reorg.c (follow_jumps): New parameters jump and crossing.
2688 Changed all callers.
2689
b7dcf38f
EB
26902012-09-30 Eric Botcazou <ebotcazou@adacore.com>
2691
2692 * reorg.c (relax_delay_slots): Use delay_insn consistently.
2693
2694 * config/sparc/sparc.c (gen_stack_pointer_dec): Delete.
2695 (sparc_expand_epilogue): Use gen_stack_pointer_inc and adjust.
2696 (sparc_flat_expand_epilogue): Likewise.
2697 (emit_and_preserve): Likewise.
2698 (sparc_fold_builtin): Fix thinko in latest change.
2699
481f83c7
AS
27002012-09-30 Andreas Schwab <schwab@linux-m68k.org>
2701
2702 * config/m68k/m68k.md: Add names to bitfield insert and extract
2703 insns.
2704 (*insv_8_16_reg): Remove constraints and conditions that assume
2705 that operand 0 could be a MEM.
2706 (*extzv_8_16_reg, *extv_8_16_reg): Likewise, for operand 1.
2707
6e73e84b
JH
27082012-09-30 Jan Hubicka <jh@suse.cz>
2709
2710 * cfgloop.c (scale_loop_profile): Move to...
2711 * cfgloopmanip.c (scale_loop_profile): .. here; use
2712 scale_loop_frequencies.
2713 (loopify): Use RDIV.
2714
245ef160
JH
27152012-09-28 Jan Hubicka <jh@suse.cz>
2716
2717 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.
2718
32d55567
JH
27192012-09-28 Jan Hubicka <jh@suse.cz>
2720
2721 * function.c (dup_block_and_redirect): Update profile.
2722
252a969e
AT
27232012-09-29 Andreas Tobler <andreast@fgznet.ch>
2724
2725 * config.gcc: Replace 'host' with 'target' when configuring for
2726 powerpc64*-*-freebsd.
2727
ae22ac3c
MG
27282012-09-29 Marc Glisse <marc.glisse@inria.fr>
2729
2730 * tree.c (truth_type_for): New function.
2731 * tree.h (truth_type_for): Declare.
2732 * gimple-fold.c (and_comparisons_1): Call it.
2733 (or_comparisons_1): Likewise.
2734 * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
2735 boolean_type_node for vectors.
2736
e78410bf
JH
27372012-09-28 Jan Hubicka <jh@suse.cz>
2738
2739 * basic-block.h (RDIV): Define.
2740 (EDGE_FREQUENCY): Simplify.
2741 (check_probability, combine_probabilities, apply_probability,
2742 inverse_probability): New.
2743 * cfgloop.c (scale_loop_profile): New function.
2744 * cfgloop.h (scale_loop_profile): Declare.
2745 (slpeel_add_loop_guard): Add probability parameter.
2746 (set_prologue_iterations): Add probability parameter.
2747 (slpeel_tree_peel_loop_to_edge): Add bound1 and bound2 parameters;
2748 update probabilities correctly.
2749 (vect_do_peeling_for_alignment, vect_gen_niters_for_prolog_loop): New.
2750
0380c51f
BS
27512012-09-20 Bernd Schmidt <bernds@codesourcery.com>
2752
2753 PR bootstrap/54688
2754 * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take
2755 STACK_GROWS_DOWNWARD into account.
2756
4a2c20cc
JJ
27572012-09-28 Jakub Jelinek <jakub@redhat.com>
2758
42bace41
JJ
2759 PR target/54716
2760 * config/i386/predicates.md (nonimmediate_or_const_vector_operand):
2761 New predicate.
2762 * config/i386/i386.c (ix86_expand_vector_logical_operator): New
2763 function.
2764 * config/i386/i386-protos.h (ix86_expand_vector_logical_operator): New
2765 prototype.
2766 * config/i386/sse.md (<code><mode>3 VI logic): Use it.
2767
4a2c20cc
JJ
2768 PR tree-optimization/54713
2769 * fold-const.c (vec_cst_ctor_to_array): Give up if vector CONSTRUCTOR
2770 has vector elements.
2771 (fold_ternary_loc) <case BIT_FIELD_REF>: Likewise.
2772 * tree-vect-generic.c (vector_element): Don't rely on CONSTRUCTOR elts
2773 indexes. Use BIT_FIELD_REF if CONSTRUCTOR has vector elements.
2774 (lower_vec_perm): Use NULL_TREE CONSTRUCTOR indexes.
2775
1a910f8f
GJL
27762012-09-28 Georg-Johann Lay <avr@gjlay.de>
2777
2778 * config/avr/avr.md (adjust_len): Add lpm.
2779 (reload_in<mode>): Use avr_out_lpm for output. Use "lpm" for
2780 adjust_len.
2781 * config/avr/avr-protos.h (avr_out_lpm): New prototype.
2782 * config/avr/avr.c (avr_out_lpm): Make global.
2783 (adjust_insn_length): Handle ADJUST_LEN_LPM.
2784
9aef8e95
RG
27852012-09-28 Richard Guenther <rguenther@suse.de>
2786
2787 PR lto/47799
2788 * lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global.
2789 (lto_output_tree_ref): Handle references to them.
2790 (output_function): Do not output function arguments again.
2791 * lto-streamer-in.c (input_function): Do not input arguments
2792 again, nor overwrite them.
2793
b8dbdb12
RG
27942012-09-28 Richard Guenther <rguenther@suse.de>
2795
2796 * cgraph.h (symtab_node_base): Re-order and pack fields.
2797
9ee9ccb9
GJL
27982012-09-28 Georg-Johann Lay <avr@gjlay.de>
2799
2800 * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.
2801
3fd1e31d
GJL
28022012-09-28 Georg-Johann Lay <avr@gjlay.de>
2803
2804 PR rtl-optimization/52543
2805 * config/avr/avr.c (avr_mode_dependent_address_p): Return true for
2806 all non-generic address spaces.
2807 (TARGET_SECONDARY_RELOAD): New hook define to...
2808 (avr_secondary_reload): ...this new static function.
2809 * config/avr/avr.md (reload_in<mode>): New insns.
2810
2811 Undo r185605 (mostly):
2812 * config/avr/avr-protos.h (avr_load_lpm): Remove.
992103ad
UB
2813 * config/avr/avr.c (avr_load_libgcc_p): Don't restrict to __flash
2814 loads.
3fd1e31d
GJL
2815 (avr_out_lpm): Also handle loads > 1 byte.
2816 (avr_load_lpm): Remove.
2817 (avr_find_unused_d_reg): New static function.
2818 (avr_out_lpm_no_lpmx): New static function.
2819 (adjust_insn_length): Remove ADJUST_LEN_LOAD_LPM.
2820 * config/avr/avr.md (unspec): Remove UNSPEC_LPM.
2821 (load_<mode>_libgcc): Use MEM instead of UNSPEC_LPM.
2822 (load_<mode>, load_<mode>_clobber): Remove.
2823 (mov<mode>): For multi-byte move from non-generic
2824 16-bit address spaces: Expand to *mov<mode> again.
2825 (load<mode>_libgcc): New expander.
2826 (split-lpmx): Remove split.
2827
2f13f2de
DC
28282012-09-27 Dehao Chen <dehao@google.com>
2829
2830 * tree.h (tree_constructor): Remove IS_UNKNOWN_LOCATION.
2831 (extern void protected_set_expr_location): Likewise.
2832 (function_args_iter_next): Likewise.
2833 (inlined_function_outer_scope_p): Likewise.
2834 * input.h (IS_UNKNOWN_LOCATION): Likewise.
2835 * fold-const.c (expr_location_or): Likewise.
2836 * lto-cgraph.c (output_node_opt_summary): Likewise.
2837 * dwarf2out.c (add_src_coords_attributes): Likewise.
2838 * tree-eh.c (lower_try_finally_dup_block): Likewise.
2839 * profile.c (branch_prob):
2840 * cfgexpand.c (expand_gimple_cond): Likewise.
2841 (expand_gimple_basic_block): Likewise.
2842 (construct_exit_block): Likewise.
2843 (gimple_expand_cfg): Likewise.
2844 * cfgcleanup.c (try_forward_edges): Likewise.
2845 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
2846 (dump_scope_block): Likewise.
2847 * ipa-prop.c (ipa_write_jump_function): Likewise.
2848 * rtl.h (extern void rtl_check_failed_flag): Likewise.
2849 * gimple.h (gimple_set_location): Likewise.
2850 (gimple_has_location): Likewise.
2851 * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
2852 (force_nonfallthru_and_redirect): Likewise.
2853 (fixup_reorder_chain): Likewise.
2854 (cfg_layout_merge_blocks): Likewise.
2855
33adc2a3
MI
28562012-09-27 Meador Inge <meadori@codesourcery.com>
2857
2858 * gcc-ar.c (main): Handle the returning of the sub-process error
2859 code correctly.
2860
c2c47e8f
UW
28612012-09-27 Ulrich Weigand <ulrich.weigand@linaro.org>
2862
2863 * lower-subreg.c (enum classify_move_insn): Rename
2864 SIMPLE_PSEUDO_REG_MOVE to DECOMPOSABLE_SIMPLE_MOVE.
2865 (find_decomposable_subregs): Update.
2866 (decompose_multiword_subregs): Add DECOMPOSE_COPIES parameter.
2867 Only mark pseudo-to-pseudo copies as DECOMPOSABLE_SIMPLE_MOVE
2868 if that parameter is true.
2869 (rest_of_handle_lower_subreg): Call decompose_multiword_subregs
2870 with DECOMPOSE_COPIES false.
2871 (rest_of_handle_lower_subreg2): Call decompose_multiword_subregs
2872 with DECOMPOSE_COPIES true.
2873
9472dcec
MP
28742012-09-27 Marek Polacek <polacek@redhat.com>
2875
2876 * doc/gcov.texi (Gcov Data Files): Fix a typo.
2877
6b74529d
JJ
28782012-09-27 Jakub Jelinek <jakub@redhat.com>
2879
2880 PR target/54703
2881 * simplify-rtx.c (simplify_binary_operation_1): Perform
992103ad 2882 (x - (x & y)) -> (x & ~y) optimization only for integral modes.
6b74529d 2883
e481cda6
MG
28842012-09-27 Marc Glisse <marc.glisse@inria.fr>
2885
2886 PR c/53024
2887 PR c++/54427
2888 * doc/extend.texi (Vector Extensions): C++ improvements.
2889 Power of 2 size requirement.
2890
e649d346
RG
28912012-09-27 Richard Guenther <rguenther@suse.de>
2892
2893 PR lto/54709
2894 * lto-symtab.c (resolution_guessed_p): Remove.
2895 (set_resolution_guessed): Likewise.
2896 (lto_symtab_register_decl): Remove assert.
2897 (lto_symtab_resolve_symbols): Do not alter symbol resolutions
2898 and return the prevailing symbol, checking for multiple prevailing
2899 symbols here.
2900 (lto_symtab_merge_decls_1): Use the result from
2901 lto_symtab_resolve_symbols. Do not alter symbol resolutions.
2902
5f11ec71
SE
29032012-09-26 Steve Ellcey <sellcey@mips.com>
2904
2905 PR web/54711
2906 * doc/install.texi: Fix example.
2907
6040bb5f
DC
29082012-09-26 Dehao Chen <dehao@google.com>
2909
2910 * tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void)
2911 for function parameter.
2912 (remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL.
2913
a104e60b
OE
29142012-09-26 Oleg Endo <olegendo@gcc.gnu.org>
2915
2916 * doc/extend.texi (bswap Builtins): Change signed types to unsigned
2917 types.
2918
a67a73fd
ILT
29192012-09-26 Ian Lance Taylor <iant@google.com>
2920
2921 * diagnostic.c (bt_callback): Cast pc when calling fprintf.
2922
50251425
BS
29232012-09-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2924
2925 PR tree-optimization/54674
2926 * gimple-ssa-strength-reduction.c (analyze_increments): Don't
2927 introduce a multiplication with a pointer operand.
2928
5bfed9a9
GJL
29292012-09-26 Georg-Johann Lay <avr@gjlay.de>
2930
2931 PR middle-end/54635
2932 * doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new
2933 parameter addrspace.
2934 * doc/tm.texi: Regenerate.
2935 * target.def (mode_dependent_address_p): Add addr_space_t parameter.
2936 * targhooks.h (default_mode_dependent_address_p): Ditto.
2937 * targhooks.c (default_mode_dependent_address_p): Ditto.
faf86a02
UB
2938 * expr.c (convert_move): Pass address space to
2939 mode_dependent_address_p.
5bfed9a9
GJL
2940 * combine.c (combine_simplify_rtx): Ditto.
2941 (make_extraction): Ditto.
2942 (simplify_shift_const_1): Ditto.
2943 (gen_lowpart_for_combine): Ditto.
2944 * lower-subreg.c (simple_move_operand): Ditto.
2945 * recog.c (simplify_while_replacing): Ditto.
2946 (offsettable_address_addr_space_p): Ditto.
2947 (mode_dependent_address_p): Ditto.
2948 * simplify-rtx.c (simplify_unary_operation_1): Ditto.
2949 (simplify_subreg): Ditto.
2950 * config/m68k/m68k.md: Ditto.
2951 * config/vax/vax.md: Ditto.
2952 * config/vax/constraints.md (Q): Ditto.
2953 * config/vax/predicates.md (indexed_memory_operand): Ditto.
2954 * config/alpha/alpha.c (alpha_mode_dependent_address_p): Add
2955 unused addr_space_t parameter.
2956 * config/avr/avr.c (avr_mode_dependent_address_p): Ditto.
2957 * config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto.
2958 * config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto.
2959 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto.
2960 * config/rx/rx.c (rx_mode_dependent_address_p): Ditto.
2961 * config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto.
2962 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
2963 Ditto.
2964 * config/vax/vax.c (vax_mode_dependent_address_p): Ditto.
2965 * config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto.
2966
1df855ce
CL
29672012-09-26 Christophe Lyon <christophe.lyon@linaro.org>
2968
2969 * tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
2970 (execute_optimize_bswap): Add support for builtin_bswap16.
2971
eeca434a
RG
29722012-09-26 Richard Guenther <rguenther@suse.de>
2973
2974 * tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
2975
d83697f4
ILT
29762012-09-26 Ian Lance Taylor <iant@google.com>
2977
2978 * diagnostic.c: Include "demangle.h" and "backtrace.h".
2979 (bt_stop): New static array.
2980 (bt_callback, bt_err_callback): New static functions.
2981 (diagnostic_action_after_output): Call backtrace_full for DK_ICE.
2982 * Makefile.in (BACKTRACE): New variable.
2983 (BACKTRACEINC, LIBBACKTRACE): New variables.
2984 (BACKTRACE_H): New variable.
2985 (LIBDEPS, LIBS): Add $(LIBBACKTRACE).
2986 (INCLUDES): Add $(BACKTRACEINC).
2987 (diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H).
2988
ba45a613
SB
29892012-09-25 Segher Boessenkool <segher@kernel.crashing.org>
2990
2991 PR target/51274
2992 PR target/53087
2993 * config/rs6000/rs6000.md (ne0si): Remove unnecessary
2994 earlyclobber. Merge with...
2995 (ne0di): ... to...
2996 (ne0_<mode>): New.
2997 (plus_ne0si): Merge with...
2998 (plus_ne0di): ... to...
2999 (plus_ne0_<mode>): New.
3000 (compare_plus_ne0si): Merge with...
3001 (compare_plus_ne0di)... to...
3002 (compare_plus_ne0_<mode>): New.
3003 (compare_plus_ne0_<mode>_1): New.
3004 (plus_ne0si_compare): Merge with...
3005 (plus_ne0di_compare)... to...
3006 (plus_ne0_<mode>_compare): New.
3007
78040535
OE
30082012-09-25 Oleg Endo <olegendo@gcc.gnu.org>
3009
3010 PR target/54089
3011 * config/sh/constraints.md (Jhb): New constraint.
3012 * config/sh/predicates.md (negt_reg_shl31_operand): New predicate.
3013 * config/sh/sh.md (rotrsi3): New expander.
3014 (rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns.
3015 (rotlsi3, rotlhi3): Use const_int_operand predicate instead of
3016 immediate_operand and remove CONST_INT_P checks in expansion code.
3017 (*rotcr): Cleanup variable usage. Handle preceding nott insn. Add
3018 split with swapped operands.
3019 (*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits.
3020
91cad09b
AH
30212012-09-25 Aldy Hernandez <aldyh@redhat.com>
3022
3023 PR middle-end/53850
3024 * trans-mem.c (expand_call_tm): Handle late built built-ins.
3025
b70c0a2d
GJL
30262012-09-25 Georg-Johann Lay <avr@gjlay.de>
3027
3028 PR other/54701
5139232e 3029 * config/avr/avr-log.c (avr_double_int_pop_digit): Rewrite using
b70c0a2d
GJL
3030 double_int::udivmod.
3031
b1bdc68d
GJL
30322012-09-25 Georg-Johann Lay <avr@gjlay.de>
3033
3034 * config/avr/avr.c (avr_set_current_function): Check cfun->machine
3035 to be non-NULL.
3036
c2405775
GJL
30372012-09-25 Georg-Johann Lay <avr@gjlay.de>
3038
3039 PR target/54641
3040 * config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS
3041 for sources compiled with COMPILER.
992103ad 3042
7e17f52d
RG
30432012-09-25 Richard Guenther <rguenther@suse.de>
3044
3045 PR lto/54625
3046 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge
3047 cgraph nodes for builtins.
3048
dadbefd3
JJ
30492012-09-25 Jakub Jelinek <jakub@redhat.com>
3050
5717e1f6
JJ
3051 PR tree-optimization/54676
3052 * tree-vrp.c (set_and_canonicalize_value_range): Handle
3053 one bit precision properly.
3054
dadbefd3 3055 PR other/54692
992103ad 3056 * configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og properly.
dadbefd3
JJ
3057 * configure: Regenerated.
3058
915efd1f
GJL
30592012-09-25 Georg-Johann Lay <avr@gjlay.de>
3060
3061 PR other/54701
3062 * config/avr/avr.c (avr_map_decompose): Use double_int::from_uhwi
3063 instead of uhwi_to_double_int.
3064
0237949a
RG
30652012-09-25 Richard Guenther <rguenther@suse.de>
3066
3067 * lto-symtab.c (lto_symtab_merge_decls_1): Properly merge
3068 all of the chain.
3069
b2e51979
RG
30702012-09-25 Richard Guenther <rguenther@suse.de>
3071
3072 PR tree-optimization/53663
3073 * tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional
3074 native encode/interpret translation on VN_WALKREWRITE.
3075
60478b9c
DC
30762012-09-24 Dehao Chen <dehao@google.com>
3077
992103ad 3078 * tree-cfg.c (move_stmt_op): Reset the expr block only when necessary.
60478b9c
DC
3079 (move_block_to_fn): Reset the edge's goto block even
3080 when the goto locus is unknown.
3081
9be0ac8c
LC
30822012-09-24 Lawrence Crowl <crowl@google.com>
3083
3084 * double-int.h (double_int::from_pair): New.
3085 (double_int::wide_mul_with_sign): New.
3086 (double_int::sub_with_overflow): New.
3087 (double_int::neg_with_overflow): New.
3088 (double_int::divmod_with_overflow): New.
3089 (shwi_to_double_int): Remove.
3090 (uhwi_to_double_int): Remove.
3091 (double_int_to_shwi): Remove.
3092 (double_int_to_uhwi): Remove.
3093 (double_int_fits_in_uhwi_p): Remove.
3094 (double_int_fits_in_shwi_p): Remove.
3095 (double_int_fits_in_hwi_p): Remove.
3096 (double_int_mul): Remove.
3097 (double_int_mul_with_sign): Remove.
3098 (double_int_add): Remove.
3099 (double_int_sub): Remove.
3100 (double_int_neg): Remove.
3101 (double_int_div): Remove.
3102 (double_int_sdiv): Remove.
3103 (double_int_udiv): Remove.
3104 (double_int_mod): Remove.
3105 (double_int_smod): Remove.
3106 (double_int_umod): Remove.
3107 (double_int_divmod): Remove.
3108 (double_int_sdivmod): Remove.
3109 (double_int_udivmod): Remove.
3110 (double_int_multiple_of): Remove.
3111 (double_int_setbit): Remove.
3112 (double_int_ctz): Remove.
3113 (double_int_not): Remove.
3114 (double_int_ior): Remove.
3115 (double_int_and): Remove.
3116 (double_int_and_not): Remove.
3117 (double_int_xor): Remove.
3118 (double_int_lshift): Remove.
3119 (double_int_rshift): Remove.
3120 (double_int_lrotate): Remove.
3121 (double_int_rrotate): Remove.
3122 (double_int_negative_p): Remove.
3123 (double_int_cmp): Remove.
3124 (double_int_scmp): Remove.
3125 (double_int_ucmp): Remove.
3126 (double_int_max): Remove.
3127 (double_int_smax): Remove.
3128 (double_int_umax): Remove.
3129 (double_int_min): Remove.
3130 (double_int_smin): Remove.
3131 (double_int_umin): Remove.
3132 (double_int_ext): Remove.
3133 (double_int_sext): Remove.
3134 (double_int_zext): Remove.
3135 (double_int_mask): Remove.
3136 (double_int_max_value): Remove.
3137 (double_int_min_value): Remove.
3138 (double_int_zero_p): Remove.
3139 (double_int_one_p): Remove.
3140 (double_int_minus_one_p): Remove.
3141 (double_int_equal_p): Remove.
3142 (double_int_popcount): Remove.
3143 (extern add_double_with_sign): Remove.
3144 (#define add_double): Remove.
3145 (extern neg_double): Remove.
3146 (extern mul_double_with_sign): Remove.
3147 (extern mul_double_wide_with_sign): Remove.
3148 (#define mul_double): Remove.
3149 (extern lshift_double): Remove.
3150 (extern div_and_round_double): Remove.
3151 * double-int.c (add_double_with_sign): Make static.
3152 (#defined add_double): Localized from header.
3153 (neg_double): Make static.
3154 (mul_double_with_sign): Make static.
3155 (mul_double_wide_with_sign): Make static.
3156 (#defined mul_double): Localized from header.
3157 (lshift_double): Make static.
3158 (div_and_round_double): Make static.
3159 (double_int::wide_mul_with_sign): New.
3160 (double_int::sub_with_overflow): New.
3161 (double_int::neg_with_overflow): New.
3162 (double_int::divmod_with_overflow): New.
3163 * emit-rtl.c (init_emit_once): Change to new double_int API.
3164 * explow.c (plus_constant): Likewise.
3165 * expmed.c (choose_multiplier): Likewise.
3166 * fold-const.c (#define OVERFLOW_SUM_SIGN): Remove.
3167 (int_const_binop_1): Change to new double_int API.
3168 (fold_div_compare): Likewise.
3169 (maybe_canonicalize_comparison): Likewise.
3170 (pointer_may_wrap_p): Likewise.
3171 (fold_negate_const): Likewise.
3172 (fold_abs_const): Likewise.
3173 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3174 (simplify_const_binary_operation): Likewise.
3175 * tree-chrec.c (tree_fold_binomial): Likewise.
3176 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
3177 * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3178 * config/avr/avr.c (avr_double_int_push_digit): Likewise.
3179 (avr_map): Likewise.
3180 (avr_map_decompose): Likewise.
3181 (avr_out_insert_bits): Likewise.
3182
776de6b2
JJ
31832012-09-24 Janis Johnson <janisjo@codesourcery.com>
3184
992103ad 3185 * doc/sourcebuild.texi (Selectors): Document the use of target
776de6b2
JJ
3186 and xfail used together.
3187
28957eab
RG
31882012-09-24 Richard Guenther <rguenther@suse.de>
3189
3190 PR middle-end/54632
3191 * tree-ssa-live.c (clear_unused_block_pointer_1): Do not
3192 handle DECL_DEBUG_EXPR_IS_FROM here...
3193 (clear_unused_block_pointer): ... but here when walking all
3194 local decls.
3195
bf3d1928
RG
31962012-09-24 Richard Guenther <rguenther@suse.de>
3197
3198 PR tree-optimization/54684
3199 * tree-ssa-ccp.c (optimize_unreachable): Properly update stmts.
3200
f2167d68
MG
32012012-09-24 Marc Glisse <marc.glisse@inria.fr>
3202
3203 * tree-ssa-forwprop.c: Include tree-ssa-propagate.h.
3204 (simplify_bitfield_ref): Handle constructors.
3205 * Makefile.in (tree-ssa-forwprop.o): Depend on tree-ssa-propagate.h.
3206
e076271b
RG
32072012-09-24 Richard Guenther <rguenther@suse.de>
3208
3209 * tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces,
3210 find_or_generate_expression): Remove dominating stmt argument.
3211 (find_leader_in_sets, phi_translate_1, bitmap_find_leader,
3212 create_component_ref_by_pieces_1, create_component_ref_by_pieces,
3213 do_regular_insertion, do_partial_partial_insertion): Adjust.
3214 (compute_avail): Do not set uids.
3215
04208228
EB
32162012-09-24 Eric Botcazou <ebotcazou@adacore.com>
3217
3218 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
3219 TYPE_NONALIASED_COMPONENT flag.
3220 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out
3221 TYPE_NONALIASED_COMPONENT flag.
3222
548e68fc
JL
32232012-09-24 Jia Liu <proljc@gmail.com>
3224
3225 * doc/lto.texi: Separate sections.
3226 * doc/plugins.texi: Likewise.
3227
483ef49f
RG
32282012-09-24 Richard Guenther <rguenther@suse.de>
3229
3230 PR middle-end/52173
3231 * gimple.c (gimple_copy): Properly mark the copy modified
3232 if SSA operands are present.
3233
ee3de2b8
EB
32342012-09-23 Eric Botcazou <ebotcazou@adacore.com>
3235
3236 PR tree-optimization/54669
3237 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke
3238 maybe_clean_or_replace_eh_stmt on the modified use statements.
3239
2d411f1d
MG
32402012-09-23 Marc Glisse <marc.glisse@inria.fr>
3241
3242 * expr.c (do_store_flag): Remove duplicated code.
3243
a2027aad
SB
32442012-09-22 Segher Boessenkool <segher@kernel.crashing.org>
3245
3246 * config/rs6000/predicates.md (altivec_register_operand,
3247 vsx_register_operand, vfloat_operand, vint_operand,
3248 vlogical_operand, gpc_reg_operand, cc_reg_operand,
3249 cc_reg_not_cr0_operand, cc_reg_not_micro_cr0_operand):
3250 If op is a SUBREG, consider its SUBREG_REG instead.
3251
ae5f0678
UB
32522012-09-22 Uros Bizjak <ubizjak@gmail.com>
3253
3254 * optabs.c (prepare_cmp_insn): Expand comparison of the result
3255 of memcmp through generic comparison expansion code.
3256
df98376a
L
32572012-09-21 Anthony Green <green@moxielogic.com>
3258
3259 * config/moxie/moxie.opt: Add -mno-crt0 option.
3260 * config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option.
3261 * doc/invoke.texi (Option Summary): Document -mno-crt0 option.
3262
74adb444
JH
32632012-09-21 Jack Howarth <howarth@bromo.med.uc.edu>
3264
3265 PR bootstrap/54642
3266 * Makefile.in (lto-symtab.o): Remove gt-lto-symtab.h dependency.
3267
62d4d60c
DC
32682012-09-21 Dehao Chen <dehao@google.com>
3269
3270 PR go/54649
3271 * tree-eh.c (lower_try_finally_dup_block): Set the correct block for
3272 stmts in the duplicated EH block.
3273
61514fe4
RG
32742012-09-21 Richard Guenther <rguenther@suse.de>
3275
3276 PR tree-optimization/54647
3277 * tree-ssa-pre.c (compute_avail): Do not put COND_EXPR
3278 or VEC_COND_EXPR into EXP_GEN again.
3279
b7ce70b3
JJ
32802012-09-21 Jakub Jelinek <jakub@redhat.com>
3281
3282 PR tree-optimization/54629
3283 * tree-loop-distribution.c (classify_partition): Free loop nest only
3284 after freeing ddr. Free ddr and loop nest also if successful.
3285
a30b9bb5
MK
32862012-09-21 Matthias Klose <doko@ubuntu.com>
3287
ae5f0678 3288 * config/arm/arm.c (arm_mangle_type): Don't warn anymore that
a30b9bb5
MK
3289 4.4 has changed the `va_list' mangling.
3290
b383e255
EB
32912012-09-21 Eric Botcazou <ebotcazou@adacore.com>
3292
3293 PR rtl-optimization/54290
3294 PR rtl-optimization/54644
3295 * reload1.c (choose_reload_regs): Fix thinko in previous change.
3296
d476e329
SB
32972012-09-20 Segher Boessenkool <segher@kernel.crashing.org>
3298
3299 * config/rs6000/rs6000.md (define_split for plus_eqsi):
3300 Fix output pattern.
3301
c2d09187
EB
33022012-09-20 Eric Botcazou <ebotcazou@adacore.com>
3303
3304 * reload1.c (choose_reload_regs): Add missing #ifdef/#endif pair.
3305
4f66c9bc
BS
33062012-09-20 Bernd Schmidt <bernds@codesourcery.com>
3307
3308 PR bootstrap/54643
3309 * haifa-sched.c (schedule_block): Skip find_modifiable_mems if using
3310 SCHED_PRESSURE_MODEL.
3311
10439b59
JR
33122012-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
3313
3314 * rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.
3315
5ae27c9c
MP
33162012-09-20 Marek Polacek <polacek@redhat.com>
3317
3318 * tree-ssa-operands.c (get_expr_operands): Merge identical cases.
3319
97a74ddb
MP
33202012-09-20 Marek Polacek <polacek@redhat.com>
3321
3322 * tree-ssa-threadupdate.c (mark_threaded_blocks): Don't cast XNEWVEC's
3323 result.
3324 (create_edge_and_update_destination_phis): Likewise.
3325
af16bc76
MJ
33262012-09-20 Martin Jambor <mjambor@suse.cz>
3327
3328 * function.c (push_cfun): Check old current_function_decl matches
ae5f0678 3329 old cfun, set new current_function_decl to the decl of the new cfun.
af16bc76
MJ
3330 (push_struct_function): Likewise.
3331 (pop_cfun): Likewise.
3332 (allocate_struct_function): Move call to
3333 invoke_set_current_function_hook to the end of the function.
3334 * cfgexpand.c (estimated_stack_frame_size): Do not set and restore
3335 current_function_decl.
3336 * cgraph.c (cgraph_release_function_body): Likewise.
3337 * cgraphunit.c (cgraph_process_new_functions): Likewise.
3338 (cgraph_add_new_function): Likewise.
3339 (cgraph_analyze_function): Likewise.
3340 (assemble_thunk): Set cfun to NULL at the end.
3341 (expand_function): Move call to set_cfun downwards.
3342 * gimple-low.c (record_vars_into): Only check current_function_decl
3343 before possibly doing push_cfun.
3344 * gimplify.c (gimplify_function_tree): Do not set and restore
3345 current_function_decl.
3346 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
3347 (inline_analyze_function): Likewise.
3348 * ipa-prop.c (ipa_analyze_node): Likewise.
3349 * ipa-pure-const.c (analyze_function): Likewise.
3350 * lto-streamer-in.c (lto_input_function_body): Do not set
3351 current_function_decl.
3352 * lto-streamer-out.c (output_function): Do not set and restore
3353 current_function_decl.
3354 * omp-low.c (finalize_task_copyfn): Likewise.
3355 (expand_omp_taskreg): Likewise.
3356 (create_task_copyfn): Likewise, move push_cfun up quite a bit.
3357 * passes.c (dump_passes): Do not set and restore current_function_decl.
3358 (do_per_function): Likewise.
3359 (do_per_function_toporder): Likewise.
3360 * trans-mem.c (ipa_tm_scan_irr_function): Likewise.
3361 (ipa_tm_transform_transaction): Likewise.
3362 (ipa_tm_transform_clone): Likewise.
3363 (ipa_tm_execute): Likewise.
3364 * tree-emutls.c (lower_emutls_function_body): Likewise.
3365 * tree-inline.c (initialize_cfun): Do not call pop_cfun.
3366 (tree_function_versioning): Do not call push_cfun, do not set and
3367 restore current_function_decl. Remove assert checking consistency of
3368 cfun and current_function_decl.
3369 * tree-profile.c (tree_profiling): Do not set and restore
3370 current_function_decl.
3371 * tree-sra.c (convert_callers_for_node): Do not set
3372 current_function_decl.
3373 (convert_callers): Do not restore current_function_decl.
3374 (modify_function): Do not set current_function_decl.
3375 * tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore
3376 current_function_decl.
3377
fc1bc21b
DN
33782012-09-20 Diego Novillo <dnovillo@google.com>
3379
3380 PR target/54631
3381 * config/vxworks.c (vxworks_emutls_var_init): Update for new
3382 VEC_quick_push interface.
3383
f2ea3c15
RG
33842012-09-20 Richard Guenther <rguenther@suse.de>
3385
3386 PR tree-optimization/54634
3387 * tree-data-ref.c (get_references_in_stmt): For now give
3388 up for pure functions.
3389
a77fa1fc
CWR
33902012-09-20 Chen Wei-Ren <chenwj@iis.sinica.edu.tw>
3391
ae5f0678 3392 * doc/lto.texi: Correct typo.
a77fa1fc 3393
9d12bc68
DC
33942012-09-19 Dehao Chen <dehao@google.com>
3395
3396 * config/s390/s390.c (s390_chunkify_start): Replacing INSN_LOCATOR.
3397 * config/spu/spu.c (emit_nop_for_insn): Likewise.
3398 (pad_bb): Likewise.
3399 (spu_emit_branch_hint): Likewise.
3400 (insert_hbrp_for_ilb_runout): Likewise.
3401 * config/mep/mep.c (mep_make_bundle): Likewise.
3402 (mep_bundle_insns): Likewise.
3403 * config/sh/sh.c (gen_block_redirect): Likewise.
3404 * config/c6x/c6x.c (gen_one_bundle): Likewise.
3405 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Likewise.
3406 * config/picochip/picochip.c (picochip_reorg): Likewise.
3407 * config/arm/arm.c (require_pic_register): Likewise.
3408 * config/mips/mips.c (mips16_gp_pseudo_reg): Likewise.
3409 * config/bfin/bfin.c (gen_one_bundle): Likewise.
3410
17f293b0
MK
34112012-09-19 Mark Kettenis <kettenis@openbsd.org>
3412
ae5f0678
UB
3413 * config.gcc (hppa*-*-openbsd*): New target.
3414 * config/pa/pa-openbsd.h: New file.
3415 * config/pa/pa32-openbsd.h: New file.
3416 * config/host-openbsd.c: Update copyright year.
3417 (TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa.
17f293b0 3418
7f7c8190
MJ
34192012-09-19 Martin Jambor <mjambor@suse.cz>
3420
3421 * ipa-prop.c (prune_expression_for_jf): New function.
3422 (ipa_set_jf_constant): Use it.
3423 (ipa_set_jf_arith_pass_through): Likewise.
3424 (determine_known_aggregate_parts): Likewise.
3425
992bcfac
SE
34262012-09-19 Steve Ellcey <sellcey@mips.com>
3427
3428 * config.gcc (mips*-mti-elf*): New target.
3429 * config/mips/mti-elf.h: New file.
3430 * config/mips/t-mti-elf: New file.
3431
5368224f
DC
34322012-09-19 Dehao Chen <dehao@google.com>
3433
3434 * toplev.c (general_init): Init block_locations.
3435 * tree.c (tree_set_block): New.
3436 (tree_block): Change to use LOCATION_BLOCK.
3437 * tree.h (TREE_SET_BLOCK): New.
3438 * final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
3439 (final_start_function): Likewise.
3440 * input.c (expand_location_1): Likewise.
3441 * input.h (LOCATION_LOCUS): New.
3442 (LOCATION_BLOCK): New.
3443 (IS_UNKNOWN_LOCATION): New.
3444 * fold-const.c (expr_location_or): Change to use new location.
3445 * reorg.c (emit_delay_sequence): Likewise.
3446 (try_merge_delay_insns): Likewise.
3447 * modulo-sched.c (dump_insn_location): Likewise.
3448 * lto-streamer-out.c (lto_output_location_bitpack): Likewise.
3449 * lto-cgraph.c (output_node_opt_summary): Likewise.
3450 * jump.c (rtx_renumbered_equal_p): Likewise.
3451 * ifcvt.c (noce_try_move): Likewise.
3452 (noce_try_store_flag): Likewise.
3453 (noce_try_store_flag_constants): Likewise.
3454 (noce_try_addcc): Likewise.
3455 (noce_try_store_flag_mask): Likewise.
3456 (noce_try_cmove): Likewise.
3457 (noce_try_cmove_arith): Likewise.
3458 (noce_try_minmax): Likewise.
3459 (noce_try_abs): Likewise.
3460 (noce_try_sign_mask): Likewise.
3461 (noce_try_bitop): Likewise.
3462 (noce_process_if_block): Likewise.
3463 (cond_move_process_if_block): Likewise.
3464 (find_cond_trap): Likewise.
3465 * ipa-prop.c (ipa_set_jf_constant): Likewise.
3466 (ipa_write_jump_function): Likewise.
3467 * dwarf2out.c (add_src_coords_attributes): Likewise.
3468 * expr.c (expand_expr_real): Likewise.
3469 * tree-parloops.c (create_loop_fn): Likewise.
3470 * recog.c (peep2_attempt): Likewise.
3471 * function.c (free_after_compilation): Likewise.
3472 (expand_function_end): Likewise.
3473 (set_insn_locations): Likewise.
3474 (thread_prologue_and_epilogue_insns): Likewise.
3475 * print-rtl.c (print_rtx): Likewise.
3476 * profile.c (branch_prob): Likewise.
3477 * trans-mem.c (ipa_tm_scan_irr_block): Likewise.
3478 * gimplify.c (gimplify_call_expr): Likewise.
3479 * except.c (duplicate_eh_regions_1): Likewise.
3480 * emit-rtl.c (try_split): Likewise.
3481 (make_insn_raw): Likewise.
3482 (make_debug_insn_raw): Likewise.
3483 (make_jump_insn_raw): Likewise.
3484 (make_call_insn_raw): Likewise.
3485 (emit_pattern_after_setloc): Likewise.
3486 (emit_pattern_after): Likewise.
3487 (emit_debug_insn_after): Likewise.
3488 (emit_pattern_before): Likewise.
3489 (emit_insn_before_setloc): Likewise.
3490 (emit_jump_insn_before): Likewise.
3491 (emit_call_insn_before_setloc): Likewise.
3492 (emit_call_insn_before): Likeise.
3493 (emit_debug_insn_before_setloc): Likewise.
3494 (emit_copy_of_insn_after): Likewise.
3495 (insn_locators_alloc): Remove.
3496 (insn_locators_finalize): Remove.
3497 (insn_locators_free): Remove.
3498 (set_curr_insn_source_location): Remove.
3499 (get_curr_insn_source_location): Remove.
3500 (set_curr_insn_block): Remove.
3501 (get_curr_insn_block): Remove.
3502 (locator_scope): Remove.
3503 (insn_scope): Change to use new location.
3504 (locator_location): Remove.
3505 (insn_line): Change to use new location.
3506 (locator_file): Remove.
3507 (insn_file): Change to use new location.
3508 (locator_eq): Remove.
3509 (insn_locations_init): New.
3510 (insn_locations_finalize): New.
3511 (set_curr_insn_location): New.
3512 (curr_insn_location): New.
3513 * cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
3514 (expand_gimple_cond): Likewise.
3515 (expand_call_stmt): Likewise.
3516 (expand_gimple_stmt_1): Likewise.
3517 (expand_gimple_basic_block): Likewise.
3518 (construct_exit_block): Likewise.
3519 (gimple_expand_cfg): Likewise.
3520 * cfgcleanup.c (try_forward_edges): Likewise.
3521 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
3522 (dump_scope_block): Likewise.
3523 (remove_unused_locals): Likewise.
3524 * rtl.c (rtx_equal_p_cb): Likewise.
3525 (rtx_equal_p): Likewise.
3526 * rtl.h (XUINT): New.
3527 (INSN_LOCATOR): Remove.
3528 (CURR_INSN_LOCATION): Remove.
3529 (INSN_LOCATION): New.
3530 (INSN_HAS_LOCATION): New.
3531 * tree-inline.c (remap_gimple_op_r): Change to use new location.
3532 (copy_tree_body_r): Likewise.
3533 (copy_phis_for_bb): Likewise.
3534 (expand_call_inline): Likewise.
3535 * tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
3536 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
3537 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3538 * combine.c (try_combine): Likewise.
3539 * tree-outof-ssa.c (set_location_for_edge): Likewise.
3540 (insert_partition_copy_on_edge): Likewise.
3541 (insert_value_copy_on_edge): Likewise.
3542 (insert_rtx_to_part_on_edge): Likewise.
3543 (insert_part_to_rtx_on_edge): Likewise.
3544 * basic-block.h (edge_def): Remove field.
3545 * gimple.h (gimple_statement_base): Remove field.
3546 (gimple_bb): Change to use new location.
3547 (gimple_set_block): Likewise.
3548 (gimple_has_location): Likewise.
3549 * tree-cfg.c (make_cond_expr_edges): Likewise.
3550 (make_goto_expr_edges): Likewise.
3551 (gimple_can_merge_blocks_p): Likewise.
3552 (move_stmt_op): Likewise.
3553 (move_block_to_fn): Likewise.
3554 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
3555 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3556 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
3557 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
3558 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3559 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3560 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3561 * config/score/score.c (score_output_mi_thunk): Likewise.
3562 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
3563 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3564 * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
3565 (unique_locus_on_edge_between_p): Likewise.
3566 (emit_nop_for_unique_locus_between): Likewise.
3567 (force_nonfallthru_and_redirect): Likewise.
3568 (fixup_reorder_chain): Likewise.
3569 (cfg_layout_merge_blocks): Likewise.
3570 * stmt.c (emit_case_nodes): Likewise.
3571
1a83e602
BS
35722012-09-19 Bernd Schmidt <bernds@codesourcery.com>
3573
3574 * dbgcnt.def (sched_breakdep): New counter.
3575 * haifa-sched.c (update_insn_after_change): New static function,
3576 broken out of haifa_change_pattern.
3577 (haifa_change_pattern): Call it.
3578 (dep_t heap vecs): Declare.
3579 (INSN_COST): Define earlier.
ae5f0678 3580 (next_cycle_replace_deps, next_cycle_apply): New static variables.
1a83e602
BS
3581 (apply_replacement): New static function.
3582 (recompute_todo_spec): New argument FOR_BACKTRACK. All callers
3583 changed. Handle DEP_REPLACE deps.
3584 (contributes_to_priority_p): False for replaceable deps.
3585 (must_restore_pattern_p, restore_pattern): New static functions.
3586 (schedule_insn): Use them. Apply replacements for broken deps.
3587 (struct haifa_saved_data): Add new fields to keep track of
3588 replacements.
3589 (save_backtrack_point): Initialize them.
3590 (undo_replacements_for_backtrack): New static function.
3591 (restore_last_backtrack_point, free_topmost_backtrack_point):
3592 Use it and keep track of replacements.
3593 (perform_replacements_new_cycle, undo_all_replacements): New static
3594 functions.
3595 (schedule_block): Call these two as necessary. Call
3596 find_modifiable_mems.
3597 (try_ready): Tweak the assert. Check for DEP_POSTPONED.
3598 * sched-deps.c: Include "emit-rtl.h".
3599 (init_dep_1): Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE.
3600 (dep_spec_p): True for DEP_REPLACE deps.
3601 (mark_as_hard): New static variable.
3602 (update_dep): Update DEP_NONREG and DEP_MULTIPLE.
3603 (add_dependence_list): New argument hard. All callers changed. Set
3604 and clear mark_as_hard around function body.
3605 (add_dependence_list_and_free): Likewise.
3606 (haifa_note_mem_dep): Set DEP_NONREG.
3607 (haifa_note_dep): Likewise if mark_as_hard is true.
3608 (sched_analyze_insn): Switch loop with if statement testing for
3609 sel_sched_p.
3610 (struct mem_inc_info): New.
3611 (attempt_change, parse_add_or_inc, find_inc, find_mem): New static
3612 functions.
3613 (find_modifiable_mems): New function.
3614 * sched-int.h (struct dep_replacement): New.
3615 (struct _dep): Add replace, nonreg and multiple fields. Make type and
3616 cost bitfields.
3617 (UNKNOWN_DEP_COST): Change to match the bitfield.
3618 (DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros.
3619 (DEP_POSTPONED): New macro.
3620 (DEP_CANCELLED): Renumber.
3621 (find_modifiable_mems): Declare.
3622 (enum SCHED_FLAGS): Add DONT_BREAK_DEPENDENCIES.
3623 * sched-rgn.c (init_ready_list): Set TODO_SPEC here.
3624 (new_ready): Don't set HARD_DEP, use DEP_POSTPONED.
3625 (debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE.
3626 * Makefile.in (sched-deps.o): Update dependencies.
3627 * config/c6x/c6x.c (in_hwloop): New static variable.
3628 (c6x_set_sched_flags): If it is true, add DONT_BREAK_DEPENDENCIES.
ae5f0678 3629 (hwloop_optimize): Set and clear it around preliminary scheduling pass.
1a83e602 3630
0efbf084
DE
36312012-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
3632
3633 * config/rs6000/rs6000-builtin.def: Add __builtin_ppc_get_timebase
3634 and __builtin_ppc_mftb.
ae5f0678
UB
3635 * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): New function
3636 to expand an expression that calls a built-in without arguments.
0efbf084
DE
3637 (rs6000_expand_builtin): Add __builtin_ppc_get_timebase and
3638 __builtin_ppc_mftb.
3639 (rs6000_init_builtins): Likewise.
3640 * config/rs6000/rs6000.md (rs6000_get_timebase): New pattern.
3641 (rs6000_get_timebase_ppc32): New pattern.
3642 (rs6000_mftb_<mode>): New pattern.
3643
3644 * doc/extend.texi (PowerPC Built-in Functions): New section.
ae5f0678
UB
3645 (PowerPC AltiVec/VSX Built-in Functions): Move some built-ins
3646 unrelated to Altivec/VSX to the new section.
0efbf084
DE
3647
36482012-09-19 David Edelsohn <dje.gcc@gmail.com>
3649
3650 * rs6000.md (mac*): Remove extra spaces.
3651 (mulhw*): Same.
3652
4eddc42b
OE
36532012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
3654
3655 PR target/54089
3656 * config/sh/predicates.md (arith_reg_or_t_reg_operand): New predicate.
3657 * config/sh/sh.md (*rotcr): Use arith_reg_or_t_reg_operand predicate.
3658 Handle the case where one of the operands is T_REG.
3659 Add new pattern to handle MSB extraction.
3660
8b75f550
OE
36612012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
3662
3663 PR target/54236
3664 * config/sh/sh.md (*addc): Add pattern to handle one bit left shifts.
3665
68965312
OE
36662012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
3667
3668 * config/sh/sh.md (prologue, epilogue): Use braced strings.
3669
17fff17b
EB
36702012-09-19 Eric Botcazou <ebotcazou@adacore.com>
3671
3672 PR rtl-optimization/54290
3673 * reload1.c (choose_reload_regs): Also take into account secondary MEMs
3674 to remove address replacements for inherited reloads.
3675 (replaced_subreg): Move around.
3676
d36481c6
DE
36772012-09-19 David Edelsohn <dje.gcc@gmail.com>
3678
3679 * config/rs6000/aix61.h (TARGET_DEFAULT): Add MASK_PPC_GPOPT,
3680 MASK_PPC_GFXOPT, and MASK_MFCRF.
3681
2d5fec4e
RG
36822012-09-19 Richard Guenther <rguenther@suse.de>
3683
3684 * passes.c (init_optimization_passes): For -Og move
3685 pass_object_sizes inbetween CCP and copyprop.
3686
ef78c9c7
RG
36872012-09-19 Richard Guenther <rguenther@suse.de>
3688
ae5f0678 3689 * tree-ssa-forwprop.c (get_prop_source_stmt): Simplify.
ef78c9c7 3690
b5493fb2
JH
36912012-09-19 Jan Hubicka <jh@suse.cz>
3692
3693 * symtab.c (insert_to_assembler_name_hash): Do not insert
3694 register vars.
ae5f0678 3695 (unlink_from_assembler_name_hash): NULL out pointers of unlinked var.
b5493fb2
JH
3696 (symtab_prevail_in_asm_name_hash): New.
3697 (symtab_initialize_asm_name_hash): Break out from ...
3698 (symtab_node_for_asm): ... here.
3699 (dump_symtab_base): Dump LTO file data.
3700 (verify_symtab_base): Register vars are not in symtab.
3701 * cgraph.h (symtab_initialize_asm_name_hash,
3702 symtab_prevail_in_asm_name_hash): New functions.
3703 (symtab_real_symbol_p): New inline.
3704 * lto-symtab.c: Do not include gt-lto-symtab.h.
3705 (lto_symtab_entry_def): Remove.
3706 (lto_symtab_entry_t): Remove.
3707 (lto_symtab_identifiers): Remove.
3708 (lto_symtab_free): Remove.
3709 (lto_symtab_entry_hash): Remove.
3710 (lto_symtab_entry_eq): Remove.
3711 (lto_symtab_entry_marked_p): Remove.
3712 (lto_symtab_maybe_init_hash_table): Remove.
3713 (resolution_guessed_p, set_resolution_guessed): New functions.
3714 (lto_symtab_register_decl): Only set resolution info.
3715 (lto_symtab_get, lto_symtab_get_resolution): Remove.
3716 (lto_symtab_merge): Reorg to work across symtab; do nothing if decls
3717 are same.
3718 (lto_symtab_resolve_replaceable_p): Reorg to work on symtab.
3719 (lto_symtab_resolve_can_prevail_p): Likewise; only real symbols can
3720 prevail.
3721 (lto_symtab_resolve_symbols): Reorg to work on symtab.
3722 (lto_symtab_merge_decls_2): Likewise.
3723 (lto_symtab_merge_decls_1): Likewise; add debug dumps.
3724 (lto_symtab_merge_decls): Likewise; do not merge at ltrans stage.
3725 (lto_symtab_merge_cgraph_nodes_1): Reorg to work on symtab.
ae5f0678
UB
3726 (lto_symtab_merge_cgraph_nodes): Likewise; do not merge at ltrans
3727 stage.
b5493fb2
JH
3728 (lto_symtab_prevailing_decl): Rewrite to lookup into symtab.
3729 * lto-streaer.h (lto_symtab_free): Remove.
3730 * lto-cgraph.c (add_references): Cleanup.
3731 * varpool.c (varpool_assemble_decl): Skip hard regs.
3732
9745abfd
RG
37332012-09-19 Richard Guenther <rguenther@suse.de>
3734
3735 PR other/53316
3736 * common/common-target.h (OPT_LEVELS_1_PLUS_NOT_DEBUG): Add.
3737
bf7a7185
RG
37382012-09-19 Richard Guenther <rguenther@suse.de>
3739
3740 PR other/53316
3741 * common.opt (optimize_debug): New variable.
3742 (Og): New optimization level.
3743 * doc/invoke.texi (Og): Document.
3744 * opts.c (maybe_default_option): Add debug parameter.
3745 (maybe_default_options): Likewise.
3746 (default_options_optimization): Handle -Og.
3747 (common_handle_option): Likewise.
3748 * passes.c (gate_all_optimizations): Do not run with -Og.
3749 (gate_all_optimizations_g): New gate, run with -Og.
3750 (pass_all_optimizations_g): New container pass, run with -Og.
3751 (init_optimization_passes): Schedule pass_all_optimizations_g
3752 alongside pass_all_optimizations.
3753
f20132e7
RG
37542012-09-19 Richard Guenther <rguenther@suse.de>
3755
3756 PR tree-optimization/54132
3757 * tree-loop-distribution.c (classify_partition): Properly
3758 check dependences for memmove.
3759 * tree-data-ref.h (compute_affine_dependence): Declare.
3760 * tree-data-ref.c (compute_affine_dependence): Export.
3761
f7d0c571
ZC
37622012-09-19 Zhenqiang Chen <zhenqiang.chen@arm.com>
3763
3764 PR middle-end/54364
3765 * bb-reorder.c (connect_better_edge_p): New added.
3766 (find_traces_1_round): When optimizing for size, ignore edge frequency
3767 and probability, and handle all in one round.
3768 (bb_to_key): Use bb->index as key when optimizing for size.
3769 (better_edge_p): The bb with smaller index is better when optimizing
3770 for size.
3771 (connect_traces): When optimizing for size, connect block n with
3772 block n + 1; connect trace m with trace m + 1 if falling through.
3773 (gate_handle_reorder_blocks): Enable bbro when optimizing for -Os.
3774
afb0c9cd
BC
37752012-09-19 Bin Cheng <bin.cheng@arm.com>
3776
467d9032 3777 * fold-const.c (fold_truth_andor): Remove duplicated check on
afb0c9cd
BC
3778 BRANCH_COST.
3779
63d94e58
EB
37802012-09-18 Eric Botcazou <ebotcazou@adacore.com>
3781
3782 PR middle-end/54617
3783 * expr.c (store_field): Handle a PARALLEL in more cases.
3784
4f60e9d3
SB
37852012-09-18 Segher Boessenkool <segher@kernel.crashing.org>
3786
ae5f0678 3787 * config/rs6000/rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): Delete.
4f60e9d3
SB
3788 (abssi2, abs<mode>2_isel, nabs<mode>2_isel, abssi2_nopower,
3789 nabs_nopower): Delete.
3790 (absdi2, absdi2_internal, nabsdi2): Delete.
3791 (smindi3, smaxdi3, umindi3, umaxdi3): Delete.
3792
487e359c
GJL
37932012-09-18 Georg-Johann Lay <avr@gjlay.de>
3794
3795 * config/avr/avr.md: Tidy up empty "". Fix C code indentation.
3796 * config/avr/avr-fixed.md: Ditto.
3797
fb5e0707
MR
37982012-09-18 Maciej W. Rozycki <macro@codesourcery.com>
3799
3800 * config/rs6000/rs6000.c (print_operand) <'c'>: Remove.
3801 * config/rs6000/spe.md: Remove a leftover comment.
3802
68e28cfd
JJ
38032012-09-18 Jakub Jelinek <jakub@redhat.com>
3804
3805 PR target/54592
3806 * config/i386/i386.c (ix86_rtx_costs): Limit > UNITS_PER_WORD
3807 AND/IOR/XOR cost calculation to MODE_INT class modes.
3808
ae5f0678 38092012-09-18 Thomas Quinot <quinot@adacore.com>
da5182be
TQ
3810
3811 * doc/invoke.texi: Document -fada-spec-parent.
3812
1d61ee42
JJ
38132012-09-18 Jakub Jelinek <jakub@redhat.com>
3814
3815 PR tree-optimization/54610
3816 * tree-ssa-forwprop.c: Include optabs.h. Don't include
3817 tree-vectorizer.h.
3818 (simplify_vector_constructor): Don't use vect_gen_perm_mask,
3819 instead create the mask constant here.
3820 * Makefile.in (tree-ssa-forwprop.o): Depend on $(OPTABS_H).
3821 Don't depend on $(TREE_VECTORIZER_H).
3822
6889a650
FW
38232012-09-18 Florian Weimer <fweimer@redhat.com>
3824
3825 * Makefile.in (BASIC_BLOCK_H): Add cfg-flags.def.
3826
73804b12
RG
38272012-09-18 Richard Guenther <rguenther@suse.de>
3828
3829 * statistics.h (CXX_MEM_STAT_INFO): New define.
3830 * gimple.h (gimple_build_assign_with_ops_stat,
3831 gimple_build_assign_with_ops, gimple_build_assign_with_ops3):
3832 Turn into an overload of the function gimple_build_assign_with_ops.
3833 * gimple.c (gimple_build_assign_with_ops_stat): Rename to ...
3834 (gimple_build_assign_with_ops): ... this.
3835 * tree-ssa-loop-im.c (move_computations_stmt): Adjust.
3836 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
3837 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
3838 (vect_permute_load_chain): Likewise.
3839 * tree-vect-generic.c (expand_vector_divmod): Likewise.
3840 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
3841 (vect_recog_divmod_pattern): Likewise.
3842 (vect_recog_mixed_size_cond_pattern): Likewise.
3843 (adjust_bool_pattern): Likewise.
3844 * tree-vect-slp.c (vect_create_mask_and_perm): Likewise.
3845 * tree-vect-stmts.c (vectorizable_operation): Likewise.
3846 (permute_vec_elements): Likewise.
3847 (vectorizable_load): Likewise.
3848
2611b5ba
PK
38492012-09-17 Paul Koning <ni1d@arrl.net>
3850
3851 * doc/invoke.text (-feliminate-unused-debug-types): Update to
3852 reflect that this is enabled by default.
3853
869fefb7
BC
38542012-09-17 Ben Cheng <bccheng@google.com
3855
3856 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the
3857 dynamic linker commands for statically linked programs.
3858
058e2674
UW
38592012-09-17 Ulrich Weigand <ulrich.weigand@linaro.org>
3860
3861 * config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set
3862 patterns.
3863 * config/arm/arm.md ("vec_set<mode>_internal"): Support memory source
3864 operands, implemented via vld1 instruction.
3865 ("vec_extract<mode>"): Support memory destination operands, implemented
3866 via vst1 instruction.
3867 ("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select.
3868 * config/arm/predicates.md ("neon_lane_number"): Remove.
3869
a7e7bf8f
RR
38702012-09-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3871 Ulrich Weigand <ulrich.weigand@linaro.org>
3872
3873 * config/arm/arm.c (output_move_neon): Update comment.
3874 Use vld1.64/vst1.64 instead of vldm/vstm where possible.
3875 (neon_vector_mem_operand): Support double-word modes.
3876 * config/arm/neon.md (*neon_mov VD): Call output_move_neon
3877 instead of output_move_vfp. Change constraint from Uv to Un.
3878
142c8954 38792012-09-17 Richard Guenther <rguenther@suse.de>
f57f20bb
RG
3880
3881 PR lto/54598
3882 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
3883 FIXED_VALUE_TYPE instead of struct fixed_value.
3884
a7b3cdfc
GJL
38852012-09-17 Georg-Johann Lay <avr@gjlay.de>
3886
3887 * config/avr/avr.c (CONST_FIXED_P): Remove define.
3888 * config/avr/avr.md (add<mode>3): Use CONST_FIXED_P.
3889
e3cf7a95
GJL
38902012-09-17 Georg-Johann Lay <avr@gjlay.de>
3891
3892 PR target/54607
3893 * config.gcc (tm_file,avr): Add avr/avr-arch.h.
3894 * config/avr/t-avr (gen-avr-mmcu-texi): Use CC_FOR_BUILD to
3895 compile. Don't depend on TM_H. Use CFLAGS_FOR_BUILD.
3896 * config/avr/avr.h (avr_arch, base_arch_s, mcu_type_s): Source out
3897 to...
3898 * config/avr/avr-arch.h: ...this new file.
3899 * config/avr/gen-avr-mmcu-texi.c: Include avr-arch.h, stdio.h,
3900 stdlib.h.
3901 * comparator: Make letters smaller than digits.
3902 * config/avr/avr-devices.c: Don't include headers if used in
3903 gen-avr-mmcu-texi.c.
3904 * doc/avr-mmcu.texi: Regenerate.
3905
78ab1ff4
GJL
39062012-09-17 Georg-Johann Lay <avr@gjlay.de>
3907
3908 * rtl.h (CONST_FIXED_P): New predicate macro.
3909
fea4ea73
EB
39102012-09-17 Eric Botcazou <ebotcazou@adacore.com>
3911
3912 * tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove
3913 code doing propagation from degenerate PHI nodes.
3914 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function.
3915 (propagate_constants_for_unrolling): Likewise.
3916 (tree_unroll_loops_completely): If the current loop has been unrolled
3917 and its father isn't the entire function, propagate constants within
3918 the new basic blocks by means of propagate_constants_for_unrolling.
3919
3b9ee1cc
JJ
39202012-09-17 Jakub Jelinek <jakub@redhat.com>
3921
3922 PR tree-optimization/54563
3923 * tree-ssa-math-opts.c (execute_cse_sincos): Call
3924 gimple_purge_dead_eh_edges if last call has been changed.
3925
c8f35794
GJL
39262012-09-17 Georg-Johann Lay <avr@gjlay.de>
3927
3928 PR target/54222
3929 * config/avr/avr.c (avr_out_plus_symbol): Fix typo if PLUS and PSImode.
3930 (avr_out_plus_1): Remove log comments from assembler output.
3931
de7c74be
RB
39322012-09-17 Ruben Buchatskiy <ruben@ispras.ru>
3933
3934 * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
3935 to be a register.
3936
1d1b7dc4
RS
39372012-09-16 Richard Sandiford <rdsandiford@googlemail.com>
3938
3939 * calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL
3940 moves.
3941
b25d9e22
TV
39422012-09-15 Tom de Vries <tom@codesourcery.com>
3943
3944 * tree-vrp.c (extract_range_from_binary_expr_1): Fix bug in handling of
3945 LSHIFT_EXPR with shift range. Handle more LSHIFT_EXPR cases with shift
3946 range.
3947
51526856
GJL
39482012-09-15 Georg-Johann Lay <avr@gjlay.de>
3949
3950 PR target/54222
3951 * config/avr/avr-fixed.md (ALL2S, ALL4S, ALL24S, ALL124S,
3952 ALL124U): New mode iterators.
3953 (<code_stdname><mode>3): New insns for SS_PLUS, SS_MINUS.
3954 (<code_stdname><mode>3): New insns for US_PLUS, US_MINUS.
3955 (usneg<mode>2): New insns.
3956 (<code_stdname><mode>2): New expanders for SS_NEG, SS_ABS.
3957 (*<code_stdname><mode>2): New insns for SS_NEG, SS_ABS.
3958 * config/avr/avr-dimode.md (ALL8U, ALL8S): New mode iterators.
3959 (avr_out_plus64, avr_out_minus64): Use avr_out_plus instead.
3960 (<code_stdname><mode>3): New expanders for SS_PLUS, SS_MINUS.
3961 (<code_stdname><mode>3): New expanders for US_PLUS, US_MINUS.
3962 (<code_stdname><mode>3_insn): New insns.
3963 (<code_stdname><mode>3_const_insn): New insns.
3964 * config/avr/avr.md (cc): Add: plus. Remove: out_plus,
3965 out_plus_noclobber, minus.
3966 (length): Add: plus. Remove: out_plus, out_plus_noclobber,
3967 plus64, minus, minus64.
3968 (abelian): New code_attr.
3969 (code_stdname): Handle: ss_plus, ss_minus, ss_neg, ss_abs,
3970 us_plus, us_minus, us_neg.
3971 (*add<mode>3, add<mode>3_clobber, add<mode>3, addpsi3, sub<mode>3):
3972 Use avr_out_plus to output.
3973 * config/avr/avr-protos.h (avr_out_plus): Change prototype.
3974 (avr_out_plus_noclobber, avr_out_minus): Remove.
3975 (avr_out_plus64, avr_out_minus64): Remove.
3976 * config/avr/avr.c (avr_out_plus_1): Add new default arguments
3977 code_sat, sign. Saturate after operation if code_sat != UNKNOWN.
3978 (avr_out_plus_symbol): New static function.
3979 (avr_out_plus): Rewrite.
3980 (adjust_insn_length): Handle: ADJUST_LEN_PLUS. Remove handling
ae5f0678 3981 of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS,
51526856
GJL
3982 ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER.
3983 (notice_update_cc): Handle: CC_PLUS. Remove handling of: CC_MINUS,
3984 CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER
3985 (avr_out_plus_noclobber, avr_out_minus): Remove.
3986 (avr_out_plus64, avr_out_minus64): Remove.
3987 (avr_print_operand): Print raw REGNO if 'r' is used with REG.
3988
8385420c
OE
39892012-09-15 Oleg Endo <olegendo@gcc.gnu.org>
3990
3991 * config/sh/sh.c (sh_rtx_costs): Add handling of MEM, SIGN_EXTEND,
3992 ZERO_EXTEND and PARALLEL cases.
3993 (sh_address_cost): Correct rtx parsing and tweak cost estimations.
3994
29454ff5
SL
39952012-09-14 Sandra Loosemore <sandra@codesourcery.com>
3996
3997 * doc/tm.texi.in (Stack Arguments): Update obsolete references
3998 to current_function_outgoing_args_size.
3999 (Function Entry): Likewise for current_function_pops_args,
4000 current_function_pretend_args_size,
4001 current_function_outgoing_args_size, and
4002 current_function_epilogue_delay_list.
4003 (Misc): Fix garbled sentence referencing nonexistent
4004 current_function_leaf_function.
4005 * doc/tm.texi: Regenerated.
4006
820055a0
DC
40072012-09-14 Dehao Chen <dehao@google.com>
4008
4009 * tree-eh.c (goto_queue_node): New field.
4010 (record_in_goto_queue): New parameter.
4011 (record_in_goto_queue_label): New parameter.
4012 (lower_try_finally_dup_block): New parameter.
4013 (maybe_record_in_goto_queue): Update source location.
4014 (lower_try_finally_copy): Likewise.
4015 (honor_protect_cleanup_actions): Likewise.
4016 * gimplify.c (gimplify_expr): Reset the location to unknown.
4017
694a6541
DE
40182012-09-14 David Edelsohn <dje.gcc@gmail.com>
4019
4020 * configure: Regenerated.
4021
9996a6d1
WL
40222012-09-14 Walter Lee <walt@tilera.com>
4023
4024 * doc/invoke.texi (Option Summary): fix typesetting for -mcpu
4025 option for TILEPro and TILE-Gx.
4026 (TILE-Gx Options): Fix grammar and spellings in documentation for
4027 -mcmodel.
4028
31ed6226
MG
40292012-09-14 Marc Glisse <marc.glisse@inria.fr>
4030
4031 PR c++/54427
4032 * fold-const.c (fold_unary_loc): Disable for VECTOR_TYPE.
4033 (fold_binary_loc): Likewise.
4034 * gimple-fold.c (and_comparisons_1): Handle VECTOR_TYPE.
4035 (or_comparisons_1): Likewise.
4036
0290430b
RE
40372012-09-14 Richard Earnshaw <rearnsha@arm.com>
4038
4039 PR target/54516
4040 PR rtl-optimization/54540
4041 * reload.c (find_dummy_reload): Don't use OUT as a reload reg
4042 for IN if it overlaps a fixed register.
4043
5ef0b50d
EB
40442012-09-14 Eric Botcazou <ebotcazou@adacore.com>
4045
4046 PR rtl-optimization/44194
4047 * calls.c (expand_call): In the PARALLEL case, copy the return value
4048 into pseudos instead of spilling it onto the stack.
4049 * emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
4050 add new ADJUST_OBJECT parameter.
4051 If ADJUST_OBJECT is set, drop the underlying object if it cannot be
4052 proved that the adjusted memory access is still within its bounds.
4053 (adjust_automodify_address_1): Adjust call to adjust_address_1.
4054 (widen_memory_access): Likewise.
4055 * expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
4056 of adjust_address. Do not drop the underlying object of a MEM.
4057 (store_fixed_bit_field): Likewise.
4058 (extract_bit_field_1): Likewise. Fix oversight in recursion.
4059 (extract_fixed_bit_field): Likewise.
4060 * expr.h (adjust_address_1): Adjust prototype.
4061 (adjust_address): Adjust call to adjust_address_1.
4062 (adjust_address_nv): Likewise.
4063 (adjust_bitfield_address): New macro.
4064 (adjust_bitfield_address_nv): Likewise.
4065 * expr.c (expand_assignment): Handle a PARALLEL in more cases.
4066 (store_expr): Likewise.
4067 (store_field): Likewise.
4068
4069 * dse.c: Fix typos in the head comment.
4070
fcf8632e
CB
40712012-09-14 Christian Bruel <christian.bruel@st.com>
4072
4073 PR target/54546
4074 * config/sh/sh-protos.h (sh_need_epilogue): Delete.
4075 (sh_can_use_simple_return_p): Declare.
4076 * config/sh/sh.c (sh_can_use_simple_return_p): Define.
4077 (sh_need_epilogue, sh_need_epilogue_known): Delete.
4078 (sh_output_function_epilogue): Remove sh_need_epilogue_known.
4079 * config/sh/sh.md (simple_return, return): Define.
4080 (epilogue): Use inline return rtl.
4081 (sh_expand_epilogue): Cleanup parameters boolean type.
4082 * config/sh/iterators.md (any_return): New iterator.
4083
312f9b9d
CB
40842012-09-14 Christian Bruel <christian.bruel@st.com>
4085
4086 * config/sh/predicates.md (t_reg_operand): Check REG_P for SUBREG.
78040535 4087 * config/sh/sh.c (sequence_insn_p): Check INSNP_P for SEQUENCE.
312f9b9d 4088
aeeede33
JJ
40892012-09-14 Jakub Jelinek <jakub@redhat.com>
4090
4091 PR target/54564
4092 * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
4093 instead of (match_dup 0) as second argument to vec_merge.
4094 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
4095 Remove third alternative.
4096 (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate
ae5f0678 4097 operand 2 instead of operand 1, but put it as first argument of fma.
b4a642cb
JJ
4098 * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
4099 _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
4100 of the first.
aeeede33 4101
edb32daf
RG
41022012-09-14 Richard Guenther <rguenther@suse.de>
4103
4104 PR tree-optimization/54565
4105 * passes.c (init_optimization_passes): Adjust comments.
4106 (execute_function_todo): Do not execute execute_update_addresses_taken
4107 before processing TODO_rebuild_alias.
4108 * tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken.
4109
f7a39c55
RG
41102012-09-14 Richard Guenther <rguenther@suse.de>
4111
ae5f0678
UB
4112 * tree-vrp.c (register_new_assert_for): Simplify for backward walk.
4113 (find_assert_locations_1): Walk the basic-block backwards, properly
4114 add/prune from live. Use live for asserts derived from stmts.
f7a39c55 4115
3ebd25e1
MG
41162012-09-14 Marc Glisse <marc.glisse@inria.fr>
4117
4118 * tree-ssa-forwprop.c (simplify_bitfield_ref): Call
4119 get_prop_source_stmt.
4120 (simplify_permutation): Likewise.
4121 (simplify_vector_constructor): Likewise.
4122
3537a0cd
RG
41232012-09-14 Richard Guenther <rguenther@suse.de>
4124
4125 * builtin-types.def (BT_FN_CONST_STRING): Add.
4126 * builtins.def (BUILT_IN_FILE, BUILT_IN_FUNCTION,
4127 BUILT_IN_LINE): New builtins.
4128 * gimplify.c (gimplify_call_expr): Expand them.
4129 * doc/extend.texi (__builtin_LINE, __builtin_FUNCTION,
4130 __builtin_FILE): Document.
4131
f636ba14
AG
41322012-09-13 Anthony Green <green@moxielogic.com>
4133
4134 * config/moxie/moxie.h (LINK_SPEC): Add bi-endian support.
4135 (MULTILIB_DEFAULTS): Define.
4136 (ASM_SPEC): Define.
4137 (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support.
4138 (TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and
4139 __MOXIE_BIG_ENDIAN__.
ae5f0678 4140 * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS): Define.
f636ba14
AG
4141 * config/moxie/moxie.opt: New file.
4142 * doc/invoke.texi (Moxie Options): Add section documenting -mel
4143 and -meb.
4144
0ccb505d
PC
41452012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
4146 Manuel López-Ibáñez <manu@gcc.gnu.org>
4147
4148 PR c++/53210
ae5f0678 4149 * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++.
0ccb505d 4150
03c432bd
EB
41512012-09-13 Eric Botcazou <ebotcazou@adacore.com>
4152
4153 * config/sparc/predicates.md (input_operand): Do not consider TImode
4154 constants as 1-instruction integer constants.
4155 Use register_or_zero_operand instead of register_operand and tidy up.
4156 * config/sparc/sparc.md (movti): New expander.
4157 (movti_insn_sp64): New instruction.
4158 (movti_insn_sp64_hq): Likewise.
4159 (TImode splitters): New splitters.
4160 * config/sparc/sparc.c (sparc_expand_move) <TImode>: New case.
4161 (sparc_legitimate_address_p): Return 0 for REG+REG in TImode.
4162
4163 * config/sparc/sparc-protos.h (arith_double_4096_operand): Delete.
4164 (arith_4096_operand): Likewise.
4165 (zero_operand): Likewise.
4166 (fp_zero_operand): Likewise.
4167 (reg_or_0_operand): Likewise.
4168
8bf4ee34
JJ
41692012-09-13 Jakub Jelinek <jakub@redhat.com>
4170
4171 * configure.ac (CXXFLAGS): Remove -O2 when not bootstrapping.
4172 * configure: Regenerated.
4173
b5c350d8
UB
41742012-08-13 Uros Bizjak <ubizjak@gmail.com>
4175
4176 * config/i386/i386.md (prefetch): Do not assert mode of operand 0.
4177 (*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
4178 Rename to ...
4179 (*prefetch_sse): ... this.
4180 (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
4181 Rename to ...
4182 (*prefetch_3dnow): ... this.
4183
df92c640
SB
41842012-09-13 Steven Bosscher <steven@gcc.gnu.org>
4185
4186 * ipa-pure-const.c (state_from_flags, local_pure_const): Use
4187 current_function_name instead of lang_hooks.decl_printable_name.
4188
4189 * function.h (fndecl_name): New prototype.
4190 * function.c (fndecl_name): New function.
4191 * vecir.h (cgraph_node_p): New standard IR VEC type.
4192 * trans-mem.c (cgraph_node_p): No need anymore to define it here.
4193 * ipa-utils.h (ipa_get_nodes_in_cycle): New prototype.
4194 * ipa-utils.c (ipa_get_nodes_in_cycle): New function.
4195 * ipa-reference.c: Don't include langhooks.h, and certainly not twice.
4196 Fix many formatting issues (long lines, short lines, spacing, etc.).
4197 (get_static_name): Use fndecl_name.
4198 (dump_static_vars_set_to_file): New function split out from propagate.
4199 (union_static_var_sets): New function, union two sets and collapse
4200 to all_module_statics as quickly as possible.
4201 (intersect_static_var_sets): New function, similar to above.
4202 (copy_static_var_set): Renamed from copy_global_bitmap and rewritten
4203 to allocate a copy on the same bitmap_obstack as the source set.
4204 (propagate_bits): Simplify, and clarify by using union_static_var_sets.
4205 (generate_summary): Remove bm_temp. Print UID of promotable globals.
4206 (read_write_all_from_decl): Use pass-by-reference, bless C++.
4207 (get_read_write_all_from_node): New function, split out from propagate.
4208 (propagate): Simplify and clarify with helper functions. Use
4209 ipa_get_nodes_in_cycle to walk all nodes in a reduced node.
4210 (ipa_reference_read_optimization_summary): Use fndecl_name instead of
4211 lang_hooks.decl_printable_name.
4212
4213 * rtl.h (print_rtl_single_with_indent): New prototype.
4214 * print-rtl.c (print_rtl_single_with_indent): New function.
4215 * cfghooks.h (empty_block_p, split_block_before_cond_jump): New hooks.
4216 * cfghooks.c (empty_block_p, split_block_before_cond_jump): Implement.
4217 * cfgrtl.c (rtl_block_empty_p, rtl_split_block_before_cond_jump):
4218 Implement RTL specific hooks.
4219 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Register the new hooks.
4220 * tree-cfg.c (gimple_empty_block_p,
4221 gimple_split_block_before_cond_jump): Implement GIMPLE specific hooks.
4222 (gimple_cfg_hooks): Register the new hooks.
4223 * tree-ssa-phiopt.c (empty_block_p): Remove in favor of new hook.
4224
17742d62
RG
42252012-09-13 Richard Guenther <rguenther@suse.de>
4226
4227 * tree-ssa-sccvn.h (enum vn_kind): New.
4228 (vn_get_stmt_kind): Likewise.
4229 * tree-ssa-sccvn.c (vn_get_stmt_kind): New function, adjust
4230 ADDR_EXPR handling.
4231 (visit_use): Use it.
4232 * tree-ssa-pre.c (compute_avail): Likewise, simplify further.
4233
726d4442
VK
42342012-09-13 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4235
4236 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
4237 for targets bdver1, bdver2, btver1 and btver2.
4238
e619b173
CL
42392012-09-13 Christophe Lyon <christophe.lyon@linaro.org>
4240 Richard Earnshaw <rearnsha@arm.com>
4241
4242 * config/arm/arm.md (arm_rev): Factorize thumb1, thumb2 and arm
4243 variants for rev instruction..
4244 (thumb1_rev): Delete pattern.
4245 (arm_revsh): New pattern to support builtin_bswap16.
4246 (arm_rev16, bswaphi2): Likewise.
4247
c1736aea
TJ
42482012-09-12 Teresa Johnson <tejohnson@google.com>
4249
4250 PR gcov-profile/54487
4251 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile
4252 test using F_SETLKW with fcntl.
4253 * configure, config.in: Regenerate.
4254
128e0d89
JH
42552012-09-12 Jan Hubicka <jh@suse.cz>
4256
4257 PR fortran/48636
4258 * ipa-inline-analysis.c (dump_inline_hints): Dump loop stride.
4259 (set_hint_predicate): New function.
4260 (reset_inline_summary): Reset loop stride.
4261 (remap_predicate_after_duplication): New function.
4262 (remap_hint_predicate_after_duplication): New function.
4263 (inline_node_duplication_hook): Update.
4264 (dump_inline_summary): Dump stride summaries.
4265 (estimate_function_body_sizes): Compute strides.
4266 (remap_hint_predicate): New function.
4267 (inline_merge_summary): Use it.
4268 (inline_read_section): Read stride.
4269 (inline_write_summary): Write stride.
4270 * ipa-inline.c (want_inline_small_function_p): Handle strides.
4271 (edge_badness): Likewise.
4272 * ipa-inline.h (inline_hints_vals): Add stride hint.
4273 (inline_summary): Update stride.
4274
cb261eb7
UB
42752012-09-12 Uros Bizjak <ubizjak@gmail.com>
4276
4277 * config/i386/i386.c (x86_prefetch_sse): Change to unsigned char.
4278 * config/i386/i386.h (x86_prefetch_sse): Ditto.
4279
9691b9a7
L
42802012-09-12 H.J. Lu <hongjiu.lu@intel.com>
4281
4282 PR target/54445
4283 * config/i386/predicates.md (x86_64_immediate_operand): Allow
4284 negative offset for UNSPEC_DTPOFF/UNSPEC_NTPOFF.
4285
c3c445e1
JH
42862012-09-12 Jan Hubicka <jh@suse.cz>
4287
4288 * common.opt (flto-partition): Add "max".
4289 * invoke.texi (flto-partition): Document "max"
4290
ed56b7f9
UB
42912012-09-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
4292
cb261eb7
UB
4293 * config/i386/i386.md : Comments on fma4 instruction selection
4294 reflect requirement on register pressure based cost model.
ed56b7f9
UB
4295
4296 * config/i386/driver-i386.c (host_detect_local_cpu): fma4
4297 flag is set-reset as informed by the cpuid flag.
4298
4299 * config/i386/i386.c (processor_alias_table): fma4
4300 flag is enabled for bdver2.
4301
40b178f4
RG
43022012-09-12 Richard Guenther <rguenther@suse.de>
4303
4304 PR tree-optimization/54489
4305 * tree-ssa-pre.c: Include domwalk.h.
4306 (in_fre): Remove.
4307 (sccvn_valnum_from_value_id): New function.
4308 (debug_bitmap_sets_for): Simplify.
4309 (get_representative_for): Properly initialize the SCCVN valnum.
4310 (create_expression_by_pieces): Likewise.
4311 (insert_into_preds_of_block): Likewise.
4312 (can_PRE_operation): Remove.
4313 (make_values_for_phi): Simplify.
4314 (compute_avail): Likewise.
4315 (do_SCCVN_insertion): Remove.
4316 (eliminate_avail, eliminate_push_avail, eliminate_insert):
4317 New functions.
4318 (eliminate): Split and perform a domwalk.
4319 (eliminate_bb): Former eliminate part that is now dom-enter.
4320 (eliminate_leave_block): New function.
4321 (fini_eliminate): Likewise.
4322 (init_pre): Simplify.
4323 (fini_pre): Likewise.
4324 (execute_pre): Fold into do_pre and do_fre.
4325 (do_pre): Consume execute_pre.
4326 (do_fre): Likewise.
4327 * Makefile.in (tree-ssa-pre.o): Add domwalk.h dependency.
4328
0dadc271
DN
43292012-09-12 Diego Novillo <dnovillo@google.com>
4330
4331 * vec.h: Remove compatibility notes for previous distinction
4332 between vectors of objects and vectors of pointers.
4333
3fd42a64 43342012-09-12 Christian Bruel <christian.bruel@st.com>
baeef6a1
CB
4335
4336 * config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define.
4337
9081064a
RO
43382012-09-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4339
4340 * rtl.h (FFS, FLOAT, ABS, PC): Don't undef.
4341 * system.h (FFS, FLOAT, ABS, PC): Undef.
4342
0f042bc5
RG
43432012-09-12 Richard Guenther <rguenther@suse.de>
4344
4345 PR middle-end/54553
4346 * common.opt (finline): Mark with Optimization.
4347
98aa03f4
JJ
43482012-09-12 Jakub Jelinek <jakub@redhat.com>
4349
4350 * config.gcc: Obsolete picochip-*.
4351
e076319b
NF
43522012-09-12 Nathan Froyd <froydnj@gcc.gnu.org>
4353 Hans-Peter Nilsson <hp@bitrange.com>
4354
4355 * config/mmix/mmix.h (MMIX_REG_OK_STRICT): Delete.
4356 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P): Delete.
4357 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
4358 * config/mmix/mmix-protos.h (mmix_intval): Declare.
4359 (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
4360 (mmix_const_double_ok_for_letter_p): Delete.
4361 * config/mmix/constraints.md: New file.
4362 * config/mmix/mmix.md: Include it.
4363 (iordi3): Fix typo; use "I" instead of undefined "H" constraint.
4364 ("*call_real"): Update comment about not using the "p" constraint.
4365 * config/mmix/predicates.md (mmix_reg_or_8bit_operand): Use
4366 satisfies_constraint_I.
4367 (mmix_address_operand): New predicate.
4368 (mmix_symbolic_or_address_operand): Use it instead of address_operand.
4369 * config/mmix/mmix.c: #include tm-constrs.h.
4370 (mmix_intval): Delete declaration. Make non-static.
4371 (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
4372 (mmix_const_double_ok_for_letter_p): Delete.
4373 (mmix_legitimate_address_p): Use satisfies_constraint_I.
4374 (mmix_print_operand_address): Likewise.
4375 (mmix_emit_sp_add): Adjust to use insn_const_int_ok_for_constraint
4376 when matching "L" constraint.
4377
9a1b6b7a
SB
43782012-09-11 Steven Bosscher <steven@gcc.gnu.org>
4379
4380 * tree.h (expand_case): Move prototype ...
4381 * expr.h (expand_case): ...here.
4382 (expand_sjlj_dispatch_table): New prototype.
4383 * stmt.c: Include pointer-set.h instead of bitmap.h.
4384 (expand_case): Use a pointer set instead of a bitmap for
4385 already-seen labels. Fold label values here.
4386 (add_case_node): Don't fold label values here.
4387 (expand_sjlj_dispatch_table): New function.
4388 * except.c (sjlj_emit_dispatch_table): Use it.
4389
148e45e5
MG
43902012-09-11 Marc Glisse <marc.glisse@inria.fr>
4391
df92c640
SB
4392 * tree-ssa-forwprop.c (simplify_vector_constructor): New function.
4393 (ssa_forward_propagate_and_combine): Call it.
148e45e5 4394
4595475a
DN
43952012-09-11 Diego Novillo <dnovillo@google.com>
4396
ed56b7f9 4397 * var-tracking.c (vt_add_function_parameter): Adjust for VEC changes.
4595475a 4398
ba882ba2
DH
43992012-09-11 Dominique Dhumieres <dominiq@lps.ens.fr>
4400
ed56b7f9 4401 * config/darwin.c (darwin_asm_named_section): Adjust for VEC changes.
ba882ba2
DH
4402 (darwin_asm_dwarf_section): Likewise.
4403
6211feb0
MJ
44042012-09-11 Martin Jambor <mjambor@suse.cz>
4405
4406 * dwarf2out.c (dwarf2out_abstract_function): Do not change cfun.
4407 (premark_used_types): New parameter fun, use it instead of cfun.
4408 (gen_subprogram_die): Use DECL_STRUCT_FUNCTION (decl) instead of cfun,
4409 also pass it to premark_used_types.
4410
178a71a9
RR
44112012-09-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4412
4413 * doc/sourcebuild.texi (arm_neon_v2_ok): Adjust command line.
4414
09df34c4
TB
44152012-09-11 Tobias Burnus <burnus@net-b.de>
4416
4417 * doc/sourcebuild.texi (arm_neon_v2_ok): Fix @anchor.
4418
8b2ab9cb 44192012-09-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
df92c640 4420 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
8b2ab9cb 4421
09df34c4
TB
4422 * config/arm/neon.md (fma<VCVTF:mode>4): New pattern.
4423 (*fmsub<VCVTF:mode>4): Likewise.
4424 * doc/sourcebuild.texi (arm_neon_v2_ok, arm_neon_v2_hw): Document it.
8b2ab9cb 4425
e0a6637c
AH
44262012-09-11 Aldy Hernandez <aldyh@redhat.com>
4427
4428 PR middle-end/54149
4429 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set): Only set
4430 flag for writes.
4431
ccdbfe93
BS
44322012-09-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4433
4434 PR tree-optimization/55492
4435 * doc/invoke.texi (max-slsr-cand-scan): New description.
4436 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Limit
4437 the time spent searching for a basis.
4438 * params.def (PARAM_MAX_SLSR_CANDIDATE_SCAN): New param.
4439
b8f4e58f
RG
44402012-09-11 Richard Guenther <rguenther@suse.de>
4441
4442 * gimple.h (gimple_register_type): Remove.
4443 (print_gimple_types_stats): Adjust prototype.
4444 * lto-streamer.h (print_lto_report): Likewise.
4445 * lto-streamer.c (print_lto_report): Adjust.
4446 * gimple.c (gimple_types, type_hash_cache, enum gtc_mode,
4447 struct type_pair_d, lookup_type_pair, struct sccs,
4448 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
4449 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
4450 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
4451 visit, iterative_hash_name, struct type_hash_pair,
4452 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
4453 gimple_type_eq, gimple_register_type_1, gimple_register_type):
4454 Move to lto/lto.c.
4455 (print_gimple_types_stats): Adjust.
4456 (free_gimple_type_tables): Likewise.
4457
2cbd94af
RG
44582012-09-11 Richard Guenther <rguenther@suse.de>
4459
ed56b7f9 4460 * graphite-scop-detection.c (move_sd_regions): Adjust for VEC changes.
2cbd94af
RG
4461 (scopdet_basic_block_info): Likewise.
4462 (build_scops_1): Likewise.
4463 (limit_scops): Likewise.
ed56b7f9 4464
5a27a197
RG
44652012-09-11 Richard Guenther <rguenther@suse.de>
4466
4467 PR middle-end/54515
4468 * gimple.c (get_base_address): Do not return NULL_TREE apart
4469 from for WITH_SIZE_EXPR.
4470 * gimple-fold.c (canonicalize_constructor_val): Do not call
4471 get_base_address when not necessary.
4472
01a723fa
AP
44732012-09-10 Andrew Pinski <apinski@cavium.com>
4474
4475 PR tree-opt/54362
4476 * trans-mem.c (thread_private_new_memory): Handle COND_EXPR also.
4477
5f3b7d7c
MK
44782012-09-10 Maxim Kuvyrkov <maxim@codesourcery.com>
4479
4480 * config/m68k/m68k.c (m68k_sched_dfa_post_advance_cycle): Support
4481 starting scheduling from a pre-existing state.
4482
f32682ca
DN
44832012-09-10 Diego Novillo <dnovillo@google.com>
4484
4485 * vec.h (vec_t::quick_push): Remove overload that accepts 'T *'.
4486 Update all users.
4487 (vec_t::safe_push): Likewise.
4488 (vec_t::quick_insert): Likewise.
4489 (vec_t::lower_bound): Likewise.
4490 (vec_t::safe_insert): Likewise.
4491 (vec_t::replace): Change second argument to 'T &'.
4492
05279bcd
MR
44932012-09-10 Maciej W. Rozycki <macro@codesourcery.com>
4494
4495 * config/rs6000/rs6000.md: Move a splitter next to its insn.
4496
aadb5b43
OE
44972012-09-10 Oleg Endo <olegendo@gcc.gnu.org>
4498
4499 PR target/54089
4500 * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if
4501 dynamic shifts are available.
4502 (SHIFT_COUNT_TRUNCATED): Always define to 0. Correct comment.
4503 * config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments.
4504 * config/sh/predicates.md (shift_count_operand): Allow
4505 arith_reg_operand even if TARGET_DYNSHIFT is false.
4506 * config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns
4507 if needed.
4508 (ashlsi3_d_call, lshrsi3_d_call): New insns.
4509
af2b97c4
RS
45102012-09-10 Richard Sandiford <rdsandiford@googlemail.com>
4511
4512 * ira.c (setup_pressure_classes): Handle synonymous classes.
4513
881a9dcd
MG
45142012-09-10 Marc Glisse <marc.glisse@inria.fr>
4515
aadb5b43
OE
4516 * tree-ssa-forwprop.c (simplify_bitfield_ref): New function.
4517 (ssa_forward_propagate_and_combine): Call it.
881a9dcd 4518
965c1798
SE
45192012-09-10 Steve Ellcey <sellcey@mips.com>
4520
4521 * config.gcc: Add mips*-mti-linux* target
4522 Handle with_synci like other options.
4523 * config/mips/gnu-user64.h (LINUX64_DRIVER_SELF_SPECS): New.
4524 (DRIVER_SELF_SPECS): Define in terms of LINUX64_DRIVER_SELF_SPECS.
4525 * config/mips/mips.h (MIPS_ISA_SYNCI_SPEC): New.
4526 * config/mips/mti-linux.h: New file.
4527 * config/mips/t-mti-linux: New file.
4528
84c3c7ce
MG
45292012-09-10 Marc Glisse <marc.glisse@inria.fr>
4530
df92c640 4531 * tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR.
84c3c7ce 4532
dfea20f1
MJ
45332012-09-10 Martin Jambor <mjambor@suse.cz>
4534
4535 * params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter.
4536 * ipa-prop.c: Include params.h.
4537 (IPA_MAX_AFF_JF_ITEMS): Removed.
4538 (determine_known_aggregate_parts): Use param value of
4539 PARAM_IPA_MAX_AGG_ITEMS instead of IPA_MAX_AFF_JF_ITEMS.
4540 * Makefile.in (ipa-prop.o): Add PARAMS_H dependency.
4541
1779dc34
RG
45422012-09-10 Richard Guenther <rguenther@suse.de>
4543
4544 PR tree-optimization/54520
4545 * tree-ssa-threadupdate.c (def_split_header_continue_p):
4546 Properly consider sub-loops.
4547
d75171f3
RH
45482012-09-10 Richard Henderson <rth@redhat.com>
4549
4550 * config/alpha/predicates.md (small_symbolic_operand): Disallow
4551 large offsets.
4552
30d32ae6
GJL
45532012-09-10 Georg-Johann Lay <avr@gjlay.de>
4554
4555 PR target/54536
4556 * config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".
4557
1cdbb3f9
JH
45582012-09-10 Jan Hubicka <jh@suse.cz>
4559
4560 * lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases.
4561 * symtab.c (symtab_make_decl_local): Remove user defined visibility
4562 when making symbol local.
4563
82a0aae0
MK
45642012-09-09 Mark Kettenis <kettenis@gnu.org>
4565
4566 * config/openbsd-stdint.h (INTMAX_TYPE, UINTMAX_TYPE): Define.
ed56b7f9 4567
b4661bfe
JH
45682012-09-09 Jan Hubicka <jh@suse.cz>
4569
4570 * passes.c (ipa_write_summaries_1): Set state;
4571 do not call compute_ltrans_boundary.
4572 (ipa_write_optimization_summaries): Likewise.
4573 (ipa_write_summaries): compute_ltrans_boundary here.
4574 * lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap.
4575 (compute_ltrans_boundary): Update prototype.
4576
ef64d158
UD
45772012-09-09 Ulrich Drepper <drepper@gmail.com>
4578
4579 * config/i386/cpuid.h: Define signature_*_e[bcd]x macros for
4580 matching results of level 0 calls to __cpuid to processor
4581 manufacturers.
4582 * config/i386/driver-i386.c (vendor_signatures): Removed.
4583 (processor_signatures): Removed.
4584 (host_detect_local_cpu): Replace uses of now-removed SIG_*
4585 constants with the new signature_*_ebx constants.
4586
7b99cca4
JH
45872012-09-08 Jan Hubicka <jh@suse.cz>
4588
4589 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
4590 in partitioning.
4591 * tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
4592 forward declaration.
4593 (lto_symtab_encoder_d): Forward declare.
4594 (ipa_write_optimization_summaries): Update.
4595 * lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
4596 body, initializer and in_partition.
4597 (lto_symtab_encoder_delete): Update.
4598 (lto_symtab_encoder_encode): Update.
4599 (lto_symtab_encoder_lookup): Move inline.
4600 (lto_symtab_encoder_delete_node): New function.
4601 (lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
4602 lto_symtab_encoder_encode_initializer_p,
ed56b7f9
UB
4603 lto_set_symtab_encoder_encode_initializer,
4604 lto_symtab_encoder_in_partition_p,
7b99cca4
JH
4605 lto_symtab_encoder_in_partition_p): Update.
4606 (compute_ltrans_boundary): Take encoder as an input.
4607 * passes.c (ipa_write_summaries_1): Update.
4608 (ipa_write_summaries_1): Update.
4609 (ipa_write_summaries): Update.
4610 (ipa_write_optimization_summaries): Update.
4611 * lto-streamer.c (print_lto_report): Report number of cgraph nodes.
4612 * lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
4613 num_output_symtab_nodes.
4614 (lto_encoder_entry): New structure.
4615 (struct lto_symtab_encoder_d): Reorg.
4616 (lto_symtab_encoder_delete_node): Declare.
4617 (lto_symtab_encoder_lookup): Bring inline.
4618 (compute_ltrans_boundary): Update.
4619 (lto_symtab_encoder_size): Update.
4620 (lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
4621 (lto_symtab_encoder_deref): Update.
4622
259febfe
JDA
46232012-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4624
ed56b7f9
UB
4625 * config/pa/pa.c (hppa_rtx_costs): Update costs for large
4626 integer modes.
259febfe 4627
4e5315e5
AK
46282012-09-08 Andi Kleen <ak@linux.intel.com>
4629
ed56b7f9 4630 * gcc/lto/lto.c (do_whole_program_analysis): Fix last broken patch.
4e5315e5 4631
b3e44629
AK
46322012-09-08 Andi Kleen <ak@linux.intel.com>
4633
4634 * gcc/common.opt (-fmem-report-wpa): Add
4635 * gcc/doc/invoke.texi (-fmem-report-wpa): Document.
4636 * gcc/lto/lto.c (do_whole_program_analysis): Run mem_report
4637 when mem_report_wpa is set.
4638
55a51460
AG
46392012-09-07 Anthony Green <green@moxielogic.com>
4640
4641 * config/moxie/moxie.c (moxie_expand_prologue): Optimize prologue
4642 for functions with large static stack requirements.
4643 (moxie_expand_epilogue): Use $r12 instead of $r5 for pulling saved
4644 values off of the stack.
4645
b12b5029
NC
46462012-09-07 Nick Clifton <nickc@redhat.com>
4647
4648 * config/v850/v850.h (DBX_DEBUGGING_INFO): Define.
4649 (ASM_GENERATE_INTERNAL_LABEL): Define if not already provided.
4650 * config/v850/v850.c (compute_register_save_size): Always include
4651 the link pointer.
4652 (increment_stack): New function - emits insns to increment or
4653 decrement the stack pointer.
4654 (expand_prologue, expand_epilogue): Use it.
4655 (expand_prologue): Set the function stack size, if requested.
4656 (v850_debug_unwind_info): New function.
4657 (TARGET_DEBUG_UNWIND_INFO): Define.
4658
e919e5bf
RE
46592012-09-07 Richard Earnshaw <rearnsha@arm.com>
4660
4661 PR tree-ssa/54295
4662 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
4663 Sign-extension of a zero-extended value can be simplified to
4664 just zero-extension.
4665
81ab7312
RG
46662012-09-07 Richard Guenther <rguenther@suse.de>
4667
4668 PR middle-end/53667
4669 * tree-ssa-structalias.c (handle_rhs_call): Properly clobber
4670 EAF_NOESCAPED arguments. Transitively close non-EAF_DIRECT
4671 arguments separately.
4672
d630245f
SB
46732012-09-07 Steven Bosscher <steven@gcc.gnu.org>
4674
4675 * bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.
4676
4677 * graphite.c (print_global_statistics): Use EDGE_COUNT instead
4678 of VEC_length.
4679 (print_graphite_scop_statistics): Likewise.
4680 * graphite-scop-detection.c (get_bb_type): Use single_succ_p.
4681 (print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length.
4682 (canonicalize_loop_closed_ssa): Use single_pred_p.
4683
4684 * alias.c (reg_seen): Make this an sbitmap.
4685 (record_set, init_alias_analysis): Update.
4686
4687 * tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping.
4688
25722436
TV
46892012-09-07 Tom de Vries <tom@codesourcery.com>
4690
4691 PR tree-optimization/53986
4692 * tree-vrp.c (extract_range_from_multiplicative_op_1): Allow
4693 LSHIFT_EXPR.
ed56b7f9
UB
4694 (extract_range_from_binary_expr_1): Handle LSHIFT with constant
4695 range as shift amount.
25722436 4696
7fb3b7a7
SB
46972012-09-07 Segher Boessenkool <segher@kernel.crashing.org>
4698
4699 * config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
4700 * config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
4701 * config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
4702 * config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
4703 * config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
4704 * config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
4705 * config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
4706 * config/rs6000/rs6000.c (print_operand) ['.']: Delete.
4707 * config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
4708 * config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
4709 Replace %. with nop.
4710 (tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
4711 (tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
4712 (tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
4713 (call_nonlocal_aix32): Ditto.
4714 (call_nonlocal_aix64): Ditto.
4715 (call_value_nonlocal_aix32): Ditto.
4716 (call_value_nonlocal_aix64): Ditto.
4717
ed56b7f9 47182012-09-06 Andi Kleen <ak@linux.intel.com>
35d5c697
AK
4719
4720 * doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
4721 et.al. should be used.
4722
aed7d7cf
AK
47232012-09-06 Andi Kleen <ak@linux.intel.com>
4724
4725 * gcc/lto-streamer.h (res_pair): Add.
4726 (lto_file_decl_data): Replace resolutions with respairs.
4727 Add max_index.
4728 * gcc/lto/lto.c (lto_resolution_read): Remove max_index. Add rp.
4729 Initialize respairs.
4730 (lto_file_finalize): Set up resolutions vector lazily from respairs.
4731
27bcd47c
LC
47322012-09-06 Lawrence Crowl <crowl@google.com>
4733
4734 * double-int.h (double_int::operator &=): New.
4735 (double_int::operator ^=): New.
4736 (double_int::operator |=): New.
4737 (double_int::mul_with_sign): Modify overflow parameter to bool*.
4738 (double_int::add_with_sign): New.
4739 (double_int::ule): New.
4740 (double_int::sle): New.
4741 (binary double_int::operator *): Remove parameter name.
4742 (binary double_int::operator +): Likewise.
4743 (binary double_int::operator -): Likewise.
4744 (binary double_int::operator &): Likewise.
4745 (double_int::operator |): Likewise.
4746 (double_int::operator ^): Likewise.
4747 (double_int::and_not): Likewise.
4748 (double_int::from_shwi): Tidy formatting.
4749 (double_int::from_uhwi): Likewise.
4750 (double_int::from_uhwi): Likewise.
4751 * double-int.c (double_int::mul_with_sign): Modify overflow parameter
4752 to bool*.
4753 (double_int::add_with_sign): New.
4754 (double_int::ule): New.
4755 (double_int::sle): New.
4756 * builtins.c: Modify to use the new double_int interface.
4757 * cgraph.c: Likewise.
4758 * combine.c: Likewise.
4759 * dwarf2out.c: Likewise.
4760 * emit-rtl.c: Likewise.
4761 * expmed.c: Likewise.
4762 * expr.c: Likewise.
4763 * fixed-value.c: Likewise.
4764 * fold-const.c: Likewise.
4765 * gimple-fold.c: Likewise.
4766 * gimple-ssa-strength-reduction.c: Likewise.
4767 * gimplify-rtx.c: Likewise.
4768 * ipa-prop.c: Likewise.
4769 * loop-iv.c: Likewise.
4770 * optabs.c: Likewise.
4771 * stor-layout.c: Likewise.
4772 * tree-affine.c: Likewise.
4773 * tree-cfg.c: Likewise.
4774 * tree-dfa.c: Likewise.
4775 * tree-flow-inline.h: Likewise.
4776 * tree-object-size.c: Likewise.
4777 * tree-predcom.c: Likewise.
4778 * tree-pretty-print.c: Likewise.
4779 * tree-sra.c: Likewise.
4780 * tree-ssa-address.c: Likewise.
4781 * tree-ssa-alias.c: Likewise.
4782 * tree-ssa-ccp.c: Likewise.
4783 * tree-ssa-forwprop.c: Likewise.
4784 * tree-ssa-loop-ivopts.c: Likewise.
4785 * tree-ssa-loop-niter.c: Likewise.
4786 * tree-ssa-phiopt.c: Likewise.
4787 * tree-ssa-pre.c: Likewise.
4788 * tree-ssa-sccvn: Likewise.
4789 * tree-ssa-structalias.c: Likewise.
4790 * tree-ssa.c: Likewise.
4791 * tree-switch-conversion.c: Likewise.
4792 * tree-vect-loop-manip.c: Likewise.
4793 * tree-vrp.c: Likewise.
4794 * tree.h: Likewise.
4795 * tree.c: Likewise.
4796 * varasm.c: Likewise.
4797
54af4523
UB
47982012-09-06 Uros Bizjak <ubizjak@gmail.com>
4799
ed56b7f9 4800 * configure.ac (hle prefixes): Remove .code64 directive.
54af4523
UB
4801 * configure: Regenerated.
4802
d435a4be
KT
48032012-09-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4804
4805 * config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P,
4806 LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently.
4807 * config/arm/arm.h: Use REG_P, MEM_P consistently.
4808 * config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P
4809 consistently.
4810 * config/arm/neon.md: Use REG_P consistently.
54af4523 4811 * config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P consistently.
d435a4be
KT
4812 * config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently.
4813 * config/arm/vec-common.md: Use REG_P consistently.
4814
511c229c
RG
48152012-09-06 Richard Guenther <rguenther@suse.de>
4816
4817 PR tree-optimization/54498
4818 * tree-ssa-alias.h (get_continuation_for_phi): Add flag to
4819 abort when reaching an already visited region.
4820 * tree-ssa-alias.c (maybe_skip_until): Likewise. And do it.
4821 (get_continuation_for_phi_1): Likewise.
4822 (walk_non_aliased_vuses): When we translated the reference,
4823 abort when we re-visit a region.
4824 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
4825
81a14f1e
DE
48262012-09-06 David Edelsohn <dje.gcc@gmail.com>
4827
4828 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS
4829 section.
4830 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new
4831 arguments to TARGET_ADDRESS_COST call.
4832
342f75af
RG
48332012-09-06 Richard Guenther <rguenther@suse.de>
4834
4835 * tree.h (MOVE_NONTEMPORAL): Remove.
4836 * tree-pretty-print.c (dump_generic_node): Remove
4837 MOVE_NONTEMPORAL handling.
4838 * expr.c (expand_expr_real_1): Likewise.
4839
b8a2f529
RG
48402012-09-06 Richard Guenther <rguenther@suse.de>
4841
4842 * passes.c (execute_function_todo): Call compute_may_aliases
4843 only if flag_tree_pta is set.
4844
31a47f1a
AP
48452012-09-06 Andrew Pinski <apinski@cavium.com>
4846
4847 PR tree-opt/54494
4848 * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
4849
5ef5a3b7
JJ
48502012-09-06 Jakub Jelinek <jakub@redhat.com>
4851
4852 PR rtl-optimization/54455
4853 * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
4854 bb ends up with asm goto referencing bb's label.
4855
67401072
CL
48562012-09-06 Chen Liqin <liqin.gcc@gmail.com>
4857
54af4523
UB
4858 * config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and
4859 score_legitimize_address function, use compiler default code instead.
67401072 4860
7c99ab65
JH
48612012-09-05 Jan Hubicka <jh@suse.cz>
4862
54af4523
UB
4863 * ipa-inline.c (want_inline_small_function_p): Use
4864 INLINE_HINT_loop_iterations hint.
7c99ab65 4865
5285c21c
AP
48662012-09-05 Andrew Pinski <apinski@cavium.com>
4867
df92c640 4868 * optabs.c (emit_conditional_add): Correct comment about the arguments.
5285c21c
AP
4869 Remove code which might swap op2 and op3 since they cannot be swapped.
4870 * doc/md.texi (add@var{mode}cc): Fix document about how the arguments
4871 are used.
4872
b413068c
OE
48732012-09-05 Oleg Endo <olegendo@gcc.gnu.org>
4874
4875 * hooks.c (hook_int_rtx_mode_as_bool_0): New function.
4876 * hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
4877 * output.h (default_address_cost): Add machine_mode and address space
4878 arguments.
4879 * target.def (address_cost): Likewise.
4880 * rtlanal.c (address_cost): Pass mode and address space to target hook.
4881 (default_address_cost): Add unnamed machine_mode and address space
4882 arguments.
4883 * doc/tm.texi: Regenerate.
4884 * config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
4885 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4886 * config/arm/arm.c (arm_address_cost): Add machine_mode and address
4887 space arguments.
4888 * config/avr/avr.c (avr_address_cost): Likewise.
4889 * config/bfin/bfin.c (bfin_address_cost): Likewise.
4890 * config/cr16/cr16.c (cr16_address_cost): Likewise.
4891 * config/cris/cris.c (cris_address_cost): Likewise.
4892 * config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
4893 * config/i386/i386.c (ix86_address_cost): Likewise.
4894 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
4895 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4896 * config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
4897 address space arguments. Pass them on in recursive invocation.
4898 * config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
4899 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4900 * config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
4901 space arguments.
4902 * config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
4903 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4904 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
4905 * config/mep/mep.c (mep_address_cost): Add machine_mode and address
4906 space arguments.
4907 * config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
4908 * config/mips/mips.c (mips_address_cost): Likewise.
4909 * config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
4910 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4911 * config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
4912 address space arguments.
4913 (mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
4914 mn10300_address_cost.
4915 * config/pa/pa.c (hppa_address_cost): Add machine_mode and address
4916 space arguments.
4917 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
4918 (TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
4919 hook_int_rtx_bool_0.
4920 * config/rx/rx.c (rx_address_cost): Add machine_mode and address
4921 space arguments.
4922 * config/s390/s390.c (s390_address_cost): Likewise.
4923 * config/score/score-protos.h (score_address_cost): Likewise.
4924 * config/score/score.c (score_address_cost): Likewise.
4925 * config/sh/sh.c (sh_address_cost): Likewise.
4926 * config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
4927 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4928 * config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
4929 * config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
4930 and address space arguments.
4931 * config/v850/v850.c (TARGET_ADDRESS_COST): Use
4932 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4933 * config/vax/vax.c (vax_address_cost): Add machine_mode and address
4934 space arguments.
4935 * config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
4936 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
4937
ae5f0678 49382012-09-05 Diego Novillo <dnovillo@google.com>
7e7d75c1
DN
4939
4940 PR bootstrap/54484
54af4523 4941 * vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument.
7e7d75c1 4942
854f9272
JJ
49432012-09-05 Jakub Jelinek <jakub@redhat.com>
4944
4945 PR middle-end/54486
4946 * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
4947 build_int_cst with size_type_node instead of size_int.
4948
305b3c9b
UB
49492012-09-05 Uros Bizjak <ubizjak@gmail.com>
4950
4951 * config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
4952 Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
4953 Use nonimmediate_operand instead of
4954 nonimm_not_xmm0_operand{,_maybe_avx}.
4955 (<sse4_1_avx2>_pblendvb): Ditto.
4956 (sse4_2_pcmpestr): Ditto.
4957 (*sse4_2_pcmpestr_unaligned): Ditto.
4958 (sse4_2_pcmpistr): Ditto.
4959 (*sse4_2_pcmpistr_unaligned): Ditto.
4960 * config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
4961 (nonimm_not_xmm0_operand): Ditto.
4962 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4963 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4964 * config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.
4965
4700dd70
EB
49662012-09-05 Eric Botcazou <ebotcazou@adacore.com>
4967
4968 * bb-reorder.c: Clarify a few points in the head comment and fix
4969 long lines in other comments.
4970 (find_traces): Fix long line.
4971 (find_traces_1_round): Likewise.
4972 (better_edge_p): Likewise.
4973 (connect_traces): Likewise.
4974 (duplicate_computed_gotos): Likewise.
4975 (find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
4976 (fix_up_fall_thru_edges): Fix formatting.
4977
18eb76eb
RG
49782012-09-05 Richard Guenther <rguenther@suse.de>
4979
4980 PR tree-optimization/46590
4981 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
4982 update SSA form here.
4983 (canonicalize_induction_variables): Assert we do not need to
4984 update SSA form.
4985 (tree_unroll_loops_completely): Update SSA form here.
4986 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
4987 Do not verify loop-closed SSA form if SSA form is not up-to-date.
4988
b588ae30
GJL
49892012-09-05 Georg-Johann Lay <avr@gjlay.de>
4990
4991 PR target/54461
4992 * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
4993 not configured --with-avrlibc=no.
4994 (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured
4995 --with-avrlibc=no.
4996 * config/avr/avrlibc.h: New file.
4997 * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
4998 not configured --with-avrlibc=no.
4999 * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__
5000
abd16fb1
TJ
50012012-09-04 Teresa Johnson <tejohnson@google.com>
5002
5003 * gcov-io.c (gcov_write_summary): Write out non-zero histogram
5004 entries to function summary along with an occupancy bit vector.
5005 (gcov_read_summary): Read in the histogram entries.
5006 (gcov_histo_index): New function.
5007 (void gcov_histogram_merge): Ditto.
5008 * gcov-io.h (gcov_type_unsigned): New type.
5009 (struct gcov_bucket_type): Ditto.
5010 (struct gcov_ctr_summary): Include histogram.
5011 (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
5012 (GCOV_HISTOGRAM_SIZE): New macro.
5013 (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
5014 * profile.c (NUM_GCOV_WORKING_SETS): Ditto.
5015 (gcov_working_sets): New global variable.
5016 (compute_working_sets): New function.
5017 (find_working_set): Ditto.
5018 (get_exec_counts): Invoke compute_working_sets.
5019 * coverage.c (read_counts_file): Merge histograms, and
5020 fix bug with accessing summary info for non-summable counters.
5021 * basic-block.h (gcov_type_unsigned): New type.
5022 (struct gcov_working_set_info): Ditto.
5023 (find_working_set): Declare.
5024 * gcov-dump.c (tag_summary): Dump out histogram.
5025
bde6de5d
DN
50262012-09-04 Diego Novillo <dnovillo@google.com>
5027
5028 PR bootstrap/54484
5029 * vec.h (vec_t::embedded_init): Move default argument value
5030 to function declaration.
5031
427b8bb8
EB
50322012-09-04 Eric Botcazou <ebotcazou@adacore.com>
5033
5034 * bb-reorder.c (gate_handle_reorder_blocks): Move around.
5035 (rest_of_handle_reorder_blocks): Likewise.
5036 (pass_reorder_blocks): Likewise.
5037 (gate_handle_partition_blocks): Likewise.
5038
88a8ba95
EB
50392012-09-04 Eric Botcazou <ebotcazou@adacore.com>
5040
5041 PR rtl-optimization/54456
5042 * sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.
5043
326280d4
DN
50442012-09-04 Diego Novillo <dnovillo@google.com>
5045
5046 PR bootstrap/54478
5047 * vec.h (vec_t::alloc): Remove explicit type specification
5048 in call to reserve.
5049 (vec_t::copy): Likewise.
5050 (vec_t::reserve): Likewise.
5051 (vec_t::reserve_exact): Likewise.
5052 (vec_t::safe_splice): Likewise.
5053 (vec_t::safe_push): Likewise.
5054 (vec_t::safe_grow): Likewise.
5055 (vec_t::safe_grow_cleared): Likewise.
5056 (vec_t::safe_insert): Likewise.
5057
96672a3e
RH
50582012-09-04 Richard Henderson <rth@redhat.com>
5059
5060 * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
5061
4d4b1b30
RG
50622012-09-04 Richard Guenther <rguenther@suse.de>
5063
5064 * tree-ssa-pre.c (value_expressions): Make it a vector of
5065 bitmaps containing expression IDs.
5066 (add_to_value): Adjust.
5067 (sorted_array_from_bitmap_set): Likewise.
5068 (bitmap_set_replace_value): Likewise.
5069 (print_value_expressions): Likewise.
5070 (get_constant_for_value_id): Likewise.
5071 (get_representative_for): Likewise.
5072 (phi_translate_1): Likewise.
5073 (bitmap_find_leader): Likewise.
5074 (find_or_generate_expression): Likewise.
5075 (do_regular_insertion): Likewise.
5076 (init_pre): Likewise.
5077 (fini_pre): Likewise.
5078
ae5f0678 50792012-09-04 Diego Novillo <dnovillo@google.com>
dce6e8ad
DN
5080
5081 PR bootstrap/54479
5082 * vec.h (vec_t::copy): Add cast in call to reserve_exact.
5083
3c1d57d0
RG
50842012-09-04 Richard Guenther <rguenther@suse.de>
5085
5086 * tree-ssa-pre.c (add_to_exp_gen): Adjust.
5087 (make_values_for_phi): Do not add to PHI_GEN for FRE.
5088 (compute_avail): Stop processing after adding all defs to
5089 AVAIL_OUT for FRE.
5090 (init_pre): Do not allocate not needed bitmap sets for FRE.
5091
ae5f0678 50922012-09-04 Diego Novillo <dnovillo@google.com>
bd0c3bfd
DN
5093
5094 Rewrite VEC_* functions as member functions of vec_t.
5095
5096 * vec.h: Update documentation.
5097 (ALONE_VEC_CHECK_INFO): Define.
5098 (ALONE_VEC_CHECK_DECL): Define.
5099 (ALONE_VEC_CHECK_PASS): Define.
5100 (struct vec_prefix): Rename field NUM to NUM_.
5101 Rename field ALLOC to ALLOC_.
5102 Update all users.
5103 (struct vec_t): Rename field PREFIX to PREFIX_.
5104 Rename field VEC to VEC_.
5105 Update all users.
5106 (vec_t::length): Rename from VEC_length_1. Update all users.
5107 (vec_t::empty): Rename from VEC_empty_1. Update all users.
5108 (vec_t::address): Rename from VEC_address_1. Update all users.
5109 (vec_address): New.
5110 (vec_t::last): Rename from VEC_last_1. Update all users.
5111 (vec_t::operator[]): Rename from VEC_index_1. Update all users.
5112 (vec_t::iterate): Rename from VEC_iterate_1. Update all users.
5113 (vec_t::embedded_size): Rename from VEC_embedded_size_1.
5114 Update all users.
5115 (vec_t::embedded_init): Rename from VEC_embedded_init_1.
5116 Update all users.
5117 (vec_t::alloc): Rename from VEC_alloc_1. Update all users.
5118 (vec_t::free): Rename from VEC_free_1. Update all users.
5119 (vec_t::copy): Rename from VEC_copy_1. Update all users.
5120 (vec_t::space): Rename from VEC_space_1. Update all users.
5121 (vec_t::reserve): Rename from VEC_reserve_1. Update all users.
5122 (vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
5123 Update all users.
5124 (vec_t::splice): Rename from VEC_splice_1. Update all users.
5125 (vec_t::safe_splice): Rename from VEC_safe_splice_1. Update all users.
5126 (vec_t::quick_push): Rename from VEC_quick_push_1. Update all users.
5127 (vec_t::safe_push): Rename from VEC_safe_push_1. Update all users.
5128 (vec_t::pop): Rename from VEC_pop_1. Update all users.
5129 (vec_t::truncate): Rename from VEC_truncate_1. Update all users.
5130 (vec_t::safe_grow): Rename from VEC_safe_grow_1. Update all users.
5131 (vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
5132 Update all users.
5133 (vec_t::replace): Rename from VEC_replace_1. Update all users.
5134 (vec_t::quick_insert): Rename from VEC_quick_insert_1.
5135 Update all users.
5136 (vec_t::safe_insert): Rename from VEC_safe_insert_1. Update all users.
5137 (vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
5138 Update all users.
5139 (vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
5140 Update all users.
5141 (vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
5142 (vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.
5143
fd8d363e
SB
51442012-09-04 Steven Bosscher <steven@gcc.gnu.org>
5145
5146 * gimple.h (gimple_build_switch): Remove.
5147 (gimple_build_switch_vec): Promote to the new gimple_build_switch.
5148 (gimple_switch_default_label): Assert the default case label is
5149 really a default case label.
5150 (gimple_switch_set_default_label): Likewise.
5151 * gimple.c (gimple_build_switch_nlabels): Make sure a default label
5152 is passed in, and simplify accordingly.
5153 (gimple_build_switch): Removed.
5154 (gimple_build_switch_vec): Rename to gimple_build_switch.
5155 * gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
5156 * gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
5157 case label.
5158 * stmt.c (expand_case): Simplify using the fact that every GIMPLE
5159 switch must have a default case.
5160 * tree-cfg.c (group_case_labels_stmt): Likewise.
5161 (verify_gimple_switch): Use gimple_switch_label in verifier to get
5162 the label at index 0, and verify that it is a valid default case.
5163 * except.c (sjlj_emit_dispatch_table): Rewrite construction of the
5164 switch for dispatching.
5165 * tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
5166 (lower_eh_dispatch): Likewise.
5167 * tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
5168 label at index 0 before turning it into a default case label.
5169 * omp-low.c (expand_omp_sections): Update gimple_build_switch use.
5170 * tree-switch-conversion.c (emit_case_bit_tests): Get the default case
5171 label using gimple_switch_default_label.
5172 (collect_switch_conv_info): Likewise.
5173 (process_switch): Likewise.
5174 * doc/gimple.texi: Update documentation of gimple_build_switch.
5175
b8db7f86
GJL
51762012-09-04 Georg-Johann Lay <avr@gjlay.de>
5177
5178 PR target/54476
5179 * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
5180 SImode.
5181
4efbb06f
BC
51822012-09-04 Bin Cheng <bin.cheng@arm.com>
5183
5184 PR target/45070
305b3c9b
UB
5185 * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
5186 of size less than 4 bytes by using macro ARM_NUM_INTS.
4efbb06f
BC
5187 (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
5188
a8886f7d
RG
51892012-09-04 Richard Guenther <rguenther@suse.de>
5190
5191 PR tree-optimization/54458
5192 * tree-ssa-threadupdate.c (thread_through_loop_header): If we
5193 turn the loop into one with multiple latches mark it so.
5194
cee8f252
SKS
51952012-09-04 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5196
5197 PR target/54220
5198 * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
5199 define to...
5200 (avr_allocate_stack_slots_for_args): ...this new static function.
5201
3474210e
CL
52022012-09-04 Christophe Lyon <christophe.lyon@linaro.org>
5203
5204 * config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
5205 by GEN_INT.
5206 (arm_emit_coreregs_64bit_shift): Likewise.
5207
434641a5
CL
52082012-09-04 Christophe Lyon <christophe.lyon@linaro.org>
5209
305b3c9b
UB
5210 * config/arm/arm.c (arm_evpc_neon_vext): New function.
5211 (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext.
434641a5 5212
ff596ca1
OE
52132012-09-04 Oleg Endo <olegendo@gcc.gnu.org>
5214
5215 PR target/51244
5216 * config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
5217 canonicalization code into...
5218 * (sh_canonicalize_comparison): This new function.
5219 * config/sh/sh-protos.h: Declare it.
5220 * config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
5221 * config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
5222 always invoke expand_cbranchsi4.
5223
ed56b7f9 52242012-09-03 Andi Kleen <ak@linux.intel.com>
8b4f7b47
AK
5225
5226 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize
5227 addr_offset always.
5228
f35613b2
AP
52292012-09-03 Andrew Pinski <apinski@cavium.com>
5230
5231 PR tree-opt/53395
5232 * tree-if-conv.c (constant_or_ssa_name): New function.
5233 (fold_build_cond_expr): New function.
5234 (predicate_scalar_phi): Use fold_build_cond_expr instead of build3.
5235 (predicate_mem_writes): Likewise.
5236
aa369472
MG
52372012-09-03 Marc Glisse <marc.glisse@inria.fr>
5238
5239 * fold-const.c (fold_ternary_loc): Constant-propagate after
5240 removing dead operands.
5241
197ce793
MM
52422012-09-03 Michael Matz <matz@suse.de>
5243
5244 PR tree-optimization/46590
5245 * tree-cfg.c (gimple_duplicate_sese_region): Don't update
5246 SSA web here ...
5247 * tree-ssa-loop-ch.c (copy_loop_headers): ... but here.
5248
1d85ac83
SL
52492012-09-03 Sandra Loosemore <sandra@codesourcery.com>
5250
5251 * doc/invoke.texi: Fix numerous typos and punctuation/grammatical
5252 errors throughout the file. Re-word some awkward sentences and
5253 paragraphs.
5254
6cadda8b
RB
52552012-09-03 Richard Guenther <rguenther@suse.de>
5256
5257 PR tree-optimization/54362
5258 * tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR.
5259
98412b77
AK
52602012-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5261
5262 * config/s390/s390.c (s390_loadrelative_operand_p): New function.
5263 (s390_check_qrst_address, print_operand_address): Use
5264 s390_loadrelative_operand_p instead of s390_symref_operand_p.
6cadda8b
RB
5265 (s390_check_symref_alignment): Accept pointer size alignment for
5266 GOT slots.
98412b77
AK
5267 (legitimize_pic_address): Use load relative on z10 or later.
5268
d540153b
JJ
52692012-09-03 Jakub Jelinek <jakub@redhat.com>
5270
5271 PR debug/53923
5272 * valtrack.c (dead_debug_insert_temp): Drop non-reg uses
5273 from the chain.
5274
28b4fc51
JM
52752012-09-03 Joseph Myers <joseph@codesourcery.com>
5276
5277 * common.opt (--no-sysroot-suffix): New driver option.
5278 * doc/invoke.texi (--no-sysroot-suffix): Document.
5279 * gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not
5280 needing spec processing.
5281 (main): Do not process sysroot suffixes if no_sysroot_suffix.
5282
af869326
OE
52832012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
5284
5285 PR target/33135
5286 * common/config/sh/sh-common.c: Update copyright years.
5287 (sh_option_init_struct): Delete.
5288 (TARGET_OPTION_INIT_STRUCT): Likewise.
5289
b07c4372
OE
52902012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
5291
5292 PR target/54418
5293 * config/sh/sh.md (cmpgeusi_t): Remove N alternative.
5294 Check operands[1] in split condition instead of operands[0].
5295 Add comments.
5296
613061fd
MK
52972012-09-02 Mark Kettenis <kettenis@openbsd.org>
5298
5299 * config.gcc (x86_64-*-openbsd*): New target.
5300 * config.host (*-*-openbsd*): New target.
5301 * config/openbsd.h (TARGET_C99_FUNCTIONS): Define.
5302 * config/i386/openbsdelf.h: Remove some superfluous defines and
5303 group things together in a more logical fashion.
5304 (DBX_REGISTER_NUMBER): Provide a
5305 definition that works on both 32-bit and 64-bit targets.
5306 (WCHAR_TYPE_SIZE): Hardcode as 32.
5307 (NO_DOLLAR_IN_LABEL): Remove undef.
5308 (TARGET_DEFAULT): Remove.
5309 (SET_ASM_OP): Remove.
5310 (DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning.
5311 (ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h
5312 (DWARF2_UNWIND_INFO): Remove define.
5313 (HAVE_ENABLE_EXECUTE_STACK): Define.
5314 * config/host-openbsd.c: New file.
5315 * config/t-openbsd (USER_H): Add EXTRA_HEADERS.
5316 * config/x-openbsd: New file.
5317
ee86a05f
OE
53182012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
5319
5320 * config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated
5321 mode to sh_legitimate_index_p instead of QImode.
5322
eaf23fc3
EB
53232012-09-02 Eric Botcazou <ebotcazou@adacore.com>
5324
5325 PR rtl-optimization/54369
5326 * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
5327 calling dbr_schedule.
5328 * config/sparc/sparc.c (sparc_reorg): Likewise.
5329
e89f93f6
JJ
53302012-09-01 Jakub Jelinek <jakub@redhat.com>
5331
5332 PR target/54436
5333 * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
5334 operands[1] is CONST_INT_P, convert it to QImode before printing.
5335
dcf8468f
AP
53362012-09-01 Andrew Pinski <apinski@cavium.com>
5337
5338 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
5339 A truncate of a memory is just loading the low part of the memory.
5340
2caf633d
UB
53412012-09-01 Uros Bizjak <ubizjak@gmail.com>
5342
5343 PR target/46829
5344 PR target/46843
5345 * config/i386/i386.c (ix86_legitimate_combined_insn): New function.
5346 (TARGET_LEGITIMATE_COMBINED_INSN): New macro.
5347
78e4f1ad
UB
53482012-09-01 Uros Bizjak <ubizjak@gmail.com>
5349
5350 * target.def (legitimate_combined_insn): New target hook.
5351 * doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook.
5352 * doc/tm.texi: Regenerated.
5353 * combine.c (recog_for_combine): Call targetm.legitimate_combined_insn
5354 to allow targets to reject combined insn.
5355 * hooks.h (hook_bool_rtx_true): New.
5356 * hooks.c (hook_bool_rtx_true): Ditto.
5357
be279f86
MJ
53582012-08-31 Martin Jambor <mjambor@suse.cz>
5359
5360 * ipa-inline-analysis.c (estimate_function_body_sizes): Allocate
5361 nonconstant_names after calculate_dominance_info and
5362 loop_optimizer_init.
5363
2c84f67d
GY
53642012-08-31 Greta Yorsh <Greta.Yorsh@arm.com>
5365
5366 * config/arm/arm.c (arm_expand_epilogue): Remove unused variable
305b3c9b 5367 floats_from_frame.
2c84f67d 5368
03360965
MJ
53692012-08-31 Martin Jambor <mjambor@suse.cz>
5370
5371 PR middle-end/54409
5372 * ipa-inline-analysis.c (remap_predicate): Fix the offset_map
5373 checking condition.
5374
48679f6e
MJ
53752012-08-31 Martin Jambor <mjambor@suse.cz>
5376
5377 * ipa-inline-analysis.c (phi_result_unknown_predicate): New function.
5378 (predicate_for_phi_result): Likewise.
5379 (estimate_function_body_sizes): Use the above two functions.
5380
172e74fa
MJ
53812012-08-31 Martin Jambor <mjambor@suse.cz>
5382
5383 PR middle-end/54394
5384 * ipa-inline-analysis.c (estimate_function_body_sizes): Compute
5385 dominance info and loops whenever optimizing.
5386
e3783e82
RR
53872012-08-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5388 Richard Earnshaw <richard.earnshaw@arm.com>
5389
5390 PR target/54252
5391 * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
5392 element size. Use elem_type from the formal parameter. New parameter
5393 fcode.
5394 (neon_expand_args): Adjust call to neon_dereference_pointer.
5395
1dd5907e
SB
53962012-08-29 Steven Bosscher <steven@gcc.gnu.org>
5397
5398 * cfg.c (dump_bb_info): Print a newline if there were no edges to dump.
5399
80a676b7
CLT
54002012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
5401
5402 Revert:
5403 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
5404 mapping style, add ../lib/mips16.
5405 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
5406 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
5407
166c02bd
RS
54082012-08-29 Richard Sandiford <rdsandiford@googlemail.com>
5409
5410 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci
5411 if TARGET_SYNCI.
5412
487ebcbf
OE
54132012-08-29 Oleg Endo <olegendo@gcc.gnu.org>
5414
5415 * config/sh/sh.opt (menable-tas): Rename to mtas.
5416 * doc/invoke.texi (SH options): Likewise.
5417 * config/sh/sync.md: Update comments.
5418
7fa4bf9b
OE
54192012-08-29 Oleg Endo <olegendo@gcc.gnu.org>
5420
5421 * config/sh/iterators.md: New file.
78e4f1ad
UB
5422 * config/sh/sync.md (I124, I12, i124suffix): Delete. Replace usage
5423 with new iterators QIHISI, QIHI, bw, bwl respectively throughout
5424 the file.
7fa4bf9b
OE
5425 * config/sh/sh.md: Include new file iterators.md.
5426 (zero_extendhisi2, zero_extendqisi2): Fold into zero_extend<mode>si2.
5427 (*zero_extendhisi2_compact, *zero_extendqisi2_compact): Fold into
5428 *zero_extend<mode>si2_compact.
5429 (*zero_extendqisi2_disp_mem, zero_extendhisi2_disp_mem): Fold into
5430 *zero_extend<mode>si2_disp_mem.
5431 (extendhisi2, extendqisi2): Fold into extend<mode>si2.
5432 (*extendqisi2_compact_reg, *extendhisi2_compact_reg): Fold into
5433 *extend<mode>si2_compact_reg.
5434 (*extendqisi2_compact_mem_disp, *extendhisi2_compact_mem_disp): Fold
5435 into *extend<mode>si2_compact_mem_disp.
5436 (*extendqisi2_compact_snd, *extendhisi2_compact_snd): Fold into
5437 *extend<mode>si2_compact_snd.
5438 (*movsi_index_disp, *movhi_index_disp): Fold with iterators and rename
5439 to *movsi_index_disp_load, *movhi_index_disp_load,
5440 *mov<mode>_index_disp_store.
5441 (*movqi_reg_reg, *movhi_reg_reg): Fold into *mov<mode>_reg_reg.
5442 (*movqi_store_mem_disp04, *movhi_store_mem_disp05): Fold into
5443 *mov<mode>_store_mem_disp04.
5444 (*movqi_store_mem_disp12, *movhi_store_mem_disp13): Fold into
5445 *mov<mode>_store_mem_disp12.
5446 (*movqi_load_mem_disp, *movhi_load_mem_disp): Fold into
5447 *mov<mode>_load_mem_disp04 and *mov<mode>_load_mem_disp12.
5448
de99ac70
MJ
54492012-08-29 Martin Jambor <mjambor@suse.cz>
5450
5451 * ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not
5452 do_estimate_edge_time.
5453
1274718f
CLT
54542012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
5455
5456 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
5457 directives, remove #ifndef __mips16 guards.
5458 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
5459 mapping style, add ../lib/mips16.
5460 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
5461 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
5462
3aa775d6
WL
54632012-08-28 Walter Lee <walt@tilera.com>
5464 * confg/tilegx/tilegx.md: Fix code style.
5465 (*zero_extendsidi_truncdisi): Fix typo.
5466 * config/tilegx/tilegx.c: Fix code style.
5467 (tilegx_function_profiler): Fix typo.
5468
1773cd77
WL
54692012-08-28 Walter Lee <walt@tilera.com>
5470
5471 * doc/invoke.texi: Document -mcmodel=small, -mcmodel=large.
5472 * config/tilegx/tilegx.h: Include config/tilegx/tilegx-opts.h.
5473 (CRT_CALL_STATIC_FUNCTION): Define.
5474 * config/tilegx/predicates.md (const_last_symbolic_operand):
5475 Handle UNSPEC_HW2_LAST_PCREL, UNSPEC_HW1_LAST_PLT_PCREL, and
5476 UNSPEC_HW2_LAST_PLT_PCREL.
5477 (const_symbolic_operand): Handle UNSPEC_HW1_PCREL,
5478 UNSPEC_HW0_PLT_PCREL, and UNSPEC_HW1_PLT_PCREL.
5479 * config/tilegx/tilegx.md (UNSPEC_MOV_LARGE_PCREL_STEP4): Define,
5480 and renumber the constants that follow.
5481 (UNSPEC_HW1_PCREL): Ditto.
5482 (UNSPEC_HW2_LAST_PCREL): Ditto.
5483 (UNSPEC_HW0_PLT_PCREL): Define.
5484 (UNSPEC_HW1_PLT_PCREL): Define.
5485 (UNSPEC_HW1_LAST_PLT_PCREL): Define.
5486 (UNSPEC_HW2_LAST_PLT_PCREL): Define.
5487 (mov_large_pcrel_step1): Define.
5488 (mov_large_pcrel_step2): Define.
5489 (mov_large_pcrel_step3): Define.
5490 (mov_large_pcrel_step4): Define.
5491 (mov_plt_pcrel_step1): Define.
5492 (mov_plt_pcrel_step2): Define.
5493 (mov_plt_pcrel_step3): Define.
5494 (mov_plt_pcrel_step1_32bit): Define.
5495 (mov_plt_pcrel_step2_32bit): Define.
5496 (call): Handle tilegx_cmodel == CM_LARGE, CM_LARGE_PIC.
5497 (call_value): Ditto.
5498 * config/tilegx/tilegx.opt: Include config/tilegx/tilegx-opts.h.
5499 (mcmodel): New option.
5500 (enum cmodel): Define.
5501 (CM_SMALL): Define.
5502 (CM_LARGE): Define.
5503 * config/tilegx/tilegx-opts.h: New file.
5504 * config/tilegx/tilegx-protos.h (tilegx_compute_pcrel_address):
5505 Declare.
5506 (tilegx_compute_pcrel_plt_address): Declare.
5507 * config/tilegx/tilegx.c (tilegx_option_override): Handle
5508 tilegx_cmodel.
5509 (tilegx_function_ok_for_sibcall): Ditto.
5510 (compute_pcrel_address): Rename to tilegx_compute_pcrel_address,
5511 and don't declare static. Handle tilegx_cmodel.
5512 (tilegx_compute_pcrel_plt_address): Define.
5513 (tilegx_legitimize_pic_address): Rename calls to
5514 compute_pcrel_address.
5515 (tilegx_delegitimize_address): Handle UNSPEC_HW1_PCREL,
5516 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
5517 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
5518 (load_pic_register): Rename call to compute_pcrel_address.
5519 (tilegx_print_operand): Handle UNSPEC_HW1_PCREL,
5520 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
5521 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
5522
8febe3fa
MK
55232012-08-27 Maxim Kuvyrkov <maxim@codesourcery.com>
5524
5525 * sched-deps.c (add_dependence_list_and_free): Simplify.
5526 (flush_pending_list_and_free): Fix a hack that was fixing a hack. Free
5527 lists when add_dependence_list_and_free doesn't free them.
5528
28591f4a
UB
55292012-08-27 Uros Bizjak <ubizjak@gmail.com>
5530
5531 PR target/46254
5532 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
5533 true for TARGET_64BIT or !flag_pic.
5534 * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
5535 (atomic_compare_and_swap_double<mode>): Change operand 2 predicate
5536 to cmpxchg8b_pic_memory_operand. Use DWIH mode iterator.
5537 Add insn constraint. Conditionally emit xchg asm insns.
5538 (atomic_compare_and_swap<mode>): Update calls. Check only
5539 cmpxchg8b_pic_memory_operand in memory address fixup.
5540 (DCASMODE): Remove.
5541 (CASHMODE): Rename from DCASHMODE.
5542 (doublemodesuffix): Update modes.
5543 (regprefix): New mode attribute.
5544
5545 (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
5546 <UNSPECV_CMPXCHG>: New constant.
5547 (atomic_compare_and_swap<mode>_1): Rename from
5548 atomic_compare_and_swap_single<mode>. Update calls and
5549 unspec_volatile constants.
5550 (atomic_compare_and_swap<mode>_doubleword): Rename from
5551 atomic_compare_and_swap_double<mode>. Update calls and
5552 unspec_volatile constants.
5553
655c5444
WL
55542012-08-27 Walter Lee <walt@tilera.com>
5555
5556 * doc/md.texi (TILE-Gx): Fix typo.
5557
4b3fa92c
WL
55582012-08-27 Walter Lee <walt@tilera.com>
5559
5560 * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
e005f903 5561 * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.
28591f4a 5562
848c312c 55632012-08-27 Walter Lee <walt@tilera.com>
28591f4a 5564
848c312c
WL
5565 * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
5566 (insn_bfins): Delete.
5567
9b0370aa
WL
55682012-08-27 Walter Lee <walt@tilera.com>
5569
5570 * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
5571 atomic_exchange_bare<mode>,
5572 atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
5573 * config/tilegx/tilegx-generic.md (X1_remote): New
5574 insn_reservation.
5575 * config/tilegx/tilegx.md (type): Add X1_remove.
5576 (insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
5577 insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
5578 insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
5579 X1_remote.
5580
865ea646
AS
55812012-08-27 Andreas Schwab <schwab@linux-m68k.org>
5582
5583 * gdbinit.in: Fix syntax of skip command.
5584
cb038fd2
RS
55852012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
5586
5587 * config/mips/mips.c (mips_pic_call_symbol_from_set): Check for
5588 SYMBOL_REF SET_SRCs.
5589
d8c51572
RS
55902012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
5591
5592 * config/mips/mips.c (vr4130_align_insns): Don't simulate
5593 ghost instructions. Assert that the required instructions exist.
5594
4b11e406
RS
55952012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
5596
5597 * config/mips/mips.h (AVOID_CCMODE_COPIES): Update rationale for
5598 definition.
5599 * config/mips/mips.c (machine_function): Add next_fcc.
5600 (mips_output_move): Remove handling of fcc moves.
5601 (mips_allocate_fcc): New function.
5602 (mips_emit_compare, mips_expand_vcondv2sf): Use it.
5603 (mips_hard_regno_mode_ok_p): Restrict CCmode to ST registers.
5604 Remove special case for CCmode reloads.
5605 (mips_expand_builtin_compare_1): Use mips_allocate_fcc and treat
5606 the result a fixed operand.
5607 * config/mips/mips.md (move_type): Remove lui_movf.
5608 (type, length): Remove references to it.
5609 (movcc, reload_incc, reload_outcc): Delete.
5610
a1c741f0
RS
56112012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
5612
5613 * config/mips/mips.c (mips_has_long_branch_p): New function,
5614 split out from...
5615 (mips_expand_ghost_gp_insns): ...here. Look inside sequences.
5616
62332eba
RS
56172012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
5618
5619 * config/mips/mips.c (r10k_safe_mem_expr_p): Use get_inner_reference.
5620
1209ab5e
RS
56212012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
5622
5623 * config/mips/mips.c (mips_rtx_costs): Add costs for CINS.
5624
3f5685dc
RS
56252012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
5626
5627 * config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS
5628 to the size cost of multiplication.
5629
e537ef59
GP
56302012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
5631
a66217a0
GP
5632 * doc/install.texi (Specific): Clarify what needs to be added to
5633 this section.
5634
56352012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
28591f4a 5636
e537ef59
GP
5637 * doc/tm.texi.in (Misc): Move descriptions of NO_DOLLAR_IN_LABEL
5638 and NO_DOT_IN_LABEL from here...
5639 (Label Output): ...to here.
5640 * doc/tm.texi: Regenerate.
28591f4a 5641
6c781661
GP
56422012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
5643
5644 * doc/invoke.texi (C++ Dialect Options): Add missing space.
5645
b5106d10
EB
56462012-08-25 Eric Botcazou <ebotcazou@adacore.com>
5647
5648 PR rtl-optimization/54088
5649 * jump.c (delete_related_insns): Robustify latest change.
5650
56512012-08-25 Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
81ea3024
RCJ
5652
5653 * doc/extend.texi (__atomic Builtins): Remove space before comma.
5654
ca97b221 56552012-08-25 Richard Sandiford <rdsandiford@googlemail.com>
28591f4a 5656 Andrew Pinski <apinski@cavium.com>
ca97b221
RS
5657
5658 * config/mips/mips.h (CASE_VECTOR_MODE): For not
5659 TARGET_MIPS16_SHORT_JUMP_TABLES use ptr_mode.
5660 (CASE_VECTOR_SHORTEN_MODE): Likewise.
5661
66aaf16f
UB
56622012-08-25 Uros Bizjak <ubizjak@gmail.com>
5663
5664 * config/i386/i386.h (FP_REG_P): Remove macro.
5665 (FP_REGNO_P): Ditto.
5666 (HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P.
5667 (HARD_REGNO_NREGS_HAS_PADDING): Ditto.
5668 (ANY_FP_REGNO_P): Ditto.
5669 (HARD_REGNO_RENAME_OK): Use STACK_REGNO_P.
5670 * config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P
5671 instead of FP_REGNO_P.
5672 (ix86_hard_regno_mode_ok): Ditto.
5673 * config/i386/predicates.md (fp_register_operand): Ditto.
5674 (register_and_not_fp_reg_operand): Ditto.
5675 * config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead
5676 of FP_REG_P.
5677
5678 * reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P.
5679
f581a987
JM
56802012-08-24 Jason Merrill <jason@redhat.com>
5681
5682 * print-tree.c (print_node): Don't check TREE_LANG_FLAG_*
5683 on TREE_VEC or SSA_NAME.
5684
6f8f67e9
JJ
56852012-08-24 Jakub Jelinek <jakub@redhat.com>
5686
5687 PR c/54363
5688 * gimplify.c (optimize_compound_literals_in_ctor): Only recurse
5689 if init is a CONSTRUCTOR.
5690
12fdc099
SB
56912012-08-24 Steven Bosscher <steven@gcc.gnu.org>
5692
5693 * tree-ssa-live.c (dump_var_map): Do not dump the partition
5694 map of virtual operands.
5695
013734b9
YR
56962012-08-24 Yuri Rumyantsev <ysrumyan@gmail.com>
5697
5698 * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
5699 case for Atom processor.
5700
77ee7190
SB
57012012-08-24 Simon Baldwin <simonb@google.com>
5702
5703 * dwarf2out.c (gen_producer_string): Omit command line switch if
5704 CL_NO_DWARF_RECORD flag set.
5705 * opts.h (CL_NO_DWARF_RECORD): New.
5706 * opt-functions.awk (switch_flags): Add NoDWARFRecord.
5707 * doc/options.texi: Document NoDWARFRecord option flag.
5708
a9b94d0d
L
57092012-08-24 H.J. Lu <hongjiu.lu@intel.com>
5710
5711 PR debug/52857
5712 * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and
5713 frame_pointer_rtx for based_loc_descr.
5714
2eb712b4
MJ
57152012-08-24 Martin Jambor <mjambor@suse.cz>
5716
5717 * predict.c (maybe_hot_frequency_p): New parameter fun. Use its decl
5718 instead of current_function_decl, use profile_status_for_function and
5719 ENTRY_BLOCK_PTR_FOR_FUNCTION with fun instead of their cfun variants.
5720 (maybe_hot_count_p): New parameter fun, use
5721 profile_status_for_function instead of its cfun_variant.
5722 (maybe_hot_bb_p): New parameter fun, checking-assert it, pass it to
5723 all callees.
5724 (maybe_hot_edge_p): Pass cfun to maybe_hot_count_p and
5725 maybe_hot_frequency_p.
5726 (probably_never_executed_bb_p): New parameter fun, use its decl
5727 instead of current_function_decl.
5728 (optimize_bb_for_size_p): Pass cfun to maybe_hot_bb_p.
5729 (rtl_profile_for_bb): Likewise.
5730 (compute_function_frequency): Pass cfun to maybe_hot_bb_p and
5731 probably_never_executed_bb_p.
5732 * tree-ssa-operands.c (ssa_operands_active): New operator fun. Use it
5733 instead of cfun.
5734 (update_stmt_operands): Pass cfun as an argument of
5735 ssa_operands_active.
5736 (swap_tree_operands): Likewise.
5737 * gimple-iterator.c (update_modified_stmt): Likewise.
5738 (update_modified_stmts): Likewise.
5739 * tree-flow-inline.h (delink_stmt_imm_use): Likewise.
5740 * tree-ssa.c (delete_tree_ssa): Likewise.
5741 * bb-reorder.c (bb_to_key): Pass cfun to probably_never_executed_bb_p.
5742 (push_to_next_round_p): Likewise.
5743 (find_rarely_executed_basic_blocks_and_crossing_edges ): Likewise.
5744 * cfg.c: Inlude tree.h.
5745 (check_bb_profile): Use profile_status_for_function,
5746 EXIT_BLOCK_PTR_FOR_FUNCTION and ENTRY_BLOCK_PTR_FOR_FUNCTION with
5747 DECL_STRUCT_FUNCTION (current_function_decl) instead of their cfun
5748 variants.
5749 (dump_bb_info): Pass DECL_STRUCT_FUNCTION (current_function_decl) to
5750 maybe_hot_bb_p and probably_never_executed_bb_p.
5751 * gimple-pretty-print.c (gimple_dump_bb_buff): Checking-assert that
5752 DECL_STRUCT_FUNCTION (current_function_decl) is not NULL. Pass it to
5753 dump_histograms_for_stmt.
b9113907
UB
5754 (dump_gimple_mem_ops): Pass
5755 DECL_STRUCT_FUNCTION (current_function_decl)
2eb712b4
MJ
5756 as an argument to dump_gimple_mem_ops.
5757 * tree-cfg.c (dump_function_to_file): Rename parameter fn to fndecl.
5758 Do not change cfun. Change and restore current_function_decl.
5759 * Makefile.in (cfg.o): Include TREE_H in dependencies.
5760
e55e4056
GJL
57612012-08-24 Georg-Johann Lay <avr@gjlay.de>
5762
5763 PR target/54222
5764 * avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes.
5765 * avr/avr-fixed.md: New file.
5766 * avr/avr.md: Include it.
5767 (cc): Add: minus.
5768 (adjust_len): Add: minus, minus64, ufract, sfract.
5769 (ALL1, ALL2, ALL4, ORDERED234): New mode iterators.
5770 (MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
5771 (MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
5772 (pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3,
b9113907 5773 subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi,
e55e4056
GJL
5774 cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1.
5775 (*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3,
5776 ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3,
5777 *lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all
5778 16-bit modes in ALL2.
5779 (subhi3, casesi, strlenhi): Add clobber when expanding minus:HI.
5780 (*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const,
5781 ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const,
5782 *reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all
5783 32-bit modes in ALL4.
5784 * avr-dimode.md (ALL8): New mode iterator.
5785 (adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn,
5786 subdi3_const_insn, cbranchdi4, compare_di2,
5787 compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn,
5788 ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle
5789 all 64-bit modes in ALL8.
5790 * config/avr/avr-protos.h (avr_to_int_mode): New prototype.
5791 (avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes.
5792 * config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to...
5793 (avr_fixed_point_supported_p): ...this new static function.
5794 (TARGET_BUILD_BUILTIN_VA_LIST): Define to...
5795 (avr_build_builtin_va_list): ...this new static function.
5796 (avr_adjust_type_node): New static function.
5797 (avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P.
5798 (avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new
5799 pseudo instead of gen_rtx_MINUS.
5800 (avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED.
5801 (notice_update_cc): Handle: CC_MINUS.
5802 (output_movqi): Generalize to handle respective fixed-point modes.
5803 (output_movhi, output_movsisf, avr_2word_insn_p): Ditto.
5804 (avr_out_compare, avr_out_plus_1): Also handle fixed-point modes.
5805 (avr_assemble_integer): Ditto.
5806 (output_reload_in_const, output_reload_insisf): Ditto.
5807 (avr_compare_pattern): Skip all modes > 4 bytes.
5808 (avr_2word_insn_p): Skip movuqq_insn, movqq_insn.
5809 (avr_out_fract, avr_out_minus, avr_out_minus64): New functions.
5810 (avr_to_int_mode): New function.
5811 (adjust_insn_length): Handle: ADJUST_LEN_SFRACT,
5812 ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64.
5813 * config/avr/predicates.md (const0_operand): Allow const_fixed.
5814 (const_operand, const_or_immediate_operand): New.
5815 (nonmemory_or_const_operand): New.
5816 * config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ):
5817 New constraints.
5818 * config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define.
5819
d8116890
KZ
58202012-08-23 Kenneth Zadeck <zadeck@naturalbridge.com>
5821
5822 * alias.c (rtx_equal_for_memref_p): Convert constant cases.
5823 * combine.c (find_single_use_1, mark_used_regs_combine): Convert
5824 to CASE_CONST_ANY.
df92c640 5825 * cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1,
d8116890 5826 count_reg_usage): Convert constant cases.
b9113907 5827 * cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY.
d8116890
KZ
5828 (cselib_subst_to_values): Convert constant cases.
5829 * df-scan.c (df_uses_record): Ditto.
5830 * dse.c (const_or_frame_p): Convert case statements to explicit
5831 if-then-else using mode classes.
5832 * emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases.
5833 * explow.c (convert_memory_address_addr_space): Ditto.
5834 * gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto.
5835 * genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto.
5836 * ira.c (equiv_init_varies_p, contains_replace_regs,
5837 memref_referenced_p, rtx_moveable_p): Ditto.
5838 * jump.c (mark_jump_label_1): Remove constant cases.
5839 (rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE.
5840 * loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1,
5841 invariant_expr_equal_p): Convert to CASE_CONST_ANY.
5842 * postreload-gcse.c (oprs_unchanged_p): Convert constant cases.
5843 * reginfo.c (reg_scan_mark_refs): Ditto.
5844 * regrename.c (scan_rtx): Ditto.
5845 * reload1.c (eliminate_regs_1, elimination_effects,
5846 scan_paradoxical_subregs): Ditto.
5847 * reload.c (operands_match_p, subst_reg_equivs): Ditto.
5848 * resource.c (mark_referenced_resources, mark_set_resources): Ditto.
5849 * rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences)
5850 (reg_mentioned_p, modified_between_p, modified_in_p)
5851 (volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1,
5852 inequality_comparisons_p, computed_jump_p_1): Ditto.
5853 * rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto.
5854 * sched-deps.c (sched_analyze_2): Ditto.
5855 * valtrack.c (cleanup_auto_inc_dec): Ditto.
b9113907 5856 * rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE,
d8116890
KZ
5857 CASE_CONST_ANY): New macros.
5858
545ca0f2
JB
58592012-08-23 Julian Brown <julian@codesourcery.com>
5860 Sandra Loosemore <sandra@codesourcery.com>
5861
5862 * config/mips/mips.md
5863 (UNSPEC_CASESI_DISPATCH): New.
5864 (MIPS16_T_REGNUM): New constant.
5865 (tablejump): Don't use for MIPS16_SHORT_JUMP_TABLES.
5866 (casesi): New.
5867 (casesi_internal_mips16_<mode>): New.
5868 * config/mips/mips.c (mips16_split_long_branches): Adjust test
5869 to ignore casesi jump tables.
5870 * config/mips/mips.h (TARGET_MIPS16_SHORT_JUMP_TABLES): Update
5871 comment.
5872 (CASE_VECTOR_MODE): Use SImode unconditionally.
5873 (CASE_VECTOR_SHORTEN_MODE): Define.
5874 (ASM_OUTPUT_ADDR_DIFF_ELT): Output word-sized addr_diff_elts
5875 when necessary for MIPS16_SHORT_JUMP_TABLES.
5876
3118cdeb
BS
58772012-08-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5878
5879 * config/rs6000/rs6000.c (rs6000_density_test): Free loop body.
5880
721b405f
L
58812012-08-23 H.J. Lu <hongjiu.lu@intel.com>
5882
5883 PR driver/54335
5884 * doc/invoke.texi: Add -da and remove -dm.
5885
54e8e2c3
RG
58862012-08-23 Richard Guenther <rguenther@suse.de>
5887
5888 * tree-vect-stmts.c (vect_finish_stmt_generation): Update
5889 virtual SSA form.
5890
b6b27e98
JJ
58912012-08-23 Jakub Jelinek <jakub@redhat.com>
5892
5893 * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION.
5894
fb489f55
MX
58952012-08-23 Mingjie Xing <mingjie.xing@gmail.com>
5896
5897 * doc/gty.texi: Fix typo.
5898
ceb16be3
RG
58992012-08-23 Richard Guenther <rguenther@suse.de>
5900
5901 * tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands.
5902 (find_uses_to_rename_use): Likewise.
5903 (find_uses_to_rename_bb): Likewise.
5904 (find_uses_to_rename_stmt): Walk over all operands.
5905
6e01d526
OE
59062012-08-22 Oleg Endo <olegendo@gcc.gnu.org>
5907
5908 PR target/54089
5909 * config/sh/predicates (p27_rshift_count_operand,
5910 not_p27_rshift_count_operand): New predicates.
5911 * config/sh/sh.c (sh_ashlsi_clobbers_t_reg_p,
5912 sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): Handle special
5913 case when shift amount is 31.
5914 (gen_ashift): Emit gen_shlr instead of gen_lshrsi3_m.
5915 * config/sh/sh.md (ashlsi3_d): Set type to 'dyn_shift' instead
5916 of 'arith'.
5917 (ashlsi_c): Rename to shll. Adapt calls to gen_ashlsi_c throughout
5918 the file.
5919 (lshrsi3): Remove clobber from expander. Use shift_count_operand
5920 instead of nonmemory_operand predicate for second operand. Add
5921 handling of case lshrsi3_n_clobbers_t.
5922 (lshrsi3_k): Use p27_rshift_count_operand for second operand.
5923 (lshrsi3_d): Make insn_and_split. Split dynamic shift to constant
5924 shift sequences if beneficial.
5925 (lshrsi3_n): Make insn_and_split. Split constant shift sequence to
5926 dynamic shift if beneficial.
5927 (lshrsi3_n_clobbers_t): New insn_and_split.
5928 (lshrsi3_m): Delete.
5929
131db6b8
SB
59302012-08-22 Steven Bosscher <steven@gcc.gnu.org>
5931
5932 * tracer.c (mark_bb_seen): Use SBITMAP_SIZE.
5933
5934 * alias.c (MAX_ALIAS_LOOP_PASSES): Update comment with rationale,
5935 or rather a lack thereof.
5936 (init_alias_analysis): Propagate the latest information across
5937 the CFG in topological order to propagate as far as possible in
5938 each iteration. Ignore debug insns.
5939
c637141a
L
59402012-08-22 H.J. Lu <hongjiu.lu@intel.com>
5941
5942 * doc/invoke.texi: Document -mlong-double-64/-mlong-double-80.
5943
5944 * config/i386/i386.c (flag_opts): Add -mlong-double-64.
5945 (TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic.
5946
5947 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if
5948 TARGET_LONG_DOUBLE_64 is true.
5949 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro.
5950 (WIDEST_HARDWARE_FP_SIZE): Defined to 80.
5951
5952 * config/i386/i386.opt (mlong-double-80): New option.
5953 (mlong-double-64): Likewise.
5954
5955 * config/i386/i386-c.c (ix86_target_macros): Define
5956 __LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64.
5957
a8a68bb0
L
59582012-08-22 H.J. Lu <hongjiu.lu@intel.com>
5959
5960 PR target/54347
5961 * config/i386/i386.c (ix86_split_to_parts): Replace
5962 REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.
5963
21e2818d
RG
59642012-08-22 Richard Guenther <rguenther@suse.de>
5965
5966 * tree-vectorizer.c (vectorize_loops): Do not call
5967 mark_virtual_operands_for_renaming.
5968 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
5969 Do not update SSA form here.
5970
4579ccbc
DS
59712012-08-22 Dodji Seketeli <dodji@redhat.com>
5972
5973 * tree.h (TREE_NOTHROW): Use the base.nothrow_flag.
5974
9bb06c2a
RG
59752012-08-22 Richard Guenther <rguenther@suse.de>
5976
5977 PR tree-optimization/46590
5978 * tree-ssa-alias.h (get_continuation_for_phi): Add alias query
5979 counter output argument.
5980 (walk_non_aliased_vuses): Add alias query counter argument
5981 to the walker callback.
5982 * tree-ssa-alias.c (maybe_skip_until): Add alias query counter
5983 output argument and count alias queries.
5984 (get_continuation_for_phi_1): Likewise.
5985 (get_continuation_for_phi): Likewise.
5986 (walk_non_aliased_vuses): Add alias query counter argument
5987 to the walker callback and allow it to abort the walk by
5988 returning -1.
5989 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
5990 * tree-ssa-sccvn.c (vn_reference_lookup_2): Add alias query
5991 counter parmeter, abort walk if that is bigger than
5992 --param sccvn-max-alias-queries-per-access.
5993 * params.def (sccvn-max-alias-queries-per-access): New param.
5994 * doc/invoke.texi (sccvn-max-alias-queries-per-access): Document.
5995
4ad14919
RG
59962012-08-22 Richard Guenther <rguenther@suse.de>
5997
5998 * tree-ssa-loop-ch.c (copy_loop_headers): Remove redundant checking.
5999 * tree-into-ssa.c (initialize_flags_in_bb): Use gcc_checking_assert
6000 instead of gcc_assert.
6001 (mark_block_for_update): Likewise.
6002 (add_new_name_mapping): Likewise.
6003 (mark_def_sites): Likewise.
6004 (insert_phi_nodes_for): Likewise.
6005 (rewrite_debug_stmt_uses): Likewise.
6006 (rewrite_stmt): Likewise.
6007 (maybe_register_def): Likewise.
6008 (rewrite_update_phi_arguments): Likewise.
6009 (rewrite_update_enter_block): Likewise.
6010 (mark_def_interesting): Likewise.
6011 (prepare_def_site_for): Likewise.
6012 (insert_updated_phi_nodes_for): Likewise.
6013
156c01cf
JJ
60142012-08-22 Jakub Jelinek <jakub@redhat.com>
6015
6016 * tree-vect-loop.c (vect_transform_loop): Initialize
6017 check_profitability to false.
6018
6019 * tree-predcom.c (try_combine_chains): Free the worklist vector
6020 at the end.
6021
d9c6ca85
MG
60222012-08-22 Marc Glisse <marc.glisse@inria.fr>
6023
6024 PR tree-optimization/54317
6025 * tree-vrp.c (extract_range_from_binary_expr_1): Test for
6026 double_int overflow.
6027 Remove dead tests.
6028
6f723d33
JJ
60292012-08-22 Jakub Jelinek <jakub@redhat.com>
6030
6031 * tree-vrp.c (find_assert_locations): Skip also edges
6032 from the entry block.
6033
6034 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
6035 free_stmt_vec_info on orig_cond after gsi_removing it.
6036 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
6037 free body_cost_vec vector.
6038 (vect_analyze_data_refs): If gather is unsuccessful,
6039 free_data_ref (dr).
6040 * tree-inline.c (tree_function_versioning): Free
6041 old_transforms_to_apply vector.
6042
06d43afd
SB
60432012-08-22 Steven Bosscher <steven@gcc.gnu.org>
6044
6045 * tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
6046 of this a VEC and add a bitmap obstack.
6047 (ssa_conflicts_new): Allocate the obstack and grow the VEC cleared
6048 to the right size.
6049 (ssa_conflicts_delete): Free the VEC and release the obstack.
6050 (ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one,
6051 ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes.
6052 (truct live_track_d): Add another bitmap obstack here.
6053 (new_live_track): Initialize it and use it for all bitmaps.
6054 (delete_live_track): Don't free the bitmaps one at a time, just
6055 release the obstack.
6056 (create_outofssa_var_map): Fix to conform to GCC code style rules.
6057
03dd17b1
NF
60582012-08-21 Nathan Froyd <froydnj@gcc.gnu.org>
6059
6060 * config/m32c/constraints.md: New file.
6061 * config/m32c/t-m32c (MD_FILES): Add constraints.
6062 * config/m32c/m32c-protos.h (m32c_const_ok_for_constraint_p): Delete.
6063 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
6064 (m32c_reg_class_from_constraint): Delete.
6065 (m32c_extra_constraint_p, m32c_extra_constraint_p2): Delete.
6066 (m32c_matches_constraint_p): Declare.
6067 * config/m32c/m32c.h (CONSTRAINT_LEN): Delete.
6068 (REG_CLASS_FROM_CONSTRAINT): Delete.
6069 (CONST_OK_FOR_CONSTRAINT_P): Delete.
6070 (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Delete.
6071 (EXTRA_CONSTRAINT_STR): Delete.
6072 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Delete.
6073 * config/m32c/m32c.c: Include tm-constrs.h
6074 (m32c_reg_class_from_constraint): Delete.
6075 (m32c_const_ok_for_constraint_p): Delete.
6076 (m32c_extra_constraint_p2): Rename to...
6077 (m32c_matches_constraint_p): ...this. Make it return bool. Tweak
6078 formatting.
6079 (m32c_extra_constraint_p): Delete.
6080 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
6081 (m32c_split_move): Use satisfies_constraint_Ss.
b9113907 6082 * config/m32c/predicates.md (memsym_operand): Use
03dd17b1
NF
6083 satisfies_constraint_Si.
6084 (memimmed_operand): Use satisfies_constraint_Sp.
6085 (m32c_psi_scale, m32c_1bit8_operand): Use satisfies_constraint_Ilb.
6086 (m32c_1bit16_operand): Use satisfies_constraint_Ilw.
6087 (m32c_1mask8_operand): Use satisfies_constraint_ImB.
6088 (m32c_1mask16_operand): Use satisfies_constraint_Imw.
6089
c42df5ef
NF
60902012-08-21 Nathan Froyd <froydnj@gcc.gnu.org>
6091
6092 * config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete.
6093 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6094 (CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete.
6095 * config/mep/mep.c (mep_reg_class_from_constraint): Delete.
6096 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
6097 * config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete.
6098 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
6099
35ed5a70
OE
61002012-08-21 Oleg Endo <olegendo@gcc.gnu.org>
6101
6102 * config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t,
6103 cmpgtudi_t, *movsicc_t_false, *movsicc_t_true, divsi_inv20, negsi_cond,
6104 truncdihi2, ic_invalidate_line_i, ic_invalidate_line_sh4a,
6105 ic_invalidate_line_media, movdf_i4, calli_pcrel, call_valuei,
6106 call_valuei_pcrel, sibcalli_pcrel, sibcall_compact,
6107 sibcall_valuei_pcrel, sibcall_value_compact, casesi_worker_1,
6108 casesi_worker_2, bandreg_m2a, borreg_m2a, bxorreg_m2a, sp_switch_1,
6109 sp_switch_2, stack_protect_set_si, stack_protect_set_si_media,
6110 stack_protect_set_di_media, stack_protect_test_si,
6111 stack_protect_test_si_media, stack_protect_test_di_media): Convert to
6112 multi-line asm output strings.
6113 (divsi_inv_qitable, divsi_inv_hitable): Use single-alternative asm
6114 output.
b9113907
UB
6115 (*andsi3_bclr, rotldi3_mextr, rotrdi3_mextr, calli,
6116 call_valuei_tbr_rel, movml_push_banked, movml_pop_banked, bclr_m2a,
6117 bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, bldsign_m2a,
6118 bld_reg, *bld_regqi, band_m2a, bor_m2a, bxor_m2a, mextr_rl, *mextr_lr):
6119 Use tab char instead of '\\t'.
35ed5a70
OE
6120 (iordi3): Use braced string.
6121 (*movsi_pop): Use tab chars instead of spaces.
6122
082ea1dc
OE
61232012-08-21 Oleg Endo <olegendo@gcc.gnu.org>
6124
6125 PR target/39423
b9113907
UB
6126 * config/sh/sh.md (*movhi_index_disp): Add support for SH2A
6127 movu.w insn.
082ea1dc 6128
1aee8991
L
61292012-08-21 H.J. Lu <hongjiu.lu@intel.com>
6130
6131 PR middle-end/54332
6132 * df-scan.c (df_bb_verify): Restore df_free_collection_rec call
6133 inside the insn traversal loop.
6134
6135 * vec.h (vec_reserve): Remove the stack allocation check.
6136
8a3ffc5d
MG
61372012-08-21 Marc Glisse <marc.glisse@inria.fr>
6138
6139 * fold-const.c (fold_ternary_loc): Detect identity permutations.
6140 Canonicalize permutations more.
6141 * tree-ssa-forwprop.c (is_combined_permutation_identity): New function.
6142 (simplify_permutation): Likewise.
6143 (ssa_forward_propagate_and_combine): Call it.
6144
b6db991c
RG
61452012-08-21 Richard Guenther <rguenther@suse.de>
6146
6147 * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
6148 the affine expansion cache.
6149 * tree-ssa-dom.c (free_expr_hash_elt_contents): New function,
6150 split out from ...
6151 (free_expr_hash_elt): ... this one.
6152 (record_cond): Properly free a not needed hashtable element.
6153 (lookup_avail_expr): Likewise.
6154 * tree-into-ssa.c (init_ssa_renamer): Specify a free function
6155 for the var_infos hashtable.
6156 (update_ssa): Likewise.
6157
825c743c
RG
61582012-08-21 Richard Guenther <rguenther@suse.de>
6159
6160 * alloc-pool.c (pool_alloc): Fix valgrind annotation.
6161 * tree.h: Fix typo and complete flags documentation.
6162
c1aaec5b
RB
61632012-08-21 Richard Guenther <rguenther@suse.de>
6164
6165 * tree.h (struct tree_base): Add union to make it possible to
6166 re-use the upper 4 bytes for tree codes that do not need as
6167 many flags as others. Move visited and default_def_flag to
6168 common bits section in exchange for saturating_flag and
6169 unsigned_flag. Add SSA name version and tree vec length
6170 fields here.
6171 (struct tree_vec): Remove length field here.
6172 (struct tree_ssa_name): Remove version field here.
6173
2daffc47
JH
61742012-08-20 Jan Hubicka <jh@suse.cz>
6175
6176 PR fortran/48636
c1aaec5b
RB
6177 * ipa-inline.c (want_inline_small_function_p): Take loop_iterations
6178 hint.
2daffc47
JH
6179 (edge_badness): Likewise.
6180 * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations.
6181 (inline_summary): Add loop_iterations.
6182 * ipa-inline-analysis.c: Include tree-scalar-evolution.h.
6183 (dump_inline_hints): Dump loop_iterations.
6184 (reset_inline_summary): Free loop_iterations.
6185 (inline_node_duplication_hook): Update loop_iterations.
6186 (dump_inline_summary): Dump loop_iterations.
6187 (will_be_nonconstant_expr_predicate): New function.
6188 (estimate_function_body_sizes): Analyze loops.
6189 (estimate_node_size_and_time): Set hint loop_iterations.
6190 (inline_merge_summary): Merge loop iterations.
6191 (inline_read_section): Stream in loop_iterations.
6192 (inline_write_summary): Stream out loop_iterations.
6193
5592815a
OE
61942012-08-20 Oleg Endo <olegendo@gcc.gnu.org>
6195
f76ea208 6196 PR target/54089
5592815a
OE
6197 * config/sh/sh.md (rotcr, *rotcr, shar, shlr): New insns and splits.
6198 (ashrdi3_k, lshrdi3_k): Rewrite as insn_and_split.
6199 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p): New function.
6200 * config/sh/sh-protos.h (sh_lshrsi_clobbers_t_reg_p): Declare it.
6201
67748550
OE
62022012-08-20 Oleg Endo <olegendo@gcc.gnu.org>
6203
6204 PR target/51244
6205 * config/sh/sh.md (*cset_zero): New insns.
6206
413de8e5
MW
62072012-08-20 Mark Wielaard <mjw@redhat.com>
6208
6209 * dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
6210 * dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
6211 (add_AT_low_high_pc): New function.
6212 (AT_lbl): Handle dw_val_class_high_pc.
6213 (print_die): Likewise.
6214 (attr_checksum): Likewise.
6215 (attr_checksum_ordered): Likewise.
6216 (same_dw_val_p): Likewise.
6217 (size_of_die): Likewise.
6218 (value_format): Likewise.
6219 (output_die): Likewise.
6220 (gen_subprogram_die): Use add_AT_low_high_pc.
6221 (add_high_low_attributes): Likewise.
6222 (dwarf2out_finish): Likewise.
6223
07bc8ae8
JJ
62242012-08-20 Jakub Jelinek <jakub@redhat.com>
6225
6226 PR rtl-optimization/54294
6227 * fwprop.c (all_uses_available_at): Ignore debug insns in between
6228 def_insn and target_insn when checking whether the shortcut is
6229 possible.
6230
59e08d4f
EB
62312012-08-20 Eric Botcazou <ebotcazou@adacore.com>
6232
6233 * config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.
6234
d88513ea
PM
62352012-08-20 Patrick Marlier <patrick.marlier@gmail.com>
6236
6237 PR middle-end/53992
6238 * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
6239
eb83633a
RE
62402012-08-20 Richard Earnshaw <rearnsha@arm.com>
6241
6242 PR tree-ssa/54295
6243 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code
6244 declaration and setter.
6245
7ab6a828
RE
62462012-08-20 Richard Earnshaw <rearnsha@arm.com>
6247
6248 PR tree-ssa/54295
6249 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
6250 New function.
6251 (is_widening_mult_rhs_p): Use it.
6252
19f75783
JM
62532012-08-20 Joseph Myers <joseph@codesourcery.com>
6254
6255 * configure.ac (ffs): Check for declaration.
6256 * configure, config.in: Regenerate.
6257
45db3141
RG
62582012-08-20 Richard Guenther <rguenther@suse.de>
6259
6260 * tree-flow.h (register_new_name_mapping): Remove.
6261 * tree-into-ssa.c (register_new_name_mapping): Likewise.
6262 (add_new_name_mapping): Do not push/pop timevar here.
6263 (create_new_def_for): Instead do it here. Initialize
6264 update-ssa here, handle a NULL def.
6265 * tree-vrp.c (build_assert_expr_for): Use create_new_def_for.
6266
491e0b9b
RG
62672012-08-20 Richard Guenther <rguenther@suse.de>
6268
6269 PR tree-optimization/54327
6270 * gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
6271 if the use is registered for SSA update.
6272
081db960
JJ
62732012-08-20 Jakub Jelinek <jakub@redhat.com>
6274
6275 PR tree-optimization/54321
6276 * tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
6277 as second argument to tree_low_cst call on val2.
6278
d17fd79c
RG
62792012-08-20 Richard Guenther <rguenther@suse.de>
6280
6281 * gimple.h (gimple_statement_base): Annotate with GTY chain_next.
6282
e7eec276
RG
62832012-08-20 Richard Guenther <rguenther@suse.de>
6284
6285 PR bootstrap/54326
6286 * genoutput.c (note_constraint): Properly use CONST_CAST.
6287
220e70df
NC
62882012-08-19 Nick Clifton <nickc@redhat.com>
6289
6290 PR target/54306
6291 * config/arm/mmintrin.h: Remove spurious #endif.
6292
92f7f5fd
JBG
62932012-08-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6294
dfcb5514
JBG
6295 * config/avr/avr-log.c (avr_log_vadump): Properly use
6296 int-promoted enum values.
6297 * config/avr/avr.h (struct mcu_type_s): Change `arch' from
6298 int to enum avr_arch.
6299 * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.
92f7f5fd 6300
37678631
JH
63012012-08-18 Jan Hubicka <jh@suse.cz>
6302
6303 PR lto/45375
6304 * ipa-inline.c (want_inline_small_function_p): Bypass
6305 inline limits for hinted functions.
6306 (edge_badness): Dump hints; decrease badness for hinted funcitons.
6307 * ipa-inline.h (enum inline_hints_vals): New enum.
6308 (inline_hints): New type.
6309 (edge_growth_cache_entry): Add hints.
6310 (dump_inline_summary): Update.
6311 (dump_inline_hints): Declare.
6312 (do_estimate_edge_hints): Declare.
6313 (estimate_edge_hints): New inline function.
6314 (reset_edge_growth_cache): Update.
6315 * predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges.
6316 * ipa-inline-analysis.c (dump_inline_hints): New function.
6317 (estimate_edge_devirt_benefit): Return true when function should be
6318 hinted.
6319 (estimate_calls_size_and_time): New hints argument; set it when
6320 devritualization happens.
6321 (estimate_node_size_and_time): New hints argument.
6322 (do_estimate_edge_time): Cache hints.
b9113907 6323 (do_estimate_edge_growth): Update.
37678631
JH
6324 (do_estimate_edge_hints): New function
6325
b216b86b
JDA
63262012-08-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6327
6328 PR middle-end/53823
6329 * expmed.c (expand_mult): Skip synth_mult for negative coefficients
6330 if the mode is larger than a wide int and it is too costly to multiply
6331 by a positive multiplier and negate the result.
6332
a9c283a5
SB
63332012-08-18 Steven Bosscher <steven@gcc.gnu.org>
6334
6335 * sparseset.c (sparseset_alloc): Use non-clearing allocation. Tell
6336 valgrind not to worry about reading from unitialized memory.
6337
e0de76d8
SB
63382012-08-18 Steven Bosscher <steven@gcc.gnu.org>
6339
6340 PR middle-end/54313
6341 * dse.c (dse_step7): Don't free kill_on_calls bitmap, it is
6342 freed when its obstack is release.
6343
32b2d8f3
AP
63442012-08-18 Andrew Pinski <pinskia@gmail.com>
6345
6346 * alloc-pool.c (pool_alloc): Add valgrind markers.
6347 (pool_free): Likewise.
6348
b5719a04
WL
63492012-08-17 Walter Lee <walt@tilera.com>
6350
6351 * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
6352 (FEEDBACK_ENTER): Define.
6353 (FEEDBACK_REENTER): Define.
6354 (FEEDBACK_ENTRY): Define.
6355 * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
6356 (FEEDBACK_ENTER): Define.
6357 (FEEDBACK_REENTER): Define.
6358 (FEEDBACK_ENTRY): Define.
6359
e327d1a3
L
63602012-08-17 H.J. Lu <hongjiu.lu@intel.com>
6361 Gary Funck <gary@intrepid.com>
6362
6363 PR target/20020
6364 * config/i386/i386.c (ix86_member_type_forces_blk): New function.
6365 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
6366
6367 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro.
6368
fd9da2c8
MG
63692012-08-17 Marc Glisse <marc.glisse@inria.fr>
6370
6371 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
6372 a concatenation.
6373
d9886a9e
L
63742012-08-17 H.J. Lu <hongjiu.lu@intel.com>
6375
6376 * stor-layout.c (compute_record_mode): Replace
6377 MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
6378 (layout_type): Likewise.
6379
6380 * system.h: Poison MEMBER_TYPE_FORCES_BLK.
6381
6382 * target.def (member_type_forces_blk): New target hook.
6383
6384 * targhooks.c (default_member_type_forces_blk): New.
6385 * targhooks.h (default_member_type_forces_blk): Likewise.
6386
6387 * doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
6388 (TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
6389 * doc/tm.texi: Regenerated.
6390
6391 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.
6392
b9113907 6393 * config/ia64/ia64.c (ia64_member_type_forces_blk): New function.
d9886a9e
L
6394 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
6395
b9113907 6396 * config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
d9886a9e
L
6397 (rs6000_member_type_forces_blk): New function.
6398
6399 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.
6400
b9113907 6401 * config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New function.
d9886a9e
L
6402 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
6403
6404 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.
6405
4a8f7546
DN
64062012-08-17 Diego Novillo <dnovillo@google.com>
6407
6408 PR bootstrap/54281
6409 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
6410 * config.in: Regenerate.
6411 * configure: Regenerate.
59e08d4f 6412 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4a8f7546 6413
7f3f8d3f
RG
64142012-08-17 Richard Guenther <rguenther@suse.de>
6415
6416 * bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
6417 (struct bitmap_head_def): GTY skip current field.
6418
3f9b14ff
SB
64192012-08-17 Steven Bosscher <steven@gcc.gnu.org>
6420
6421 PR middle-end/54146
6422 * tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
6423 (memref_free): Don't free the bitmaps individually here.
6424 (mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
6425 (analyze_memory_references): Likewise.
6426 (tree_ssa_lim_initialize): Initialize the new bitmap obstack.
6427 (tree_ssa_lim_finalize): Release it.
6428 * dse.c (dse_bitmap_obstack): New bitmap obstack.
6429 (dse_obstack): New obstack.
6430 (get_group_info): Allocate the bitmaps on the new bitmap obstack.
6431 (dse_step0): Allocate the scratch bitmap on reg_obstack. Initialize
6432 the new bitmap obstack and normal obstack. Use XNEWVEC for bb_table.
6433 (record_store): Allocate regs_set on reg_obstack.
6434 (dse_step1): Allocate regs_live on reg_obstack.
6435 (dse_step2_init): Allocate offset_map_n and offset_map_p on the new
6436 obstack.
6437 (dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
6438 (dse_step3): Likewise.
6439 (dse_confluence_0): Likewise.
6440 (dse_confluence_n): Likewise.
6441 (dse_transfer_function): Likewise.
6442 (dse_step7): Destroy the new obstacks, and everything allocated on
6443 them, in one big sweep.
6444 (rest_of_handle_dse): Update.
6445 * cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
6446 (add_stack_var_conflict): Allocate bitmaps on it.
6447 (add_scope_conflicts_1): Likewise.
6448 (add_scope_conflicts): Likewise.
6449 (update_alias_info_with_stack_vars): Likewise.
6450 (init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
6451 Initialize the new bitmap obstack.
6452 (fini_vars_expansion): Release it.
6453 (estimated_stack_frame_size): Use init_vars_expansion to set things up
6454 and always clean up at the end.
6455 (expand_used_vars): Do the TREE_USED trickery here. Always call
6456 fini_vars_expansion.
6457 * tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
6458 arrays of bitmap_head to avoid one indirection per bitmap access.
6459 (live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
6460 make_live_on_entry): Update.
6461 * tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
6462 (liveness_bitmap_obstack): New bitmap obstack.
6463 (remove_unused_locals): Use it to allocate all bitmaps on. Update
6464 for livein/liveout changes in tree-ssa-live.h.
6465 (delete_tree_live_info): Release the bitmap obstack.
6466 (loe_visit_block, live_worklist, set_var_live_on_entry,
6467 calculate_live_on_exit, dump_live_info): Update.
6468 (calculate_live_ranges): Initialize the bitmap.
6469 * tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
6470 (new_temp_expr_table): Allocate bitmap on it.
6471 (make_dependent_on_partition, add_to_partition_kill_list,
6472 add_dependence, process_replaceable): Likewise.
6473 (find_replaceable_exprs): Initialize and release the new obstack here.
6474 * df-problems.c (df_lr_add_problem): Allocate persistent bitmap
6475 for out_of_date_transfer_functions on df_bitmap_obstack.
6476 (df_live_add_problem): Likewise.
6477 (df_chain_add_problem): Likewise.
6478 (df_word_lr_add_problem): Likewise.
6479
a69b2a7d
NC
64802012-08-17 Nick Clifton <nickc@redhat.com>
6481
870128f2 6482 * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
baecdd1e
NC
6483 (branch_true): Likewise.
6484 (branch_false): Likewise.
6485
b9113907 6486 * config/mcore/mcore.md (cbranchsi4): Remove mode from comparison.
4e3b4c3e 6487
335db8e6
NC
6488 * config/iq2000/iq2000.md (cbranchsi4): Remove mode from
6489 comparison and label.
6490 (branch_zero): Likewise.
6491 (branch_zero_inverted): Likewise.
6492 (branch_equality): Likewise.
6493 (branch_equality_inverted): Likewise.
b9113907 6494 (extend-and-compare): Disable until reload issues can be resolved.
335db8e6
NC
6495 * config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode
6496 for comparison.
6497 (iq2000_function_arg_advance): Remove CONST_CAST2.
6498
a69b2a7d
NC
6499 * config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile
6500 mep-pragma.c.
6501
caed3b90
GJL
65022012-08-17 Georg-Johann Lay <avr@gjlay.de>
6503
6504 * config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile
6505 gen-avr-mmcu-texi.c.
6506
b915718f
RE
65072012-08-17 Richard Earnshaw <rearnsha@arm.com>
6508
6509 * arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
6510 * arm.c (thumb2_reorg): Don't convert an ADD instruction that's
6511 already 16 bits.
6512
5deac340
RG
65132012-08-17 Richard Guenther <rguenther@suse.de>
6514
6515 * hash-table.h (class hash_table): Use a descriptor template
b9113907 6516 argument instead of decomposed element type and support functions.
5deac340
RG
6517 (struct pointer_hash): New generic typed pointer-hash.
6518 (struct typed_free_remove, struct typed_noop_remove): Generic
6519 hash_table support pieces.
b9113907 6520 * coverage.c (struct counts_entry): Add hash_table support members.
5deac340
RG
6521 * tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
6522 * tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
6523 SSA name by SSA_NAME_VAR hash.
6524 (coalesce_ssa_name): Use it.
6525 * tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
6526 (expression_to_id): Adjust.
6527 (struct expr_pred_trans_d): Add hash_table support.
6528 (phi_translate_table): Adjust.
6529 (phi_trans_lookup): Likewise.
6530 (phi_trans_add): Likewise.
6531 (do_regular_insertion): Likewise.
b9113907 6532 * tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table support.
5deac340
RG
6533 (same_succ_htab): Adjust.
6534 (find_same_succ_bb): Likewise.
6535 (find_same_succ): Likewise.
6536 (update_worklist): Likewise.
6537 * tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
6538 support.
6539 (redirection_data): Adjust.
6540
c58c0d4c
RG
65412012-08-17 Richard Guenther <rguenther@suse.de>
6542
6543 * params.def (integer-share-limit): Decrease from 256 to 251,
6544 add rationale.
6545
c7e62a26
RG
65462012-08-17 Richard Guenther <rguenther@suse.de>
6547
6548 * tree-sra.c (modify_function): Free redirect_callers vector.
6549 * ipa-split.c (split_function): Free args_to_pass vector.
6550 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
6551 body_cost_vec properly.
6552 (vect_enhance_data_refs_alignment): Likewise.
6553 * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
6554 vec_oprnds.
6555 (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
6556 * tree-vect-slp.c (vect_free_slp_instance): Free the instance.
6557 (vect_analyze_slp_instance): Free everything.
6558 (destroy_bb_vec_info): Free the SLP instances.
6559
62205beb
IS
65602012-08-17 Iain Sandoe <iain@codesourcery.com>
6561
6562 * config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
6563 to vec.h.
6564
1a4049e7
JJ
65652012-08-17 Jakub Jelinek <jakub@redhat.com>
6566
6567 * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
6568
85b5ba1a
SL
65692012-08-16 Sandra Loosemore <sandra@codesourcery.com>
6570
6571 * config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
6572 (mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
6573 (mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
6574 (mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
6575 (mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.
6576
0c66c562
OE
65772012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
6578
6579 PR target/54236
6580 * config/sh/sh.md (addc): Add commutative modifier.
6581 (*addc, *minus_plus_one, *subc, *negc): New insns and splits.
6582
9839afaf
OE
65832012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
6584
6585 PR target/39423
6586 * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
6587 potential T_REG clobber. Convert zero extending split to
6588 insn_and_split.
6589
043d627e
OE
65902012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
6591
6592 PR target/54089
6593 * config/sh/sh.md (ashlsi3_d): Do not split if it would result
6594 in a T_REG clobber. Correct comment.
6595 (ashlsi3_n): Correct comment.
6596
65972012-08-16 Hans-Peter Nilsson <hp@axis.com>
df1a3a7c
HPN
6598
6599 PR middle-end/54261
6600 * optabs.c (expand_atomic_fetch_op): Save and restore code when
6601 retrying after failed attempt.
6602
af7c3fe7
YR
66032012-08-16 Yuri Rumyantsev <ysrumyan@gmail.com>
6604
6605 * config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
6606 additional argument.
6607 * config/i386/i386.md (ix86_split_lea_for_addr) : Add
6608 additional argument curr_insn.
6609 * config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
6610 register first, depending on their defintion distances.
6611 (ix86_lea_outperforms): Prefer LEA only if split cost exceeds
6612 AGU stall.
6613 (find_nearest_reg-def): New function. Find register with
6614 nearest definition.
6615
fd199491
WL
66162012-08-16 Walter Lee <walt@tilera.com>
6617
6618 * config.gcc (tilegx-*-linux*): Add feedback.h.
6619 (tilepro-*-linux*): Likewise.
6620 * config/tilegx/feedback.h: New file.
6621 * config/tilepro/feedback.h: New file.
6622
caed3b90 66232012-08-16 Diego Novillo <dnovillo@google.com>
6c76b723
DN
6624
6625 Revert
6626
6627 PR bootstrap/54281
6628 * double-int.h: Move including of gmp.h ...
6629 * system.h: ... here.
6630 * realmpfr.h: Do not include gmp.h.
6631 * tree-ssa-loop-niter.c: Do not include gmp.h.
6632
e426fa99
SB
66332012-08-16 Segher Boessenkool <segher@kernel.crashing.org>
6634
6635 * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.
6636
f5843d08
RG
66372012-08-16 Richard Guenther <rguenther@suse.de>
6638
6639 PR middle-end/54146
6640 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
6641 exit vector.
6642 * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
6643 * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
6644 * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
b9113907 6645 * tree-into-ssa.c (get_ssa_name_ann): Allocate info only when needed.
f5843d08
RG
6646 * tree-ssa-loop-im.c (analyze_memory_references): Adjust.
6647 (tree_ssa_lim_finalize): Free all mem_refs.
6648 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
6649 scc when bailing out.
6650 * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
6651 * ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
6652 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
6653 FOR_EACH_LOOP_BREAK.
6654
0c8036f7
DN
66552012-08-16 Diego Novillo <dnovillo@google.com>
6656
6657 PR bootstrap/54281
6658 * double-int.h: Move including of gmp.h ...
6659 * system.h: ... here.
6660 * realmpfr.h: Do not include gmp.h.
6661 * tree-ssa-loop-niter.c: Do not include gmp.h.
6662
01273677
SB
66632012-08-16 Steven Bosscher <steven@gcc.gnu.org>
6664
6665 PR middle-end/54146
6666 * tree-flow.h (compute_global_livein): Remove prototype.
6667 * tree-into-ssa.c (compute_global_livein): Remove function.
6668 * tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
6669 (find_sibling_superloop): New function.
6670 (compute_live_loop_exits): New function.
6671 (add_exit_phis_edge): Rename to add_exit_phi. Do not allow
6672 inserting a PHI in a block that is not a loop exit for VAR.
6673 Add dumping if TDF_DETAILS.
6674 (add_exit_phis_var): Rewrite.
6675 (add_exit_phis): Update.
6676 (get_loops_exits): Rewrite to return an array of per-loop exits
6677 rather than one bitmap with all loop exits.
6678 (find_uses_to_rename_bb): Ignore virtual PHI nodes.
6679 (rewrite_into_loop_closed_ssa): Update.
6680
1f85d2fb
NC
66812012-08-16 Nick Clifton <nickc@redhat.com>
6682
ca9b1cd8
NC
6683 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
6684 before passing it to ASM_OUTPUT_LIMITED_STRING.
6685
c0e2141a
NC
6686 * config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.
6687
1f85d2fb
NC
6688 * config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
6689 * config/avr/avr.c (avr_legitimize_reload_address): Add casts
6690 for reload_type enums.
af7c3fe7 6691 (DEF_BUILTIN): Cast the icode to enum insn_code.
1f85d2fb 6692
800d16e9
SB
66932012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
6694
6695 * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
6696 instead of -mppc.
6697 * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.
6698
6b39bc38
SB
66992012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
6700
6701 * config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
6702 (RS6000_CALL_GLUE): Adjust for single assembler syntax.
b9113907
UB
6703 * config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
6704 * config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
6705 * config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
6706 * config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
6b39bc38
SB
6707 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
6708 * config/rs6000/darwin.md (whole file): Adjust to single
6709 assembler syntax.
b9113907 6710 * config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
6b39bc38
SB
6711 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
6712 * config/rs6000/dfp.md: (whole file): Adjust to single
6713 assembler syntax.
b9113907 6714 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
6b39bc38
SB
6715 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
6716 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
6717 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
6718 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
b9113907 6719 * config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK.
6b39bc38
SB
6720 * config/rs6000/rs6000-tables.opt: Regenerate.
6721 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
6722 (num_insns_constant_wide): Adjust comments.
6723 (whole file): Adjust to single assembler syntax.
6724 (output_cbranch): Adjust comment.
6725 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
6726 * config/rs6000/rs6000.md: (whole file): Adjust to single
6727 assembler syntax.
6728 * config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
6729 (mold-mnemonics): Delete.
6730 * config/rs6000/spe.md: (whole file): Adjust to single
6731 assembler syntax.
6732 * config/rs6000/sync.md: (whole file): Adjust to single
6733 assembler syntax.
b9113907 6734 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
6b39bc38
SB
6735 (ASM_OUTPUT_REG_PUSH): Adjust.
6736 (ASM_OUTPUT_REG_POP): Adjust.
b9113907 6737 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
6b39bc38
SB
6738 * config/rs6000/vsx.md: (whole file): Adjust to single
6739 assembler syntax.
b9113907 6740 * config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
6b39bc38
SB
6741 * doc/invoke.texi: Adjust documentation to reflect the
6742 removal of -mnew-mnemonics and -mold-mnemonics.
6743
a441dedb
SB
67442012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
6745
6746 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
6747 Delete handling for -mno-powerpc and -mpowerpc.
6748 * config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
6749 (ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
6750 * config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
6751 * config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
6752 * config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
6753 * config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
6754 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
6755 * config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
6756 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
6757 * config/rs6000/driver-rs6000.c (asm_names): Delete handling
6758 for -mcpu=common and -mpowerpc.
6759 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
6760 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
6761 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
6762 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
6763 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
6764 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
6765 Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
b9113907 6766 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
a441dedb
SB
6767 (rs6000_cpu_cpp_builtins): Adjust.
6768 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
6769 (rs6000_builtin_mask_calculate): Adjust.
6770 (rs6000_emit_move): Delete code for ! TARGET_POWERPC.
6771 (rs6000_init_libfuncs): Ditto.
6772 (rs6000_output_function_prologue): Ditto.
6773 (rs6000_opt_masks): Delete MASK_POWERPC.
6774 (rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
b9113907 6775 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for -mpowerpc.
a441dedb
SB
6776 (RS6000_BTM_POWERPC): Delete.
6777 (RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
6778 * config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
6779 TARGET_POWERPC always on.
6780 (extendqihi2 patterns): Similar.
6781 (various unnamed subtract patterns): Similar.
6782 (bswaphi2 patterns): Similar.
6783 (divmodsi4): Similar.
6784 (udiv<GPR:mode>3): Similar.
6785 (div<GPR:mode>3 patterns): Similar.
6786 (udivmodsi4): Similar.
6787 (mulhcall): Delete.
6788 (mullcall): Delete.
6789 (divss_call): Delete.
6790 (divus_call): Delete.
6791 (quoss_call): Delete.
6792 (quous_call): Delete.
6793 (insvsi patterns): Adjust.
6794 (addsf3 patterns): Adjust.
6795 (subsf3 patterns): Adjust.
6796 (mulsf3 patterns): Adjust.
6797 (divsf3 patterns): Adjust.
6798 (*fmasf4_fpr): Adjust.
6799 (*fmssf4_fpr): Adjust.
6800 (*nfmasf4_fpr): Adjust.
6801 (*nfmssf4_fpr): Adjust.
6802 (*floatunssidf2_internal): Adjust.
6803 (fix_trunc<SFDF:mode>si2_internal): Adjust.
6804 (fctiwz_<SFDF:mode>): Adjust.
6805 (mulsidi3 patterns): Adjust.
6806 (smulsi3_highpart patterns): Adjust.
6807 (umulsi3_highpart patterns): Adjust.
6808 (fix_trunctfsi2 patterns): Adjust.
6809 (prefetch): Adjust.
6810 * config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
6811 (mno-powerpc): Delete.
6812 * config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
6813 (store_conditional<ATOMIC:mode>): Adjust.
6814 (atomic_compare_and_swap<ATOMIC:mode>): Adjust.
6815 (atomic_exchange<ATOMIC:mode>): Adjust.
6816 (atomic_<fetchop_name><ATOMIC:mode>): Adjust.
6817 (atomic_nand<ATOMIC:mode>): Adjust.
6818 (atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
6819 (atomic_fetch_nand<ATOMIC:mode>): Adjust.
6820 (atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
6821 (atomic_nand_fetch<ATOMIC:mode>): Adjust.
6822 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
6823 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
6824 * config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
6825 * doc/invoke.texi: Adjust documentation.
6826
68272012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
4b705221
SB
6828
6829 * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.
6830
687e9f1f
SB
68312012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
6832
6833 * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
6834 * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
6835 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
6836 * config/rs6000/driver-rs6000.c (asm_names): Ditto.
6837
1e9aaffb
SB
68382012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
6839
6840 PR target/54142
6841 * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
6842 instead of -mcom.
6843 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.
6844
ef2e5300
SL
68452012-08-15 Sandra Loosemore <sandra@codesourcery.com>
6846 Maxim Kuvyrkov <maxim@codesourcery.com>
6847 Julian Brown <julian@codesourcery.com>
6848 MIPS Technologies, Inc.
6849
ef2e5300
SL
6850 * config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
6851 (dspalusat): Add insn types.
6852 * config/mips/mips-dsp.md (add<DSPV:mode>3)
6853 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
6854 (sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
6855 (mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
6856 (mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
6857 (mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
6858 (mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
6859 (mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
6860 (mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
6861 (mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
6862 (mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
6863 (mips_repl_qb, mips_repl_ph)
6864 (mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
6865 (mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
6866 (mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
6867 (mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
6868 (mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
6869 (mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
6870 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
6871 (mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
6872 dspmac.
6873 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
6874 dspmacsat.
6875 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
6876 Set type to accext.
6877 (mips_shilo, mips_mthlip): Set type to accmod.
6878 * config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
6879 (mips_adduh_r_qb): Set type to dspalusat.
6880 (mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
6881 (mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
6882 (mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
6883 (mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
6884 (mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
6885 (mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
6886 (mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
6887 (mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
6888 (mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
6889 dspmac. Set accum_in attribute.
b9113907 6890 (mips_subu_s_ph): Set type to dspalusat.
ef2e5300
SL
6891 (mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
6892 Set accum_in attribute.
6893 * config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
6894 * config/mips/mips.c (dspalu_bypass_table): New.
6895 (mips_dspalu_bypass_p): New.
6896 * config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
6897 (r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
6898 (r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
6899 (r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
6900 * config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
6901 (r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
6902 reservations.
6903 (r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
6904 (r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.
6905
66b038ce
UW
69062012-08-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6907
6908 * config/spu/spu.c: Include "cfgloop.h".
6909 (spu_machine_dependent_reorg): Call loop_optimizer_init and
6910 loop_optimizer_finalize. Use bb_loop_depth instead of loop_depth.
6911 Directly compare loop_father values where appropriate.
6912 * config/spu/t-spu-elf (spu.o): Update dependencies.
6913
5dfe1ad4
L
69142012-08-15 H.J. Lu <hongjiu.lu@intel.com>
6915
6916 * Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).
6917
6b5eea61
BS
69182012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6919
6920 PR tree-optimization/54245
6921 * gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
6922 (legal_cast_p): Split out logic to legal_cast_p_1.
6923 (analyze_increments): Avoid introducing multiplies in smaller types.
6924
0a5f2683
BS
69252012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6926
6927 PR tree-optimization/54240
6928 * tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
6929 existence of conditional move with given mode.
6930
6d67b4c7
RG
69312012-08-15 Richard Guenther <rguenther@suse.de>
6932
6933 * double-int.h (double_int::from_unsigned): Rename to ...
6934 (double_int::from_uhwi): ... this.
6935 (double_int::from_signed): Rename to ...
6936 (double_int::from_shwi): ... this.
6937 (double_int::to_signed): Rename to ...
6938 (double_int::to_shwi): ... this.
6939 (double_int::to_unsigned): Rename to ...
6940 (double_int::to_uhwi): ... this.
6941 (double_int::fits_unsigned): Rename to ...
6942 (double_int::fits_uhwi): ... this.
6943 (double_int::fits_signed): Rename to ...
6944 (double_int::fits_shwi): ... this.
6945 (double_int::fits): Rename to ...
6946 (double_int::fits_hwi): ... this.
6947 * double-int.c: Likewise.
6948
63ef63bf
SB
69492012-08-15 Steven Bosscher <steven@gcc.gnu.org>
6950
6951 * timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
6952 TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
6953 TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
6954 TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
6955 (TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
6956 TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
6957 * timevar.c (timevar_print): Make printing width of timevar names
6958 more flexible, but enforce maximum length.
6959 * ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
6960 (pass_ipa_inline): Use TV_IPA_INLINING.
6961 * ipa-inline-analysis.c (pass_inline_parameters): Use
6962 TV_INLINE_HEURISTICS.
6963 * tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
6964 (pass_tree_loop_done): Likewise.
6965 * final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
6966 * loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
6967 (loop_optimizer_finalize): Push/pop TV_LOOP_FINI.
6968
5b28d821
RR
69692012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6970
b9113907 6971 * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands.
5b28d821
RR
6972 (neon_vabal<mode> VDQIW): Likewise.
6973
c3b1709a
RR
69742012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6975
6976 PR target/54212
6977 * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
6978 mark as predicable. Adjust asm template.
6979 (vec_setv2di_internal): Likewise.
6980 (vec_extract<mode> VD, VQ): Likewise.
6981 (vec_extractv2di): Likewise.
6982 (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
6983 (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
6984 (neon_vdup_n<mode> VX, V32): Likewise.
6985 (neon_vdup_nv2di): Likewise.
6986
a9d2a88c
MK
69872012-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
6988
6989 * config/mips/mips.md (define_attr accum_in): New instruction
6990 attribute. Set it for imadd and fmadd patterns.
6991 * config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
6992 accumulator register.
6993
b9113907 69942012-08-14 Diego Novillo <dnovillo@google.com>
0823efed
DN
6995
6996 Merge from cxx-conversion branch. Configury.
6997
6998 * configure.ac (CXX_FOR_BUILD): Define and substitute.
6999 (BUILD_CXXFLAGS): Define.
7000 Remove all handlers of ENABLE_BUILD_WITH_CXX.
7001 Force all build to be with C++.
7002 * Makefile.in (BUILD_CXXFLAGS): Use it.
7003 Remove all handlers of ENABLE_BUILD_WITH_CXX.
7004 * configure: Regenerate.
7005 * config.in: Regenerate.
7006 * doc/install.texi: Remove documentation for --enable-build-with-cxx
7007 and --enable-build-poststage1-with-cxx.
7008
b9113907 70092012-08-14 Diego Novillo <dnovillo@google.com>
0823efed
DN
7010
7011 Merge from cxx-conversion branch. Re-implement VEC in C++.
7012
7013 * vec.c (vec_heap_free): Convert into a template function.
7014 (vec_gc_o_reserve_1): Make extern.
7015 (vec_gc_p_reserve): Remove.
7016 (vec_gc_p_reserve_exact): Remove.
7017 (vec_gc_o_reserve): Remove.
7018 (vec_gc_o_reserve_exact): Remove.
7019 (vec_heap_o_reserve_1): Make extern.
7020 (vec_heap_p_reserve): Remove.
7021 (vec_heap_p_reserve_exact): Remove.
7022 (vec_heap_o_reserve): Remove.
7023 (vec_heap_o_reserve_exact): Remove.
7024 (vec_stack_p_reserve): Remove.
7025 (vec_stack_p_reserve_exact): Remove.
b9113907
UB
7026 * vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT,
7027 VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file.
0823efed
DN
7028 (VEC): Define to vec_t<T>.
7029 (vec_allocation_t): Define.
7030 (struct vec_prefix): Move earlier in the file.
7031 (vec_t<T>): New template.
7032 (DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
7033 DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
7034 DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
7035 DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
7036 (DEF_VEC_A): Provide template instantiations for
7037 GC/PCH markers that do not traverse the vector.
7038 (vec_stack_p_reserve): Remove.
7039 (vec_stack_p_reserve_exact): Remove.
7040 (vec_stack_p_reserve_exact_1): Remove.
7041 (vec_stack_o_reserve): Remove.
7042 (vec_stack_o_reserve_exact): Remove.
7043 (vec_stack_free): Re-write as a template function.
7044 (vec_reserve): New template function.
7045 (vec_reserve_exact): New template function.
7046 (vec_heap_free): New template function if GATHER_STATISTICS is
7047 defined. Otherwise, macro that expands to free().
7048 (VEC_length_1): New template function.
7049 (VEC_length): Call it.
7050 (VEC_empty_1): New template function.
7051 (VEC_empty): Call it.
7052 (VEC_address_1): New template function.
7053 (VEC_address): Call it.
7054 (VEC_last_1): New template function.
7055 (VEC_last): Call it. Change return type to T&.
7056 Change all users that used VEC_Os.
7057 (VEC_index_1): New template function.
7058 (VEC_index): Call it. Return a T& instead of a T*.
7059 Update all callers that were using VEC_O before.
7060 (VEC_iterate_1): New template function.
7061 (VEC_iterate): Call it.
7062 (VEC_embedded_size_1): New template function.
7063 (VEC_embedded_size): Call it.
7064 (VEC_embedded_init_1): New template function.
7065 (VEC_embedded_init): Call it.
7066 (VEC_alloc_1): New template function.
7067 (VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to
7068 do the allocation.
7069 (VEC_free_1): New template function.
7070 (VEC_free): Call it.
7071 (VEC_copy_1): New template function.
7072 (VEC_copy): Call it.
7073 (VEC_space_1): New template function
7074 (VEC_space): Call it.
7075 (VEC_reserve_1): New template function.
7076 (VEC_reserve): Call it.
7077 (VEC_reserve_exact_1): New template function.
7078 (VEC_reserve_exact): Call it.
7079 (VEC_splice_1): New template function.
7080 (VEC_splice): Call it.
7081 (VEC_safe_splice_1): New template function.
7082 (VEC_safe_splice): Call it.
7083 (VEC_quick_push_1): New template function. Create two overloads, one
7084 accepting T, the other accepting T *. Update all callers
7085 where T and T * are ambiguous.
7086 (VEC_quick_push): Call it.
7087 (VEC_safe_push_1): New template function. Create two overloads, one
7088 accepting T, the other accepting T *. Update all callers
7089 where T and T * are ambiguous.
7090 (VEC_safe_push): Call it.
7091 (VEC_pop_1): New template function.
7092 (VEC_pop): Call it.
7093 (VEC_truncate_1): New template function.
7094 (VEC_truncate): Call it.
7095 (VEC_safe_grow_1): New template function.
7096 (VEC_safe_grow): Call it.
7097 (VEC_safe_grow_cleared_1): New template function.
7098 (VEC_safe_grow_cleared): Call it.
7099 (VEC_replace_1): New template function.
7100 (VEC_replace): Call it. Always accept T instead of T*.
7101 Update all callers that used VEC_Os.
7102 (VEC_quick_insert_1): New template function.
7103 (VEC_quick_insert): Call it.
7104 (VEC_safe_insert_1): New template function.
7105 (VEC_safe_insert): Call it.
7106 (VEC_ordered_remove_1): New template function.
7107 (VEC_ordered_remove): Call it.
7108 (VEC_unordered_remove_1): New template function.
7109 (VEC_unordered_remove): Call it.
7110 (VEC_block_remove_1): New template function.
7111 (VEC_block_remove): Call it.
7112 (VEC_lower_bound_1): New template function.
7113 (VEC_lower_bound): Call it.
7114 (VEC_OP): Remove.
7115 (DEF_VEC_FUNC_P): Remove.
7116 (DEF_VEC_ALLOC_FUNC_P): Remove.
7117 (DEF_VEC_NONALLOC_FUNCS_P): Remove.
7118 (DEF_VEC_FUNC_O): Remove.
7119 (DEF_VEC_ALLOC_FUNC_O): Remove.
7120 (DEF_VEC_NONALLOC_FUNCS_O): Remove.
7121 (DEF_VEC_ALLOC_FUNC_I): Remove.
7122 (DEF_VEC_NONALLOC_FUNCS_I): Remove.
7123 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
7124 (DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
7125 (DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
7126 (vec_reserve_exact): New template function.
7127
7128 * gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
7129 * gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
7130 (typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
7131 (def_vec_alloc): Remove. Update all callers.
7132 * gengtype.c (filter_type_name): New.
7133 (output_mangled_typename): Call it.
7134 (write_func_for_structure): Likewise.
7135 (write_types): Likewise.
7136 (write_root): Likewise.
7137 (write_typed_alloc_def): Likewise.
7138 (note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
7139 (note_def_vec_alloc): Remove.
7140 * gengtype.h (note_def_vec_alloc): Remove.
7141 (DEFVEC_ALLOC): Remove token code.
7142
7143 * df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
7144 inside the insn traversal loop.
7145 * gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
7146 * ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
7147 * reg-stack.c (stack): Rename to STACK_PTR. Update all users.
7148 * tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users.
7149
7150 * config/bfin/bfin.c (hwloop_optimize): Update some calls to
7151 VEC_* for vectors of non-pointers.
7152 * config/c6x/c6x.c (try_rename_operands): Likewise.
7153 (reshuffle_units): Likewise.
7154 * config/mips/mips.c (mips_multi_start): Likewise.
7155 (mips_multi_add): Likewise.
7156 (mips_multi_copy_insn): Likewise.
7157 (mips_multi_set_operand): Likewise.
7158 * hw-doloop.c (discover_loop): Likewise.
7159 (discover_loops): Likewise.
7160 (reorg_loops): Likewise.
7161
b9113907 71622012-08-14 Diego Novillo <dnovillo@google.com>
0823efed
DN
7163
7164 Merge from cxx-conversion branch. C++ support in gengtype.
7165
7166 * coretypes.h (gt_pointer_operator): Move from ...
7167 * ggc.h: ... here.
7168 * doc/gty.texi: Document support for C++ templates and
7169 user-provided markers.
7170 * gcc/gengtype-lex.l: Update copyright year.
b9113907 7171 Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I.
0823efed
DN
7172 * gengtype-parse.c: Update copyright year.
7173 (token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
7174 (require_template_declaration): New.
7175 (typedef_name): Call it.
7176 (type): Replace IS_UNION with KIND. Replace all users.
7177 (def_vec): Remove. Update all users.
7178 * gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
7179 (write_state_user_struct_type): New.
7180 (write_state_type): Call it.
7181 (read_state_user_struct_type): New.
7182 (read_state_type): Call it.
7183 * gengtype.c: Update copyright year.
7184 (dump_pair): Move declaration to the top.
7185 (dump_type): Likewise.
7186 (dump_type_list): Likewise.
7187 (dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
7188 (create_user_defined_type): New.
7189 (resolve_typedef): Call it.
7190 (new_structure): Replace argument ISUNION with KIND.
7191 Change users to refer to KIND directly.
7192 Update all callers.
7193 (find_structure): Likewise.
7194 (set_gc_used_type): Handle TYPE_USER_STRUCT.
7195 (create_file): Update HDR to include new copyright year.
7196 (struct walk_type_data): Add field IN_PTR_FIELD.
7197 (output_mangled_typename): Handle TYPE_USER_STRUCT.
7198 (walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
7199 Clear it afterwards.
7200 Handle TYPE_USER_STRUCT.
7201 (write_types_process_field): Handle TYPE_USER_STRUCT.
7202 (get_type_specifier): Move earlier in the file.
7203 (write_type_decl): New.
7204 (write_marker_function_name): New.
7205 (write_user_func_for_structure_ptr): New.
7206 (write_user_func_for_structure_body): New.
7207 (write_user_marking_functions): New.
7208 (write_func_for_structure): Call write_marker_function_name
7209 and write_type_decl.
7210 Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
7211 function directly.
7212 Call write_user_marking_functions on TYPE_USER_STRUCTs.
7213 (write_types_local_user_process_field): New.
7214 (write_pch_user_walking_for_structure_body): New.
7215 (write_pch_user_walking_functions): New.
7216 (write_types_local_process_field): Handle TYPE_USER_STRUCT.
7217 (write_local_func_for_structure): Do not call walk_type for
7218 TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
7219 Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
7220 (write_root): Handle TYPE_USER_STRUCT.
7221 (vec_prefix_type): Remove. Update all users.
7222 (note_def_vec): Remove. Update all users.
7223 (dump_typekind): Handle TYPE_USER_STRUCT.
7224 (dump_type): Initialize SEEN_TYPES, if needed.
7225 Handle TYPE_USER_STRUCT.
7226 (dump_everything): Do not initialize SEEN_TYPES.
7227 * gengtype.h: Update copyright year.
7228 (enum typekind): Add TYPE_USER_STRUCT.
7229 (union_or_struct_p): Rename from UNION_OR_STRUCT_P.
7230 Convert into function.
7231 Add an overload taking const_type_p.
7232 Update all callers.
7233 (new_structure): Change second field to type enum typekind.
7234 Update all users.
7235 (find_structure): Likewise.
7236 (note_def_vec): Remove.
7237 (DEFVEC_OP): Remove.
7238 (DEFVEC_I): Remove.
7239 * ggc-page.c (gt_ggc_mx): Add entry points for marking
7240 'const char *&', 'unsigned char *&' and 'unsigned char&'.
7241 * ggc-zone.c (gt_ggc_mx): Add entry points for marking
7242 'const char *&' and 'unsigned char *&'.
7243 * stringpool.c (gt_pch_nx): Add entry points for marking
7244 'const char *&', 'unsigned char *&' and 'unsigned char&'.
7245 Add an entry point for the overload taking arguments 'unsigned char
7246 *', 'gt_pointer_operator' and 'void *'.
7247 * vec.h (struct vec_prefix): Remove GTY marker.
7248 (struct vec_t): Remove GTY((length)) attribute from field 'vec'.
7249 (gt_ggc_mx (vec_t<T> *)): New template function.
7250 (gt_pch_nx (vec_t<T> *)): New template function.
7251 (gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
7252 function.
7253 (gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
7254 function.
7255
7256 * basic-block.h (struct edge_def): Mark GTY((user)).
7257 Remove all GTY markers from fields.
7258 (gt_ggc_mx): Declare.
7259 (gt_pch_nx): Declare.
7260 * tree-cfg.c (gt_ggc_mx): New.
7261 (gt_pch_nx): New.
7262
7263 * gengtype-lex.l (USER_GTY): Add pattern for "user".
7264 * gengtype-parse.c (option): Handle USER_GTY.
7265 (opts_have): New.
7266 (type): Call it.
7267 If the keyword 'user' is used, do not walk the fields
7268 of the structure.
7269 * gengtype.h (USER_GTY): Add.
7270 * doc/gty.texi: Update.
7271
b9113907 72722012-08-14 Lawrence Crowl <crowl@google.com>
0823efed
DN
7273
7274 Merge cxx-conversion branch. Implement C++ hash table.
7275
7276 * hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
7277 * hash-table.c: Likewise.
7278 * tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
7279 (static htab_t same_succ_htab): Change type to hash_table;
7280 move specification of helper functions from create call to declaration.
7281 Change users to invoke member functions.
7282 (same_succ_print_traverse): Make extern ssa_.... Change callers.
7283 Remove void* casting.
7284 (same_succ_hash): Likewise.
7285 (same_succ_equal): Likewise.
7286 (same_succ_delete): Likewise.
7287 * tree-ssa-threadupdate.c: Include hash-table.h.
7288 (struct local_info): Rename to ssa_local_info_t to avoid overloading
7289 the type name local_info with the variable name local_info.
7290 (static htab_t redirection_data): Change type to hash_table.
7291 Move specification of helper functions from create call to declaration.
7292 Change users to invoke member functions.
7293 (redirection_data_hash): Make extern ssa_.... Change callers.
7294 Remove void* casting.
7295 (redirection_data_eq): Likewise.
7296 (fix_duplicate_block_edges): Likewise.
7297 (create_duplicates): Likewise.
7298 (fixup_template_block): Likewise.
7299 (redirect_edges): Likewise.
7300 (lookup_redirection_data): Change types associated with the hash table
7301 from void* to their actual type. Remove unnecessary casts.
7302 * tree-ssa-ccp.c: Include hash-table.h.
7303 (typedef gimple_htab): New. Uses hash_table. Replace specific uses
7304 of htab_t with gimple_htab. Change users to invoke member functions.
7305 Move specification of helper functions from create call to declaration.
7306 * tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
7307 (hash_ssa_name_by_var): Make extern. Remove void* casting.
7308 (eq_ssa_name_by_var): Likewise.
7309 (coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
7310 to hash_table. Change users to invoke member functions.
7311 Move specification of helper functions from create call to declaration.
7312 * coverage.c: Include hash-table.h instead of hashtab.h.
7313 (static htab_t counts_hash): Change type to hash_table;
7314 move specification of helper functions from create call to declaration.
7315 Change users to invoke member functions.
7316 (htab_counts_entry_hash): Make extern. Rename with coverage_... instead
7317 of htab_... Remove void* casting.
7318 (htab_counts_entry_eq): Likewise.
7319 (htab_counts_entry_del): Likewise.
7320 * tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
7321 (static htab_t expression_to_id): Change type to hash_table.
7322 Move specification of helper functions from create call to declaration.
7323 Change users to invoke member functions.
7324 (static htab_t phi_translate_table): Likewise.
7325 (pre_expr_eq): Make extern ssa_.... Change callers.
7326 Remove void* casting.
7327 (pre_expr_hash): Likewise.
7328 (expr_pred_trans_hash): Likewise.
7329 (expr_pred_trans_eq): Likewise.
7330 (alloc_expression_id): Change types associated with the hash table
7331 from void* to their actual type. Remove unnecessary casts.
7332 (lookup_expression_id): Likewise.
7333 (phi_trans_lookup): Likewise.
7334 (phi_trans_add): Likewise.
7335 * stringpool.c: Rename uses of libcpp typedef hash_table to
7336 cpp_hash_table.
7337 * Makefile.in: Add hash-table.o to OBJS-libcommon-target.
7338 Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
7339
b9113907 73402012-08-14 Lawrence Crowl <crowl@google.com>
0823efed
DN
7341
7342 Merge from cxx-conversion branch. Re-write double_int in C++.
7343
7344 * hash-table.h
7345 (typedef double_int): Change to struct (POD).
7346 (double_int::make): New overloads for int to double-int conversion.
7347 (double_int::mask): New.
7348 (double_int::max_value): New.
7349 (double_int::min_value): New.
7350 (double_int::operator ++): New.
7351 (double_int::operator --): New.
7352 (double_int::operator *=): New.
7353 (double_int::operator +=): New.
7354 (double_int::operator -=): New.
7355 (double_int::to_signed): New.
7356 (double_int::to_unsigned): New.
7357 (double_int::fits_unsigned): New.
7358 (double_int::fits_signed): New.
7359 (double_int::fits): New.
7360 (double_int::trailing_zeros): New.
7361 (double_int::popcount): New.
7362 (double_int::multiple_of): New.
7363 (double_int::set_bit): New.
7364 (double_int::mul_with_sign): New.
7365 (double_int::operator * (binary)): New.
7366 (double_int::operator + (binary)): New.
7367 (double_int::operator - (binary)): New.
7368 (double_int::operator - (unary)): New.
7369 (double_int::operator ~ (unary)): New.
7370 (double_int::operator & (binary)): New.
7371 (double_int::operator | (binary)): New.
7372 (double_int::operator ^ (binary)): New.
7373 (double_int::and_not): New.
7374 (double_int::lshift): New.
7375 (double_int::rshift): New.
7376 (double_int::alshift): New.
7377 (double_int::arshift): New.
7378 (double_int::llshift): New.
7379 (double_int::lrshift): New.
7380 (double_int::lrotate): New.
7381 (double_int::rrotate): New.
7382 (double_int::div): New.
7383 (double_int::sdiv): New.
7384 (double_int::udiv): New.
7385 (double_int::mod): New.
7386 (double_int::smod): New.
7387 (double_int::umod): New.
7388 (double_int::divmod): New.
7389 (double_int::sdivmod): New.
7390 (double_int::udivmod): New.
7391 (double_int::ext): New.
7392 (double_int::zext): New.
7393 (double_int::sext): New.
7394 (double_int::is_zero): New.
7395 (double_int::is_one): New.
7396 (double_int::is_minus_one): New.
7397 (double_int::is_negative): New.
7398 (double_int::cmp): New.
7399 (double_int::ucmp): New.
7400 (double_int::scmp): New.
7401 (double_int::ult): New.
7402 (double_int::ugt): New.
7403 (double_int::slt): New.
7404 (double_int::sgt): New.
7405 (double_int::max): New.
7406 (double_int::smax): New.
7407 (double_int::umax): New.
7408 (double_int::min): New.
7409 (double_int::smin): New.
7410 (double_int::umin): New.
7411 (double_int::operator ==): New.
7412 (double_int::operator !=): New.
7413 (shwi_to_double_int): Change implementation to use member function.
7414 (double_int_minus_one): Likewise.
7415 (double_int_zero): Likewise.
7416 (double_int_one): Likewise.
7417 (double_int_two): Likewise.
7418 (double_int_ten): Likewise.
7419 (uhwi_to_double_int): Likewise.
7420 (double_int_to_shwi): Likewise.
7421 (double_int_to_uhwi): Likewise.
7422 (double_int_fits_in_uhwi_p): Likewise.
7423 (double_int_fits_in_shwi_p): Likewise.
7424 (double_int_fits_in_hwi_p): Likewise.
7425 (double_int_mul): Likewise.
7426 (double_int_mul_with_sign): Likewise.
7427 (double_int_add): Likewise.
7428 (double_int_sub): Likewise.
7429 (double_int_neg): Likewise.
7430 (double_int_div): Likewise.
7431 (double_int_sdiv): Likewise.
7432 (double_int_udiv): Likewise.
7433 (double_int_mod): Likewise.
7434 (double_int_smod): Likewise.
7435 (double_int_umod): Likewise.
7436 (double_int_divmod): Likewise.
7437 (double_int_sdivmod): Likewise.
7438 (double_int_udivmod): Likewise.
7439 (double_int_multiple_of): Likewise.
7440 (double_int_setbit): Likewise.
7441 (double_int_ctz): Likewise.
7442 (double_int_not): Likewise.
7443 (double_int_ior): Likewise.
7444 (double_int_and): Likewise.
7445 (double_int_and_not): Likewise.
7446 (double_int_xor): Likewise.
7447 (double_int_lshift): Likewise.
7448 (double_int_rshift): Likewise.
7449 (double_int_lrotate): Likewise.
7450 (double_int_rrotate): Likewise.
7451 (double_int_cmp): Likewise.
7452 (double_int_scmp): Likewise.
7453 (double_int_ucmp): Likewise.
7454 (double_int_max): Likewise.
7455 (double_int_smax): Likewise.
7456 (double_int_umax): Likewise.
7457 (double_int_min): Likewise.
7458 (double_int_smin): Likewise.
7459 (double_int_umin): Likewise.
7460 (double_int_ext): Likewise.
7461 (double_int_sext): Likewise.
7462 (double_int_zext): Likewise.
7463 (double_int_mask): Likewise.
7464 (double_int_max_value): Likewise.
7465 (double_int_min_value): Likewise.
7466 (double_int_zero_p): Likewise.
7467 (double_int_one_p): Likewise.
7468 (double_int_minus_one_p): Likewise.
7469 (double_int_equal_p): Likewise.
7470 (double_int_popcount): Likewise.
7471 * hash-table.c
7472 (double_int_mask): Reuse implementation for double_int::mask.
7473 (double_int_max_value): Likewise.
7474 (double_int_min_value): Likewise.
7475 (double_int_ext): Likewise.
7476 (double_int_zext): Likewise.
7477 (double_int_sext): Likewise.
7478 (double_int_mul_with_sign): Likewise.
7479 (double_int_divmod): Likewise.
7480 (double_int_sdivmod): Likewise.
7481 (double_int_udivmod): Likewise.
7482 (double_int_div): Likewise.
7483 (double_int_sdiv): Likewise.
7484 (double_int_udiv): Likewise.
7485 (double_int_mod): Likewise.
7486 (double_int_smod): Likewise.
7487 (double_int_umod): Likewise.
7488 (double_int_multiple_of): Likewise.
7489 (double_int_lshift): Likewise.
7490 (double_int_rshift): Likewise.
7491 (double_int_lrotate): Likewise.
7492 (double_int_rrotate): Likewise.
7493 (double_int_cmp): Likewise.
7494 (double_int_ucmp): Likewise.
7495 (double_int_scmp): Likewise.
7496 (double_int_max): Likewise.
7497 (double_int_smax): Likewise.
7498 (double_int_umax): Likewise.
7499 (double_int_min): Likewise.
7500 (double_int_smin): Likewise.
7501 (double_int_umin): Likewise.
7502 (double_int_min): Likewise.
7503 (double_int_min): Likewise.
7504 (double_int_min): Likewise.
7505 (double_int_min): Likewise.
7506 (double_int_min): Likewise.
7507 (double_int_min): Likewise.
7508 (double_int::alshift): New.
7509 (double_int::arshift): New.
7510 (double_int::llshift): New.
7511 (double_int::lrshift): New.
7512 (double_int::ult): New.
7513 (double_int::ugt): New.
7514 (double_int::slt): New.
7515 (double_int::sgt): New.
7516 (double_int_setbit): Reuse implementation for double_int::set_bit,
7517 which avoids a name conflict with a macro.
7518 (double_int_double_int_ctz): Reuse implementation for
7519 double_int::trailing_zeros.
7520 (double_int_fits_in_shwi_p): Reuse implementation for
7521 double_int::fits_signed.
7522 (double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
7523 (double_int_mul): Reuse implementation for binary
7524 double_int::operator *.
7525 (double_int_add): Likewise.
7526 (double_int_sub): Likewise.
7527 (double_int_neg): Reuse implementation for unary
7528 double_int::operator -.
7529 (double_int_max_value): Likewise.
7530 * fixed-value.c: Change to use member functions introduced above.
7531
b9113907 75322012-08-14 Lawrence Crowl <crowl@google.com>
0823efed 7533
b9113907 7534 Merge cxx-conversion branch. Support tree macro calling from gdb.
0823efed
DN
7535
7536 * tree.h (tree_check): New.
7537 (TREE_CHECK): Use inline function above instead of __extension__.
7538 (tree_not_check): New.
7539 (TREE_NOT_CHECK): Use inline function above instead of __extension__.
7540 (tree_check2): New.
7541 (TREE_CHECK2): Use inline function above instead of __extension__.
7542 (tree_not_check2): New.
7543 (TREE_NOT_CHECK2): Use inline function above instead of __extension__.
7544 (tree_check3): New.
7545 (TREE_CHECK3): Use inline function above instead of __extension__.
7546 (tree_not_check3): New.
7547 (TREE_NOT_CHECK3): Use inline function above instead of __extension__.
7548 (tree_check4): New.
7549 (TREE_CHECK4): Use inline function above instead of __extension__.
7550 (tree_not_check4): New.
7551 (TREE_NOT_CHECK4): Use inline function above instead of __extension__.
7552 (tree_check5): New.
7553 (TREE_CHECK5): Use inline function above instead of __extension__.
7554 (tree_not_check5): New.
7555 (TREE_NOT_CHECK5): Use inline function above instead of __extension__.
7556 (contains_struct_check): New.
7557 (CONTAINS_STRUCT_CHECK): Use inline function above instead of
7558 __extension__.
7559 (tree_class_check): New.
7560 (TREE_CLASS_CHECK): Use inline function above instead of __extension__.
7561 (tree_range_check): New.
7562 (TREE_RANGE_CHECK): Use inline function above instead of __extension__.
7563 (omp_clause_subcode_check): New.
7564 (OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
7565 __extension__.
7566 (omp_clause_range_check): New.
7567 (OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
7568 __extension__.
7569 (expr_check): New.
7570 (EXPR_CHECK): Use inline function above instead of __extension__.
7571 (non_type_check): New.
7572 (NON_TYPE_CHECK): Use inline function above instead of __extension__.
7573 (tree_vec_elt_check): New.
7574 (TREE_VEC_ELT_CHECK): Use inline function above instead of
7575 __extension__.
7576 (omp_clause_elt_check): New.
7577 (OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
7578 __extension__.
7579 (tree_operand_check): New.
7580 (TREE_OPERAND_CHECK): Use inline function above instead of
7581 __extension__.
7582 (tree_operand_check_code): New.
7583 (TREE_OPERAND_CHECK_CODE): Use inline function above instead of
7584 __extension__.
7585 (TREE_CHAIN): Simplify implementation.
7586 (TREE_TYPE): Simplify implementation.
7587 (tree_operand_length): Move for compilation dependences.
7588 * gdbinit.in: (macro define __FILE__): New.
7589 (macro define __LINE__): New.
7590 (skip "tree.h"): New.
7591
669d4d70
OE
75922012-08-14 Oleg Endo <olegendo@gcc.gnu.org>
7593
7594 PR target/52933
7595 * config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0,
7596 *cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns.
7597 * config/sh/sh.c (sh_rtx_costs): Handle div0s patterns.
7598
24c18ad8
OE
75992012-08-14 Oleg Endo <olegendo@gcc.gnu.org>
7600
7601 PR target/50751
7602 * config/sh/constraints.md (Sra): New constraint.
7603 * config/sh/predicates.md (simple_mem_operand,
7604 displacement_mem_operand, zero_extend_movu_operand): New predicates.
7605 (zero_extend_operand): Check zero_extend_movu_operand for SH2A.
7606 * config/sh/sh.md (*zero_extendqisi2_disp_mem,
7607 *zero_extendhisi2_disp_mem): Add new insns and two new related
7608 peephole2 patterns.
7609
2ba31c05
SB
76102012-08-14 Steven Bosscher <steven@gcc.gnu.org>
7611
cc360b36
SB
7612 * graphite-scop-detection.c (create_sese_edges): Compute dominance
7613 info before trying to fix loop structure.
7614 * cfgloopmanip.c (fix_loop_structure): Require fast DOM queries.
7615 * tree-cfgcleanup.c (repair_loop_structures): Likewise.
7616 * cfgloop.c (verify_loop_structure): Verify loop fathers.
7617
2ba31c05
SB
7618 * dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
7619 (dom_convert_dir_to_idx, compute_dom_fast_query,
7620 get_immediate_dominator, set_immediate_dominator, get_dominated_by,
7621 redirect_immediate_dominators, nearest_common_dominator,
7622 (dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator,
7623 iterate_fix_dominators, add_to_dominance_info,
7624 delete_from_dominance_info): Likewise.
7625
ea057359
RG
76262012-08-14 Richard Guenther <rguenther@suse.de>
7627
7628 * cfgexpand.c (expand_used_vars): Use virtual_operand_p.
7629 * gimple-pretty-print.c (dump_phi_nodes): Likewise.
7630 * gimple-streamer-out.c (output_bb): Likewise.
7631 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
7632 (rewrite_reductions_out_of_ssa): Likewise.
7633 (rewrite_commutative_reductions_out_of_ss): Likewise.
7634 * ipa-split.c (verify_non_ssa_vars): Likewise.
7635 (consider_split): Likewise.
7636 (visit_bb): Likewise.
7637 (split_function): Likewise.
7638 * lto-streamer-out.c (output_ssa_names): Likewise.
7639 * sese.c (rename_uses): Likewise.
7640 * tree-cfg.c (replace_uses_by): Likewise.
7641 (gimple_merge_blocks): Likewise.
7642 (gimple_cfg2dot): Likewise.
7643 (verify_gimple_phi): Likewise.
7644 (replace_ssa_name): Likewise.
7645 (move_block_to_fn): Likewise.
7646 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
7647 * tree-if-conv.c (if_convertible_phi_p): Likewise.
7648 (predicate_scalar_phi): Likewise.
7649 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
7650 (copy_phis_for_bb): Likewise.
7651 * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
7652 (destroy_loop): Likewise.
7653 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
7654 (insert_backedge_copies): Likewise.
7655 * tree-parloops.c (transform_to_exit_first_loop): Likewise.
7656 (gather_scalar_reductions): Likewise.
7657 (try_create_reduction_list): Likewise.
7658 * tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
7659 Likewise.
7660 (scev_const_prop): Likewise.
7661 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
7662 (get_default_value): Likewise.
7663 (ccp_initialize): Likewise.
7664 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7665 * tree-ssa-copy.c (may_propagate_copy): Likewise.
7666 (init_copy_prop): Likewise.
7667 * tree-ssa-dce.c (propagate_necessity): Likewise.
7668 (remove_dead_phis): Likewise.
7669 (forward_edge_to_pdom): Likewise.
7670 (eliminate_unnecessary_stmts): Likewise.
7671 * tree-ssa-live.c (partition_view_init): Likewise.
7672 (remove_unused_locals): Likewise.
7673 (register_ssa_partition_check): Likewise.
7674 * tree-ssa-loop-im.c (movement_possibility): Likewise.
7675 (move_computations_stmt): Likewise.
7676 * tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
7677 (record_invariant): Likewise.
7678 (find_interesting_uses_outside): Likewise.
7679 (determine_set_costs): Likewise.
7680 * tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
7681 (find_uses_to_rename_use): Likewise.
7682 (check_loop_closed_ssa_use): Likewise.
7683 (rewrite_phi_with_iv): Likewise.
7684 (canonicalize_loop_ivs): Likewise.
7685 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7686 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
7687 * tree-ssa-pre.c (make_values_for_phi): Likewise.
7688 (compute_avail): Likewise.
7689 (eliminate): Likewise.
7690 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
7691 * tree-ssa-reassoc.c (phi_rank): Likewise.
7692 * tree-ssa-strlen.c (strlen_enter_block): Likewise.
7693 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
7694 (ipa_pta_execute): Likewise.
7695 * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
7696 (release_last_vdef): Likewise.
7697 (same_phi_alternatives_1): Likewise.
7698 (bb_has_non_vop_phi): Likewise.
7699 (vop_phi): Likewise.
7700 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
7701 Likewise.
7702 * tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
7703 (execute_late_warn_uninitialized): Likewise.
7704 * tree-ssa.c (verify_ssa_name): Likewise.
7705 (verify_phi_args): Likewise.
7706 (verify_ssa): Likewise.
7707 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
d63c6b2c
UB
7708 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
7709 Likewise.
ea057359
RG
7710 (slpeel_tree_peel_loop_to_edge): Likewise.
7711 (vect_can_advance_ivs_p): Likewise.
7712 (vect_update_ivs_after_vectorizer): Likewise.
7713 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
7714 * tree-vrp.c (remove_range_assertions): Likewise.
7715 * value-prof.c (gimple_divmod_values_to_profile): Likewise.
7716
1c8f7377
RG
77172012-08-14 Richard Guenther <rguenther@suse.de>
7718
7719 PR tree-optimization/54146
7720 * tree-ssa-pre.c (do_regular_insertion): Use a VEC
7721 indexed by pred edge index for avail.
7722 (do_partial_partial_insertion): Likewise.
7723 (insert_into_preds_of_block): Adjust.
7724
2ad728d2
RG
77252012-08-14 Richard Guenther <rguenther@suse.de>
7726
7727 * gimplify.c (create_tmp_from_val): Mark temporary with
7728 DECL_GIMPLE_REG_P here ...
7729 (internal_get_tmp_var): ... instead of here. If we go into
7730 SSA create an SSA name instead of a VAR_DECL.
7731 (gimplify_modify_expr): Do not create SSA names here, assert
7732 we already got them.
7733 (force_gimple_operand_1): Create an SSA name if we go into SSA.
7734 * sese.c (rename_uses): Simplify.
7735
d8d707b4
RG
77362012-08-14 Richard Guenther <rguenther@suse.de>
7737
7738 * tree-into-ssa.c: Include diagnostic-core.h.
7739 * Makefile.in (tree-into-ssa.o): Adjust.
7740
343c5d46
RG
77412012-08-14 Richard Guenther <rguenther@suse.de>
7742
7743 * tree-into-ssa.c (update_ssa): Verify we do not rename
7744 symbols that are already partly in SSA form.
7745
dbabddf3
JJ
77462012-08-14 Jakub Jelinek <jakub@redhat.com>
7747
7748 PR middle-end/53411
7749 PR rtl-optimization/53495
7750 * ira.c (ira): Move delete_trivially_dead_insns call before
7751 find_moveable_pseudos call.
7752
c302207e
SB
77532012-08-13 Steven Bosscher <steven@gcc.gnu.org>
7754
7755 * tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
7756 of potentially huge memset overhead.
7757 (do_partial_partial_insertion): Likewise.
7758 * cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
7759 * tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
7760 for arrays to be filled by pre_and_rev_post_order_compute. Allocate
7761 the right number of slots, not that number plus NUM_FIXED_BLOCKS.
7762 * tree-ssa-reassoc.c (init_reassoc): Likewise.
7763 * cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
7764 array used as stack.
7765 * tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
7766 arrays to be filled by pre_and_rev_post_order_compute.
7767 * cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
7768 array to be filled by dfs_enumerate_from.
7769 (remove_path): Likewise.
7770 (duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
7771 array of loops that is filled on the next lines.
7772 * cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
7773 array of basic blocks to be returned.
7774 (get_loop_body_in_dom_order): Likewise.
7775 (get_loop_body_in_bfs_order): Likewise.
7776 * tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
7777 for all bitmaps used for rewriting into loop-closed SSA form.
7778 (add_exit_phis_var): Allocate the def bitmap on it. Clear the livein
7779 bitmap at the end to release a lot of memory.
7780 (add_exit_phis): Allocate the exits bitmap on the new obstack.
7781 (get_loops_exits): Allocate the exits bitmap on the new obstack.
7782 (find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
7783 seen for the first time.
7784 (find_uses_to_rename): Add "???" for why the whole function must
7785 be re-scanned if changed_bbs is empty.
7786 (rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
7787 Use XNEWVEC to allocate the use_blocks array. Initialize the new
7788 obstack, and free it at the end. Remove loop over all SSA names.
7789 (check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
7790 * tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
7791 xcalloc to allocate edge_pred and edge_flag arrays.
7792
621bc046
UB
77932012-08-13 Uros Bizjak <ubizjak@gmail.com>
7794
7795 * config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
7796 (CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
7797 for different ABIs.
7798 (enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
7799 (REG_CLASS_NAMES): Update.
7800 (REG_CLASS_CONTENTS): Update. Clear CLOBBERED_REGS members.
7801 * config/i386/i386.c (ix86_conditional_register_usage): Disable
7802 REX registers on 32bit targets. Handle bitmaps from
7803 CALL_USED_REGISTERS initializer. Calculate CLOBBERED_REGS register
7804 set from GENERAL_REGS also for 32bit targets. Do not change call
7805 used register set for TARGET_64BIT_MS_ABI separately.
7806
391886c8
RG
78072012-08-13 Richard Guenther <rguenther@suse.de>
7808
7809 * basic-block.h (struct basic_block): Remove loop_depth
7810 member, move flags and index members next to each other.
7811 * cfgloop.h (bb_loop_depth): New inline function.
7812 * cfghooks.c (split_block): Do not set loop_depth.
7813 (duplicate_block): Likewise.
7814 * cfgloop.c (flow_loop_nodes_find): Likewise.
7815 (flow_loops_find): Likewise.
7816 (add_bb_to_loop): Likewise.
7817 (remove_bb_from_loops): Likewise.
7818 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
7819 * gimple-streamer-in.c (input_bb): Do not stream loop_depth.
7820 * gimple-streamer-out.c (output_bb): Likewise.
7821 * bt-load.c: Include cfgloop.h.
7822 (migrate_btr_defs): Use bb_loop_depth.
7823 * cfg.c (dump_bb_info): Likewise.
7824 * final.c (compute_alignments): Likewise.
7825 * ira.c (update_equiv_regs): Likewise.
7826 * tree-ssa-copy.c (init_copy_prop): Likewise.
7827 * tree-ssa-dom.c (loop_depth_of_name): Likewise.
7828 * tree-ssa-forwprop.c: Include cfgloop.h.
7829 (forward_propagate_addr_expr): Use bb_loop_depth.
7830 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
7831 * tree-ssa-sink.c (select_best_block): Likewise.
7832 * ipa-inline-analysis.c: Include cfgloop.h.
7833 (estimate_function_body_sizes): Use bb_loop_depth.
7834 * Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
7835 (ipa-inline-analysis.o): Likewise.
7836 (bt-load.o): Likewise.
7837
9006f7f3
GG
78382012-08-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
7839 Jakub Jelinek <jakub@redhat.com>
7840
7841 PR driver/54210
7842 * config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
7843 bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
7844 * config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
7845 0x80000001 %ecx flags.
7846
755a1ca5
RG
78472012-08-13 Richard Guenther <rguenther@suse.de>
7848
7849 * tree-cfg.c (print_loop): Avoid ICEing for loops marked for
7850 removal and loops with multiple latches.
7851
eb87c7c4
JJ
78522012-08-13 Jakub Jelinek <jakub@redhat.com>
7853
7854 PR c/53968
7855 * tree.c (integer_pow2p): Avoid undefined signed overflows.
7856 * simplify-rtx.c (neg_const_int): Likewise.
7857 * expr.c (fixup_args_size_notes): Likewise.
7858 * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
7859 * double-int.c (mul_double_wide_with_sign): Likewise.
7860 (double_int_mask): Likewise.
7861 * tree-ssa-loop-ivopts.c (get_address_cost): Likewise.
7862
61f7b9ae
RG
78632012-08-13 Richard Guenther <rguenther@suse.de>
7864
7865 PR tree-optimization/54200
7866 * tree-ssa-copyrename.c (rename_ssa_copies): Do not add
7867 PHI results to another partition if not all PHI arguments
7868 have the same partition.
7869
f27c1867
JH
78702012-08-12 Jan Hubicka <jh@suse.cz>
7871
7872 * tree-pass.h (write_summary, write_optimization_summary): Remove
7873 set and vset arguments.
7874 * ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
7875 (write_node_summary_p): Likewise; use the encoder.
7876 (ipa_reference_write_optimization_summary): Likewise.
7877 * lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
7878 (lto_symtab_encoder_new): Initialize in_partition field.
7879 (lto_symtab_encoder_delete): Destroy in_partition field.
7880 (LCC_NOT_FOUND): Move to lto-streamer.h
7881 (lto_symtab_encoder_deref): Likewise.
7882 (lto_symtab_encoder_in_partition_p,
7883 lto_set_symtab_encoder_in_partition): New functions.
7884 (referenced_from_other_partition_p): Rewrite to use encoder.
7885 (reachable_from_other_partition_p): Likewise.
7886 (referenced_from_this_partition_p): Likewise.
7887 (reachable_from_this_partition_p): Likewise.
7888 (lto_output_node): Likewise.
7889 (lto_output_varpool_node): Likewise.
7890 (output_refs): Likewise.
7891 (compute_ltrans_boundary): Initialize in_partition fileds of
7892 the encoder.
7893 (output_symtab): Likewise.
7894 (input_refs): Match the changes in output_refs.
7895 (output_cgraph_opt_summary_p): Remove set argument.
7896 (output_node_opt_summary): Replace set by encoder.
7897 (output_cgraph_opt_summary): Remove set argument; use
7898 the encoder.
7899 * ipa-pure-const.c (pure_const_write_summary): Remove set and vset
7900 arguments; use the encoder.
7901 * lto-streamer-out.c (lto_output): Remove set and vset argument; use
7902 the encoder.
7903 (produce_symtab): Likewise.
7904 * ipa-inline.h (inline_write_summary): Remove set and vset arguments.
7905 * ipa-inline-analysis.c (inline_write_summary): Likewise.
7906 * ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
7907 use encoder.
7908 * ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
7909 * passes.c (ipa_write_summaries_2): Remove set and vset arguments.
7910 (ipa_write_summaries_1): Update.
7911 (ipa_write_optimization_summaries_1): Likewise.
7912 (ipa_write_optimization_summaries): Likewise.
7913 * lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
7914 (lto_symtab_encoder_iterator): New type.
7915 (lto_symtab_encoder_deref): Make inline.
7916 (output_symtab, referenced_from_other_partition_p,
7917 reachable_from_other_partition_p, referenced_from_this_partition_p,
7918 reachable_from_this_partition_p): Update.
621bc046
UB
7919 (lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node,
7920 lsei_varpool_node): New inline functions.
f27c1867
JH
7921 (LCC_NOT_FOUND): New macro.
7922 (lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
7923 lsei_start_in_partition, lsei_next_function_in_partition,
7924 lsei_start_function_in_partition, lsei_next_variable_in_partition,
7925 lsei_start_variable_in_partition): New inline functions.
7926
69853ea9
OE
79272012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
7928
7929 * config/sh/sh.md (prefetch): Simplify expander. Fix condition to
7930 allow SH3.
7931 (*prefetch_media): Move insn below expander.
7932 (*prefetch): Fix condition to allow SH3.
7933
eb11dba2
OE
79342012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
7935
7936 PR target/51244
7937 * config/sh/sh.md: Add splits for inverted compare and branch
7938 opportunities.
7939 (*cmpeqsi_t): New insn.
7940 (cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
7941 (cmpgeusi_t): Use satisfies_constraint_Z. Emit sett insn in
7942 replacement insn list and not in the preparation statements.
7943 (clrt, sett): Add mt_group attribute.
7944
874a3756
MG
79452012-08-12 Marc Glisse <marc.glisse@inria.fr>
7946
7947 PR middle-end/54193
7948 * gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.
7949
05852a5f
OE
79502012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
7951
7952 PR target/39423
7953 * config/sh/predicates.md (mem_index_disp_operand): Check for
7954 arith_reg_operand instead of REG_P.
7955
3f5bd0f5
BS
79562012-08-11 Bernd Schmidt <bernds@codesourcery.com>
7957
7958 * reload1.c (replaced_subreg, gen_reload): Add
7959 SECONDARY_MEMORY_NEEDED ifdefs as necessary.
7960
15d0e7a0
JH
79612012-08-11 Jan Hubicka <jh@suse.cz>
7962
7963 * lto-section-in.c (lto_section_name): Do not use "symtab" as part of
7964 symtab_node sectoin name; it confuses plugin.
7965
fcecf84f
UB
79662012-08-11 Uros Bizjak <ubizjak@gmail.com>
7967
7968 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
621bc046 7969 index in the va_list_vars bitmap by num_ssa_names.
fcecf84f 7970
920ac804
UB
79712012-08-11 Uros Bizjak <ubizjak@gmail.com>
7972
7973 * config/i386/sse.md (xop integer multiply/add insns): Use
7974 register_operand for operand 3 predicate.
7975 (xop_phadd<u>bq): Fix vec_select selectors.
7976
8810cc52
MJ
79772012-08-11 Martin Jambor <mjambor@suse.cz>
7978
7979 PR fortran/48636
7980 * ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
7981 * ipa-inline-analysis.c (agg_position_info): New type.
7982 (add_condition): New parameter aggpos, also store agg_contents, by_ref
7983 and offset.
7984 (dump_condition): Also dump aggregate conditions.
7985 (evaluate_conditions_for_known_args): Also handle aggregate
7986 conditions. New parameter known_aggs.
7987 (evaluate_properties_for_edge): Gather known aggregate contents.
7988 (inline_node_duplication_hook): Pass NULL known_aggs to
7989 evaluate_conditions_for_known_args.
7990 (unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
7991 (unmodified_parm_or_parm_agg_item): New function.
7992 (set_cond_stmt_execution_predicate): Handle values passed in
7993 aggregates.
7994 (set_switch_stmt_execution_predicate): Likewise.
7995 (will_be_nonconstant_predicate): Likewise.
7996 (estimate_edge_devirt_benefit): Pass new parameter known_aggs to
7997 ipa_get_indirect_edge_target.
7998 (estimate_calls_size_and_time): New parameter known_aggs, pass it
7999 recrsively to itself and to estimate_edge_devirt_benefit.
8000 (estimate_node_size_and_time): New vector known_aggs, pass it o
8001 functions which need it.
8002 (remap_predicate): New parameter offset_map, use it to remap aggregate
8003 conditions.
8004 (remap_edge_summaries): New parameter offset_map, pass it recursively
8005 to itself and to remap_predicate.
8006 (inline_merge_summary): Also create and populate vector offset_map.
8007 (do_estimate_edge_time): New vector of known aggregate contents,
8008 passed to functions which need it.
8009 (inline_read_section): Stream new fields of condition.
8010 (inline_write_summary): Likewise.
8011 * ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
8012 contents. Let all local callers pass NULL for known_aggs.
8013
ab96cc5b
JH
80142012-08-11 Jan Hubicka <jh@suse.cz>
8015
8016 * lto-cgraph.c (output_cgraph): Rename to ...
8017 (output_symtab): ... this one. Update for LTO_section_symtab_nodes.
8018 (input_cgraph): Rename to ...
8019 (input_symtab): ... this one. Update for LTO_section_symtab_nodes.
8020 * lto-streamer-out.c (create_output_block): Do not set
8021 section_type.
8022 (produce_asm): Likewise.
8023 (lto_output_toplevel_asms): Likewise.
8024 (produce_asm_for_decls): Likewise.
8025 (lto_output): Use output_symtab.
8026 * lto-section-in.c (lto_section_name): Update.
920ac804
UB
8027 * lto-section-out.c (lto_destroy_simple_output_block): Remove
8028 section_type.
ab96cc5b
JH
8029 * lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
8030 rename LTO_section_cgraph to LTO_section_symtab_nodes.
8031 (struct lto_header): Remove section_type.
8032
7380e6ef
JH
80332012-08-11 Jan Hubicka <jh@suse.cz>
8034
8035 * cgraph.h (vector types for symtab_node): Add.
8036 * ipa-reference.c (ipa_reference_write_optimization_summary): Update
8037 for new symtab encoder.
8038 (ipa_reference_read_optimization_summary): Likewise.
8039 * lto-cgraph.c (output_varpool): Remove.
8040 (input_cgraph_opt_summary): Take symtab nodes vector as argument.
8041 (LTO_cgraph_tags): Rename to ...
8042 (LTO_symtab_tags): ... this one; add LTO_symtab_variable.
8043 (lto_cgraph_encoder_new): Rename to ...
8044 (lto_symtab_encoder_new): ... this on.
8045 (lto_cgraph_encoder_encode): Rename to ...
8046 (lto_symtab_encoder_encode): ... this one.
8047 (lto_cgraph_encoder_delete): Rename to ...
8048 (lto_symtab_encoder_delete): ... this one.
8049 (lto_cgraph_encoder_deref): Rename to ...
8050 (lto_symtab_encoder_deref): ... this one.
8051 (lto_cgraph_encoder_encode_body_p): Rename to ...
8052 (lto_symtab_encoder_encode_body_p): ... this one.
8053 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
8054 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
8055 lto_varpool_encoder_deref): Remove.
8056 (lto_varpool_encoder_encode_initializer_p): Rename to ...
8057 (lto_symtab_encoder_encode_initializer_p): ... this one.
8058 (lto_set_varpool_encoder_encode_initializer): Rename to ...
8059 (lto_set_symtab_encoder_encode_initializer): ... this one.
8060 (lto_output_edge): Update.
8061 (lto_output_node): Update.
8062 (lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
8063 (lto_output_ref): Drop varpool_encoder; update.
8064 (add_node_to): Update.
8065 (add_references): Update.
8066 (output_outgoing_cgraph_edges): Update.
920ac804 8067 (output_refs): Update.
7380e6ef
JH
8068 (compute_ltrans_boundary): Update.
8069 (output_cgraph): Update; output varpools too.
8070 (input_overwrite_node): Update.
8071 (output_varpool): Remove.
8072 (input_node): Update.
8073 (input_ref): Update.
8074 (input_edge): Update.
8075 (input_cgraph_1): Update; input varpool too; unify fixup code.
8076 (input_varpool_1): Remove.
8077 (input_refs): Update.
8078 (input_cgraph): Update.
8079 (output_node_opt_summary): Update.
8080 (input_cgraph_opt_section): Update.
8081 (input_cgraph_opt_summary): Update.
8082 * ipa-pure-const.c (pure_const_write_summary): Update.
8083 (pure_const_read_summary): Update.
8084 * lto-streamer-out.c (lto_write_tree): Update.
8085 (lto_output): Likewise.
8086 (produce_symtab): Update.
8087 (produce_asm_for_decls): Update.
8088 * ipa-inline-analysis.c (inline_read_section): Update.
8089 (inline_write_summary): Update.
8090 * ipa-prop.c (ipa_write_node_info): Update.
8091 (ipa_prop_read_section): Update.
8092 * lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
8093 (lto_symtab_encoder_d): ... this one; add initializer.
8094 (lto_cgraph_encoder_t): Rename to ...
8095 (lto_symtab_encoder_t): ... this one.
8096 (lto_cgraph_encoder_size): Rename to ...
8097 (lto_symtab_encoder_size): ... this one.
8098 (lto_varpool_encoder_d): ... remove.
8099 (lto_varpool_encoder_t): Remove.
8100 (lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
8101 add symtab_node_encoder.
8102 (lto_file_decl_data): Likewise.
8103 (lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
920ac804
UB
8104 lto_cgraph_encoder_new, lto_cgraph_encoder_encode,
8105 lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p,
8106 lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref,
8107 lto_varpool_encoder_lookup, lto_varpool_encoder_new,
7380e6ef
JH
8108 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
8109 lto_varpool_encoder_encode_initializer_p): Remove.
8110 (lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
920ac804
UB
8111 lto_symtab_encoder_t, lto_symtab_encoder_encode,
8112 lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p,
8113 lto_symtab_encoder_encode_initializer_p): New.
7380e6ef 8114
3e5804e1
UB
81152012-08-11 Uros Bizjak <ubizjak@gmail.com>
8116
8117 * config/i386/i386.md (isa): Add fma and fma4.
8118 (enabled): Handle fma and fma4.
8119 * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
8120 (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
8121 (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
8122 (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
8123 (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
8124 (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
8125
b0d5396c
UB
81262012-08-10 Uros Bizjak <ubizjak@gmail.com>
8127
8128 * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
8129 *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
8130 *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
8131
4bf02aaf
UB
81322012-08-10 Uros Bizjak <ubizjak@gmail.com>
8133
8134 * config/i386/i386.md (simple LEA peephole2s): Add zero-extend
8135 variants of PLUS and MULT simple LEA patterns. Disable PLUS
8136 patterns for TARGET_OPT_AGU.
8137
04f92ff4
RG
81382012-08-10 Richard Guenther <rguenther@suse.de>
8139
8140 * Makefile.in (OBJS): Remove matrix-reorg.o.
8141 (matrix-reorg.o): Remove dependence rule.
8142 (GTFILES): Remove matrix-reorg.c.
8143 * matrix-reorg.c: Remove.
8144 * passes.c (init_optimization_passes): Do not schedule
8145 pass_ipa_matrix_reorg.
8146 * tree-pass.h (pass_ipa_matrix_reorg): Remove.
8147 * common.opt (fipa-matrix-reorg): Stub out.
8148 * doc/invoke.texi (fipa-matrix-reorg): Remove documentation.
8149
09e4850d
RG
81502012-08-10 Richard Guenther <rguenther@suse.de>
8151
8152 PR middle-end/54219
8153 * fold-const.c (fold_ternary_loc): Do not reverse the mask
8154 when canonicalizing it when folding VEC_PERM_EXPR.
8155
99cababb
BS
81562012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8157
8158 PR middle-end/54211
8159 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
8160 Use cand_type to determine whether pointer arithmetic will be generated.
8161
75bc3841
BS
81622012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8163
8164 * doc/sourcebuild.texi: Document long_neq_int effective target.
8165
ab509eb5
RG
81662012-08-10 Richard Guenther <rguenther@suse.de>
8167
8168 PR tree-optimization/54109
8169 * tree-ssa-forwprop.c
8170 (forward_propagate_addr_into_variable_array_index): Remove.
8171 (forward_propagate_addr_expr_1): Adjust.
8172
e28b8a60
RG
81732012-08-10 Richard Guenther <rguenther@suse.de>
8174
8175 * tree-cfg.c (dump_function_to_file): Make sure to dump
8176 anonymous SSA names when there are no local decls.
8177
580b2c2e
SB
81782012-08-10 Steven Bosscher <steven@gcc.gnu.org>
8179
8180 * tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
8181 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
8182 (mark_phi_for_rewrite): Likewise.
8183 (compute_global_livein): Use VEC_reserve outside the innermost
8184 loop and VEC_quick_push instead of VEC_safe_push in that loop.
8185 (update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
8186 of new_ssa_names and old_ssa_names. Allocate phis_to_rewrite to
8187 the correct initial size.
8188
83d5977e
RG
81892012-08-10 Richard Guenther <rguenther@suse.de>
8190
8191 * tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
8192 (need_creation): Remove.
8193 (get_representative_for): Use anonymous named SSA names.
8194 (create_expression_by_pieces): Likewise.
8195 (insert_into_preds_of_block): Likewise.
8196 (init_pre): Do not init removed vars.
8197 (fini_pre): Do not free need_creation.
8198 * tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
8199 SSA names.
8200 * tree-ssa-loop-manip.c (create_iv): Likewise.
8201 * value-prof.c (gimple_divmod_fixed_value): Likewise.
8202 (gimple_mod_pow2): Likewise.
8203 (gimple_mod_subtract): Likewise.
8204 (gimple_ic): Likewise.
8205 (gimple_stringop_fixed_value): Likewise.
8206 * tree-ssa-phiopt.c (condstoretemp): Remove.
8207 (tree_ssa_phiopt_worker): Use anonymous named SSA names.
8208 (conditional_replacement): Likewise.
8209 (abs_replacement): Likewise.
8210 (cond_store_replacement): Likewise.
8211 (cond_if_else_store_replacement_1): Likewise.
8212 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
8213 (rewrite_bittest): Likewise.
8214 * tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
8215 and build anonymous SSA names.
8216 (undistribute_ops_list): Adjust.
8217 (eliminate_redundant_comparison): Use anonymous SSA names.
8218 (rewrite_expr_tree_parallel): Likewise.
8219 (get_reassoc_pow_ssa_name): Remove.
8220 (attempt_builtin_powi): Adjust.
8221 (reassociate_bb): Likewise.
8222 * tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
8223 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
8224 (build_arrays): Likewise.
8225 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
8226 (create_tailcall_accumulator): Likewise.
8227 * tree-vect-generic.c (expand_vector_divmod): Likewise.
8228 * tree-profile.c (gcov_type_tmp_var): Remove.
8229 (gimple_init_edge_profiler): Do not initialize it and use anonymous
8230 SSA names.
8231 (gimple_gen_ic_profiler): Likewise.
8232 (tree_profiling): Adjust.
8233 * tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
8234 * tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
8235 (powi_as_mults_1): Likewise.
8236 (powi_as_mults): Likewise.
8237 (build_and_insert_call): Adjust.
8238 (build_and_insert_binop): Likewise.
8239 (build_and_insert_ref): Likewise.
8240 (build_and_insert_cast): Likewise.
8241 (gimple_expand_builtin_pow): Likewise.
8242 (gimple_expand_builtin_cabs): Likewise.
8243 (execute_optimize_bswap): Use anonymous SSA names.
8244 (convert_mult_to_widen): Likewise.
8245 (convert_plusminus_to_widen): Likewise.
8246 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
8247 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
8248 * tree-if-conv.c (ifc_temp_var): Likewise.
8249 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
8250 * tree-parloops.c (take_address_of): Likewise.
8251 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
8252 (vect_permute_load_chain): Likewise.
8253 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
8254 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
8255 (vect_handle_widen_op_by_const): Likewise.
8256 (vect_operation_fits_smaller_type): Likewise.
8257 (vect_recog_over_widening_pattern): Likewise.
8258 * tree-vect-stmts.c (vect_init_vector): Likewise.
8259 * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
8260 (simplify_float_conversion_using_ranges): Likewise.
8261
7b5e682a
MZ
82622012-08-10 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8263
4bf02aaf
UB
8264 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix
8265 target mask of __builtin_ia32_rdseed_di_step builtin.
7b5e682a 8266
a2872983
RG
82672012-08-10 Richard Guenther <rguenther@suse.de>
8268
8269 PR tree-optimization/54027
8270 * tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
8271 and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
8272 to handle LSHIFT_EXPR with a constant.
8273
70b5e7dc
RG
82742012-08-10 Richard Guenther <rguenther@suse.de>
8275
8276 * tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
8277 is recorded as var.
8278 (SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
8279 or its SSA_NAME_VAR.
8280 (SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
8281 * tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
8282 SSA names by passing a type instead of a variable decl.
8283 (release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
8284 (copy_ssa_name_fn): Handle anonymous SSA names.
8285 (replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
8286 * tree-flow-inline.h (make_temp_ssa_name): New inline function.
8287 * tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
8288 dump SSA names without a name as <anon>.
8289 * cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
8290 going to expand a decl.
8291 (gimple_expand_cfg): Assign all SSA names of a partition the
8292 decl we created for its leader.
8293 * tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
8294 (verify_ssa_name): Handle anonymous SSA names.
8295 (verify_def): Likewise.
8296 * tree-predcom.c (eliminate_temp_copies): Likewise.
8297 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8298 * tree-ssa-live.c (var_map_base_init): Compute conflicts for
8299 anonymous SSA names with the same type.
8300 (mark_all_vars_used_1): Handle anonymous SSA names.
8301 (verify_live_on_entry): Likewise.
8302 * tree-ssa-coalesce.c (abnormal_corrupt): Remove.
8303 (create_outofssa_var_map): Adjust with respect to conflicts we
8304 compute for anonymous SSA names. Do not restrict abnormal
8305 coalescing.
8306 (coalesce_partitions): Do not restrict abnormal coalescing.
8307 Assert we only ever coalesce variables we computed conflicts for.
8308 * tree-ssa-ter.c (process_replaceable): Do not restrict TER
8309 of anonymous names.
8310 * expr.c (expand_expr_real_1): Handle anonymous SSA names
8311 expanded from IVOPTs by creating a raw REG here.
8312 * tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
8313 (dump_function_to_file): Dump anonymous SSA names alongside
8314 with their types in the variable list.
8315 (verify_gimple_return): Guard use of SSA_NAME_VAR.
8316 * tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
8317 (rewrite_into_ssa): Make SSA names anonymous.
8318 * tree-ssa-structalias.c (alias_get_name): Rewrite.
8319 * tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
8320 SSA names.
8321 (warn_uninitialized_phi): Likewise.
8322 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
8323 anonymous SSA names to the expander.
8324 (determine_iv_cost): Anonymous SSA names are artificial.
8325 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
8326 Handle anonymous SSA names.
8327 * lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
8328 or if NULL, the type of the SSA name.
8329 * tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
8330 remap names as anonymous where appropriate.
8331 (insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
8332 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
8333 according to what we create conflicts for in out-of-SSA
8334 coalescing.
8335 * tree-parloops.c (separate_decls_in_region_name): Handle
8336 anonymous SSA names.
8337 (add_field_for_name): Likewise.
8338 * tree.c (get_name): Handle SSA names.
8339 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
8340 SSA_NAMEs.
8341 * tree-vect-loop-manip.c (adjust_debug_stmts): Use
8342 virtual_operand_p.
8343 * tree-sra.c (create_access_replacement): Give up generating
8344 a DECL_DEBUG_EXPR for SSA names in the memory reference.
8345 (replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
8346 * tree-complex.c (get_component_ssa_name): Handle anonymous
8347 SSA names.
8348 (set_component_ssa_name): Likewise.
8349 * tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
8350 * tree-object-size.c (collect_object_sizes_for): Handle
8351 uninitialized SSA names properly.
8352 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
8353 SSA_NAME_VAR.
8354 * ipa-split.c (test_nonssa_use): Likewise.
8355 (consider_split): Likewise.
8356 (mark_nonssa_use): Likewise.
8357
c170d40f
JH
83582012-08-09 Jan Hubicka <jh@suse.cz>
8359
8360 PR middle-end/54146
8361 * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY
8362 parameter; honnor it.
8363 * ipa-inline.c (recursive_inlining): Update call
8364 of inline_call.
8365 (inline_small_functions): Likewise.
8366 (ipa_inline): Likewise.
8367 (inline_always_inline_functions): Likewise.
8368 (early_inline_small_functions): Likewise.
8369 (flatten_function): Do separate update of summary info.
8370 * ipa-inline.h (inline_update_overall_summary): Declare.
8371 (inline_call): Update.
8372 * ipa-inline-analysis.c (inline_merge_summary): Break out
8373 updating code to ...
8374 (inline_update_overall_summary): Likewise.
8375
4e1ffb63
RH
83762012-08-09 Richard Henderson <rth@redhat.com>
8377
0d8e4dac
RH
8378 * config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.
8379
4e1ffb63
RH
8380 * config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before
8381 performing the compare for the restart loop.
8382
1c6b1021
DD
83832012-08-09 DJ Delorie <dj@redhat.com>
8384
8385 * config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
8386 SET before extracting SET_SRC.
8387 (rl78_remove_unused_sets): Check for REG before extractnig REGNO.
8388
70d4736c
OE
83892012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
8390
8391 PR target/54089
8392 * config/sh/sh-protos (shift_insns_rtx): Delete.
8393 (sh_ashlsi_clobbers_t_reg_p): Add.
8394 * config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
8395 ext_shift_amounts): Merge arrays of ints to array of structs.
8396 Adapt usage of arrays throughout the file.
8397 (shift_insns_rtx): Delete unused function.
8398 (sh_ashlsi_clobbers_t_reg_p): New function.
8399 * config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
8400 final shift sequence will clobber T_REG.
8401 (ashlsi3_n): Split only if the final shift sequence will not
8402 clobber T_REG.
8403 (ashlsi3_n_clobbers_t): New insn_and_split.
8404
5829cc0f
SB
84052012-08-09 Steven Bosscher <steven@gcc.gnu.org>
8406
8407 * calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE
8408 instead of looking at sbitmap n_bits member directly.
8409 * gcse.c (hoist_code): Likewise.
8410 * sched-rgn.c (split_edges): Likewise.
8411 * tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping,
8412 update_ssa): Likewise.
8413
b197fc48
UB
84142012-08-09 Uros Bizjak <ubizjak@gmail.com>
8415
8416 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred
8417 single unit register class for classes that contain registers form
8418 multiple units.
8419 (REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS,
8420 INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes.
8421
8b7773a4
MJ
84222012-08-09 Martin Jambor <mjambor@suse.cz>
8423
8424 * cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to
8425 offset, updated all users. New field agg_contents.
8426 * ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR.
8427 (ipa_pass_through_data): New field agg_preserved.
8428 (ipa_ancestor_jf_data): Likewise.
8429 (ipa_member_ptr_cst): Removed.
8430 (ipa_agg_jf_item): New type.
8431 (ipa_agg_jump_function): Likewise.
8432 (ipa_jump_func): New field agg. Removed field member_cst.
8433 (ipa_get_jf_pass_through_agg_preserved): New function.
8434 (ipa_get_jf_ancestor_agg_preserved): Likewise.
8435 (ipa_get_jf_member_ptr_pfn): Removed.
8436 (ipa_find_agg_cst_for_param): Declare.
8437 (ipa_load_from_parm_agg): Likewise.
8438 * ipa-prop.c (param_analysis_info): Fields modified and
8439 visited_statements rename to parm_modified and parm_visited_statements
8440 respectively, added fields ref_modified, ref_visited_statements,
8441 pt_modified and pt_visited_statements.
8442 (ipa_print_node_jump_functions_for_edge): Do not dump const member
8443 functions. Dump agg_preserved flags and aggregate jump functions.
8444 (ipa_set_jf_simple_pass_through): Set also agg_preserved.
8445 (ipa_set_ancestor_jf): Likewise.
8446 (ipa_set_jf_arith_pass_through): Clear agg_preserved.
8447 (ipa_set_jf_member_ptr_cst): Removed.
8448 (is_parm_modified_before_stmt): Logic reversed, renamed to
8449 parm_preserved_before_stmt_p. Cache visited bitmap only for
8450 naked DECL parameters. All callers updated.
8451 (load_from_unmodified_param): Allow NULL parms_ainfo.
8452 (parm_ref_data_preserved_p): New function.
8453 (parm_ref_data_pass_through_p): Likewise.
8454 (ipa_load_from_parm_agg_1): Likewise.
8455 (ipa_load_from_parm_agg): Likewise.
8456 (compute_complex_assign_jump_func): Check if aggregate contents are
8457 preserved.
8458 (compute_complex_ancestor_jump_func): Likewise.
8459 (compute_scalar_jump_functions): Removed.
b197fc48 8460 (type_like_member_ptr_p): Also check field position are known and sane.
8b7773a4
MJ
8461 (compute_pass_through_member_ptrs): Removed.
8462 (determine_cst_member_ptr): Likewise.
8463 (ipa_known_agg_contents_list): New type.
8464 (determine_known_aggregate_parts): New function.
8465 (compute_cst_member_ptr_arguments): Removed.
8466 (ipa_compute_jump_functions_for_edge): Compute all kinds of jump
8467 functions (scalar, aggregate and member pointer).
8468 (ipa_get_member_ptr_load_param): Incorporate into
8469 ipa_get_stmt_member_ptr_load_param, also pass back an offset.
8470 (ipa_note_param_call): Clear agg_contents.
8471 (ipa_analyze_indirect_call_uses): Also look for simple pointers loaded
8472 from aggregates. In such cases, store offset of the called field.
8473 (ipa_analyze_node): Initialize new fields of param_analysis_info.
8474 (update_jump_functions_after_inlining): Handle aggregate contents.
8475 (ipa_find_agg_cst_for_param): New function.
8476 (try_make_edge_direct_simple_call): Handle called aggregate values.
8477 (update_indirect_edges_after_inlining): Make sure aggregate preserving
8478 jump functions comply with type compatibility requirements.
8479 (ipa_edge_duplication_hook): Copy also aggregate jump functions.
8480 (ipa_write_jump_function): Stream agg_preserved flags and aggregate
8481 jump functions. Do not stream member pointer constant jump functions.
8482 (ipa_read_jump_function): Likewise.
8483 (ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info
8484 fields.
8485 (ipa_read_indirect_edge_info): Likewise.
8486
b67b3838
OE
84872012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
8488
8489 PR target/39423
8490 * config/sh/predicates.md (mem_index_disp_operand): New predicate.
8491 * config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new
8492 mem_index_disp_operand predicate.
8493
78ff60c1
OE
84942012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
8495
8496 PR target/51244
8497 * config/sh/sh.md: Add negc extu sequence peephole.
8498 (movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
8499 (*movrt_negc): New insn.
8500 * config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
8501 gen_movnegt.
8502 * config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
b197fc48
UB
8503 sh_emit_compare_and_branch, sh_emit_compare_and_set): Use
8504 get_t_reg_rtx.
78ff60c1
OE
8505 (sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.
8506
284c32cf
OE
85072012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
8508
8509 PR target/50751
8510 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg):
8511 Use arith_reg_operand predicate instead of register_operand.
8512 * config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept
8513 only mem, simplify.
8514
3eda5123
UB
85152012-08-09 Uros Bizjak <ubizjak@gmail.com>
8516
4bf02aaf
UB
8517 * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
8518 (alpha_pad_function_end): ... this. Also insert NOP between
8519 sibling call and GP load.
8520 (alpha_reorg): Update call to alpha_pad_function_end. Expand comment.
3eda5123 8521
9319fa21
MZ
85222012-08-09 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8523
8524 * config/i386/adxintrin.h: Remove guarding __ADX__ check.
8525 * config/i386/x86intrin.h: Likewise.
8526 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
8527 OPTION_MASK_ISA_ADX from needed options for
8528 __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64.
8529 (ix86_expand_builtin): Use add<mode>3_carry in expanding of
8530 IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64.
8531
0c02ab39
AB
85322012-08-09 Andrey Belevantsev <abel@ispras.ru>
8533
8534 PR rtl-optimization/53701
8535 * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
8536 Process not only expr's vinsns but all old vinsns from expr's
8537 history of changes.
3eda5123 8538 (update_and_record_unavailable_insns): Clarify comment.
0c02ab39 8539
82ad0aaf
BS
85402012-08-09 Bernd Schmidt <bernds@codesourcery.com>
8541
8542 * reload.c (find_valid_class_1): New static function.
8543 (push_reload): Use it when reloading a SYMBOL_REG as the inner
8544 of a subreg. Keep better track of needed classes for the
8545 secondary memory case.
8546 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to
8547 GENERAL_REGS.
8548 * reload1.c (replaced_subreg): New static function.
8549 (gen_reload): Use it when deciding whether to use secondary
8550 memory.
8551
67386041
RG
85522012-08-09 Richard Guenther <rguenther@suse.de>
8553
8554 * tree.h (SSA_VAR_P): Simplify.
8555 * tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
8556 * fold-const.c (fold_comparison): Check for default def first
8557 before checking for PARM_DECL.
8558 * tree-complex.c (get_component_ssa_name): Likewise.
8559 * tree-inline.c (remap_ssa_name): Likewise.
8560 * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
8561 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
8562 (find_what_p_points_to): Likewise.
8563 * tree-ssa-operands.c (add_stmt_operand): Simplify.
8564
e7160b27
JM
85652012-08-08 Joseph Myers <joseph@codesourcery.com>
8566
8567 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
8568 IOR to a constant if one operand has side effects.
8569
215770ad
UW
85702012-08-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8571
8572 * builtins.c (expand_builtin_atomic_compare_exchange): Pass old
8573 value operand as MEM to expand_atomic_compare_and_swap.
8574
8575 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept
8576 nonimmediate_operand for old value; generate load and store if
8577 needed.
8578 * config/s390/s390.c (s390_expand_cs_hqi): Accept any operand
8579 as vtarget.
8580
07c5a154
SB
85812012-08-08 Steven Bosscher <steven@gcc.gnu.org>
8582
8583 PR middle-end/54146
8584 * gimpify.c (gimplify_body): Only verify_gimple_in_seq with
8585 checking enabled.
8586 * tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
8587 a gimple_reg if checking is enabled.
8588 (find_uses_to_rename_stmt): Only look at non-virtual USE operands.
8589 * tree-into-ssa (compute_global_livein): Change the worklist
8590 type from an array to a VEC.
8591
a471762f
RG
85922012-08-08 Richard Guenther <rguenther@suse.de>
8593
8594 * tree-ssa-operands.h (virtual_operand_p): Declare.
8595 * tree-ssa-operands.c (virtual_operand_p): New predicate.
8596 * gimple.c (is_gimple_reg): Use virtual_operand_p.
8597 * tree-into-ssa.c (prepare_block_for_update): Likewise.
8598 * tree-vect-loop-manip.c (adjust_debug_stmts): Likewise.
8599
6b4a85ad
RG
86002012-08-08 Richard Guenther <rguenther@suse.de>
8601
8602 * tree-call-cdce.c (check_pow): Simplify.
8603 (gen_conditions_for_pow_int_base): Likewise.
8604 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle
8605 virtual operands here.
8606 * tree-ssa-operands.c (get_name_decl): Remove unused function.
8607 * gimplify.c (gimple_regimplify_operands): Remove dead code.
8608 * tree-vrp.c (get_value_range): Move SSA_NAME_VAR access.
8609 * tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name.
8610 * value-prof.c (gimple_ic): Use duplicate_ssa_name.
8611 (gimple_stringop_fixed_value): Likewise.
8612 * tree.c (needs_to_live_in_memory): Remove SSA name handling.
8613 * tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs
8614 in the bitmap alongside shifted DECL_UIDs.
8615 (va_list_counter_struct_op): Likewise.
8616 (va_list_ptr_read): Likewise.
8617 (va_list_ptr_write): Likewise.
8618 (check_va_list_escapes): Likewise.
8619 (check_all_va_list_escapes): Likewise.
8620 (execute_optimize_stdarg): Likewise.
8621 * tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name.
8622
3b1e1a02
L
86232012-08-08 Richard Sandiford <rdsandiford@googlemail.com>
8624 H.J. Lu <hongjiu.lu@intel.com>
8625
8626 PR rtl-optimization/54157
8627 * combine.c (gen_lowpart_for_combine): Don't return identity
8628 for CONST or symbolic reference.
8629
07c5a154 86302012-08-08 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
d05e383b
MZ
8631
8632 * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
8633 (OPTION_MASK_ISA_ADX_UNSET): Likewise.
8634 (ix86_handle_option): Handle madx option.
8635 * config.gcc (i[34567]86-*-*): Add adxintrin.h.
8636 (x86_64-*-*): Likewise.
8637 * config/i386/adxintrin.h: New header.
8638 * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
8639 support.
8640 * config/i386/i386-builtin-types.def
8641 (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
8642 (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
8643 * config/i386/i386-c.c: Define __ADX__ if needed.
8644 * config/i386/i386.c (ix86_target_string): Define -madx option.
8645 (PTA_ADX): New.
8646 (ix86_option_override_internal): Handle new option.
8647 (ix86_valid_target_attribute_inner_p): Add OPT_madx.
8648 (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
8649 IX86_BUILTIN_ADDCARRYX64.
8650 (ix86_init_mmx_sse_builtins): Define corresponding built-ins.
8651 (ix86_expand_builtin): Handle these built-ins.
8652 (ix86_expand_args_builtin): Handle new function types.
8653 * config/i386/i386.h (TARGET_ADX): New.
8654 * config/i386/i386.md (adcx<mode>3): New define_insn.
8655 * config/i386/i386.opt (madx): New.
8656 * config/i386/x86intrin.h: Include adxintrin.h.
8657
916f8bbf
NC
86582012-08-08 Nick Clifton <nickc@redhat.com>
8659
8660 * config/rl78/rl78.c: Include tree-pass.h.
8661
985e963f
SB
86622012-08-08 Steven Bosscher <steven@gcc.gnu.org>
8663
cee784f5
SB
8664 PR middle-end/54146
8665 * ira.c (init_live_subregs): Take live_subregs_used as a bitmap.
8666 (build_insn_chain): Make live_subregs_used a bitmap.
8667 Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs.
8668 Use sbitmap_free to free the live_subreg sbitmaps.
8669
985e963f
SB
8670 PR middle-end/54146
8671 * ifcvt.c: Include pointer-set.h.
8672 (cond_move_process_if_block): Change type of then_regs and
8673 else_regs from alloca'd array to pointer_sets.
8674 (check_cond_move_block): Update for this change.
8675 (cond_move_convert_if_block): Likewise.
8676 * Makefile.in: Fix dependencies for ifcvt.o.
8677
88ca9ea1
BS
86782012-08-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8679
8680 * gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
8681 (incr_vec): New static var.
8682 (incr_vec_len): Likewise.
8683 (address_arithmetic_p): Likewise.
8684 (stmt_cost): Remove dead assignment.
8685 (dump_incr_vec): New function.
8686 (cand_abs_increment): Likewise.
8687 (lazy_create_slsr_reg): Likewise.
8688 (incr_vec_index): Likewise.
8689 (count_candidates): Likewise.
8690 (record_increment): Likewise.
8691 (record_increments): Likewise.
8692 (unreplaced_cand_in_tree): Likewise.
8693 (optimize_cands_for_speed_p): Likewise.
8694 (lowest_cost_path): Likewise.
8695 (total_savings): Likewise.
8696 (analyze_increments): Likewise.
8697 (ncd_for_two_cands): Likewise.
8698 (nearest_common_dominator_for_cands): Likewise.
8699 (profitable_increment_p): Likewise.
8700 (insert_initializers): Likewise.
8701 (introduce_cast_before_cand): Likewise.
8702 (replace_rhs_if_not_dup): Likewise.
8703 (replace_one_candidate): Likewise.
8704 (replace_profitable_candidates): Likewise.
8705 (analyze_candidates_and_replace): Handle candidates with SSA-name
8706 strides.
8707
f8923f7e
SB
87082012-08-07 Steven Bosscher <steven@gcc.gnu.org>
8709
8710 * cfg.c (debug_bb): Do not set TDF_BLOCKS.
8711 * cfghooks.c (dump_bb): Honor ~TDF_BLOCKS.
8712 * pretty-print.c (pp_base_flush): Do not add a newline, and do not
8713 clear pp_needs_newline.
8714 * pretty-print.h (pp_newline_and_flush): New macro with the behavior
8715 of pp_base_flush before the above change.
8716 * langhooks.c (lhd_print_error_function): Use pp_newline_and_flush
8717 instead of pp_flush.
8718 * diagnostic.c (diagnostic_finish): Likewise.
8719 (diagnostic_report_diagnostic): Likewise.
8720 (verbatim): Likewise.
8721 (error_recursion): Likewise.
8722 * tree-pretty-print.c (print_generic_stmt): Likewise.
8723 (print_generic_stmt_indented): LIkewise.
8724 * gimple-pretty-print.c (print_gimple_stmt): Likewise.
8725 (print_gimple_seq): Likewise.
8726 (gimple_dump_bb_buff): Likewise.
8727
1791f36f
UB
87282012-08-07 Uros Bizjak <ubizjak@gmail.com>
8729
4ccaecee 8730 PR debug/54177
1791f36f
UB
8731 * var-tracking.c (var_lowpart): Exit early for matched modes.
8732
78ce265b
RH
87332012-08-07 Richard Henderson <rth@redhat.com>
8734
8735 * config/s390/s390.c (s390_emit_compare_and_swap): Update for
8736 atomic_compare_and_swapsi_internal name change.
8737 (s390_expand_insv): Try RISBG last, not requiring operands in
8738 registers but forcing them there. Try a limited form of ICM.
8739 (s390_two_part_insv): New.
8740 (s390_expand_cs_hqi): Use it. Update for atomic optabs.
8741 * config/s390/s390.md (UNSPEC_MOVA): New.
8742 (TDSI): Remove mode iterator.
8743 (DGPR, DINT, TDI): New mode iterators.
8744 (td): New mode attribute.
8745 (mem_signal_fence): New.
8746 (mem_thread_fence): Rename from memory_barrier; update for model arg.
8747 (mem_thread_fence_1): Rename from *memory_barrier.
8748 (atomic_load<DINT>, atomic_store<DINT>): New expanders.
8749 (atomic_loaddi_1, atomic_loadti_1): New.
8750 (atomic_storedi_1, atomic_storeti_1): New.
8751 (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove.
8752 (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New.
8753 (atomic_compare_and_swap<DGPR>_internal): New.
8754 (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove.
8755 (*atomic_compare_and_swap<TDI>_1): New.
8756 (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New.
8757 (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove.
8758 (atomic_fetch_<ATOMIC_Z196><GPR>): New.
8759 (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New.
8760 (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove.
8761 (sync_new_<ATOMIC><HQI>): Remove.
8762 (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New.
8763 (atomic_<ATOMIC>_fetch<HQI>): New.
8764 (sync_lock_test_and_set<HQI>): Remove.
8765 (atomic_exchange<HQI>): New.
8766
3e6011cf
PB
87672012-08-07 Paul Brook <paul@codesourcery.com>
8768 Sandra Loosemore <sandra@codesourcery.com>
8769
8770 * except.c (switch_to_exception_section): Place tables for
8771 DECL_ONE_ONLY functions in comdat groups.
8772
070ecdfd
RG
87732012-08-07 Richard Guenther <rguenther@suse.de>
8774
8775 * tree-flow.h (copy_ssa_name_fn): New function.
8776 (duplicate_ssa_name_fn): Likewise.
8777 * tree-flow-inline.h (copy_ssa_name): New function.
8778 (duplicate_ssa_name): Likewise.
8779 * tree-ssanames.c (copy_ssa_name_fn): New function.
8780 (duplicate_ssa_name): Rename to ...
8781 (duplicate_ssa_name_fn): ... this and adjust.
8782 * tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name.
4ccaecee
UB
8783 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
8784 Likewise.
070ecdfd
RG
8785 (slpeel_update_phi_nodes_for_guard2): Likewise.
8786 (slpeel_tree_peel_loop_to_edge): Likewise.
8787 (vect_loop_versioning): Likewise.
8788 * tree-parloops.c (transform_to_exit_first_loop): Likewise.
8789 (create_parallel_loop): Likewise.
8790 * ipa-split.c (split_function): Likewise.
8791 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
8792 (vect_create_epilog_for_reduction): Likewise.
8793 * tree-vect-data-refs.c (bump_vector_ptr): Likewise.
8794 (vect_setup_realignment): Likewise.
8795 * tree-vect-stmts.c (vectorizable_load): Likewise.
8796 * tree-switch-conversion.c (build_one_array): Likewise.
8797 (gen_def_assigns): Likewise.
8798 * tree-cfg.c (gimple_make_forwarder_block): Likewise.
8799 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
8800 create_zero_dim_array with the SSA name.
8801 (rewrite_phi_out_of_ssa): Likewise.
8802 (rewrite_cross_bb_scalar_dependence): Likewise. Use copy_ssa_name.
8803
01c59d23
RG
88042012-08-07 Richard Guenther <rguenther@suse.de>
8805
8806 * tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF
8807 bit of the old name when we clear the slot.
8808 * tree-ssa-live.c (remove_unused_locals): Release any default
8809 def associated with an unused var.
8810 * tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true.
8811
5f33a4fc
RG
88122012-08-07 Richard Guenther <rguenther@suse.de>
8813
8814 * tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables
8815 we rewrite into SSA form.
8816 (rewrite_enter_block): Adjust.
8817 * gimple-iterator.c (gsi_replace): Also allow replacement with
8818 a stmt without a lhs.
8819 * tree-ssa-live.c (remove_unused_locals): Remove code handling
8820 clobbers of SSA names.
8821 * tree-nested.c (convert_local_reference_stmt): Remove clobbers
8822 for variables we access through the local chain.
8823 * tree-cfg.c (verify_gimple_assign_single): Verify clobbers
8824 clobber full decls only.
8825
dcc748dd
RG
88262012-08-07 Richard Guenther <rguenther@suse.de>
8827
8828 * gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
8829 * tree-phinodes.c (make_phi_node): Allow a NULL var.
8830 * tree-into-ssa.c (insert_phi_nodes_for): Simplify.
8831 * tree-complex.c (update_phi_components): Likewise.
8832 * tree-ssa-loop-manip.c (create_iv): Likewise.
8833 (add_exit_phis_edge): Likewise.
8834 (split_loop_exit_edge): Likewise.
8835 (tree_transform_and_unroll_loop): Likewise.
8836 * value-prof.c (gimple_ic): Likewise.
8837 (gimple_stringop_fixed_value): Likewise.
8838 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
8839 * omp-low.c (expand_parallel_call): Likewise.
8840 (expand_omp_for_static_chunk): Likewise.
8841 (expand_omp_atomic_pipeline): Likewise.
8842 * tree-parloops.c (create_phi_for_local_result): Likewise.
8843 (transform_to_exit_first_loop): Likewise.
8844 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
8845 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
8846 * tree-predcom.c (initialize_root_vars): Likewise.
8847 (initialize_root_vars_lm): Likewise.
8848 * sese.c (sese_add_exit_phis_edge): Likewise.
8849 * gimple-streamer-in.c (input_phi): Likewise.
8850 * tree-inline.c (copy_phis_for_bb): Likewise.
8851 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
8852 * tree-cfg.c (gimple_make_forwarder_block): Likewise.
8853 (gimple_duplicate_bb): Likewise.
8854
d13abe1e
NC
88552012-08-07 Nick Clifton <nickc@redhat.com>
8856
8857 * config/mn10300/mn10300.c (mn10300_expand_prologue): Report
8858 stack usage if requested.
8859
292ffe86
CC
88602012-08-06 Cary Coutant <ccoutant@google.com>
8861
8862 * cgraphunit.c (assemble_thunk): Add source line info.
8863 * final.c (final): Check for non-null cfg pointer.
8864
d28cfc4a
SL
88652012-08-06 Sandra Loosemore <sandra@codesourcery.com>
8866 Maxim Kuvyrkov <maxim@codesourcery.com>
8867 Julian Brown <julian@codesourcery.com>
8868
8869 * config/mips/24k.md (r24k_unknown_store): Delete special handling
8870 for cprestore.
8871 (r24k_int_load, r24k_int_arith, r24k_int_mul3, r24k_int_mfhilo)
8872 (r24k_int_cop, r24k_int_multi)
8873 (r24kf2_1_fcvt_f2i, r24kf2_1_fxfer)
8874 (r24kf1_1_fcvt_f2i, r24kf1_1_fxfer): Use mips_store_data_bypass_p
8875 instead of store_data_bypass_p.
8876 * config/mips/74k.md (r74k_int_store): Delete special handling for
8877 cprestore.
8878 (r74k_int_load, r74k_int_logical, r74k_int_arith, r74k_int_cmove):
8879 Use mips_store_data_bypass_p instead of store_data_bypass_p.
8880
777d77b3
MG
88812012-08-06 Marc Glisse <marc.glisse@inria.fr>
8882
8883 PR tree-optimization/51938
8884 PR tree-optimization/52005
8885 * tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for
8886 inverted conditions.
8887 (ifcombine_iforif): Remove, merge code into ifcombine_ifandif.
8888 (tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b
8889 and !a||b patterns.
8890
a4a83796
OH
88912012-08-06 Olivier Hainque <hainque@adacore.com>
8892
8893 * tree-emutls.c (new_emutls_decl): When a var_section is requested by
8894 the target, attach the new decl to that, not to the template section.
8895
d9e408de
TV
88962012-08-06 Tom de Vries <tom@codesourcery.com>
8897
8898 * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in
8899 unsigned type.
8900
d5b02d90
VK
89012012-08-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8902
8903 * doc/invoke.texi: Document AMD btver2.
8904 * doc/extend.texi: Document AMD btver1 and btver2.
8905
5dd4087e
SL
89062012-08-04 Sandra Loosemore <sandra@codesourcery.com>
8907 Richard Sandiford <rdsandiford@googlemail.com>
8908
8909 * config/mips/mips.c (mips_option_override): Check -fpic
8910 for compatibility with -mabicalls and ABI.
8911
b0e7f54d
CM
89122012-08-04 Catherine Moore <clm@codesourcery.com>
8913 Sandra Loosemore <sandra@codesourcery.com>
8914
8915 * config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation.
8916 (ir_xlr_alu): Remove clz.
8917 * config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY.
8918
6f34864a
RE
89192012-08-04 Richard Earnshaw <rearnsha@arm.com>
8920
8921 * arm.c (arm_gen_constant): Use SImode when preparing operands for
8922 gen_extzv_t2.
8923
fc27f749
UB
89242012-08-04 Uros Bizjak <ubizjak@gmail.com>
8925
8926 * config/i386/i386.h (QI_REGNO_P): New define.
8927 (ANY_QI_REGNO_P): Ditto.
8928 (GENERAL_REGNO_P): Use IN_RANGE macro.
8929 (QI_REG_P): Use QI_REGNO_P.
8930 (ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P.
8931 (HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P.
8932 * config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto.
8933 (x86_extended_QIreg_mentioned_p): Ditto. Also check if
8934 register is a general register.
8935
a6de48da
UB
89362012-08-03 Uros Bizjak <ubizjak@gmail.com>
8937
8938 * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use
8939 incdec_operand predicate to return INC or DEC insn mnemonic.
8940 Add %K operand modifier.
8941 (atomic_add<mode>): Use incdec_operand predicate to
8942 return INC or DEC insn mnemonic.
8943 (atomic_dec<mode>): Ditto.
8944
9b44f5d9
MM
89452012-08-03 Michael Matz <matz@suse.de>
8946
8947 PR tree-optimization/54146
8948 * cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into.
8949 (add_scope_conflicts): Iterate in RPO order.
8950 (add_stack_protection_conflicts): Iterate over the other triangle.
8951 (fini_vars_expansion): Clear stack_vars_sorted.
8952
89532012-08-03 Marc Glisse <marc.glisse@inria.fr>
4e7c4b73
MG
8954
8955 PR tree-optimization/30318
8956 * double-int.c (mul_double_wide_with_sign): New function.
8957 (mul_double_with_sign): Call the new function.
8958 * double-int.h (mul_double_wide_with_sign): Declare the new function.
8959 * tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]:
8960 Handle integer types that wrap on overflow.
8961 (quad_int_cmp): New helper function.
8962 (quad_int_pair_sort): Likewise.
8963
b2ec94d4
RG
89642012-08-03 Richard Guenther <rguenther@suse.de>
8965
8966 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
8967 is_gimple_reg on the SSA name, not its variable.
8968 (vect_update_ivs_after_vectorizer): Likewise.
8969 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
8970 * tree-if-conv.c (if_convertible_phi_p): Likewise.
8971 (predicate_scalar_phi): Likewise.
8972 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
8973 (vect_analyze_scalar_cycles_1): Likewise.
8974 * tree-ssa-live.c (register_ssa_partition_check): Likewise.
8975 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
8976 * tree-ssa-reassoc.c (phi_rank): Likewise.
8977 * tree-parloops.c (separate_decls_in_region_name): Use
8978 replace_ssa_name_symbol.
8979 * tree-predcom.c (base_names_in_chain_on): Likewise.
8980 * matrix-reorg.c (update_type_size): Query the type of the SSA name,
8981 not its variable.
8982 * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
8983 (create_mul_imm_cand): Likewise.
8984 (create_add_ssa_cand): Likewise.
8985 (create_add_imm_cand): Likewise.
8986 (slsr_process_add): Likewise.
8987 * tree-inline.c (remap_ssa_name): Do not set the type of the
8988 new SSA_NAME.
a6de48da
UB
8989 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert.
8990 Check for default def first.
b2ec94d4 8991
07fd4efa
SB
89922012-08-04 Steven Bosscher <steven@gcc.gnu.org>
8993
1b03a96d
SB
8994 * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.
8995
8996 * sched-vis.c (print_pattern): Handle SEQUENCE also.
07fd4efa 8997
34831f3e
RH
89982012-08-02 Richard Henderson <rth@redhat.com>
8999
9000 Revert:
9001 PR 34548
9002 * function.h (struct rtl_data): Add max_dynamic_stack_alignment.
9003 * cfgexpand.c (gimple_expand_cfg): Initialise it.
9004 * explow.c (allocate_dynamic_stack_space): Set it. Simplify
9005 alignment requirements given the known alignment of dynamic_offset.
9006 * function.c (instantiate_virtual_regs): Align dtnamic_offset.
9007
48175537
KZ
90082012-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
9009
9010 * cfgexpand.c (expand_debug_locations): Encapsulate test for
9011 CONST_DOUBLE in macro.
9012 * combine.c (try_combine, gen_lowpart_for_combine): Ditto.
9013 * cprop.c (implicit_set_cond_p): Ditto.
9014 * cselib.c (rtx_equal_for_cselib_1): Ditto.
9015 * expmed.c (expand_mult): Ditto.
9016 * expr.c (convert_modes): Ditto.
9017 * ira-costs.c (record_reg_classes): Ditto.
9018 * ira-lives.c (single_reg_class): Ditto.
9019 * optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
9020 * print-rtl.c (print_rtx): Ditto.
9021 * recog.c (simplify_while_replacing, const_double_operand)
9022 (asm_operand_ok, constrain_operands): Ditto.
9023 * reg-stack.c (subst_stack_regs_pat): Ditto.
9024 * reload.c (find_reloads, find_equiv_reg): Ditto.
9025 * rtlanal.c (replace_rtx): Remove test.
a6de48da
UB
9026 * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate
9027 test for CONST_DOUBLE in macro.
48175537
KZ
9028 * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
9029 (simplify_unary_operation_1, simplify_const_unary_operation)
9030 (simplify_binary_operation_1, simplify_const_binary_operation)
9031 (simplify_relational_operation_1)
9032 (simplify_const_relational_operations)
9033 (implify_subreg): Ditto.
9034 * varasm.c (output_constant_pool_2): Ditto.
a6de48da 9035 * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros.
48175537
KZ
9036 * rtl.def (CONST_DOUBLE): Updated comments.
9037
36be1dee
RS
90382012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
9039
9040 PR target/51931
9041 * config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
9042 * config/mips/mips.c (mips_strip_unspec_address): Make extern.
9043 (mips16_rewrite_pool_constant): Make a copy of the pool constant
9044 before adding to a PC-relative table.
9045 (mips16_lay_out_constants): Add a SPLIT_P parameter.
9046 (mips16_load_branch_target, mips16_split_long_branches): New functions.
9047 (mips_reorg): Update call to mips16_lay_out_constants.
9048 Call mips16_split_long_branches.
9049 * config/mips/predicates.md (pc_or_label_operand): Delete.
9050 * config/mips/mips.md (length): Add a calculation for MIPS16 branches.
9051 Move the extended_mips16 handling further down.
9052 (*branch_equality<mode>_mips16): Replace use pc_or_label_operand
9053 with explicit label_ref and pc. Follow the usual operand numbering.
9054 (*branch_equality<mode>_mips16_inverted): New pattern.
9055 (*jump_mips16): Add length attribute.
9056 (indirect_jump_and_restore_<mode>): New pattern.
9057 (consttable_int): Call mips_strip_unspec_address on the operand.
9058
b5b071a5
RS
90592012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
9060
9061 * recog.c (split_insn): Copy the original SET_SRC before using
9062 it as a note.
9063
8e6ecdc0
RS
90642012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
9065
9066 * reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
9067
77b5132f
MG
90682012-08-02 Marc Glisse <marc.glisse@inria.fr>
9069
9070 PR tree-optimization/53805
9071 * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
9072 UNORDERED_EXPR even for trapping floating point.
9073
a8da72b8
L
90742012-08-02 H.J. Lu <hongjiu.lu@intel.com>
9075
9076 PR middle-end/53321
9077 PR middle-end/53865
9078 * ipa-inline-analysis.c (inline_free_summary): Return if
9079 inline_edge_summary_vec is NULL.
9080
9081 * ipa-split.c (execute_split_functions): Check if a function
9082 is inlinable only if inline_edge_summary_vec != NULL.
9083
9084 * ipa.c (symtab_remove_unreachable_nodes): Restore
9085 cgraph_propagate_frequency call when something was changed.
9086 (free_inline_summary): New function.
9087 (pass_ipa_free_inline_summary): New pass.
9088
9089 * passes.c (init_optimization_passes): Add
9090 pass_ipa_free_inline_summary before pass_ipa_tree_profile.
9091
9092 * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
9093
9094 * tree-pass.h (pass_ipa_free_inline_summary): New.
9095
ca26f665
RE
90962012-08-02 Richard Earnshaw <rearnsha@arm.com>
9097
9098 * arm.c (arm_gen_constant): Use UBFX for some AND operations when
9099 available.
9100
8812aab1
RG
91012012-08-02 Richard Guenther <rguenther@suse.de>
9102
9103 * tree-into-ssa.c (struct common_info_d): New struct.
9104 (struct var_info_d, struct ssa_name_info): Use it.
9105 (get_ssa_name_ann): Adjust.
9106 (get_phi_state, set_phi_state): Remove.
9107 (get_common_info): New function.
9108 (get_current_def, set_current_def): Adjust.
9109 (get_def_blocks_for): Take a common info as param.
9110 (set_def_block): Call get_common_info once.
9111 (set_livein_block): Likewise.
9112 (find_def_blocks_for): Adjust.
9113 (insert_phi_nodes): Likewise.
9114 (register_new_def): Call get_common_info once.
9115 (get_reaching_def): Likewise.
9116 (rewrite_debug_stmt_uses): Likewise.
9117 (rewrite_leave_block): Likewise.
9118 (dump_currdefs): Likewise.
9119 (debug_var_infos_r): Adjust.
9120 (register_new_update_single): Call get_common_info once.
9121 (maybe_replace_use_in_debug_stmt): Likewise.
9122 (rewrite_update_leave_block): Likewise.
9123 (mark_use_interesting): Adjust.
9124 (create_new_def_for): Likewise.
9125 (update_ssa): Likewise.
9126
329df070
MM
91272012-08-02 Michael Matz <matz@suse.de>
9128
9129 * tree-ssa-live.c (set_is_used): Return a bool.
9130 (mark_all_vars_used): Don't take data argument.
9131 (mark_all_vars_used_1): Adjust calls to above, merge handling
9132 of local and global vars.
9133 (remove_unused_scope_block_p): Don't take global_unused_vars,
9134 merge handling of local and global vars.
9135 (remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
9136 use is_used_p for local and global vars.
9137
7cc434a3
RG
91382012-08-02 Richard Guenther <rguenther@suse.de>
9139
9140 * tree-flow.h (make_rename_temp): Remove.
9141 * tree-dfa.c (make_rename_temp): Likewise.
9142 * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
9143 instead of make_rename_temp.
9144 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
9145 expand_omp_atomic_pipeline): Likewise.
9146 * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
9147 build_tm_store, expand_call_tm, expand_transaction,
9148 ipa_tm_insert_gettmclone_call): Likewise.
9149 * tree-complex.c (expand_complex_div_wide): Likewise.
9150 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
9151 Likewise.
9152 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
9153 Likewise.
9154 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
9155 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
9156 gimple_mod_subtract): Likewise.
9157
32244553
RG
91582012-08-02 Richard Guenther <rguenther@suse.de>
9159
9160 * tree-flow.h (set_default_def): Rename to ...
9161 (set_ssa_default_def): ... this. Take a struct function argument.
9162 (gimple_default_def): Rename to ...
9163 (ssa_default_def): ... this.
9164 (get_or_create_ssa_default_def): New function.
9165 * tree-dfa.c: Likewise.
9166 (dump_variable): Adjust.
9167 * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
9168 for used parameters.
9169 * ipa-split.c (consider_split): Adjust, avoid repeated default-def
9170 lookups.
9171 (split_function): Likewise.
9172 * lto-streamer-in.c (input_ssa_names): Adjust.
9173 * omp-low.c (expand_omp_taskreg): Likewise.
9174 * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
9175 * tree-complex.c (init_parameter_lattice_values): Adjust.
9176 (get_component_ssa_name): Likewise.
9177 (update_parameter_components): Likewise.
9178 * tree-inline.c (remap_ssa_name): Likewise.
9179 (setup_one_parameter): Likewise.
9180 (initialize_inlined_parameters): Likewise.
9181 (declare_return_variable): Likewise.
9182 (expand_call_inline): Likewise.
9183 (tree_function_versioning): Likewise.
9184 * tree-into-ssa.c (get_default_def_for): Remove.
9185 (get_reaching_def): Use get_or_create_ssa_default_def instead.
9186 * tree-predcom.c (replace_ref_with): Adjust.
9187 * tree-sra.c (get_repl_default_def_ssa_name): Likewise.
9188 (is_unused_scalar_param): Likewise.
9189 (ptr_parm_has_direct_uses): Likewise.
9190 (sra_ipa_reset_debug_stmts): Likewise.
9191 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
9192 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
9193 * tree-ssa-live.c (verify_live_on_entry): Likewise.
9194 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
9195 avoid repeated default def lookups.
9196 * tree-ssa-sccvn.c (run_scc_vn): Likewise.
9197 * tree-tailcall.c (arg_needs_copy_p): Adjust.
9198 (tree_optimize_tail_calls_1): Likewise.
9199
fcddd80e
RG
92002012-08-02 Richard Guenther <rguenther@suse.de>
9201
9202 PR tree-optimization/50672
9203 Revert
9204 2012-08-01 Richard Guenther <rguenther@suse.de>
9205
9206 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
9207 (replace_block_by): Adjust.
9208
46eb666a
RG
92092012-08-02 Richard Guenther <rguenther@suse.de>
9210
9211 * tree-dfa.c (referenced_var_lookup): Remove.
9212 (find_referenced_vars): Remove.
9213 (pass_referenced_vars): Likewise.
9214 (make_rename_temp): Do not add referenced vars.
9215 (dump_referenced_vars): Remove.
9216 (debug_referenced_vars): Likewise.
9217 (dump_dfa_stats): Do not dump referenced var stats.
9218 (find_vars_r): Remove.
9219 (find_referenced_vars_in): Likewise.
9220 (referenced_var_check_and_insert): Likewise.
9221 (add_referenced_var_1): Likewise.
9222 (remove_referenced_var): Likewise.
9223 * tree-flow.h (referenced_var_lookup): Likewise.
9224 (struct gimple_df): Remove referenced_vars member.
9225 (typedef referenced_var_iterator): Remove.
9226 (FOR_EACH_REFERENCED_VAR): Likewise.
9227 (num_referenced_vars): Likewise.
9228 (debug_referenced_vars, dump_referenced_vars): Likewise.
9229 (add_referenced_var_1, add_referenced_var): Likewise.
9230 (remove_referenced_var): Likewise.
9231 (find_referenced_vars_in): Likewise.
9232 * tree-flow-inline.h (gimple_referenced_vars): Remove.
9233 (first_referenced_var): Likewise.
9234 (end_referenced_vars_p): Likewise.
9235 (next_referenced_var): Likewise.
9236 * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
9237 * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
9238 unconditionally.
9239 * tree-into-ssa.c (dump_decl_set): Likewise.
9240 (pass_build_ssa): Do not require PROP_referenced_vars.
9241 * tree-ssa.c (target_for_debug_bind): Virtual operands are
9242 not suitable, but all register type vars are.
9243 (init_tree_ssa): Do not allocate referenced vars.
9244 (delete_tree_ssa): Do not free referenced vars.
9245 * cgraphunit.c (init_lowered_empty_function): Do not set
9246 PROP_referenced_vars.
9247 (assemble_thunk): Do not add referenced vars.
9248 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9249 (gimplify_and_update_call_from_tree): Likewise.
9250 * gimple-streamer-in.c (input_bb): Likewise.
9251 * passes.c (init_optimization_passes): Do not run
9252 pass_referenced_vars.
9253 (dump_properties): Do not dump PROP_referenced_vars.
9254 * tree-inline.c (remap_decl): Do not add referenced vars.
9255 (remap_gimple_op_r): Likewise.
9256 (copy_tree_body_r): Likewise.
9257 (copy_bb): Likewise.
9258 (setup_one_parameter): Likewise.
9259 (declare_return_variable): Likewise.
9260 (copy_decl_for_dup_finish): Likewise.
9261 (copy_arguments_for_versioning): Likewise.
9262 (tree_function_versioning): Likewise.
9263 * tree-pass.h (PROP_referenced_vars): Remove.
9264 (pass_referenced_vars): Likewise.
a6de48da
UB
9265 * tree-profile.c (gimple_gen_edge_profiler): Do not add
9266 referenced vars.
46eb666a
RG
9267 (gimple_gen_interval_profiler): Likewise.
9268 (gimple_gen_pow2_profiler): Likewise.
9269 (gimple_gen_one_value_profiler): Likewise.
9270 (gimple_gen_ic_profiler): Likewise.
9271 (gimple_gen_average_profiler): Likewise.
9272 (gimple_gen_ior_profiler): Likewise.
9273 * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
9274 * tree-cfg.c (replace_ssa_name): Do not add referenced vars.
9275 (move_stmt_op): Likewise.
9276 * tree-ssa-operands.c (create_vop_var): Likewise.
9277 * gimple-low.c (record_vars_into): Likewise.
9278 * gimplify.c (gimple_regimplify_operands): Likewise.
9279 (force_gimple_operand_1): Likewise.
9280 * omp-low.c (expand_omp_for_generic): Likewise.
9281 (expand_omp_for_static_chunk): Likewise.
9282 (expand_omp_atomic_pipeline): Likewise.
9283 * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
9284 (translate_clast_assignment): Likewise.
9285 * graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
9286 (handle_scalar_deps_crossing_scop_limits): Likewise.
9287 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
9288 * ipa-split.c (split_function): Likewise.
9289 * matrix-reorg.c (transform_access_sites): Likewise.
9290 * trans-mem.c (tm_log_add): Likewise.
9291 (ipa_tm_insert_gettmclone_call): Likewise.
9292 * tree-complex.c (create_one_component_var): Likewise.
9293 * tree-if-conv.c (ifc_temp_var): Likewise.
9294 * tree-parloops.c (take_address_of): Likewise.
9295 (initialize_reductions): Likewise.
9296 (separate_decls_in_region_name): Likewise.
9297 (create_call_for_reduction_1): Likewise.
9298 (separate_decls_in_region): Likewise.
9299 * tree-predcom.c (predcom_tmp_var): Likewise.
9300 (reassociate_to_the_same_stmt): Likewise.
9301 * tree-sra.c (build_ref_for_offset): Likewise.
9302 (create_access_replacement): Likewise.
9303 (get_replaced_param_substitute): Likewise.
9304 (sra_ipa_reset_debug_stmts): Likewise.
9305 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
9306 (rewrite_bittest): Likewise.
9307 * tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
9308 * tree-ssa-loop-manip.c (create_iv): Likewise.
9309 (tree_transform_and_unroll_loop): Likewise.
9310 * tree-ssa-math-opts.c (powi_as_mults): Likewise.
9311 (build_and_insert_call): Likewise.
9312 (gimple_expand_builtin_cabs): Likewise.
9313 (execute_optimize_bswap): Likewise.
9314 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
9315 (abs_replacement): Likewise.
9316 (cond_store_replacement): Likewise.
9317 (cond_if_else_store_replacement_1): Likewise.
9318 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
9319 * tree-ssa-pre.c (get_representative_for): Likewise.
9320 (create_expression_by_pieces): Likewise.
9321 (insert_into_preds_of_block): Likewise.
9322 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
9323 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
9324 (eliminate_redundant_comparison): Likewise.
9325 (rewrite_expr_tree_parallel): Likewise.
9326 (get_reassoc_pow_ssa_name): Likewise.
9327 * tree-ssa-strlen.c (get_string_length): Likewise.
9328 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
9329 (build_arrays): Likewise.
9330 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
9331 (create_tailcall_accumulator): Likewise.
9332 * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
9333 (vect_create_addr_base_for_vector_ref): Likewise.
9334 (vect_permute_store_chain): Likewise.
9335 (vect_permute_load_chain): Likewise.
9336 * tree-vect-generic.c (expand_vector_divmod): Likewise.
9337 * tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
9338 (vect_build_loop_niters): Likewise.
9339 (vect_generate_tmps_on_preheader): Likewise.
9340 (vect_update_ivs_after_vectorizer): Likewise.
9341 (vect_gen_niters_for_prolog_loop): Likewise.
9342 (vect_do_peeling_for_alignment): Likewise.
9343 (vect_create_cond_for_align_checks): Likewise.
9344 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
9345 (vect_handle_widen_op_by_const): Likewise.
9346 (vect_operation_fits_smaller_type): Likewise.
9347 (vect_recog_over_widening_pattern): Likewise.
9348 * tree-vect-stmts.c (vect_init_vector): Likewise.
9349
e7206ab1
AO
93502012-08-01 Alexandre Oliva <aoliva@redhat.com>
9351
9352 PR debug/52983
9353 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
9354
375e3d07
AO
93552012-08-01 Alexandre Oliva <aoliva@redhat.com>
9356
9357 PR debug/52983
9358 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
9359 falling back to copy_rtx on non-autoinc machines.
9360 (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
9361
08df6c0d
AO
93622012-08-01 Alexandre Oliva <aoliva@redhat.com>
9363
9364 PR debug/52983
9365 * valtrack.h, valtrack.c: New.
9366 * Makefile.in (VALTRACK_H): New.
9367 (OBJS): Add valtrack.o.
9368 (valtrack.o): New.
9369 (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
9370 * combine.c: Include valtrack.h.
9371 (make_compound_operation): Publish.
9372 (cleanup_auto_inc_dec): Move to valtrack.c.
9373 (struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
9374 (propagate_for_debug): Likewise. Add this_basic_block parameter.
9375 Adjust all callers.
9376 * cselib.c: Include valtrack.h.
9377 * dce.c: Likewise.
9378 * df-problems.c: Likewise.
9379 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
9380 (dead_debug_finish, dead_debug_add): Likewise.
9381 (dead_debug_insert_temp): Likewise.
9382 * df.h (struct dead_debug_use): Move to valtrack.h.
9383 (struct dead_debug, enum debug_temp_where): Likewise.
9384 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
9385 (dead_debug_finish, dead_debug_add): Likewise.
9386 (dead_debug_insert_temp): Likewise.
9387 * rtl.h (make_compound_operation): Declare.
9388
fdd195f4
CM
93892012-08-01 Catherine Moore <clm@codesourcery.com>
9390 Sandra Loosemore <sandra@codesourcery.com>
9391
fdd195f4
CM
9392 * config/mips/mips-cpus.def (34kn): New.
9393 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
9394 (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
9395 * config/mips/mips-tables.opt: Regenerate.
9396 * doc/invoke.texi (MIPS Options): Document -march=34kn.
9397
91f8035e
RH
93982012-08-01 Richard Henderson <rth@redhat.com>
9399
9400 * expmed.h (NUM_MODE_PARTIAL_INT): New.
9401 (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
9402 (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
9403 (struct expmed_op_costs): Likewise.
9404 (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
9405 (expmed_mode_index): New.
9406 (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
9407 (convert_cost_ptr): Likewise.
9408 * expmed.c (struct init_expmed_rtl): Rename convert to trunc.
9409 (init_expmed_one_conv): Split out from ...
9410 (init_expmed_one_mode): ... here. Iterate conversions over
9411 partial integer modes too.
9412 (init_expmed): Iterate over partial integer modes too.
9413
92e014ca
RH
94142012-08-01 Richard Henderson <rth@redhat.com>
9415
9416 * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
9417 (m32c_init_libfuncs): Remove.
9418 * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
9419 (cstore<QHPSI>4): New expander.
9420
d94b820b
RG
94212012-08-01 Richard Guenther <rguenther@suse.de>
9422
9423 * tree-flow-inline.h (referenced_var): Remove.
9424 * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
9425 checking code.
9426 * tree-sra.c (candidates): New global hashtable.
9427 (candidate): New function.
9428 (sra_initialize): Initialize candidates.
9429 (sra_deinitialize): Free candidates.
9430 (disqualify_candidate): Remove candidate from candidates.
9431 (maybe_add_sra_candidate): New function.
9432 (find_var_candidates): Walk over all local decls and parameters,
9433 add candidates to candidates hashtable.
9434 (find_param_candidates): Add candidates to candidates hashtable.
9435 (analyze_all_variable_accesses): Use candidate instead of
9436 referenced_var.
9437
8bb37e9a
TV
94382012-08-01 Tom de Vries <tom@codesourcery.com>
9439
9440 * tree-vrp.c (find_case_label_ranges): New function.
9441 (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
9442 find_case_label_ranges instead of find_case_label_range. Handle second
9443 range.
9444
5f564b8f
MM
94452012-08-01 Michael Matz <matz@suse.de>
9446
9447 * tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
9448 * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
9449 (dump_dfa_stats): Don't dump stats about var anns.
9450 (collect_dfa_stats): Don't collect them.
9451 (add_referenced_var_1): Don't set var annotation pointers.
9452 (remove_referenced_var): Ditto, and only remove it it's in the
9453 hash table.
9454
9455 * tree-flow-inline.h (var_ann): Remove.
9456 * tree-flow.h (struct var_ann_d, var_ann_t): Remove.
9457
9458 * tree-inline.c (remapped_type): Remove.
9459 (can_be_nonlocal): Most variable will be considered live here,
9460 return false earlier.
9461 (remap_decls): Don't call var_ann, all variables will be considered
9462 referenced here.
9463 (copy_debug_stmt): Ditto, and use is_global_var.
9464
9465 * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
9466 determine if a variable was referred to, not var_ann.
9467 * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
9468 (remove_unused_locals): Ditto.
9469 * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
9470 * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
9471 * tree.c (copy_node_stat): Don't clear var ann pointer.
9472 * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
9473 ann member.
9474 (DECL_VAR_ANN_PTR): Remove.
9475
94762012-08-01 Michael Matz <matz@suse.de>
9477
9478 * tree-flow.h (struct var_ann_d): Rename used member.
9479 (set_is_used): Don't declare.
9480 * tree-flow-inline.h (clear_is_used): Remove.
9481 (set_is_used, is_used_p): Move to ...
9482 * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
9483 on the side bitmap.
9484 (usedvars): New bitmap.
9485 (dump_scope_block): Don't dump unusedness.
9486 (remove_unused_locals): Allocate and free usedvars.
9487 * tree-nrv.c (tree_nrv): Don't clear used flags here.
9488
94892012-08-01 Michael Matz <matz@suse.de>
9490
9491 * tree-flow.h (struct var_ann_d): Remove base_var_processed and
9492 base_index members.
9493 * tree-ssa-live.h (struct _var_map): Remove basevars member.
9494 (VAR_ANN_BASE_INDEX): Remove.
9495 * tree-ssa-live.c (var_map_base_init): Use a hash table instead
9496 of var annotation to compress index space. Don't deal with above
9497 removed members.
9498 (var_map_base_fini): Don't free basevars.
9499 (init_var_map): Don't clear basevars.
9500
3cfd4469
BS
95012012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
9502
9503 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
9504 base_name to base_expr.
9505 (struct cand_chain_d): Likewise.
9506 (base_cand_hash): Likewise.
9507 (base_cand_eq): Likewise.
9508 (record_potential_basis): Likewise.
9509 (alloc_cand_and_find_basis): Likewise.
9510 (create_mul_ssa_cand): Likewise.
9511 (create_mul_imm_cand): Likewise.
9512 (create_add_ssa_cand): Likewise.
9513 (create_add_imm_cand): Likewise.
9514 (slsr_process_cast): Likewise.
9515 (slsr_process_copy): Likewise.
9516 (dump_candidate): Likewise.
9517 (base_cand_dump_callback): Likewise.
9518 (unconditional_cands_with_known_stride_p): Likewise.
9519 (cand_increment): Likewise.
9520
2749c8f6
BS
95212012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
9522
9523 PR tree-optimization/46556
9524 * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
9525 (base_cand_map): Change to hash table.
9526 (base_cand_hash): New function.
9527 (base_cand_free): Likewise.
9528 (base_cand_eq): Likewise.
9529 (lookup_cand): Change base_cand_map to hash table.
9530 (find_basis_for_candidate): Likewise.
9531 (base_cand_from_table): Exclude CAND_REF.
9532 (restructure_reference): New function.
9533 (slsr_process_ref): Likewise.
9534 (find_candidates_in_block): Call slsr_process_ref.
9535 (dump_candidate): Handle CAND_REF.
9536 (base_cand_dump_callback): New function.
9537 (dump_cand_chains): Change base_cand_map to hash table.
9538 (replace_ref): New function.
9539 (replace_refs): Likewise.
9540 (analyze_candidates_and_replace): Call replace_refs.
9541 (execute_strength_reduction): Change base_cand_map to hash table.
9542
85add0cf
UB
95432012-08-01 Uros Bizjak <ubizjak@gmail.com>
9544
9545 * config/i386/i386.c (ix86_address_subreg_operand): Reject
9546 stack pointer.
9547 (ix86_print_operand_address): Assert that parts.base and parts.index
9548 are non-NULL after call to simplify_subreg.
9549
1491b564
RG
95502012-08-01 Richard Guenther <rguenther@suse.de>
9551
9552 * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.
9553
525174a2
RG
95542012-08-01 Richard Guenther <rguenther@suse.de>
9555
9556 * graphite-clast-to-gimple.c (translate_clast_user): Rename
9557 virtual operands.
9558 * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
9559 operands here.
9560 * tree-call-cdce.c (tree_call_cdce): Use
9561 mark_virtual_operands_for_renaming.
9562 * tree-eh.c (sink_clobbers): Simplify.
9563 * tree-flow.h (mark_sym_for_renaming): Remove.
9564 (mark_virtual_operands_for_renaming): New function.
9565 * tree-if-conv.c (tree_if_conversion): Use
9566 mark_virtual_operands_for_renaming.
9567 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
9568 * tree-into-ssa.c (mark_sym_for_renaming): Remove.
9569 (mark_virtual_operands_for_renaming): New function.
9570 * tree-loop-distribution.c (tree_loop_distribution): Use
9571 mark_virtual_operands_for_renaming.
9572 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
9573 update stmts, use mark_virtual_operands_for_renaming.
9574 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
9575 (replace_block_by): Adjust.
9576 (tail_merge_optimize): Use mark_virtual_operands_for_renaming.
9577 * tree-tailcall.c (tree_optimize_tail_calls_1): Use
9578 mark_virtual_operands_for_renaming.
9579 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
9580 * tree-vectorizer.c (vectorize_loops): Likewise.
9581
13714310
RG
95822012-08-01 Richard Guenther <rguenther@suse.de>
9583
9584 * tree-flow.h (struct gimple_df): Remove syms_to_rename member,
9585 add ssa_renaming_needed and rename_vops flags.
9586 (SYMS_TO_RENAME): Remove.
9587 (symbol_marked_for_renaming): Likewise.
9588 (mark_virtual_ops_for_renaming): Likewise.
9589 * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
9590 New globals.
9591 (mark_for_renaming, marked_for_renaming): New functions.
9592 (symbol_marked_for_renaming): Remove.
9593 (dump_currdefs): Adjust.
9594 (maybe_replace_use): Likewise.
9595 (maybe_replace_use_in_debug_stmt): Likewise.
9596 (maybe_register_def): Likewise.
9597 (rewrite_update_phi_arguments): Likewise.
9598 (rewrite_update_enter_block): Likewise.
9599 (fini_ssa_renamer): Clear update SSA status here ...
9600 (delete_update_ssa): ... not here. Free rename set.
9601 (prepare_block_for_update): Compute which decls need renaming.
9602 (dump_update_ssa): Adjust.
9603 (mark_sym_for_renaming): Adjust update SSA status for virtuals.
9604 (need_ssa_update_p): Adjust.
9605 (insert_updated_phi_nodes_for): Likewise.
9606 (update_ssa): Likewise.
9607 * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
9608 for virtual and real operands.
9609 (finalize_ssa_uses): Likewise.
9610 * tree-ssanames.c (init_ssanames): Adjust.
9611 * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
9612 execute_update_addresses_taken): Add bitmap to keep track of which
85add0cf 9613 candidates are suitable for rewriting and later renaming by SSA update.
13714310 9614 * matrix-reorg.c (transform_access_sites): Do not rename all defs.
85add0cf
UB
9615 * tree-dfa.c (make_rename_temp): Do not mark real operands for
9616 renaming.
13714310
RG
9617 * cgraphunit.c (assemble_thunk): Likewise.
9618 * gimplify.c (gimple_regimplify_operands): Likewise.
9619 (force_gimple_operand_1): Likewise.
9620 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
9621 * tree-inline.c (declare_return_variable): Likewise.
9622 * tree-parloops.c (separate_decls_in_region_stmt): Do not call
9623 mark_virtual_ops_for_renaming.
9624 (create_stores_for_reduction): Likewise.
9625 (create_loads_and_stores_for_name): Likewise.
9626 * tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
9627 (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
9628 (execute_load_motion): Likewise.
9629 (remove_stmt): Likewise.
9630 (execute_pred_commoning_chain): Likewise.
85add0cf 9631 * tree-sra.c (create_access_replacement): Do not rename real operands.
13714310
RG
9632 (get_unrenamed_access_replacement): Unify with ...
9633 (get_access_replacement): ... this.
9634 (get_repl_default_def_ssa_name): Adjust.
9635 * tree-ssa-loop-im.c (move_computations_stmt): Manually update
9636 virtual SSA form.
9637 (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
9638 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
9639
b3e8a0d2
DD
96402012-07-31 DJ Delorie <dj@redhat.com>
9641
9642 * config/s390/s390.c (s390_option_override): Disable DWARF 3/4
9643 extensions for TPF, unless specifically selected.
9644
7099ce06
AM
96452012-08-01 Alan Modra <amodra@gmail.com>
9646
9647 PR target/54131
9648 * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
9649 of lo_sum offsets. Comment. Assert mode at least word size
9650 rather than bypassing powerpc64 word offset check.
9651
fdc43210
BS
96522012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
9653
9654 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
9655 costs for vec_perm and vec_promote_demote down to more natural values.
9656 (struct _rs6000_cost_data): New data structure.
9657 (rs6000_density_test): New function.
9658 (rs6000_init_cost): Change to use rs6000_cost_data.
9659 (rs6000_add_stmt_cost): Likewise.
9660 (rs6000_finish_cost): Perform density test when vectorizing a loop.
9661
ab6d55ef
SB
96622012-07-31 Steven Bosscher <steven@gcc.gnu.org>
9663
9664 * sched-vis.c (print_exp): Handle FMA explicitly. Simplify handling
9665 of RTX_UNARY function-like operations. Print unknown expression
9666 RTX classes as pseudo-functions.
9667 (print_pattern): Simplify return pattern printing.
9668 (dump_insn_slim): Print the value of notes as a pattern for proper
9669 printing of CFA notes.
9670
aa36f90b
DC
96712012-07-31 Dehao Chen <dehao@google.com>
9672
9673 * predict.c (tree_estimate_probability_driver): Normalize the
9674 loop when initializing the loop optimizer.
9675
b4e209fd
RG
96762012-07-31 Richard Guenther <rguenther@suse.de>
9677
9678 * tree-flow.h (struct var_ann_d): Remove need_phi_state
9679 and current_def members.
9680 * tree-into-ssa.c (struct def_blocks_d): Remove var member.
9681 (def_blocks): Remove.
9682 (struct var_info_d): New.
9683 (var_infos): New hashtable.
9684 (struct ssa_name_info): Add def_blocks member.
9685 (get_ssa_name_ann): Adjust.
9686 (get_var_info): New function.
9687 (get_phi_state, set_phi_state, get_current_def,
9688 set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
9689 (insert_phi_nodes_compare_def_blocks): Rename to ...
9690 (insert_phi_nodes_compare_var_infos): ... this and adjust.
9691 (insert_phi_nodes): Adjust.
9692 (dump_tree_ssa, dump_tree_ssa_stats): Adjust.
9693 (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
9694 (debug_def_blocks_r): Rename to ...
9695 (debug_var_infos_r): ... this and adjust.
9696 (var_info_hash): New function.
9697 (var_info_eq): Likewise.
9698 (rewrite_blocks): Adjust.
9699 (init_ssa_renamer): Likewise.
9700 (fini_ssa_renamer): Likewise.
9701 (delete_update_ssa): Likewise.
9702 (update_ssa): Likewise.
85add0cf 9703 * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.
b4e209fd 9704
3393a711
BS
97052012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
9706
9707 PR tree-optimization/53773
9708 * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
9709 (LOOP_VINFO_OPERANDS_SWAPPED): New macro.
9710 * tree-vect-loop.c (new_loop_vec_info): Initialize
9711 LOOP_VINFO_OPERANDS_SWAPPED field.
9712 (destroy_loop_vec_info): Restore canonical form.
9713 (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
9714 (vect_is_simple_reduction_1): Likewise.
9715
8c503f0d
SB
97162012-07-31 Steven Bosscher <steven@gcc.gnu.org>
9717
9718 * sched-vis.c (dump_insn_slim): Print print_rtx_head at the
9719 start of each new line.
9720 * final.c (final_scan_insn): If the final dump is requested as
9721 slim RTL, dump slim RTL to the assembly file also.
9722
0d4acd90
AB
97232012-07-31 Andrey Belevantsev <abel@ispras.ru>
9724
9725 PR target/53975
85add0cf
UB
9726
9727 * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
0d4acd90
AB
9728
9729 Revert
9730 2011-08-04 Sergey Grechanik <mouseentity@ispras.ru>
9731
9732 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
9733 only if producer writes to the register given by regno.
9734
4adf72f1
NC
97352012-07-31 Nick Clifton <nickc@redhat.com>
9736
315bdf71
NC
9737 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
9738 support for reporting stack usage.
9739
4adf72f1 9740 * config/frv/frv.c (QUAD): Fix typo.
7027164c 9741 (frv_expand_prologue): Report stack usage.
4adf72f1 9742
3ad45f7f
SB
97432012-07-31 Steven Bosscher <steven@gcc.gnu.org>
9744
9745 PR pch/53880
9746 * gengtype.c (struct walk_type_data): Add have_this_obj field.
9747 (walk_type): For functions that take a this_obj argument and
9748 that process fields with a GTY((length)) argument, write the
9749 test that write_types_local_process_field will write also at the
9750 head of the loop, effectively unswitching the loop.
9751 (write_func_for_structure, write_local_func_for_structure): Clear
9752 have_this_obj before calling walk_type.
9753 (write_local_func_for_structure): Set have_this_obj before walk_type.
9754 (write_array): Set have_this_obj for output of local pointer walking
9755 functions but not for marker functions.
9756 (write_types_local_process_field): Assert have_this_obj is set.
9757
9758 * rtl.h (simplify_using_condition): Adjust prototype using bitmap
9759 from coretypes.h.
9760
b0f6b612
NF
97612012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
9762
9763
9764 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9765 * targhooks.c (default_mode_dependent_address_p): Delete code
9766 for GO_IF_MODE_DEPENDENT_ADDRESS.
9767 * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
9768 * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
9769 * doc/tm.texi: Regenerate.
9770 * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
9771 * config/alpha.c (alpha_mode_dependent_address_p): ...here. New
9772 function.
9773 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9774 * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9775 * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9776 * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
9777 * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9778 * config/vax/vax.c (vax_mode_dependent_address_p): Make static.
9779 Take a const_rtx.
9780 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9781
2a261cd3
NF
97822012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
9783
9784 * expmed.h (NUM_MODE_VECTOR_INT): Define.
9785 (struct expmed_op_cheap, struct expmed_op_costs): New structures.
9786 (struct target_expmed): Convert x_mul_highpart_cost and
9787 x_mul_widen_cost fields to be indexed by integer modes.
9788 Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
9789 of type struct expmed_op_cheap. Convert other cost fields to be
9790 of type struct_expmed_op_costs.
9791 (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
9792 indexing of respective fields.
9793 (expmed_op_cheap_ptr): New function.
9794 (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
9795 (expmed_op_cost_ptr): New function.
9796 (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
9797 shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
9798 sdiv_cost_ptr, udiv_cost_ptr): Call it.
9799
3df0998b
SL
98002012-07-30 Sandra Loosemore <sandra@codesourcery.com>
9801 Julian Brown <julian@codesourcery.com>
9802
9803 * doc/invoke.texi (MIPS Options): Document -mno-float.
9804 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
9805 about -mno-float.
9806
9a99299d
JM
98072012-07-30 Joseph Myers <joseph@codesourcery.com>
9808
85add0cf 9809 * doc/sourcebuild.texi (Subdirectories): Document common subdirectory.
9a99299d 9810
caf62455
JDA
98112012-07-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9812
9813 PR middle-end/53823
9814 * expmed.c (expand_mult): Skip synth_mult for constant double op1 except
9815 for special cases. Don't initialize coeff and is_neg.
9816
5aea1e76
UW
98172012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org>
9818 Richard Earnshaw <rearnsha@arm.com>
9819
9820 * target.def (vector_alignment): New target hook.
9821 * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
9822 * doc/tm.texi: Regenerate.
9823 * targhooks.c (default_vector_alignment): New function.
9824 * targhooks.h (default_vector_alignment): Add prototype.
9825 * stor-layout.c (layout_type): Use targetm.vector_alignment.
9826 * config/arm/arm.c (arm_vector_alignment): New function.
9827 (TARGET_VECTOR_ALIGNMENT): Define.
9828
9829 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
9830 vector type alignment instead of size.
9831 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
9832 element type size directly instead of computing it from alignment.
9833 Fix variable naming and comment.
9834
4c340b5d
KY
98352012-07-30 Kirill Yukhin <kirill.yukhin@intel.com>
9836 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9837
9838 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
9839 (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
9840 (ix86_handle_option): Handle mrdseed option.
9841 * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
9842 (x86_64-*-*): Likewise.
9843 * config/i386/prfchwintrin.h: New header.
9844 * config/i386/cpuid.h (bit_RDSEED): New.
9845 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
9846 RDSEED support.
9847 * config/i386/i386-c.c: Define __RDSEED__ if needed.
85add0cf 9848 * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
4c340b5d
KY
9849 (PTA_RDSEED): New.
9850 (ix86_option_override_internal): Handle new option.
9851 (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
9852 (ix86_builtins): Add enum entries for RDSEED* builtins.
9853 (ix86_init_mmx_sse_builtins): Define new builtins.
9854 (ix86_expand_builtin): Expand RDSEED* builtins.
9855 * config/i386/i386.h (TARGET_RDSEED): New.
9856 * config/i386/i386.md (rdseed<mode>_1): New.
9857 * config/i386/i386.opt (mrdseed): New.
9858 * config/i386/x86intrin.h: Include rdseedintrin.h.
9859
39c58b3a
RG
98602012-07-30 Richard Guenther <rguenther@suse.de>
9861
9862 * tree-into-ssa.c (mark_def_sites): Also process virtual operands.
9863 (rewrite_stmt): Likewise.
9864 (rewrite_enter_block): Likewise.
9865 (pass_build_ssa): Do not update virtual SSA form during TODO.
9866 (mark_symbol_for_renaming): Do nothing if we are not in SSA form.
9867 * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.
9868
974f90ba
OE
98692012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
9870
9871 PR target/39423
85add0cf
UB
9872 * config/gcc/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
9873 insns.
974f90ba 9874
be8cbce1
OE
98752012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
9876
9877 PR target/51244
9878 * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
9879 Use t_reg_operand predicate. Add split for negated case.
9880 (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
9881 * config/sh/sh.c (expand_ashiftrt): Likewise.
9882
be82afe6
OE
98832012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
9884
9885 PR target/54089
9886 * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
9887 of trying to emit ashlsi3_n.
9888
c0fd3497
LB
98892012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
9890 Steven Bosscher <steven@gcc.gnu.org>
9891
9892 * gengtype.c (adjust_field_type): Diagnose duplicate "length"
85add0cf 9893 option applications and option being applied to arrays of atomic types.
c0fd3497
LB
9894 (walk_type): Allow "atomic" option on strings too.
9895 * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
9896 for the array field.
9897 * vec.h: Describe the atomic object "A" type of the macros in
9898 the header comment.
9899 (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
85add0cf 9900 * emit-rtl.c (locations_locators_vals): use the atomic object vector.
c0fd3497
LB
9901 * doc/gty.texi: Clarify that GTY option "length" is only for
9902 arrays of non-atomic objects. Fix typo in the description of the
9903 "atomic" option.
9904
61c7941c
UB
99052012-07-27 Uros Bizjak <ubizjak@gmail.com>
9906
9907 * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
9908 zero-extended addresses. Return false if the address has less
9909 than two components.
9910 (ix86_split_lea_for_addr): Unconditionally convert target and
9911 all address operands to requested mode.
9912 * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
9913 Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
9914 address.
9915 (zero-extended add splitter): New splitter to conditionally split
9916 non-destructive adds.
9917 (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.
9918
6ad58e82
AM
99192012-07-28 Alan Modra <amodra@gmail.com>
9920
9921 PR target/54093
9922 * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
9923 multi-gpr reload to cases where predicate passes. Do the same for
9924 64-bit multi-gpr reload.
9925
5322d07e
NF
99262012-07-27 Nathan Froyd <froydnj@gcc.gnu.org>
9927
9928 * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
9929 smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
9930 shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
9931 sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
9932 macro definitions and re-purpose as inline functions.
9933 (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
9934 set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
9935 zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
9936 neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
9937 shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
9938 set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
9939 mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
9940 udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
9941 set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
9942 New functions.
9943 (convert_cost_ptr): New function, split out from...
9944 (set_convert_cost, convert_cost): ...here.
9945 * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
9946 * gimple-ssa-strength-reduction.c: Likewise.
9947
ccbc132f
RM
99482012-07-20 Ryan Mansfield <rmansfield@qnx.com>
9949
9950 * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
9951 diagnostic_initialize.
9952
ebe0dd38
OE
99532012-07-27 Oleg Endo <olegendo@gcc.gnu.org>
9954
9955 PR target/54089
5322d07e 9956 * config/sh/sh.c (shiftcosts): Remove case where first operand
ebe0dd38
OE
9957 is a const_int. Move COSTS_N_INSNS usage into caller ...
9958 (sh_rtx_costs) ... here. Return false when shiftcosts cannot be
9959 calculated instead of MAX_COST.
9960
891f2df6
RG
99612012-07-27 Richard Guenther <rguenther@suse.de>
9962
9963 * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
9964 check whether SSA form is not up-to-date.
9965 * tree-flow.h (name_mappings_registered_p): Remove.
9966 * tree-into-ssa.c (struct repl_map_d): Remove.
9967 (repl_tbl): Likewise.
9968 (struct ssa_name_info): Add repl_set member.
9969 (update_ssa_obstack): New static global.
9970 (get_ssa_name_ann): Initialize repl_set.
9971 (clear_ssa_name_info): Assert age did not wrap.
9972 (repl_map_hash, repl_map_eq, repl_map_free): Remove.
9973 (names_replaced_by): Adjust.
9974 (add_to_repl_tbl): Likewise.
9975 (dump_tree_ssa_stats): Likewise.
9976 (init_update_ssa): Initialize update_ssa_obstack.
9977 (delete_update_ssa): Free update_ssa_obstack.
9978 (name_mappings_registered_p): Remove.
9979 (update_ssa): Adjust.
9980
462f7901
SB
99812012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
9982
4bf02aaf
UB
9983 * config/rs6000/constraints.md: Delete "q" constraint.
9984 * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
9985 Delete the "q" alternative.
9986 * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
9987 * config/rs6000/rs6000.c (rs6000_debug_reg_global)
9988 (rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
9989 adjust to MQ_REGNO removal.
9990 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
9991 comment.
9992 (REG_ALLOC_ORDER): Adjust comment. Remove MQ from alloc order.
9993 (enum reg_class): Adjust comment. Delete MQ_REGS.
9994 (REG_CLASS_CONTENTS): Adjust.
9995 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
9996 * config/rs6000/rs6000.md: Delete MQ_REGNO.
9997 (movsi_internal1, movsi_internal1_single, movhi_internal,
9998 movqi_internal, movcc_internal1, movsf_hardfloat,
9999 movsf_softfloat): Delete the "q" alternative.
10000 (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
10001 ctr<mode>_internal6): Delete "q" constraint.
462f7901 10002
d9ed2fbd
RG
100032012-07-27 Richard Guenther <rguenther@suse.de>
10004
10005 * tree-into-ssa.c (def_blocks_p): New typedef.
10006 (insert_phi_nodes_compare_def_blocks): New function.
10007 (insert_phi_nodes): Do not walk over referenced vars, instead
10008 walk over recorded def_blocks, record relevant ones and sort
10009 them to avoid repeated hashtable lookups.
10010
cf3791ae
RG
100112012-07-27 Richard Guenther <rguenther@suse.de>
10012
10013 * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
10014 Remove param documentation.
10015 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
10016 PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
10017 * tree-flow.h (mark_set_for_renaming): Remove.
10018 * tree-into-ssa.c (struct update_ssa_stats_d): Remove.
10019 (add_new_name_mapping): Remove bookkeeping code.
10020 (dump_update_ssa): Remove stats dumping code.
10021 (init_update_ssa): Remove stats allocation code.
10022 (delete_update_ssa): Remove stats freeing code.
10023 (mark_set_for_renaming): Remove.
10024 (switch_virtuals_to_full_rewrite_p): Likewise.
10025 (switch_virtuals_to_full_rewrite): Likewise.
10026 (update_ssa): Do not call switch_virtuals_to_full_rewrite.
10027
047ae098
MP
100282012-07-27 Marek Polacek <polacek@redhat.com>
10029
10030 * cgraphunit.c: Rename varpool_finalize_variable to
10031 varpool_finalize_decl in a comment.
10032
c28a7c24
SB
100332012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
10034
10035 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
10036 Delete code for -mno-power, -mpower, and -mpower2.
10037 * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
10038 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
10039 with -maix64.
10040 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
10041 * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
10042 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
10043 with -maix64.
10044 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
10045 * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
10046 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
10047 with -maix64.
10048 (TARGET_POWER): Delete.
10049 * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
10050 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
10051 with -maix64.
10052 (TARGET_POWER): Delete.
10053 * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
10054 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
10055 with -maix64.
10056 (TARGET_POWER): Delete.
10057 * config/rs6000/darwin.h (TARGET_POWER): Delete.
10058 * config/rs6000/driver-rs6000.c (struct asm_names): Delete
10059 support for -mpower, -mpower2, and -mno-power.
10060 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
10061 Likewise.
10062 (rs6000_cpu_cpp_builtins): Likewise.
10063 * config/rs6000/rs6000-cpus.def: Likewise.
10064 * config/rs6000/rs6000-tables.opt: Regenerate.
10065 * config/rs6000/rs6000.c (POWER_MASKS): Delete.
10066 (rs6000_option_override_internal): Adjust.
10067 (rs6000_conditional_register_usage): Adjust.
10068 (rs6000_emit_move): Adjust.
10069 (rs6000_common_init_builtins): Adjust.
10070 (rs6000_init_libfuncs): Adjust.
10071 (rs6000_output_function_prologue): Adjust.
10072 (rs6000_adjust_cost): Adjust.
10073 (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
10074 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
10075 POWER and POWER2.
10076 (TARGET_DEFAULT): Adjust.
10077 (PROCESSOR_POWER): Delete.
10078 (SHIFT_COUNT_TRUNCATED): Adjust.
10079 * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
10080 (extendqisi2_power): Delete.
10081 (extendqisi2_no_power): Adjust.
10082 (extendqihi2, extendqihi2_power, extendqihi2_no_power):
10083 Likewise.
10084 (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
10085 (anonymous doz insn patterns): Delete.
10086 (abssi2): Adjust.
10087 (abssi2_power): Delete.
10088 (abssi2_nopower): Adjust.
10089 (nabs_power, nabs_nopower): Likewise.
10090 (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
10091 Likewise. Delete anonymous post-reload splitter.
10092 (mulsi3_no_mq_internal1): rename to...
10093 (mulsi3_internal1): New define_insn.
10094 (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
10095 Likewise.
10096 (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
10097 udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
10098 udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
10099 (mulh_call, mull_call, divss_call, divus_call, quoss_call,
10100 quous_call): Likewise.
10101 (maskir_internal1, maskir_internal2, maskir_internal3,
10102 maskir_internal4, maskir_internal5, maskir_internal6,
10103 maskir_internal7, maskir_internal8): Delete.
10104 (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
10105 (anonymous sl insn patterns): Delete.
10106 (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
10107 (lshrsi3_64): Adjust.
10108 (anonymous sr insn patterns): Delete.
10109 (anonymous rrib insn patterns): Delete.
10110 (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
10111 (anonymous sra insn patterns): Delete.
10112 (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
10113 (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
10114 fctiwz_<mode>): Adjust.
10115 (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
10116 umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
10117 smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
10118 umulsi3_highpart_no_mq): Adjust.
10119 (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
10120 (ashrdi3_no_power, ashldi3, ashldi3_internal1,
10121 lshrdi3_internal1): Adjust.
10122 (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
10123 (movti_power): Delete.
10124 (movti_string): Adjust.
10125 (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
10126 (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
10127 stmsi4_power, stmsi3_power): Delete.
10128 (anonymous movmemsi insn patterns): Adjust.
10129 (lfq_power2, stfq_power2): Delete.
10130 (eq<mode>, eq<mode>_compare): Adjust.
10131 (eqsi_power): Delete.
10132 (ne0si): Adjust.
10133 (anonymous le, lt, ge, gt insn patterns): Delete.
10134 * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
10135 * config/rs6000/sysv4.h (TARGET_POWER): Delete.
10136 * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10137 MULTILIB_MATCHES): Adjust.
10138 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
10139 -mpower, -mno-power, -mpower2, -mno-power2 documentation.
10140 Delete -mcpu=power and -mcpu=power2 documentation.
10141
f3061fa4
SB
101422012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
10143
10144 * config/rs6000/601.md: New file.
10145 * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
10146 RIOS CPUs.
10147 * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
10148 * config/rs6000/driver-rs6000.c (detect_processor_aix,
10149 struct asm_names): Likewise.
10150 * config/rs6000/rios1.md: Delete file.
10151 * config/rs6000/rios2.md: Delete file.
10152 * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
10153 CPUs.
10154 * config/rs6000/rs6000-opts.h (enum processor_type): Delete
10155 PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
10156 * config/rs6000/rs6000-tables.opt: Regenerated.
10157 * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
10158 Delete.
10159 (rs6000_option_override_internal): Delete support for RIOS CPUs.
10160 (rs6000_conditional_register_usage): Adjust comment.
10161 (rs6000_issue_rate):Delete support for RIOS CPUs.
10162 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
10163 RIOS CPUs.
10164 (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
10165 (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
10166 * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
10167 and rios2.
10168 (include "rios1.md", include "rios2.md"): Delete.
10169 (include "601.md"): New.
10170 * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
10171 PROCESSOR_PPC603.
10172 * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
10173 for RIOS CPUs.
10174 * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
10175 rios2.md . Add 601.md .
10176
e45abe1f
RH
101772012-07-26 Richard Henderson <rth@redhat.com>
10178
10179 * doc/extend.texi (attribute): Document hot/cold for labels.
10180 * predict.c (tree_estimate_probability_bb): Handle hot/cold
10181 attributes on user labels.
10182 * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
10183
27ec0502
AJ
101842012-07-26 Andrew Jenner <andrew@codesourcery.com>
10185 Sandra Loosemore <sandra@codesourcery.com>
10186
10187 * cse.c (find_comparison_args): Check for cycles of any length.
10188
e902c266
NC
101892012-07-26 Nick Clifton <nickc@redhat.com>
10190
10191 * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
10192 (mn10300_get_live_callee_saved_regs): If requested return a count
10193 of the number of bytes in the mask.
10194 (mn10300_expand_prologue): Add argument to invocation of
10195 mn10300_get_live_callee_regs.
10196 (mn10300_expand_epilogue): Compute reg_save_bytes by calling
10197 mn10300_get_live_callee_saved_regs.
10198 (mn10300_initial_offset): Likewise.
10199 * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
10200 Update prototype.
10201 * config/mn10300/mn10300.md (return_ret): Add argument to
10202 invocation of mn10300_get_live_callee_saved_regs.
10203
d38933a0
SB
102042012-07-26 Steven Bosscher <steven@gcc.gnu.org>
10205
10206 PR regression/54084
10207 * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
10208 pointer difference check.
10209
6dd8f4bb
BS
102102012-07-26 Bill Schmidt <wschmidt@linux.ibm.com>
10211
10212 * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
10213 (mbc_entry_eq): Likewise.
10214 (mult_costs): Likewise.
10215 (cost_tables_exist): Likewise.
10216 (initialize_costs): Likewise.
10217 (finalize_costs): Likewise.
10218 (tree_ssa_iv_optimize_init): Remove call to initialize_costs.
10219 (add_regs_cost): Remove.
10220 (multiply_regs_cost): Likewise.
10221 (add_const_cost): Likewise.
10222 (extend_or_trunc_reg_cost): Likewise.
10223 (negate_reg_cost): Likewise.
10224 (struct mbc_entry): Likewise.
10225 (multiply_by_const_cost): Likewise.
10226 (get_address_cost): Change add_regs_cost calls to add_cost lookups;
10227 change multiply_by_const_cost to mult_by_coeff_cost.
10228 (force_expr_to_var_cost): Likewise.
10229 (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
10230 (get_computation_cost_at): Change add_regs_cost calls to add_cost
10231 lookups; change multiply_by_const_cost to mult_by_coeff_cost.
10232 (determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
10233 (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
10234 * tree-ssa-address.c (expmed.h): New #include.
10235 (most_expensive_mult_to_index): Change multiply_by_const_cost to
10236 mult_by_coeff_cost.
10237 * gimple-ssa-strength-reduction.c (expmed.h): New #include.
10238 (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
10239 neg_cost, and convert_cost instead of IVOPTS interfaces.
10240 (execute_strength_reduction): Remove calls to initialize_costs and
10241 finalize_costs.
10242 * expmed.c (struct init_expmed_rtl): Add convert rtx_def.
10243 (init_expmed_one_mode): Initialize convert rtx_def; initialize
10244 x_convert_cost for related modes.
10245 (mult_by_coeff_cost): New function.
10246 * expmed.h (NUM_MODE_INT): New #define.
10247 (struct target_expmed): Add x_convert_cost matrix.
10248 (set_convert_cost): New inline function.
10249 (convert_cost): Likewise.
10250 (mult_by_coeff_cost): New extern decl.
10251 * tree-flow.h (initialize_costs): Remove decl.
10252 (finalize_costs): Likewise.
10253 (multiply_by_const_cost): Likewise.
10254 (add_regs_cost): Likewise.
10255 (multiply_regs_cost): Likewise.
10256 (add_const_cost): Likewise.
10257 (extend_or_trunc_reg_cost): Likewise.
10258 (negate_reg_cost): Likewise.
10259 * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
10260 (tree-ssa-address.o): Update dependencies.
10261
0263463d
SB
102622012-07-26 Steven Bosscher <steven@gcc.gnu.org>
10263
10264 * bitmap.h: Add explanation of sparse set as linked-list bitmap.
10265 * sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
10266 (TEST_BIT): Make a static inline function for stronger type checking.
10267 (SET_BIT): Don't handle sbitmaps with popcount.
10268 (RESET_BIT): Likewise.
10269 (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
10270 (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
10271 * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
10272 RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
10273 (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
10274 ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
10275 * sparseset.h: Add explanation of sparse set representation.
10276
2f33158f
RG
102772012-07-26 Richard Guenther <rguenther@suse.de>
10278
10279 PR tree-optimization/54098
10280 * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
10281 original range was UNDEFINED.
10282
da7d74c2
RR
102832012-07-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10284
10285 * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
10286 vld1Q_dupu64 tests.
10287
f34ee0b2
OE
102882012-07-26 Oleg Endo <olegendo@gcc.gnu.org>
10289
10290 PR target/51244
10291 * config/sh/sh.opt (mzdcbranch): New option.
10292 * doc/invoke.texi: Document it.
10293 * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
10294 instead of TARGET_HARD_SH4.
10295 * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
10296 for TARGET_HARD_SH4.
10297
d8a48c21
OE
102982012-07-25 Oleg Endo <olegendo@gcc.gnu.org>
10299
10300 PR target/54089
10301 * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
10302 case.
10303 (p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
10304 * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
10305 from expander. Do not emit shift insn for not-SHMEDIA case.
10306 (ashlsi3_std): Replace with ...
10307 (ashlsi3_k, ashlsi3_d): ... these new insns.
10308 * config/sh/sh.c (gen_ashift): Make static. Add sanity checks.
10309 Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
10310 (gen_ashift_hi): Make static.
10311 * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
10312 declaration.
10313
b0c724c2
BS
103142012-07-25 Bharathi Seshadri <bseshadr@cisco.com>
10315 Jim Wilson <jimwilso@cisco.com>
10316
10317 * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
10318 TARGET_BIG_ENDIAN_DEFAULT.
10319
f778c049
EB
103202012-07-25 Eric Botcazou <ebotcazou@adacore.com>
10321
10322 * gimple-low.c (lower_try_catch): New function.
10323 (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
10324 <GIMPLE_CATCH>: Delete.
10325 <GIMPLE_EH_FILTER>: Likewise.
10326
ea814c66
EB
103272012-07-25 Eric Botcazou <ebotcazou@adacore.com>
10328
10329 * expr.c (expand_expr_real_1): Do not expand operand #1 and #2
10330 of BIT_FIELD_REF for ignored results.
10331 * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
10332 CONSTRUCTOR has vector type before using vector accessors on it.
10333 * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
10334 #2 of BIT_FIELD_REF.
10335 (gimplify_expr) <BIT_FIELD_REF>: Likewise.
10336 * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
10337 not process operand #1 and #2.
10338 (convert_local_reference_op): Likewise.
10339 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
10340 breaks throughout.
10341 <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
10342 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
10343 operand #1 and #2.
10344 (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
10345 (build6_stat): Delete.
10346 * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
10347
933a2c39
MG
103482012-07-25 Marc Glisse <marc.glisse@inria.fr>
10349
10350 PR tree-optimization/30318
10351 * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
10352 Handle __int128.
10353 [MINUS_EXPR]: Merge with PLUS_EXPR.
10354
d45eae79
SL
103552012-07-25 Sandra Loosemore <sandra@codesourcery.com>
10356 Paul Brook <paul@codesourcery.com>
10357
10358 PR target/53633
d45eae79
SL
10359 * target.def (warn_func_return): New hook.
10360 * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
10361 * doc/tm.texi: Regenerate.
10362 * doc/sourcebuild.texi (Effective-Target Keywords): Document
10363 naked_functions.
10364 * ipa-pure-const.c (warn_function_noreturn): Check
10365 targetm.warn_func_return.
10366 * tree-cfg.c (execute_warn_function_return): Likewise.
10367 * config/spu/spu.c (spu_warn_func_return): New.
10368 (TARGET_WARN_FUNC_RETURN): Define.
10369 * config/rx/rx.c (rx_warn_func_return): New.
10370 (TARGET_WARN_FUNC_RETURN): Define.
10371 * config/avr/avr.c (avr_warn_func_return): New.
10372 (TARGET_WARN_FUNC_RETURN): Define.
10373 * config/arm/arm.c (arm_warn_func_return): New.
10374 (TARGET_WARN_FUNC_RETURN): Define.
10375 * config/mcore/mcore.c (mcore_warn_func_return): New.
10376 (TARGET_WARN_FUNC_RETURN): Define.
10377 (saved_warn_return_type, saved_warn_return_type_count): Remove.
10378 (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.
10379
d1658619
SP
103802012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com>
10381
10382 * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
10383 function to implement assembler dialects.
10384 (output_asm_insn): Use do_assembler_dialects.
10385 (asm_fprintf): Likewise.
10386
5714c34f
RH
103872012-07-25 Richard Henderson <rth@redhat.com>
10388
10389 PR bootstrap/54092
10390 * libfuncs.h: Don't include optabs.h.
10391 (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
10392 * optabs.c (hash_libfunc): Don't cast members to int.
10393 * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.
10394
229ecb89
DS
103952012-07-25 Dodji Seketeli <dodji@redhat.com>
10396
10397 * basic-block.c: Fix typo in comment.
10398
e61c94dd
KY
103992012-07-25 Kirill Yukhin <kirill.yukhin@intel.com>
10400 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10401
f2962e2d
OE
10402 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
10403 (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
10404 (ix86_handle_option): Handle mprfchw option.
10405 * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
10406 (x86_64-*-*): Likewise.
10407 * config/i386/prfchwintrin.h: New header.
10408 * config/i386/cpuid.h (bit_PRFCHW): New.
10409 (bit_BMI): Formatting fix.
10410 (bit_HLE): Likewise.
10411 (bit_RTM): Likewise.
10412 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
10413 PREFETCHW support.
10414 * config/i386/i386-c.c: Define __PRFCHW__ if needed.
10415 * config/i386/i386.c (ix86_target_string): Define
10416 -mprfchw option. Formatting fixes.
10417 (PTA_HLE): Formatting fix.
10418 (PTA_PRFCHW): New.
10419 (ix86_option_override_internal): Handle new option.
10420 (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
10421 * config/i386/i386.h (TARGET_PRFCHW): New.
10422 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
10423 * config/i386/i386.opt (mprfchw): New.
10424 * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h.
10425 * config/i386/x86intrin.h: Include prfchwintrin.h.
e61c94dd 10426
4bd5abca
SM
104272012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
10428
10429 * config/i386/i386.md (stack_protect_set): Disable the pattern
10430 for Android since Android libc (bionic) does not provide random
10431 value for stack protection guard at gs:0x14. Guard value
10432 will be provided from external symbol (default implementation).
10433 (stack_protect_set_<mode>): Likewise.
10434 (stack_protect_test): Likewise.
10435 (stack_protect_test_<mode>): Likewise.
10436 * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
10437 not have Bionic by default
10438 * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
10439 Macro OPTION_BIONIC is defined in this file and provides Bionic
10440 accessibility status
10441
3e31cf28
SB
104422012-07-25 Steven Bosscher <steven@gcc.gnu.org>
10443
10444 * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
10445
104462012-07-25 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10447
e32bfc16
VK
10448 btver2 Enablement
10449 * config.gcc (i[34567]86-*-linux* | ...): Add btver2.
10450 (case ${target}): Add btver2.
10451 * config/i386/driver-i386.c (host_detect_local_cpu): Let
10452 -march=native recognize btver2 processors.
10453 * config/i386/i386-c.c (ix86_target_macros_internal): Add
10454 btver2 def_and_undef
10455 * config/i386/i386.c (struct processor_costs btver2_cost): New
10456 btver2 cost table.
10457 (m_BTVER2): New definition.
10458 (m_AMD_MULTIPLE): Includes m_BTVER2.
10459 (initial_ix86_tune_features): Add btver2 tune.
10460 (processor_target_table): Add btver2 entry.
10461 (static const char *const cpu_names): Add btver2 entry.
10462 (software_prefetching_beneficial_p): Add btver2.
10463 (ix86_option_override_internal): Add btver2 instruction sets.
10464 (ix86_issue_rate): Add btver2.
10465 (ix86_adjust_cost): Add btver2.
10466 * config/i386/i386.h (TARGET_BTVER2): New definition.
10467 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
10468 (enum processor_type): Add PROCESSOR_BTVER2.
10469 * config/i386/i386.md (define_attr "cpu"): Add btver2.
10470
92345349
BS
104712012-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
10472
10473 * doc/tm.texi: Regenerate.
10474 * targhooks.c (default_init_cost): Add prologue and epilogue costs.
10475 (default_add_stmt_cost): Likewise; also handle NULL stmt_info.
10476 (default_finish_cost): Add prologue and epilogue costs.
10477 * targhooks.h (default_add_stmt_cost): Change parameter list.
10478 (default_finish_cost): Likewise.
10479 * target.def (init_cost): Change documentation string.
10480 (add_stmt_cost): Change documentation string and parameter list.
10481 (finish_cost): Likewise.
10482 * target.h (vect_cost_model_location): New enum.
10483 * tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
10484 (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
10485 to body_cost_vec.
10486 (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
10487 (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
10488 (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
10489 (struct _vect_peel_extended_info): Rename stmt_cost_vec to
10490 body_cost_vec.
10491 (struct _stmt_vec_info): Remove cost substruct.
10492 (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
10493 (stmt_vinfo_set_outside_of_loop_cost): Remove.
10494 (builtin_vectorization_cost): New function.
10495 (vect_get_stmt_cost): Change to use builtin_vectorization_cost.
10496 (add_stmt_cost): Change parameter list.
10497 (finish_cost): Likewise.
10498 (vect_model_simple_cost): Likewise.
10499 (vect_model_store_cost): Likewise.
10500 (vect_model_load_cost): Likewise.
10501 (record_stmt_cost): Likewise.
10502 (vect_get_load_cost): Likewise.
10503 (vect_get_known_peeling_cost): Likewise.
10504 * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
10505 list; call record_stmt_cost for prologue and epilogue costs.
10506 (vect_estimate_min_profitable_iters): Call add_stmt_cost for
10507 prologue and epilogue costs; remove computation of vec_outside_cost;
10508 return vec_prologue_cost and vec_epilogue_cost from finish_cost.
10509 (vect_model_reduction_cost): Revise call to add_stmt_cost for body
10510 costs; call add_stmt_cost for prologue and epilogue costs.
10511 (vect_model_induction_cost): Revise call to add_stmt_cost for body
10512 costs; call add_stmt_cost for prologue costs.
10513 * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
10514 list for function and arguments for calls to vect_get_load_cost and
10515 vect_get_store_cost.
10516 (vect_peeling_hash_get_lowest_cost): Change argument list for calls to
10517 vect_get_data_access_cost and vect_get_known_peeling_cost; use
10518 temporary vectors prologue_cost_vec and epilogue_cost_vec for the
10519 latter call and discard their results; rename stmt_cost_vec to
10520 body_cost_vec; correct possible storage leak for body_cost_vec.
10521 (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
10522 body_cost_vec.
10523 (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
10524 body_cost_vec; add extra dummy parameter on calls to
10525 vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
10526 argument list on call to add_stmt_cost.
10527 * tree-vect-stmts.c (record_stmt_cost): Change parameter list;
10528 rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
10529 builtin_vectorization_cost; add "where" parameter on call to
10530 add_stmt_cost.
10531 (vect_model_simple_cost): Change parameter list; call record_stmt_cost
10532 for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
10533 rename stmt_cost_vec to body_cost_vec.
10534 (vect_model_promotion_demotion_cost): Add vect_body argument to call
10535 to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
10536 to stmt_vinfo_set_outside_of_loop_cost.
10537 (vect_model_store_cost): Change parameter list; call record_stmt_cost
10538 for prologue costs; add vect_body argument to call to record_stmt_cost;
10539 rename stmt_cost_vec to body_cost_vec; remove call to
10540 stmt_vinfo_set_outside_of_loop_cost.
10541 (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
10542 vect_body argument to calls to record_stmt_cost.
10543 (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
10544 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
10545 remove call to stmt_vinfo_set_outside_of_loop_cost.
10546 (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
10547 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
10548 call record_stmt_cost for prologue costs.
10549 (vectorizable_store): Change argument list for call to
10550 vect_model_store_cost.
10551 (vectorizable_load): Change argument list for call to
10552 vect_model_load_cost.
10553 (new_stmt_vec_info): Remove assignment to
10554 STMT_VINFO_OUTSIDE_OF_LOOP_COST.
10555 * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
10556 (spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
10557 (spu_finish_cost): Add prologue and epilogue costs.
10558 * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
10559 (i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
10560 (i386_finish_cost): Add prologue and epilogue costs.
10561 * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
10562 costs.
10563 (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
10564 (rs6000_finish_cost): Add prologue and epilogue costs.
10565 * tree-vect-slp.c (vect_free_slp_instance): Rename
10566 SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
10567 (vect_create_new_slp_node): Remove assignment to
10568 SLP_TREE_OUTSIDE_OF_LOOP_COST.
10569 (vect_get_and_check_slp_defs): Change parameter list; change argument
10570 lists to calls to vect_model_store_cost and vect_model_simple_cost.
10571 (vect_build_slp_tree): Change parameter list; change argument lists
10572 to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
10573 recursive self-calls; remove setting of outside_cost from
10574 SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
10575 record_stmt_cost.
10576 (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
10577 rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
10578 remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
10579 prologue costs.
10580 (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
10581 body_cost_vec; handle null ci->stmt; add vect_body argument to call
10582 to add_stmt_cost; simplify calls to targetm.vectorize.
10583 builtin_vectorization_cost; return vec_prologue_cost and
10584 vec_epilogue_cost from finish_cost.
10585 (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
10586 body_cost_vec; add vect_body argument to call to add_stmt_cost.
10587
5e4aec98
RH
105882012-07-24 Richard Henderson <rth@redhat.com>
10589
10590 * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
10591 * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
10592 * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
10593 * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
10594 * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
10595 comment reference.
10596 * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
10597 * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
10598 (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
10599 * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
10600 * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
10601 * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
10602 * doc/tm.texi: Rebuild.
10603
cd1440b1
RH
106042012-07-24 Richard Henderson <rth@redhat.com>
10605
10606 * optabs.def: New file.
10607 * Makefile.in (OPTABS_H): Add insn-opinit.h.
10608 (MOSTLYCLEANFILES): Likewise.
10609 (insn-opinit.o): Remove reload.h
10610 (simple_rtl_generated_c): Remove insn-opinit.c.
10611 (s-opinit): New rule.
10612 (build/genopinit.o): Add optabs.def.
10613 * genopinit.c (rtx_upname): New.
10614 (optabs): Extract to optabs.def
10615 (enum optab_tag, struct optab_def_d, optabs): New.
10616 (struct pattern_d, patterns): New.
10617 (match_pattern): Split out from ...
10618 (gen_insn): ... here. Push matches on patterns vec.
10619 (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
10620 (header_file_name, source_file_name, handle_arg): New.
10621 (open_outfile): New.
10622 (main): Sort and emit new tables. Generate lookup_handler,
10623 raw_optab_handler, swap_optab_enable.
10624 * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
10625 * optabs.c (code_to_optab_): Remove.
10626 (hash_libfunc): Update for optab name change.
10627 (eq_libfunc): Likewise.
10628 (convert_optab_libfunc): Update computation of optab member;
10629 use the new convlib_def table.
10630 (optab_libfunc): Similarly.
10631 (set_optab_libfunc, set_conv_libfunc): Likewise.
10632 (sign_expand_binop): Use swap_optab_enable instead of fake optabs.
10633 (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
10634 (init_optabs): Don't call them; export the data to optabs.def.
10635 (gen_int_libfunc, gen_fp_libfunc): Export non-static.
10636 (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
10637 (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
10638 (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
10639 (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
10640 (gen_int_signed_fixed_libfunc): Likewise.
10641 (gen_int_unsigned_fixed_libfunc): Likewise.
10642 (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
10643 (gen_ufloat_conv_libfunc): Likewise.
10644 (gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
10645 (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
10646 (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
10647 (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
10648 (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
10649 (debug_optab_libfuncs): Update for optab representation change.
10650 * optabs.h: Include insn-opinit.h.
10651 (optab, convert_optab, direct_optab): New typedefs.
10652 (struct optab_handlers, struct widening_optab_handlers): Remove.
10653 (struct optab_libcall_d): Rename from optab_d; remove code_,
10654 handlers, widening members.
10655 (struct convert_optab_libcall_d): Rename from convert_optab_d;
10656 remove code_ and handlers members.
10657 (enum optab_index, enum convert_optab_index): Remove.
10658 (enum direct_optab_index): Remove.
10659 (code_to_optab_): Fix array range.
10660 (optab_to_code): Covert to inline function.
10661 (optab_to_code_, convlib_def, normlib_def): Declare.
10662 (raw_optab_handler, swap_optab_enable): Declare.
10663 (unknown_optab): Remove; export to optabs.def
10664 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
10665 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
10666 ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
10667 addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
10668 smul_widen_optab, umul_widen_optab, usmul_widen_optab,
10669 smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
10670 usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
10671 ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
10672 sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
10673 umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
10674 ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
10675 rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
10676 vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
10677 atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
10678 movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
10679 negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
10680 ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
10681 parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
10682 cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
10683 ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
10684 log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
10685 ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
10686 tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
10687 cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
10688 lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
10689 cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
10690 reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
10691 reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
10692 usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
10693 vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
10694 vec_realign_load_optab, vec_widen_umult_hi_optab,
10695 vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
10696 vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
10697 vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
10698 vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
10699 vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
10700 vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
10701 vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
10702 vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
10703 vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
10704 vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
10705 vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
10706 sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
10707 sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
10708 sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
10709 sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
10710 sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
10711 ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
10712 ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
10713 fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
10714 vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
10715 movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
10716 setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
10717 sync_lock_release_optab, sync_add_optab, sync_sub_optab,
10718 sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
10719 atomic_exchange_optab, atomic_compare_and_swap_optab,
10720 atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
10721 atomic_sub_fetch_optab, atomic_and_fetch_optab,
10722 atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
10723 atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
10724 atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
10725 atomic_add_optab, atomic_sub_optab, atomic_and_optab,
10726 atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
10727 atomic_always_lock_free_optab, atomic_is_lock_free_optab,
10728 atomic_thread_fence_optab, atomic_signal_fence_optab,
10729 vec_perm_optab, vec_perm_const_optab): Likewise.
10730 (struct target_optabs): Remove x_optab_table, x_convert_optab_table,
10731 and x_direct_optab_table members; add pat_enable.
10732 (optab_table, convert_optab_table, direct_optab_table): Remove.
10733 (optab_handler): Use raw_optab_handler.
10734 (widening_optab_handler, convert_optab_handler): Likewise.
10735 (set_optab_handler, set_widening_optab_handler): Remove.
10736 (set_convert_optab_handler, set_direct_optab_handler): Remove.
10737 (direct_optab_handler): Defer to optab_handler.
10738 * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.
10739
4cdf5307
JM
107402012-07-24 Jason Merrill <jason@redhat.com>
10741
10742 * bitmap.c (bitmap_descriptor): Adjust order of parameters to
10743 match MEM_STAT_DECL.
10744 * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.
10745
2225b9f2
RH
107462012-07-24 Richard Henderson <rth@redhat.com>
10747
19b5fafb
RH
10748 * optabs.h (struct optab_d): Rename code member to code_.
10749 (struct convert_optab_h): Likewise.
10750 (code_to_optab_): Rename from code_to_optab.
10751 (code_to_optab, optab_to_code): New.
10752 * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
10753 * ifcvt.c (noce_emit_move_insn): Likewise.
10754 * optabs.c (simplify_expand_binop): Use optab_to_code.
10755 (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
10756 (avoid_expensive_constant, expand_binop_directly): Likewise.
10757 (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
10758 (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
10759 (have_insn_for, debug_optab_libfuncs): Likewise.
10760 (init_optab, init_optabv, init_convert_optab): Update for optab
10761 member name change.
10762
723cd7ab
RH
10763 * libfuncs.h: Include optabs.h.
10764 * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
10765 * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
10766 (lto-streamer-in.o, dwarf2out.o): Update deps.
10767
2225b9f2
RH
10768 * optabs.h (unknown_optab): New.
10769 * builtins.c (interclass_mathfn_icode): Use it.
10770 * dojump.c (do_compare_rtx_and_jump): Likewise.
10771 * optabs.c (optab_for_tree_code, expand_binop): Likewise.
10772 * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
10773 (expand_vector_operations_1): Likewise.
10774 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
10775 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
10776
e040476c
SB
107772012-07-24 Steven Bosscher <steven@gcc.gnu.org>
10778
10779 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
10780
9594fe5e
RR
107812012-07-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10782
10783 PR target/54051
10784 * config/arm/arm.c (arm_print_operand_address): Remove superfluous
10785 printing of 0.
10786 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
10787 specifier.
10788 ("neon_vld3_lane<mode>":VMQ): Likewise.
10789 ("neon_vld3_dup<mode>":VDX): Likewise.
10790 ("neon_vst3_lane<mode>":VD): Likewise.
10791 ("neon_vst3_lane<mode>":VMQ): Likewise.
10792
e2a6dd68
RM
107932012-07-24 Roland McGrath <mcgrathr@google.com>
10794
9594fe5e 10795 * arm.c (arm_get_frame_offsets): Don't use fixed regs for
e2a6dd68
RM
10796 stack alignment padding.
10797
9fecd005
UB
107982012-07-24 Uros Bizjak <ubizjak@gmail.com>
10799
10800 PR target/53961
10801 * config/i386/i386.c (ix86_legitimate_address_p): Move check for
658e8eba 10802 negative constant address for TARGET_X32 ...
9fecd005
UB
10803 (ix86_decompose_address): ... here. Reject constant addresses
10804 that don't satisfy x86_64_immediate_operand predicate.
10805
552b56fc
JB
108062012-07-24 Julian Brown <julian@codesourcery.com>
10807
9fecd005 10808 * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
552b56fc 10809
7aa6d18a
SB
108102012-07-24 Steven Bosscher <steven@gcc.gnu.org>
10811
10812 * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
10813 Move test to check that there is a popcount function for the the number
10814 of bits in SBITMAP_ELT_BITS to sbitmap.c.
10815 * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
10816 MEM_STAT_INFO): Define in terms of their ALONE counterparts.
10817
10818 * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
10819 * configure: Regenerate.
10820 * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
10821 (GCC_MEM_STAT_ARGUMENTS): New define.
10822 (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
10823 (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
9fecd005
UB
10824 (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
10825 FINAL_PASS_MEM_STAT): Define.
7aa6d18a
SB
10826 * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
10827 * ggc.h (ggc_record_overhead, ggc_free_overhead,
10828 ggc_prune_overhead_list): Remove internal prototypes, they are defined
10829 already in ggc-internal.h.
10830 * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
10831 wrappers.
10832 (add_statistics): Likewise.
9fecd005 10833 (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
7aa6d18a
SB
10834 * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
10835 wrappers around "survived" and "stats" members.
10836 (alloc_large_page): Always initialize survived.
10837 (ggc_internal_alloc_zone_stat): Likewise.
10838 Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if
10839 GATHER_STATISTICS is non-0.
10840 (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
10841 (sweep_pages): Always increase survived.
10842 (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
10843 (calculate_average_page_survival): Always define.
10844 (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
10845 (ggc_print_statistics): Likewise.
10846 (ggc_pch_read): Likewise.
10847 * ggc-page.c (struct globals): Always define "stats" member.
10848 (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
10849 (ggc_free): Likewise.
10850 (ggc_collec): Likewise.
10851 (ggc_print_statistics): Likewise.
10852 * bitmap.h (struct bitmap_head_def): Always define "desc" member.
10853 (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
10854 * gimple.h (enum gimple_alloc_kind): Always define.
10855 (gimple_alloc_kind): Likewise.
10856 * tree-flow.h (phinodes_print_statistics): Always define.
10857 (ssanames_print_statistics): Likewise.
10858 * vec.h (vec_heap_free): Always define.
10859 (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
10860 * alloc-pool.c (alloc_pool_descriptor): Always define.
10861 (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
10862 (empty_alloc_pool): Likewise.
10863 (pool_alloc): Likewise.
10864 (pool_free): Likewise.
10865 (dump_alloc_pool_statistics): Likewise.
10866 (print_statistics): Always define.
10867 * bitmap.c (struct bitmap_descriptor): Always define.
10868 (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
10869 (register_overhead): Always define.
10870 (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
10871 (bitmap_element_allocate): Likewise.
10872 (bitmap_elt_clear_from): Likewise.
10873 (bitmap_obstack_alloc_stat): Likewise.
10874 (bitmap_gc_alloc_stat): Likewise.
10875 (bitmap_obstack_free): Likewise.
10876 (bitmap_find_bit): Likewise.
10877 (bitmap_ior_and_into): Likewise.
10878 (bitmap_print): Likewise.
10879 (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
10880 * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
10881 (gimple_alloc_kind_names): Likewise.
10882 (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
10883 (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
10884 * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
10885 rtvec_alloc_sizes): Always define.
10886 (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
10887 (rtx_alloc_stat): Likewise.
10888 (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
10889 * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
10890 tree_node_sizes, tree_node_kind_names): Always define.
10891 (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
10892 to if-code.
10893 (type_hash_canon): Likewise.
10894 (dump_tree_statistics): Likewise.
10895 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
10896 Always define.
10897 (ssanames_print_statistics): Likewise.
10898 (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
10899 * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
10900 (phinodes_print_statistics): Likewise.
10901 (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
10902 * vec.c (struct vec_descriptor): Always define.
10903 (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
10904 vec_descriptor, rester_overhead, free_overhead): Likewise.
10905 (cmp_statistic): Likewise.
10906 (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
10907 (vec_heap_o_reserve_1): Likewise.
10908 (dump_vec_loc_statistics): Likewise.
10909
38ad2d07
RG
109102012-07-24 Richard Guenther <rguenther@suse.de>
10911
10912 PR tree-optimization/53616
10913 * tree-loop-distribution.c (ldist_gen): Do not change
10914 partition ordering when merging partitions.
10915
d32d6b75
AM
109162012-07-24 Alan Modra <amodra@gmail.com>
10917
10918 PR target/53914
10919 PR target/54009
10920 * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
10921 * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
10922 Adjust all rs6000_legitimate_offset_address_p calls.
10923 * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
10924 (rs6000_secondary_reload_gpr): Declare.
10925 (rs6000_legitimate_offset_address_p): Update prototype.
10926 (rs6000_offsettable_memref_p): Delete.
10927 (rs6000_secondary_reload_ppc64): Delete.
10928 * config/rs6000/rs6000.c (address_offset): New function.
10929 (mem_operand_gpr): Likewise.
10930 (rs6000_legitimate_offset_address_p): Add worst_case param. When
10931 not worst_case assume class of regs with least restrictive offsets.
10932 Adjust all calls.
10933 (legitimate_lo_sum_address_p): Simplify register mode tests.
10934 (rs6000_legitimize_address): Likewise. Assume best case offset
10935 addressing. Combine ELF and MACHO lo_sum code.
10936 (rs6000_mode_dependent_address): Correct offset addressing limits.
10937 (rs6000_offsettable_memref_p): Make static, add reg_mode param.
10938 Use reg_mode to help rs6000_legitimate_offset_address_p.
10939 (rs6000_secondary_reload): Use address_offset. Handle 32-bit multi
10940 gpr load/store when offset too large.
10941 (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
10942 (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
10943 * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
10944 for gpr load/store. Order alternatives as r->Y,Y->r,r->r and
10945 d->m,m->d,d->d. Correct size of gpr load/store.
10946 (movdf_softfloat32): Use 'Y' constraint for gpr load/store. Order
10947 alternatives.
10948 (movti_ppc64): Likewise.
10949 (movdi_internal32): Likewise. Also disparage fprs.
10950 (movdi_mfpgpr, movdi_internal64): Likewise.
10951 (movtf_internal): Use 'm' for fpr load/store. Order alternatives.
10952 (movtf_softfloat): Order alternatives.
10953 (extenddftf2_internal): Use 'm' and 'Y' for store.
10954 (movti_power, movti_string): Use 'Y' for gpr load/store. Order.
10955 (stack_protect_setdi, stack_protect_testdi): Likewise.
10956 (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
10957 (movdf_softfloat64): Likewise.
10958 (reload_<mode>_store): Adjust reload_di_store to provide
10959 reload_si_store as well.
10960 (reload_<mode>_load): Likewise.
10961
ef812306
OE
109622012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
10963
10964 PR target/51244
10965 * config/sh/predicates.md (general_movsrc_operand,
10966 general_movdst_operand): Reject T_REG.
10967 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
10968 movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
10969 Remove T_REG alternatives.
10970 (*negtstsi): New insn.
10971
5734aefd
OE
109722012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
10973
10974 PR target/53511
10975 * config/sh/sh.md (mulsf3_ie): Delete.
10976 (mulsf3_i4): Rename to mulsf3_i.
10977 (mulsf3): Emit mulsf3_i insn.
10978
dad6fafd
OE
109792012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
10980
10981 * config/sh/sh.md (addc1, subc1): Delete.
10982 (adddi3_compact): Use addc instead of addc1.
10983 (subdi3_compact): Use subc instead of subc1.
10984
8046c604
UB
109852012-07-23 Uros Bizjak <ubizjak@gmail.com>
10986
1791f36f 10987 * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
8046c604
UB
10988 * config/i386/i386.c (ix86_lea_outperforms): Make static. Make
10989 split_cost argument signed.
10990 (ix86_avoid_lea_for_add): Cleanup.
10991 (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
10992 (ix86_avoid_lea_for_addr): Ditto. Make split_cost signed.
10993 Use gen_lowpart instead of gen_rtx_SUBREG. Cleanup.
10994
7839a79c
UW
109952012-07-23 Ulrich Weigand <ulrich.weigand@linaro.org>
10996
10997 * config/arm/arm.c (arm_reorg): Ensure all insns are split.
10998
7a49d85e
UB
109992012-07-23 Uros Bizjak <ubizjak@gmail.com>
11000
11001 PR target/53961
11002 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
11003 * config/i386/i386.c (ix86_print_operand_address): Ditto.
11004 (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
11005 addresses. Prevent zero extensions of CONST_INT operands.
11006
7aa6d18a 110072012-07-23 Steven Bosscher <steven@gcc.gnu.org>
3c2c4f22
SB
11008
11009 * sbitmap.h (struct int_list): Remove.
11010 (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
11011 Remove prototypes of non-existing function.
11012 (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
11013 sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
11014 unused defines.
11015 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
11016 sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
11017 * basic-block.h: ... here.
11018 * sbitmap.c: Do not include basic-block.h.
11019 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
11020 sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
11021 * cfganal.c: ... here.
11022 * bt-load.c (compute_out, link_btr_uses): Update for above changes.
11023 * gcse.c (compute_code_hoist_vbeinout): Likewise.
11024 * lcm.c (compute_antinout_edge, compute_available): Likewise.
11025 * Makefile.in: Fix sbitmap.o dependencies.
11026
afa63532
JBG
110272012-07-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11028 Nick Clifton <nickc@redhat.com>
11029
11030 * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
11031 * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
11032 (unused) parameter to void *.
11033
fdc030e8
RG
110342012-07-23 Richard Guenther <rguenther@suse.de>
11035
11036 * tree-ssa-alias.c (dump_alias_info): Walk over local decls
11037 instead of referenced vars.
11038
7aa6d18a 110392012-07-23 Steven Bosscher <steven@gcc.gnu.org>
efbb59b2
SB
11040
11041 * coverage.c: Refer to "notes file" instead of "graph file"
11042 in all comments. Explain history of bbg prefix.
11043 * gcov-io.h: Likewise.
11044 * gcov.c: Likewise.
11045 (find_source): Likewise in fnotice.
11046 (read_graph_file): Likewise.
11047 (read_count_file): Likewise.
11048 * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file"
11049 and "data file" explicitly in the explanation of the files.
11050
25632d2e
SB
110512012-07-22 Steven Bosscher <steven@gcc.gnu.org>
11052
11053 PR tree-optimization/53881
11054 * tree-cfg.c (group_case_labels_stmt): Look up the basic block
11055 for each label and compare them instead of labels.
11056
9696c529
SB
110572012-07-22 Steven Bosscher <steven@gcc.gnu.org>
11058
7a49d85e 11059 * opts.c (common_handle_option): Do not set
9696c529
SB
11060 flag_value_profile_transformations for -fprofile-generate.
11061 * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
11062 (BB_TO_GCOV_INDEX): Remove.
11063 (output_location): Don't use it.
11064 (branch_prob): Likewise. Don't fiddle with the index of
11065 ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks.
11066 (find_spanning_tree):
11067 * gcov.c (struct function_info): Document that blocks 0 and 1
11068 are the entry resp. exit blocks in gcov, too, like in GCC itself.
11069 (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
11070 blocks identification.
11071 (output_lines): Likewise.
11072 * value-prof.c (gimple_value_profile_transformations): Do not
11073 test flag_value_profile_transformations again.
11074 (gimple_ic_transform): Take a gimple_stmt_iterator like all other
11075 transformation functions.
11076 (gimple_values_to_profile):
11077 Don't test flag_value_profile_transformations
11078 * tree-profile.c (tree_profiling): Assert that the cgraph is in
11079 the CGRAPH_STATE_IPA_SSA state.
11080 Do not set, or look at, after_tree_profile.
11081 * function.h (struct function): Remove after_tree_profile bit.
11082 * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
11083 * tree-inline.c (initialize_cfun): Don't copy it.
11084 * lto-streamer-out.c (output_struct_function_base): Don't stream it.
11085 * lto-streamer-in.c (input_struct_function_base): Likewise.
11086
a594120b
OE
110872012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
11088
11089 * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
11090 (SH_DYNAMIC_SHIFT_COST): Use it.
11091 * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
11092 (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
11093 Add sanity check for input value. Add function description.
11094 * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
11095 lshrsi3_d): Use TARGET_DYNSHIFT.
11096
7222fdd8
OE
110972012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
11098
11099 * config/sh/sh.md (negc): Delete expander.
11100 (*negc): Rename insn to negc.
11101
888b670f
UB
111022012-07-22 Uros Bizjak <ubizjak@gmail.com>
11103
11104 PR target/53961
11105 * config/i386/i386.md (*lea): New insn pattern.
11106 (*lea_1): Remove.
11107 (*lea<mode>_2): Ditto.
11108 (*lea_{3,4,5,6}_zext): Ditto.
658e8eba
UB
11109 * config/i386/predicates.md (lea_address_operand): Do not reject
11110 zero-extended address operands.
888b670f
UB
11111 * config/i386/constraints.md (j): Remove address constraint.
11112 * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
11113 of an address.
11114 (ix86_print_operand_address): Handle SImode subreg of an address.
78aaa514 11115 (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
888b670f 11116
922a784c
HPN
111172012-07-22 Hans-Peter Nilsson <hp@axis.com>
11118
11119 Emit executable-stack note correctly for CRIS targets.
11120 * config/cris/cris.c (cris_file_end): New function.
11121 (TARGET_ASM_FILE_END): Define.
11122
eb448bee
CLT
111232012-07-22 Chung-Lin Tang <cltang@codesourcery.com>
11124 Maxim Kuvyrkov <maxim@codesourcery.com>
11125 NetLogic Microsystems Inc.
11126
11127 * config/mips/mips.c (mips_issue_rate): Handle XLP.
11128 * config/mips/mips.md: Include xlp.md.
11129 * config/mips/xlp.md: New file.
11130
5e3dbb3b
SB
111312012-07-21 Steven Bosscher <steven@gcc.gnu.org>
11132
11133 PR gcov-profile/32543
11134 * profile.c (branch_prob): Update total_num_edges_instrumented and
11135 report the number of edges to instrument.
11136
55f7c481
OE
111372012-07-21 Oleg Endo <olegendo@gcc.gnu.org>
11138
11139 * config/sh/sh.md: Correct comment regarding clrt and sett insns.
11140
c55963eb
AP
111412012-07-21 Andrew Pinski <apinski@cavium.com>
11142
11143 * config/mips/mips.md (*popcountdi2_trunc): New pattern
11144 to handle popcount of a truncation.
11145
aea21190
AP
111462012-07-21 Andrew Pinski <apinski@cavium.com>
11147
11148 * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
11149 Add a bool argument.
11150 * config/mips/mips.c (mips_block_move_straight): Update call to
11151 mips_expand_ext_as_unaligned_load.
11152 (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
11153 Accept DImode dest when the width is that of SImode.
888b670f 11154 * config/mips/mips.md (extv): Update call to
aea21190
AP
11155 mips_expand_ext_as_unaligned_load.
11156 (extzv): Likewise.
11157
5621a843
AP
111582012-07-21 Andrew Pinski <apinski@cavium.com>
11159
11160 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
11161 adjust_address.
11162
3088716e
MK
111632012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
11164
11165 * config/mips/mips.md (define_attr sync_*): Move before "type".
11166 (define_attr "type"): New values "atomic" and "syncloop".
11167 * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
11168 Set "type" attribute.
11169 * config/mips/generic.md (generic_atomic, generic_syncloop):
11170 New reservations.
11171 * gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
11172 * gcc/config/mips/24k.md, gcc/config/mips/4130.md,
888b670f 11173 * gcc/config/mips/4k.md, gcc/config/mips/5400.md,
3088716e 11174 * gcc/config/mips/5500.md, gcc/config/mips/5k.md,
888b670f 11175 * gcc/config/mips/7000.md, gcc/config/mips/74k.md,
3088716e
MK
11176 * gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
11177 * gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
11178 * gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
11179 * gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
11180
56e25830
OE
111812012-07-20 Oleg Endo <olegendo@gcc.gnu.org>
11182
11183 * config/sh/sh.md: Group and sort shift related patterns.
11184 (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
11185
c21a1dbb
HPN
111862012-07-20 Hans-Peter Nilsson <hp@axis.com>
11187
11188 * config/cris/cris.c (cris_asm_output_ident): Remove unused
11189 local variables section_asm_op, size, buf.
11190
714b8718
PH
111912012-07-20 Pat Haugen <pthaugen@us.ibm.com>
11192 Steven Bosscher <steven@gcc.gnu.org>
3e31cf28 11193
714b8718
PH
11194 * config/rs6000/power4.md (power4-store-update): Fix reservation.
11195 (power4-three): Likewise.
11196
ad05f87b 111972012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
2ced0ae8 11198 Greta Yorsh <Greta.Yorsh@arm.com>
ad05f87b 11199
2ced0ae8
OE
11200 * config/arm/arm.c (arm_cortex_a15_tune): New tune.
11201 * config/arm/arm-cores.def (cortex-a15): Use it.
ad05f87b 11202
ab3dfff7 112032012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
2ced0ae8
OE
11204 Greta Yorsh <Greta.Yorsh@arm.com>
11205
11206 * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
11207 * config/arm/arm.c (arm_slowmul_tune): Initialize it.
11208 (arm_fastmul_tune, arm_strongarm_tune): Likewise.
11209 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
11210 (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
11211 (arm_fa726te_tune): Likewise.
ab3dfff7 11212
824f71b9
RG
112132012-07-20 Richard Guenther <rguenther@suse.de>
11214
11215 * tree-dfa.c (collect_dfa_stats): Simplify.
11216 * tree-ssa-structalias.c (compute_may_aliases): Do not dump
11217 referenced vars.
11218 * cfgexpand.c (estimated_stack_frame_size): Walk over local
11219 decls instead of referenced vars.
11220 * tree-ssa.c (delete_tree_ssa): Simplify.
11221 * tree-tailcall.c (find_tail_calls): Walk over local decls
11222 instead of referenced vars.
11223 (add_virtual_phis): Remove.
11224 (tree_optimize_tail_calls_1): Instead mark the virtual operand
11225 for renaming.
11226
c4669594
SB
112272012-07-20 Steven Bosscher <steven@gcc.gnu.org>
11228
11229 * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
11230 (brief_dump_cfg): Update prototype to take flags argument.
11231 (check_bb_profile): Remove prototype.
11232 * tracer.c (tracer): Update brief_dump_cfg calls.
11233 * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
11234 Call dump_bb_info before and after the cfghook dump_bb. Terminate
11235 the dump with a newline.
11236 (dump_flow_info): Do not call check_bb_profile.
11237 * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
11238 (check_bb_profile): Make static. Take indent and flags arguments.
11239 (dump_bb_info): Always dump loop depth. With TDF_DETAILS, call
11240 check_bb_profile. Print one edge per line.
11241 (brief_dump_cfg): Take a flags argument, and filter out
11242 TDF_COMMENT and TDF_DETAILS.
11243 * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
888b670f
UB
11244 * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
11245 dump_bb_info here, it is already called from dump_bb. Idem for
11246 check_bb_profile.
c4669594
SB
11247 (dump_gimple_bb_footer): Likewise.
11248 (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
11249 avoid broken dumps for statement histograms.
11250 (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do
11251 not call pp_flush here, the buffer should be empty.
11252 * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
11253 * sched-vis.c (debug_bb_slim): Likewise.
11254 * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
11255 (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
11256 (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
11257 (dump_function_to_file): Do not call check_bb_profile on
11258 ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
11259 Use dump_bb instead of gimple_dump_bb.
11260 (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
11261 * passes.c (execute_function_dump): Always call print_rtl_with_bb
11262 for RTL dumps.
11263 * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
888b670f
UB
11264 CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
11265 bottom of each basic block.
c4669594 11266
a0969677
RG
112672012-07-20 Richard Guenther <rguenther@suse.de>
11268
11269 PR tree-optimization/54031
11270 * tree-ssa-ccp.c (get_value_from_alignment): Use
11271 get_pointer_alignment_1.
11272
ae0379fc
RG
112732012-07-20 Richard Guenther <rguenther@suse.de>
11274
11275 * tree-inline.c (add_local_variables): Remove check_var_ann
11276 parameter and dead code.
11277 (expand_call_inline): Adjust.
11278 (tree_function_versioning): Likewise.
11279
332f1d24
JJ
112802012-07-20 Jakub Jelinek <jakub@redhat.com>
11281
11282 PR c++/28656
11283 * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
11284 of just the first one.
11285
3c82efd9
RG
112862012-07-20 Richard Guenther <rguenther@suse.de>
11287
11288 * builtins.c (get_object_alignment_2): Correct offset handling
11289 when using type alignment of a MEM_REF kind base.
11290
83c8cdd7
KY
112912012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
11292
11293 PR target/53877
11294 * config/i386/lzcntintrin.h (_lzcnt_u32): New.
11295 (_lzcnt_u64): Ditto.
11296
cb40a885
EB
112972012-07-19 Eric Botcazou <ebotcazou@adacore.com>
11298
11299 * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
11300
9402220c
EB
113012012-07-19 Eric Botcazou <ebotcazou@adacore.com>
11302
11303 * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
11304 defining statement is a SSA name that occurs in abnormal PHIs.
11305
a3628196
EB
113062012-07-19 Eric Botcazou <ebotcazou@adacore.com>
11307
11308 * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
11309 conversions.
11310
f9fef349
JJ
113112012-07-19 Jakub Jelinek <jakub@redhat.com>
11312
11313 PR rtl-optimization/53942
11314 * function.c (assign_parm_setup_reg): Avoid zero/sign extension
11315 directly from likely spilled non-fixed hard registers, move them
11316 to pseudo first.
11317
fdb45c0c
SE
113182012-07-19 Steve Ellcey <sellcey@mips.com>
11319
11320 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
11321 MIPS16 mode.
11322
e1310984
JM
113232012-07-19 Jason Merrill <jason@redhat.com>
11324
11325 PR debug/53235
11326 * dwarf2out.c (get_die_parent): New.
11327 (generate_type_signature): Use it.
11328
dee54b6e
RH
113292012-07-19 Richard Henderson <rth@redhat.com>
11330
1312c276
RH
11331 * config/ia64/vect.md (smulv4hi3_highpart): New.
11332 (umulv4hi3_highpart): New.
11333 (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
11334 (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
11335 (udot_prodv8qi, sdot_prodv8qi): Remove.
11336 (sdot_prodv4hi, udot_prodv4hi): Remove.
11337 * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
11338 * config/ia64/ia64-protos.h: Update.
11339
e6d4f8f5
RH
11340 * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
11341 vectors larger than UNITS_PER_WORD.
11342
dee54b6e
RH
11343 * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
11344 * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
11345 dummy != CODE_FOR_nothing value.
11346
9786913b
UB
113472012-07-19 Uros Bizjak <ubizjak@gmail.com>
11348
11349 * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
11350 * doc/tm.texi: Regenerate.
11351 * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
11352 * config/sh/sh.h (MODE_AFTER): Update.
11353 * config/epiphany/epiphany.h (MODE_AFTER): Update.
11354
65e7bfe3
JJ
113552012-07-19 Jakub Jelinek <jakub@redhat.com>
11356
11357 PR middle-end/54017
11358 * tree-cfgcleanup.c (cleanup_omp_return): Remove.
11359 (cleanup_tree_cfg_bb): Don't call it.
11360 * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
11361 handling.
11362
867ff7ed
CB
113632012-07-19 Christian Bruel <christian.bruel@st.com>
11364
11365 PR target/54029
11366 * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
11367
95cbf851 113682012-07-19 Richard Guenther <rguenther@suse.de>
9786913b 11369 Eric Botcazou <ebotcazou@adacore.com>
95cbf851
RG
11370
11371 * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
11372 about transition from invariant to known bits.
9786913b 11373 (likely_value): Addresses with UNDEFINED components are UNDEFINED.
95cbf851 11374
cd1cae35
RG
113752012-07-19 Richard Guenther <rguenther@suse.de>
11376
11377 PR tree-optimization/53970
9786913b
UB
11378 * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
11379
bf1431e3
TG
113802012-07-19 Tristan Gingold <gingold@adacore.com>
11381 Richard Henderson <rth@redhat.com>
11382
11383 * opts.c (finish_options): Handle UI_SEH.
11384 * expr.c (build_personality_function): Handle UI_SEH.
11385 * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
11386 * coretypes.h (unwind_info_type): Add UI_SEH.
11387 * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
11388 New function.
11389 (i386_pe_seh_init_sections): Likewise.
11390 * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
11391 (TARGET_ASM_INIT_SECTIONS): Define.
11392 * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
11393 (i386_except_unwind_info): New function.
11394
5cb5a23f
MR
113952012-07-18 Maciej W. Rozycki <macro@codesourcery.com>
11396 Chao-ying Fu <fu@mips.com>
11397
11398 * config/mips/mips.opt (mmcu): New option.
9786913b 11399 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5cb5a23f
MR
11400 _mips_mcu when TARGET_MCU.
11401 (ASM_SPEC): Pass mcu options to the assembler.
11402 * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
11403
cc5476cb
RC
114042012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org>
11405
9786913b
UB
11406 * config.gcc (v850-*-rtems*): New target.
11407 * config/v850/rtems.h: New.
11408 * config/v850/t-rtems: New.
cc5476cb 11409
75cfe445
BS
114102012-07-18 Bill Schmidt <wschmidt@linux.ibm.com>
11411
11412 * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
11413 of flags controlling optimization; add -ftree-slsr to list of flags
11414 enabled by default at -O; add -fhoist-adjacent-loads to list of flags
11415 enabled by default at -O2; add -fvect-cost-model to list of flags
11416 enabled by default at -O3; document -fhoist-adjacent-loads and
11417 -ftree-slsr.
11418 * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
11419 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
11420 flag_tree_slsr.
11421 * common.opt: Add -ftree-slsr with flag_tree_slsr.
11422
edd5e900
JZ
114232012-07-18 Jie Zhang <jzhang918@gmail.com>
11424 Julian Brown <julian@codesourcery.com>
11425
9786913b 11426 * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
edd5e900
JZ
11427 (arm_size_rtx_costs): Likewise.
11428 (neon_valid_immediate): Add a case for double 0.0.
11429
392e87f6
AS
114302012-07-18 Andrew Stubbs <ams@codesourcery.com>
11431 Mark Shinwell <shinwell@codesourcery.com>
11432 Julian Brown <julian@codesourcery.com>
11433
392e87f6
AS
11434 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
11435 (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
11436 (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
11437 (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
11438 neon_type.
11439 * config/arm/arm.md (neon_type): Update comment.
11440
4c9bcf89
RG
114412012-07-18 Richard Guenther <rguenther@suse.de>
11442
11443 PR tree-optimization/53970
11444 * tree.h (contains_packed_reference): Remove.
11445 * expr.c (contains_packed_reference): Likewise.
11446 * tree-vect-data-refs.c (not_size_aligned): New function.
11447 (vector_alignment_reachable_p): Use it.
11448 (vect_supportable_dr_alignment): Likewise.
11449
b0f4a35f
RG
114502012-07-18 Richard Guenther <rguenther@suse.de>
11451
11452 * tree.h (get_object_or_type_alignment): Remove.
11453 * builtins.c (get_object_alignment_2): New function copied from
11454 get_object_alignment_1. Take extra argument to indicate whether
11455 we take the address of EXP. Rework to use type alignment information
11456 if not, and return whether the result is an approximation or not.
11457 (get_object_alignment_1): Wrap around get_object_alignment_2.
11458 (get_pointer_alignment_1): Call get_object_alignment_2 indicating
11459 we take the address.
11460 (get_object_or_type_alignment): Remove.
11461 * expr.c (expand_assignment): Call get_object_alignment.
11462 (expand_expr_real_1): Likewise.
11463
59194a3c
NC
114642012-07-18 Nick Clifton <nickc@redhat.com>
11465
11466 * doc/invoke.texi (ARM Options): Document -munaligned-access.
11467
ee04b091
OE
114682012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
11469
11470 * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
11471 expander. Use arith_reg_dest predicate.
11472 (rotldi3, rotrdi3): Remove constraints in expander.
11473 (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
11474 ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
11475 insn_and_split.
11476
13f1f508
OE
114772012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
11478
11479 PR target/33135
11480 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct
11481 description.
59194a3c 11482 * config/sh/sh.c (sh_option_override): Do not change
13f1f508
OE
11483 flag_finite_math_only. Set TARGET_IEEE to complement of
11484 flag_finite_math_only.
11485 * doc/invoke.texi (SH options): Add mno-ieee. Correct description
11486 of mieee and mno-ieee behavior.
11487
512ab654
SB
114882012-07-18 Steven Bosscher <steven@gcc.gnu.org>
11489
11490 * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
11491
a315c44c
SB
114922012-07-18 Steven Bosscher <steven@gcc.gnu.org>
11493
11494 * dumpfile.h (TDF_COMMENT): New define.
11495 * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
11496 EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
11497 EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
11498 EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
11499 Move to new file cfg-flags.h.
11500 (enum cfg_edge_flags): New enum, using cfg-flags.h.
11501 (EDGE_ALL_FLAGS): Compute value automatically.
11502 (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
11503 BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
11504 BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
11505 BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
11506 BB_IN_TRANSACTION): Move to new file cfg-flags.h.
11507 (enum bb_flags): Rename to cfg_bb_flags. Use cfg-flags.h.
11508 (BB_ALL_FLAGS): New, compute value automatically.
11509 (dump_bb_info): Update prototype.
11510 (dump_edge_info): Update prototype.
11511 * cfg-flags.h: New file.
11512 * cfg.c (dump_edge_info): Take flags argument. Be verbose only if
11513 TDF_DETAILS and not TDF_SLIM. Include cfg-flags.h for bitnames.
11514 Check that the edge flags are within the range of EDGE_ALL_FLAGS.
11515 (debug_bb): Update dump_bb call.
11516 (dump_cfg_bb_info): Remove.
11517 (dump_bb_info): New function. Use cfg-flags.h for bitnames.
11518 Adjust verbosity using TDF_* flags. Check that the basic block flags
11519 are within the range of BB_ALL_FLAGS.
11520 (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
11521 * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
11522 first for consistency with other dump functions.
11523 (dump_bb): Update prototype accordingly.
11524 * cfghooks.c: Include dumpfile.h.
11525 (verify_flow_info): Update dump_edge_info calls.
11526 (dump_bb): Take a flags argument and pass it around.
11527 Use dump_bb_info to dump common information about a basic block.
11528 (dump_flow_info): Moved here from cfgrtl.c. Make IL agnostic.
11529 (debug_flow_info): Moved here from cfgrtl.c.
11530 * profile.c (is_edge_inconsistent): Update dump_bb calls.
11531 * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
11532 * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
11533 print_rtl_slim_with_bb): Remove prototypes.
11534 (dump_insn_slim): Adjust prototype to take a const_rtx.
11535 (print_rtl_with_bb): Adjust prototype.
11536 * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
11537 * sched-vis.c (dump_insn_slim): Take a const_rtx.
11538 (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
11539 (print_rtl_slim_with_bb): Remove.
11540 (print_rtl_slim): Rename to debug_rtl_slim. Print only insn info,
11541 not basic block info (print_rtl_with_bb with TDF_SLIM should be used
11542 for that. Prototype here near DEBUG_FUNCTION marker.
11543 (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
11544 Use dump_bb.
11545 (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
11546 * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
11547 (remove_bb): Update dump_bb call.
11548 (gimple_debug_bb): Use dump_bb.
11549 (dump_function_to_file): Update gimple_dump_bb call.
11550 (print_loops_bb): Likewise.
11551 * tree-flow.h (gimple_dump_bb): Update prototype.
11552 * gimple-pretty-print.c (dump_bb_header): Rename to
11553 dump_gimple_bb_header. Write to a stream instead of a pretty
11554 printer. Use dump_bb_info to dump basic block info.
11555 (dump_bb_end): Rename to dump_gimple_bb_footer. Write to a
11556 stream instead of a pretty printer. Use dump_bb_info.
11557 (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
11558 (gimple_dump_bb): Do it here with dump_gimple_bb_header and
11559 dump_gimple_bb_footer.
11560 * cfgrtl.c (rtl_dump_bb): Update prototype. Only dump DF if the
11561 dump flags have TDF_DETAILS. Use dump_insn_slim if TDF_SLIM.
11562 (print_rtl_with_bb): Take a flags argument and pass it around.
11563 Use dump_insn_slim if TDF_SLIM.
11564 (dump_bb_info): Removed and re-incarnated in cfg.c.
11565 (dump_flow_info): Moved to cfghooks.c.
11566 (debug_flow_info): Moved to cfghooks.c.
11567 * passes.c (execute_function_dump): Unconditionally use
11568 print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
11569 * final.c (dump_basic_block_info): Update dump_edge_info calls.
11570 * tree-vrp.c (dump_asserts_for): Likewise.
11571 * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
11572 * tree-if-conv.c (if_convertible_bb_p): Don't look at
11573 EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
11574 * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
11575 for the same reason.
11576 * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
11577
65876d24
RG
115782012-07-17 Richard Guenther <rguenther@suse.de>
11579
11580 * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
11581 vars here, use create_tmp_reg where appropriate.
11582 (vect_create_addr_base_for_vector_ref): Do not add referenced
11583 vars here, use create_tmp_reg where appropriate.
11584 (vect_create_data_ref_ptr): Likewise.
11585 (vect_create_destination_var): Likewise.
11586 (vect_permute_store_chain): Likewise.
11587 (vect_permute_load_chain): Likewise.
11588 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
11589 Likewise.
11590 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
11591 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
11592 (vect_handle_widen_op_by_const): Likewise.
11593 * tree-vect-stmts.c (vect_init_vector): Likewise.
11594 (vectorizable_load): Likewise.
11595
7cb151c0
TV
115962012-07-17 Tom de Vries <tom@codesourcery.com>
11597
11598 * hwint.c: Fix loop range.
11599
440b6d59
TV
116002012-07-17 Tom de Vries <tom@codesourcery.com>
11601
11602 * double-int.h (double_int_popcount): New inline function.
11603 * hwint.c (popcount_hwi): New function.
11604 * hwint.h (popcount_hwi): Declare function. New inline function.
11605
a86ec597
RH
116062012-07-17 Richard Henderson <rth@redhat.com>
11607
11608 * tree-vect-stmts.c (supportable_widening_operation): Remove decl
11609 parameters.
11610 (vectorizable_conversion): Update supportable_widening_operation call.
11611 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
11612 (vect_recog_widen_shift_pattern): Likewise.
11613 * tree-vectorizer.h: Update decl.
11614
22969a8c
RR
116152012-07-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11616 Ulrich Weigand <ulrich.weigand@linaro.org>
11617
11618 * common/config/arm/arm-common.c (arm_option_optimization_table):
11619 Enable -fsched-pressure by default while optimizing.
11620 * config/arm/arm.c (arm_option_override): Use the alternate scheduler
11621 pressure algorithm by default.
11622
4111c296
OE
116232012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
11624
11625 * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
11626 (CONST_OK_FOR_I10): Move macro to ...
11627 * config/sh/sh.c: ... here.
11628 (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
11629 CONST_OK_FOR_I06.
11630
7bd3f65f
OE
116312012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
11632
11633 * config/sh/sh.md: Delete mov related define_peephole patterns.
11634
1b667f1b
JW
116352012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com>
11636
11637 PR c++/53919
11638 * doc/install.texi (Installing GCC): Refer to instructions for
11639 released versions. Fix hyphenation.
11640
c9c72699
UW
116412012-07-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11642
11643 * config/spu/spu.c (targetm): Move to bottom of file.
11644 (spu_attribute_table): Likewise.
11645 (spu_option_override, spu_init_builtins, spu_builtin_decl,
11646 spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
11647 spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
11648 adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
11649 frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
11650 insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
11651 get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
11652 spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
11653 spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
11654 spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
11655 spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
11656 spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
11657 spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
11658 spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
11659 spu_encode_section_info, spu_legitimize_address,
11660 spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
11661 spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
11662 spu_addr_space_pointer_mode, spu_addr_space_address_mode,
11663 spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
11664 spu_section_type_flags, spu_select_section, spu_unique_section,
11665 spu_trampoline_init, spu_conditional_register_usage,
11666 spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
11667 spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
11668 spu_setup_incoming_varargs): Remove prototypes.
11669 (spu_legitimize_address): Add "static" to definition.
11670
4cca007e
JJ
116712012-07-16 Jakub Jelinek <jakub@redhat.com>
11672
11673 * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
11674
cd356d96
UW
116752012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org>
11676
11677 * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
11678 before calling gsi_stmt.
11679
aaba3304
KY
116802012-07-16 Kirill Yukhin <kirill.yukhin@intel.com>
11681
11682 Revert
11683 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
11684
11685 * config/i386/i386.md (stack_protect_set): Disable the pattern
11686 for Android since Android libc (bionic) does not provide random
11687 value for stack protection guard at gs:0x14. Guard value
11688 will be provided from external symbol (default implementation).
11689 (stack_protect_set_<mode>): Likewise.
11690 (stack_protect_test): Likewise.
11691 (stack_protect_test_<mode>): Likewise.
11692
59a6c9d5
L
116932012-07-16 H.J. Lu <hongjiu.lu@intel.com>
11694
11695 PR middle-end/53959
11696 PR bootstrap/53963
11697 * gimple.c (gimple_types_compatible_p_1): Restore type attribute
11698 comparison.
11699
a75a89eb
BS
117002012-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
11701
11702 * opts.c (default_option): Add -fvect-cost-model to default options
11703 at -O3 and above.
11704
7a1c57d3
SB
117052012-07-16 Steven Bosscher <steven@gcc.gnu.org>
11706
11707 * graphite-clast-to-gimple.c, graphite-dependences.c,
11708 graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
11709 for pass TODO flags.
11710 * Makefile.in: Fix dependencies.
11711
89ca6d79
SB
117122012-07-16 Steven Bosscher <steven@gcc.gnu.org>
11713
ee44c28d
SB
11714 * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
11715 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
11716
11717 * function.c (stack_protect_epilogue): Use expand_call to expand
11718 targetm.stack_protect_fail.
11719 * stmt.c (expand_expr_stmt): Remove now-unused function.
11720 * tree.h (expand_expr_stmt): Remove prototype.
11721 * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
11722 hook must return a CALL_EXPR.
11723 * doc/tm.texi: Regenerate.
11724
468660d3 11725 * emit-rtl.c (emit_label_before): Do not allow the same label
9786913b 11726 to be emitted twice.
468660d3
SB
11727 (emit_label_after): Likewise.
11728 (emit_label): Likewise.
11729
89ca6d79
SB
11730 * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
11731 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
11732 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
11733 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
11734
7ee2468b
SB
117352012-07-16 Steven Bosscher <steven@gcc.gnu.org>
11736
11737 * system.h (dump_file): Do not define.
11738 * tree-pass.h: Include dumpfile.h, which is a new file containing...
11739 (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
11740 dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
11741 dump_flag_name, dump_file, dump_flags, dump_file_name,
11742 get_dump_file_info, struct dump_file_info): all of this, moved to...
11743 * dumpfile.h: Here, new file.
11744 * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
11745 (dump_stmt): Remove prototype for C++ specific function.
11746 (dump_enumerated_decls): Move prototype from here...
11747 * tree-flow.h (dump_enumerated_decls): ... to here.
11748 (get_ref_base_and_extent) Move prototype from here ...
11749 * tree.h (get_ref_base_and_extent) ... to here.
11750 * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
11751 gimple-pretty-print.h is enough. Do not include tree-dump.h,
11752 include timevar.h and dumpfile.h instead.
11753 (struct numbered_tree_d, compare_decls_by_uid,
11754 dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
11755 * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
11756 dump_enumerated_decls_push, dump_enumerated_decls):... to here.
11757 Do not include timevar.h.
11758 * tree.c: Do not include timevar.h.
11759 * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
11760 timevar.h.
11761 (dump_cfg_stats): Use current_function_name.
11762 (gimple_cfg2vcg): Likewise.
11763 (dump_function_to_file): Likewise.
11764 * df-scan.c: Do not include tree-pass.h and timevar.h.
11765 Include dumpfile.h.
11766 (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
11767 use print_current_pass.
11768 * df-problems.c: Include dumpfile.h.
11769 Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
11770 leads to errors in the code not selected.
11771 (df_note_compute): Do not print_rtl_with_bb here. Fix compilation
11772 bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
11773 * lcm.c: Include dumpfile.h.
11774 Remove obsolete include of insn-attr.h.
11775 * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
11776 missing probability notes.
11777 * stmt.c: Include dumpfile.h.
11778 (emit_case_decision_tree): Re-enable printing expand details only
11779 if TDF_DETAILS.
9786913b
UB
11780 * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
11781 cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
11782 cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
11783 coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
11784 dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
11785 function.c, fwprop.c, gcse.c, gimple-fold.c,
11786 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
11787 gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
11788 graphite-dependences.c, graphite-interchange.c,
11789 graphite-optimize-isl.c, graphite-poly.c,
11790 graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
11791 ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
11792 ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
11793 ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
11794 jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
11795 loop-unroll.c, loop-unswitch.c, lower-subreg.c,
11796 lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
11797 mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
11798 plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
11799 print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
11800 regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
11801 sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
11802 store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
11803 tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
7ee2468b 11804 tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
9786913b
UB
11805 tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
11806 tree-mudflap.c, tree-nrv.c, tree-object-size.c,
11807 tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
11808 tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
11809 tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
11810 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
11811 tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
11812 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
11813 tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11814 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
11815 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
11816 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
11817 tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
11818 tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
11819 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
11820 tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
11821 tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
11822 tree-ssa-uncprop.c, tree-ssa-uninit.c,
11823 tree-switch-conversion.c, tree-tailcall.c,
11824 tree-vect-data-refs.c, tree-vect-loop.c,
11825 tree-vect-loop-manip.c, tree-vectorizer.c,
11826 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
7ee2468b
SB
11827 tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
11828 only if needed. If tree-pass.h is included, do not include timevar.h
11829 and dumpfile.h. If tree-pass.h is not included but dump_file, or
11830 dump_flags, or the TDF_* flags are used, include dumpfile.h.
9786913b
UB
11831 If gimple-pretty-print.h is included, don't include
11832 tree-pretty-print.h. Remove assorted unnecessary includes.
7ee2468b
SB
11833
11834 * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
11835 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
11836 config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
11837 Include dumpfile.h.
11838 * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
11839 * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
11840 spu/t-spu-elf: Fix dependencies.
11841
9e227d60
DC
118422012-07-16 Dehao Chen <dehao@google.com>
11843
11844 Revert
11845 2012-07-10 Dehao Chen <dehao@google.com>
11846
11847 * tree.h (phi_arg_d): New field.
11848 * tree-flow-inline.h (gimple_phi_arg_block): New function.
11849 (gimple_phi_arg_block_from_edge): New function.
11850 (gimple_phi_arg_set_block): New function.
11851 (gimple_phi_arg_has_block): New function.
11852 (redirect_edge_var_map_block): New function.
11853 * tree-flow.h (_edge_var_map): New field.
11854 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
11855 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
11856 redirect_edge_var_map_add.
11857 * tree-outof-ssa.c (_elim_graph): New field.
11858 (insert_partition_copy_on_edge): New parameter.
11859 (insert_value_copy_on_edge): New parameter.
11860 (insert_rtx_to_part_on_edge): New parameter.
11861 (insert_part_to_rtx_on_edge): New parameter.
11862 (elim_graph_add_edge): New parameter.
11863 (elim_graph_remove_succ_edge): New parameter.
11864 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
11865 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
11866 (new_elim_graph): Add block debug info.
11867 (clear_elim_graph): Likewise.
11868 (delete_elim_graph): Likewise.
11869 (elim_graph_add_node): Likewise.
11870 (elim_graph_add_edge): Likewise.
11871 (elim_graph_remove_succ_edge): Likewise.
11872 (eliminate_build): Likewise.
11873 (elim_forward): Likewise.
11874 (elim_unvisited_predecessor): Likewise.
11875 (elim_backward): Likewise.
11876 (elim_create): Likewise.
11877 (eliminate_phi): Likewise.
11878 (insert_backedge_copies): Likewise.
11879 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
11880 add_phi_arg.
11881 (rewrite_add_phi_arguments): Likewise.
11882 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
11883 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
11884 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
11885 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
11886 * tree-ssa-loop-manip.c (create_iv): Likewise.
11887 (add_exit_phis_edge): Likewise.
11888 (split_loop_exit_edge): Likewise.
11889 (copy_phi_node_args): Likewise.
11890 (tree_transform_and_unroll_loop): Likewise.
11891 * value-prof.c (gimple_ic): Likewise.
11892 (gimple_stringop_fixed_value): Likewise.
11893 * tree-tailcall.c (add_successor_phi_arg): Likewise.
11894 (eliminate_tail_call): Likewise.
11895 (create_tailcall_accumulator): Likewise.
11896 (tree_optimize_tail_calls_1): Likewise.
11897 * tree-phinodes.c (add_phi_arg): Likewise.
11898 (make_phi_node): Likewise.
11899 (resize_phi_node): Likewise.
11900 (remove_phi_arg_num): Likewise.
11901 * omp-low.c (expand_parallel_call): Likewise.
11902 (expand_omp_for_static_chunk): Likewise.
11903 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
11904 Likewise.
11905 (slpeel_update_phi_nodes_for_guard1): Likewise.
11906 (slpeel_update_phi_nodes_for_guard2): Likewise.
11907 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
11908 (set_prologue_iterations): Likewise.
11909 (slpeel_tree_peel_loop_to_edge): Likewise.
11910 (vect_loop_versioning): Likewise.
11911 * tree-parloops.c (create_phi_for_local_result): Likewise.
11912 (transform_to_exit_first_loop): Likewise.
11913 (create_parallel_loop): Likewise.
11914 * ipa-split.c (split_function): Likewise.
11915 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
11916 (vect_create_epilog_for_reduction): Likewise.
11917 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
11918 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
11919 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
11920 (cond_if_else_store_replacement_1): Likewise.
11921 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
11922 (remove_forwarder_block_with_phi): Likewise.
11923 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
11924 * tree-predcom.c (initialize_root_vars): Likewise.
11925 (initialize_root_vars_lm): Likewise.
11926 * sese.c (sese_add_exit_phis_edge): Likewise.
11927 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
11928 * tree-ssa.c (flush_pending_stmts): Likewise.
11929 (redirect_edge_var_map_add): Likewise.
11930 (ssa_redirect_edge): Likewise.
11931 * gimple-streamer-in.c (input_phi): Likewise.
11932 * tree-vect-stmts.c (vectorizable_load): Likewise.
11933 * tree-inline.c (copy_phis_for_bb): Likewise.
11934 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
11935 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
11936 * tree-cfg.c (reinstall_phi_args): Likewise.
11937 (gimple_make_forwarder_block): Likewise.
11938 (add_phi_args_after_copy_edge): Likewise.
11939 (gimple_duplicate_sese_tail): Likewise.
11940
d923fe0f
SM
119412012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
11942
11943 * config/i386/i386.md (stack_protect_set): Disable the pattern
11944 for Android since Android libc (bionic) does not provide random
11945 value for stack protection guard at gs:0x14. Guard value
11946 will be provided from external symbol (default implementation).
11947 (stack_protect_set_<mode>): Likewise.
11948 (stack_protect_test): Likewise.
11949 (stack_protect_test_<mode>): Likewise.
11950
fdb6272c
HPN
119512012-07-16 Hans-Peter Nilsson <hp@axis.com>
11952
a502bdb6
HPN
11953 * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
11954 * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
11955 CONSTANT_P and cris_legitimate_address_p.
11956 * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
11957 (cris_preferred_reload_class): Don't return GENERAL_REGS as
11958 preferred to MOF_SRP_REGS.
ff57d866 11959
dec4306f
HPN
11960 * config/cris/cris.c (cris_init_libfuncs): Handle initialization
11961 of library functions for basic atomic compare-and-swap.
11962 * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
dc7f4baf 11963 * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
dec4306f
HPN
11964 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
11965 ("cris_atomic_fetch_<atomic_op_name><mode>_1")
11966 ("atomic_compare_and_swap<mode>")
dc7f4baf
HPN
11967 ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
11968 TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
24ddb79c
HPN
11969 * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
11970 * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
11971 (atomic_op_op_pred): Ditto.
11972 (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
11973 reflect the change to include %2 in expansion. All callers changed.
11974 (qm3): New mode_attr.
11975 ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
9786913b 11976 as predicate for operand 2.
24ddb79c
HPN
11977 ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME. Use
11978 "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
11979 constraint for operand 2.
11980 ("atomic_compare_and_swap<mode>"): Add FIXME. Change predicate to
11981 nonmemory_operand for operand 3.
11982 ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
11983 exclude memory. Improve emitted sync code for v10 and v32. Use
11984 <qm3> instead of <m> for size designator for cmp.
11985 ("atomic_compare_and_swap<mode>"): Change predicate to
11986 nonmemory_operand for operand 3. Add FIXME.
1cdea33b
HPN
11987 ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
11988 constraints for operand 3 to exclude memory.
11989 ("atomic_fetch_<atomic_op_name><mode>")
fdb6272c
HPN
11990 ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
11991 calls on result of call to need_atomic_barrier_p.
11992
cb00489c
RS
119932012-07-15 Richard Sandiford <rdsandiford@googlemail.com>
11994
11995 * config/mips/mips.md (move_type): Replace mfhilo and mthilo
11996 with mflo and mtlo.
11997 (type): Split mfhilo into mfhi and mflo. Split mthilo into mthi
11998 and mtlo. Adjust move_type->type mapping.
11999 (may_clobber_hilo): Split mthilo into mthi and mtlo.
12000 (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
12001 (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
12002 (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
12003 instead of mthilo and mfhilo.
12004 (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
12005 (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
12006 * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
12007 (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
12008 Use mflo instead of mfhilo.
12009 * config/mips/10000.md (r10k_arith): Split mthilo.
12010 (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
12011 * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
12012 (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
12013 * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
12014 mthilo and mfhilo.
12015 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
12016 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
12017 Likewise.
12018 * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
12019 * config/mips/5400.md (ir_vr54_hilo): Likewise.
12020 * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
12021 * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
12022 * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
12023 * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
12024 * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
12025 * config/mips/generic.md (generic_hilo): Likewise.
12026 * config/mips/loongson2ef.md (ls2_alu): Likewise.
12027 * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
12028 * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
12029 (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
12030 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
12031 * config/mips/xlr.md (xlr_hilo): Likewise.
12032
9b024103
AS
120332012-07-14 Andrew Stubbs <ams@codesourcery.com>
12034 Sandra Loosemore <sandra@codesourcery.com>
12035
12036 * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
12037
abc4d4e9
UB
120382012-07-14 Uros Bizjak <ubizjak@gmail.com>
12039
12040 * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
12041 for TARGET_SSE.
12042
ee7b28eb
SB
120432012-07-14 Steven Bosscher <steven@gcc.gnu.org>
12044
12045 * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
12046
cf0d4e15
BS
120472012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
12048
12049 PR bootstrap/53955
12050 * config/spu/spu.c (spu_init_cost): Mark static.
12051 (spu_add_stmt_cost): Likewise.
12052 (spu_finish_cost): Likewise.
12053 (spu_destroy_cost_data): Likewise.
12054 * config/i386/i386.c (ix86_init_cost): Mark static.
12055 (ix86_add_stmt_cost): Likewise.
12056 (ix86_finish_cost): Likewise.
12057 (ix86_destroy_cost_data): Likewise.
12058 * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
12059 (rs6000_add_stmt_cost): Likewise.
12060 (rs6000_finish_cost): Likewise.
12061 (rs6000_destroy_cost_data): Likewise.
12062
c8b8af71
SB
120632012-07-13 Steven Bosscher <steven@gcc.gnu.org>
12064
12065 * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
12066 ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
12067 ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
12068 ATTRIBUTE_MALLOC.
12069 * alloc-pool.h (pool_alloc): Likewise.
12070
12071 * final.c (final): Do not loop to find max_uid.
12072
e4da1e17
SB
120732012-07-13 Steven Bosscher <steven@gcc.gnu.org>
12074
12075 * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
12076 * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
12077
a8ab21e5
RG
120782012-07-13 Richard Guenther <rguenther@suse.de>
12079
12080 PR tree-optimization/53907
12081 * tree-ssa-forwprop.c (associate_pointerplus): New function.
12082 (ssa_forward_propagate_and_combine): Call it.
12083
e8f808b3
RG
120842012-07-13 Richard Guenther <rguenther@suse.de>
12085
12086 PR tree-optimization/53922
12087 * tree-vrp.c (value_inside_range): Change prototype to take
12088 min/max instead of value-range.
12089 (range_includes_zero_p): Likewise. Return the result from
12090 value_inside_range.
12091 (extract_range_from_binary_expr_1): Adjust to handle dont-know
12092 return value from range_includes_zero_p.
12093 (extract_range_from_unary_expr_1): Likewise.
12094 (compare_range_with_value): Likewise.
12095 (vrp_meet_1): Likewise.
12096
c3e7ee41
BS
120972012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
12098
12099 * doc/tm.texi: Regenerate.
12100 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
12101 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
12102 (TARGET_VECTORIZE_FINISH_COST): Likewise.
12103 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
12104 * targhooks.c (default_init_cost): New function.
12105 (default_add_stmt_cost): Likewise.
12106 (default_finish_cost): Likewise.
12107 (default_destroy_cost_data): Likewise.
12108 * targhooks.h (default_init_cost): New decl.
12109 (default_add_stmt_cost): Likewise.
12110 (default_finish_cost): Likewise.
12111 (default_destroy_cost_data): Likewise.
12112 * target.def (init_cost): New DEFHOOK.
12113 (add_stmt_cost): Likewise.
12114 (finish_cost): Likewise.
12115 (destroy_cost_data): Likewise.
12116 * target.h (struct _stmt_vec_info): New extern decl.
12117 (stmt_vectype): Likewise.
12118 (stmt_in_inner_loop_p): Likewise.
12119 * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
12120 (stmt_vector_for_cost): New VEC/typedef.
12121 (add_stmt_info_to_vec): New function.
12122 (struct _slp_tree): Remove cost.inside_of_loop field.
12123 (struct _slp_instance): Remove cost.inside_of_loop field; add
12124 stmt_cost_vec field.
12125 (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
12126 (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
12127 (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
12128 (struct _vect_peel_extended_info): Add stmt_cost_vec field.
12129 (struct _loop_vec_info): Add target_cost_data field.
12130 (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
12131 (struct _bb_vec_info): Add target_cost_data field.
12132 (BB_VINFO_TARGET_COST_DATA): New accessor macro.
12133 (struct _stmt_vec_info): Remove cost.inside_of_loop field.
12134 (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
12135 (stmt_vinfo_set_inside_of_loop_cost): Remove function.
12136 (init_cost): New function.
12137 (add_stmt_cost): Likewise.
12138 (finish_cost): Likewise.
12139 (destroy_cost_data): Likewise.
12140 (vect_model_simple_cost): Change parameter list.
12141 (vect_model_store_cost): Likewise.
12142 (vect_model_load_cost): Likewise.
12143 (record_stmt_cost): New extern decl.
12144 (vect_get_load_cost): Change parameter list.
12145 (vect_get_store_cost): Likewise.
12146 * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
12147 (destroy_loop_vec_info): Call destroy_cost_data.
12148 (vect_estimate_min_profitable_iters): Remove old calculation of
12149 inside costs; call finish_cost instead.
12150 (vect_model_reduction_cost): Call add_stmt_cost instead of old
12151 inside-costs calculation.
12152 (vect_model_induction_cost): Likewise.
12153 * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
12154 return a stmt_vector_for_cost; modify calls to vect_get_load_cost
12155 and vect_get_store_cost to obtain the value to return.
12156 (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
12157 vect_get_data_access_cost and store it in the minimum peeling
12158 structure.
12159 (vect_peeling_hash_choose_best_peeling): Change the parameter list
12160 to add a (stmt_vector_for_cost *) output parameter, and set its value.
12161 (vect_enhance_data_refs_alignment): Ignore the new return value from
12162 calls to vect_get_data_access_cost; obtain stmt_cost_vec from
12163 vect_peeling_hash_choose_best_peeling and pass its contents to the
12164 target cost model.
12165 * tree-vect-stmts.c (stmt_vectype): New function.
12166 (stmt_in_inner_loop_p): Likewise.
12167 (record_stmt_cost): Likewise.
12168 (vect_model_simple_cost): Add stmt_cost_vec parameter; call
12169 record_stmt_cost instead of old calculation; don't call
12170 stmt_vinfo_set_inside_of_loop_cost.
12171 (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
12172 old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
12173 (vect_model_store_cost): Add stmt_cost_vec parameter; call
12174 record_stmt_cost instead of old calculation; add stmt_cost_vec
12175 parameter to vect_get_store_cost call; don't call
12176 stmt_vinfo_set_inside_of_loop_cost.
12177 (vect_get_store_cost): Add stmt_cost_vec parameter; call
12178 record_stmt_cost instead of old calculation.
12179 (vect_model_load_cost): Add stmt_cost_vec parameter; call
12180 record_stmt_cost instead of old calculation; add stmt_cost_vec
12181 parameter to vect_get_load_cost call; don't call
12182 stmt_vinfo_set_inside_of_loop_cost.
12183 (vect_get_load_cost): Add stmt_cost_vec parameter; call
12184 record_stmt_cost instead of old calculation.
12185 (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
12186 (vectorizable_conversion): Likewise.
12187 (vectorizable_assignment): Likewise.
12188 (vectorizable_shift): Likewise.
12189 (vectorizable_operation): Likewise.
12190 (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
12191 (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
12192 (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
12193 * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
12194 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
12195 (TARGET_VECTORIZE_FINISH_COST): Likewise.
12196 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
12197 (spu_init_cost): New function.
12198 (spu_add_stmt_cost): Likewise.
12199 (spu_finish_cost): Likewise.
12200 (spu_destroy_cost_data): Likewise.
12201 * config/i386/i386.c (ix86_init_cost): New function.
12202 (ix86_add_stmt_cost): Likewise.
12203 (ix86_finish_cost): Likewise.
12204 (ix86_destroy_cost_data): Likewise.
12205 (TARGET_VECTORIZE_INIT_COST): New macro def.
12206 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
12207 (TARGET_VECTORIZE_FINISH_COST): Likewise.
12208 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
12209 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
12210 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
12211 (TARGET_VECTORIZE_FINISH_COST): Likewise.
12212 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
12213 (rs6000_init_cost): New function.
12214 (rs6000_add_stmt_cost): Likewise.
12215 (rs6000_finish_cost): Likewise.
12216 (rs6000_destroy_cost_data): Likewise.
12217 * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
12218 (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
12219 (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
12220 stmt_cost_vec parameter to vect_model_store_cost and
12221 vect_model_simple_cost calls.
12222 (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
12223 parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
12224 vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
12225 calculating cost more than once for loads; remove inside_cost
12226 parameter from recursive vect_build_slp_tree calls; call
12227 record_stmt_cost instead of old calculation.
12228 (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
12229 the instance; free it on premature exit; remove inside_cost parameter
12230 from vect_build_slp_tree call; add stmt_cost_vec parameter to
12231 vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
12232 (new_bb_vec_info): Call init_cost.
12233 (destroy_bb_vec_info): Call destroy_cost_data.
12234 (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
12235 statement recorded with an SLP instance; call finish_cost instead of
12236 the old calculation.
12237 (vect_update_slp_costs_according_to_vf): Record statement costs from
12238 SLP instances, multiplying by the appropriate number of copies; don't
12239 update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
12240
44fabee4
RG
122412012-07-13 Richard Guenther <rguenther@suse.de>
12242
12243 PR middle-end/53937
12244 * builtins.c (get_pointer_alignment_1): Handle constant
12245 pointers.
12246
b1435931
RS
122472012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
12248 Steven Bosscher <steven@gcc.gnu.org>
12249 Bernd Schmidt <bernds@codesourcery.com>
12250
12251 PR rtl-optimization/53908
12252 * df-problems.c (can_move_insns_across): When doing
12253 memory-reference book-keeping, handle call insns.
12254
a2faea4b
RG
122552012-07-13 Richard Guenther <rguenther@suse.de>
12256
12257 * gimple.c (gimple_types_compatible_p_1): Remove redundant
12258 type attribute comparisons.
12259 (gimple_canonical_types_compatible_p): Likewise.
12260
e098c169
HPN
122612012-07-12 Hans-Peter Nilsson <hp@axis.com>
12262
12263 PR rtl-optimization/53176
12264 * rtlanal.c (rtx_cost): Adjust default cost for X with a
12265 UNITS_PER_WORD factor for all X according to the size of
12266 its mode, not just for SUBREGs with untieable modes.
12267 Handle SET. Use factor * factor for MULT, DIV, UDIV,
12268 MOD, UMOD.
12269
8c15b4b0
UB
122702012-07-12 Uros Bizjak <ubizjak@gmail.com>
12271
12272 * config/i386/i386.md (QImode and HImode cmove splitters): Merge
12273 QImode and HImode splitters. Use ix86_comparison_operator.
12274 Explicitly match FLAGS_REG.
12275 (DFmode cmove splitter): Explicitly match FLAGS_REG.
12276
6bdf3519
SB
122772012-07-11 Steven Bosscher <steven@gcc.gnu.org>
12278
12279 * expr.h (can_move_by_pieces): Move prototype from here ...
12280 * tree.h (can_move_by_pieces): ... to here.
12281 * optabs.h (set_widening_optab_handler): Use XCNEW.
12282 * gimplify.c: Do not include expr.h.
12283
12284 * toplev.c: Do not include dwarf2out.h.
12285 * config/ia64/ia64.c: Likewise.
12286 * config/sparc/sparc.c: Likewise.
12287 * config/sparc/t-sparc (sparc.o): Fix dependencies.
12288
12289 * Makefile.in (toplev.o): Fix dependencies
12290 (c-family/c-gimplify.o): Likewise.
12291 (c-family/c-common.o): Likewise.
12292
b8244d74
SB
122932012-07-11 Steven Bosscher <steven@gcc.gnu.org>
12294
12295 * basic-block.h (struct edge_def): Use basic_block instead of
12296 basic_block_def *.
12297 * cfgloop.h (struct loop_exit, struct loop): Likewise.
12298 * gengenrtl.c (type_from_format): Likewise. Also for 'tree'
12299 instead of union tree_node *.
12300 * rtl.h (union rtunion_def, emit_insn_before_noloc,
12301 emit_insn_after_noloc, add_insn_before, add_insn_after,
12302 debug_bb_slim): Likewise.
12303 * tree-inline.h (struct copy_body_data): Likewise.
12304 * sched-rgn.c (dump_region_dot): Likewise.
12305 * gimple.h (struct gimple_statement_base, gimple_set_bb,
12306 gsi_move_to_bb_end): Likewise.
12307 * sched-vis.c (debug_bb_slim): Likewise.
12308 (debug_bb_n_slim): Likewise.
12309 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
12310 (mn10300_block_contains_call):
12311
c48acc4f
GY
123122012-07-11 Greta Yorsh <Greta.Yorsh@arm.com>
12313
12314 PR target/53859
12315 * config/arm/arm.c (arm_early_load_addr_dep): Handle new
12316 epilogue patterns.
12317
b0af456a
JW
123182012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com>
12319
12320 * doc/extend.texi (Namespace Association): Alter cautionary text.
12321
c03cfe1e
OE
123222012-07-10 Oleg Endo <olegendo@gcc.gnu.org>
12323
12324 PR target/53911
12325 * config/sh/sh.md: Remove displacement addresssing related splits.
12326
87e2a8fd
XDL
123272012-07-10 Xinliang David Li <davidxl@google.com>
12328
12329 * doc/invoke.texi: New option documented.
12330 * flag-types.h: New enum type.
12331 * gimplify.c (gimplify_bind_expr): Control
12332 clobber generation with new option.
12333 (gimplify_target_expr): Ditto.
8c15b4b0 12334 * common.opt: New option.
87e2a8fd 12335
2f011375
JB
123362012-07-10 Julian Brown <julian@codesourcery.com>
12337
12338 * config/arm/arm.md (movsi): Don't split symbol refs here.
12339 (define_split): New.
12340
175aed00
AS
123412012-07-10 Andreas Schwab <schwab@linux-m68k.org>
12342
12343 PR bootstrap/53913
12344 * config/m68k/m68k.c (m68k_epilogue_uses): New.
12345 * config/m68k/m68k.h (EPILOGUE_USES): Use it.
12346 * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
12347
3f30a9a6
RH
123482012-07-10 Richard Henderson <rth@redhat.com>
12349
30a7bac9
RH
12350 * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
12351 * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
12352 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
12353 * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
12354 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
12355 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
12356 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
12357 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
12358 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
12359 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
12360 (bdesc_args): Remove entries to match.
12361 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
12362 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
12363 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
12364 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
12365 (rs6000_builtin_mul_widen_odd): Remove.
12366 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
12367 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
12368 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
12369 (spu_builtin_mul_widen_odd): Remove.
12370 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
12371 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
12372 * doc/tm.texi.in: Don't document the removed hooks.
12373
6ae6116f
RH
12374 * tree-vect-stmts.c (supportable_widening_operation): Expand
12375 WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
12376
00f07b86
RH
12377 * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
12378 (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
12379 * optabs.c (can_mult_highpart_p): New.
12380 (expand_mult_highpart): New.
12381 * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
12382 * tree-vect-generic.c (expand_vector_operations_1): Don't expand
12383 by pieces if can_mult_highpart_p.
12384 (expand_vector_divmod): Use can_mult_highpart_p and always
12385 generate MULT_HIGHPART_EXPR.
12386 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
12387 * tree-vect-stmts.c (vectorizable_operation): Likewise.
12388
9283726f
RH
12389 * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
12390 (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
12391 * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
12392 (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
12393 (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
12394 (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
12395 * config/spu/spu-builtins.def: Update pattern names to match.
12396
2371eaec
RH
12397 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
12398 from altivec_vmuleub.
12399 (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
12400 (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
12401 (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
12402 (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
12403 (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
12404 (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
12405 (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
12406 * config/rs6000/rs6000-builtin.def: Update pattern names to match.
12407
c6b37fab
RH
12408 * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
12409 avx2_umulv4siv4di3.
12410 (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
12411 (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
12412 (mulv4si3): Remove XOP test shadowed by SSE4 test.
12413 * config/i386/i386.c (bdesc_args): Update pattern names.
12414 (ix86_expand_sse2_mulvxdi3): Likewise.
12415 (ix86_expand_mul_widen_evenodd): Likewise. Remove XOP test
12416 shadowed by SSE4 test.
12417
3f30a9a6
RH
12418 * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
12419 * cfgexpand.c (expand_debug_expr): Handle them.
12420 * expr.c (expand_expr_real_2): Likewise.
12421 * fold-const.c (fold_binary_loc): Likewise.
12422 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
12423 * optabs.c (optab_for_tree_code): Likewise.
12424 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
12425 * tree-inline.c (estimate_operator_cost): Likewise.
12426 * tree-pretty-print.c (dump_generic_node): Likewise.
12427 * tree.c (commutative_tree_code): Likewise.
12428 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
12429 Handle type change before looking up optab.
12430 * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
12431 (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
12432 (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
12433 (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
12434 * genopinit.c (optabs): Initialize them.
12435 * doc/md.texi: Document them.
12436
e53a3e77
DC
124372012-07-10 Dehao Chen <dehao@google.com>
12438
12439 * tree.h (phi_arg_d): New field.
12440 * tree-flow-inline.h (gimple_phi_arg_block): New function.
12441 (gimple_phi_arg_block_from_edge): New function.
12442 (gimple_phi_arg_set_block): New function.
12443 (gimple_phi_arg_has_block): New function.
12444 (redirect_edge_var_map_block): New function.
12445 * tree-flow.h (_edge_var_map): New field.
8c15b4b0 12446 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
e53a3e77
DC
12447 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
12448 redirect_edge_var_map_add.
12449 * tree-outof-ssa.c (_elim_graph): New field.
12450 (insert_partition_copy_on_edge): New parameter.
12451 (insert_value_copy_on_edge): New parameter.
12452 (insert_rtx_to_part_on_edge): New parameter.
12453 (insert_part_to_rtx_on_edge): New parameter.
12454 (elim_graph_add_edge): New parameter.
12455 (elim_graph_remove_succ_edge): New parameter.
12456 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
12457 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
12458 (new_elim_graph): Add block debug info.
12459 (clear_elim_graph): Likewise.
12460 (delete_elim_graph): Likewise.
12461 (elim_graph_add_node): Likewise.
12462 (elim_graph_add_edge): Likewise.
12463 (elim_graph_remove_succ_edge): Likewise.
12464 (eliminate_build): Likewise.
12465 (elim_forward): Likewise.
12466 (elim_unvisited_predecessor): Likewise.
12467 (elim_backward): Likewise.
12468 (elim_create): Likewise.
12469 (eliminate_phi): Likewise.
12470 (insert_backedge_copies): Likewise.
12471 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
12472 add_phi_arg.
12473 (rewrite_add_phi_arguments): Likewise.
12474 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
12475 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
12476 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
12477 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
12478 * tree-ssa-loop-manip.c (create_iv): Likewise.
12479 (add_exit_phis_edge): Likewise.
12480 (split_loop_exit_edge): Likewise.
12481 (copy_phi_node_args): Likewise.
12482 (tree_transform_and_unroll_loop): Likewise.
12483 * value-prof.c (gimple_ic): Likewise.
12484 (gimple_stringop_fixed_value): Likewise.
12485 * tree-tailcall.c (add_successor_phi_arg): Likewise.
12486 (eliminate_tail_call): Likewise.
12487 (create_tailcall_accumulator): Likewise.
12488 (tree_optimize_tail_calls_1): Likewise.
12489 * tree-phinodes.c (add_phi_arg): Likewise.
12490 (make_phi_node): Likewise.
12491 (resize_phi_node): Likewise.
12492 (remove_phi_arg_num): Likewise.
12493 * omp-low.c (expand_parallel_call): Likewise.
12494 (expand_omp_for_static_chunk): Likewise.
12495 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
12496 Likewise.
12497 (slpeel_update_phi_nodes_for_guard1): Likewise.
12498 (slpeel_update_phi_nodes_for_guard2): Likewise.
12499 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
12500 (set_prologue_iterations): Likewise.
12501 (slpeel_tree_peel_loop_to_edge): Likewise.
12502 (vect_loop_versioning): Likewise.
12503 * tree-parloops.c (create_phi_for_local_result): Likewise.
12504 (transform_to_exit_first_loop): Likewise.
12505 (create_parallel_loop): Likewise.
12506 * ipa-split.c (split_function): Likewise.
12507 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
12508 (vect_create_epilog_for_reduction): Likewise.
12509 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
12510 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
12511 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
12512 (cond_if_else_store_replacement_1): Likewise.
12513 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
12514 (remove_forwarder_block_with_phi): Likewise.
12515 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
12516 * tree-predcom.c (initialize_root_vars): Likewise.
12517 (initialize_root_vars_lm): Likewise.
12518 * sese.c (sese_add_exit_phis_edge): Likewise.
12519 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
12520 * tree-ssa.c (flush_pending_stmts): Likewise.
12521 (redirect_edge_var_map_add): Likewise.
12522 (ssa_redirect_edge): Likewise.
12523 * gimple-streamer-in.c (input_phi): Likewise.
12524 * tree-vect-stmts.c (vectorizable_load): Likewise.
12525 * tree-inline.c (copy_phis_for_bb): Likewise.
12526 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
12527 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
12528 * tree-cfg.c (reinstall_phi_args): Likewise.
12529 (gimple_make_forwarder_block): Likewise.
12530 (add_phi_args_after_copy_edge): Likewise.
12531 (gimple_duplicate_sese_tail): Likewise.
12532
83d88a6d
OE
125332012-07-09 Oleg Endo <olegendo@gcc.gnu.org>
12534
12535 PR target/53886
12536 * config/sh/sh.c (sequence_insn_p): New function.
12537 (find_barrier, sh_insn_length_adjustment): Use it.
12538
1cd130b0
IS
125392012-07-09 Iain Sandoe <iain@codesourcery.com>
12540
12541 PR target/53283
12542 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
12543 if defined.
12544 * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
12545 SUBTARGET_FOLD_BUILTIN.
12546 * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
12547 SUBTARGET_FOLD_BUILTIN.
12548
f29234df
IS
125492012-07-09 Iain Sandoe <iain@codesourcery.com>
12550
12551 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
12552 runtime exceptions model setting from here ...
12553 * config/darwin.c (darwin_override_options): ... to here.
12554
238065a7
SB
125552012-07-09 Steven Bosscher <steven@gcc.gnu.org>
12556
12557 PR tree-optimization/53887
12558 * tree-cfg.c (group_case_labels_stmt): Make non-static.
12559 * tree-flow.h (group_case_labels_stmt): Add prototype.
12560 * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
12561 to pre-process every switch.
12562
06e3e32b
JM
125632012-07-09 Jason Merrill <jason@redhat.com>
12564
12565 PR c++/53882
12566 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
12567 (type_hash_eq): Likewise.
12568
c61e5cc1
TV
125692012-07-09 Tom de Vries <tom@codesourcery.com>
12570 Richard Guenther <rguenther@suse.de>
12571
12572 * tree-ssa-ccp.c (optimize_unreachable): New function.
12573 (execute_fold_all_builtins): Use optimize_unreachable to optimize
12574 BUILT_IN_UNREACHABLE. Don't optimize after BUILT_IN_UNREACHABLE.
12575
02663f24
RG
125762012-07-09 Richard Guenther <rguenther@suse.de>
12577
12578 PR bootstrap/53898
12579 * graphite-optimize-isl.c: Make sure CU is not empty.
12580
e714561a
SB
125812012-07-09 Steven Bosscher <steven@gcc.gnu.org>
12582
12583 * gensupport.c (init_rtx_reader_args_cb): Start counting code
12584 generating patterns from 1 to free up 0 for CODE_FOR_nothing.
12585 * gencodes.c (main): Give CODE_FOR_nothing the value 0. Add
12586 the LAST_INSN_CODE marker at the end.
12587 * genoutput.c (nothing): New static struct data.
12588 (idata): Initialize to &nothing.
12589 (idata_end): Initialize to &nothing.next.
12590 (init_insn_for_nothing): New function to create dummy 'nothing' insn.
12591 (main): Use it.
12592 * genpeep.c (insn_code_number): Remove global variable.
12593 (gen_peephole): Take it as an argument instead.
12594 (main): Take insn_code_number from read_md_rtx.
12595 * optabs.h: Revert r161809:
12596 (optab_handlers): Change type of insn_code back to insn_code.
12597 (optab_handler, widening_optab_handler, set_optab_handler,
12598 set_widening_optab_handler, convert_optab_handler,
12599 set_convert_optab_handler, direct_optab_handler,
12600 set_direct_optab_handler): Remove int casts.
12601 Revert to treating the insn_code field as "insn_code".
12602
d16202ba
OE
126032012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
12604
12605 * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
12606 * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
12607 * config/sh/sh-protos.h: Declare it.
12608
e6d46b5a
SB
126092012-07-08 Steven Bosscher <steven@gcc.gnu.org>
12610
12611 * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
12612 (dump_fixup_graph): Use current_function_name.
12613 (adjust_cfg_counts): Likewise.
12614 * ira-conflicts.c: Do not include tree.h.
12615 (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
12616
cab4c510
OE
126172012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
12618
12619 PR target/51244
12620 * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
12621
532aafad
SB
126222012-07-08 Steven Bosscher <steven@gcc.gnu.org>
12623
12624 * basic-block.h: Re-group most prototypes per file.
12625 (struct edge_list): Remove num_blocks field.
12626 (dump_bb_info): Adjust prototypes.
12627 (dump_reg_info): Move prototype to regs.h.
12628 * function.h: Do not include tree.h.
12629 Include vec.h, vecir.h, input.h and machmode.h to compensate.
12630 (function_name): New prototype.
12631 * gimple.h: Include tree.h to compensate for basic-block.h change.
12632 * langhooks.h: Note that tree.h is only necessary for enum tree_code.
12633 * regs.h (dump_reg_info): Prototype here.
12634 * regset.h: Adjust file reference in comment.
12635 (debug_regset): Remove prototype.
12636 * rtl.h: Include flags.h for flag_var_tracking_assignments.
12637 (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
12638 instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
12639 (dump_reg_info, dump_flow_info): Remove prototypes.
12640 * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
12641 to here, the only user. Make static.
12642 (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
12643 * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
12644 flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
12645 tree-pass.h, cfgloop.h, and tree-flow.h.
12646 Include basic-block.h, the first header I'd expect to be included.
12647 (reg_obstack): Move to df-core.c.
12648 (free_edge): Remove bogus ATTRIBUTE_UNUSED.
12649 (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
12650 (redirect_edge_succ_nodup): Move to cfghooks.c.
12651 (dump_regset, debug_regset): Move to df-core.c.
12652 (dump_bb_info): Move to cfgrtl.c.
12653 (dump_reg_info): Move to regstat.c.
12654 (dump_flow_info): Move to cfgrtl.c.
12655 (debug_flow_info): Likewise.
12656 (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
12657 * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
12658 insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
12659 (flow_active_insn_p, forwarder_block_p, can_fallthru,
12660 could_fall_through): Move to cfgrtl.c.
12661 (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
12662 (create_edge_list): Do not set edge_list's removed num_blocks.
12663 (print_edge_list): Look at n_basic_blocks instead of num_blocks.
12664 (flow_nodes_print): Remove.
12665 (flow_edge_list_print): Remove.
12666 (inverted_post_order_compute): Use FOR_ALL_BB.
c4669594 12667 * cfgrtl.c (dump_flow_info): Moved from cfg.c.
532aafad
SB
12668 Do not call dump_reg_info.
12669 (debug_flow_info): Moved from cfg.c
12670 (dump_bb_info): Moved from cfg.c. Take 'verbose' argument
12671 to avoid looking at TDF_* flags from tree-pass.h.
12672 (flow_active_insn_p, forwarder_block_p, can_fallthru,
12673 could_fall_through): Moved from cfganal.c.
12674 (print_rtl_with_bb): Adjust dump_bb_info calls.
12675 * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
12676 (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
12677 (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
12678 * cselib.c: Include tree.h with a FIXME.
12679 * df-core.c (reg_obstack): Moved from cfg.c.
12680 (dump_regset): Likewise.
12681 (debug_regset): Likewise. Make a DEBUG_FUNCTION.
12682 * final.c (compute_alignments): Call dump_reg_info before
12683 dump_flow_info.
12684 * function.c (function_name): New function.
12685 (current_function_name): Use it.
12686 * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
12687 dump_flow_info.
12688 * ira-conflicts.c: Include tree.h with a note.
12689 * regstat.c (dump_reg_info): Moved here from cfg.c.
12690 * loop-init.c: Include regs.h instead of hard-reg-set.h.
12691 (rtl_loop_init): Call dump_reg_info before dump_flow_info.
12692 (rtl_loop_done): Likewise.
12693 * mcf.c: Include tree.h before langhooks.h.
12694 * predict.c (maybe_hot_count_p): Assert we have cfun.
12695 (probably_never_executed_bb_p): Likewise.
12696 * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
12697 instead of dump_flow_info.
12698 * sched-deps.c: Include tree.h with a FIXME.
12699 (call_may_noreturn_p): Add FIXME note why this function has to
12700 look at function decls instead of function decl flags.
12701 * sched-vis.c: Include tree.h with a FIXME.
12702 (print_rtl_slim): Adjust dump_bb_info uses.
12703 * statistics.c (statistics_fini_pass_2): Use current_function_name
12704 to avoid including tree.h.
12705 (statistics_counter_event): Use function_name for the same reason.
12706 (statistics_histogram_event): Likewise.
12707 * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg
12708 instead of dump_flow_info.
12709 * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
12710 before dump_flow_info.
12711 * doc/cfg.texi: Update CFG documentation.
12712 * Makefile.in (RTL_H): Depend on FLAGS_H.
12713 (GIMPLE_H): Depend on TREE_H.
12714 (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
12715 but no longer on TREE_H.
12716 (C_COMMON_H): Depend on TREE_H.
12717 (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
12718 sched-deps.o, sched-vis.o): Fixup dependencies.
12719
79bdca32
SB
127202012-07-08 Steven Bosscher <steven@gcc.gnu.org>
12721
12722 * alias.h: Do not include coretypes.h in header files.
12723 * cppbuiltin.h: Likewise.
12724 * double-int.h: Likewise.
12725 * gimple-fold.h: Likewise.
12726 * flags.h: Likewise.
12727 * tree-ssa-alias.h: Likewise.
12728 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
12729 OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
12730 * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
12731 (TREE_H): Likewise.
12732 (ALIAS_H): Do not depend on coretypes.h.
12733 (FLAGS_H): Likewise.
12734 (realmpfr.o): Depend on coretypes.h.
12735
4a061351
SB
127362012-07-08 Steven Bosscher <steven@gcc.gnu.org>
12737
12738 * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
12739 gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
12740
0be8bd1a
RE
127412012-07-07 Richard Earnshaw <rearnsha@arm.com>
12742
12743 * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
12744 (TARGET_FPA): Delete definition.
12745 (TARGET_MAVERICK): Likewise.
12746 (TARGET_FPA_EMU2): Likewise.
12747 (arm_fp_model): Remove FPA and Maverick models.
12748 (arm_arch_cirrus): Delete declaration.
12749 (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
12750 (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize.
12751 (CALL_USED_REGISTERS): Likewise.
12752 (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
12753 (FIRST_VFP_REGNUM): Renumbered.
12754 (D7_VFP_REGNUM): Chain definition.
12755 (LAST_LO_VFP_REGNUM): Likewise.
12756 (FIRST_HI_VFP_REGNUM): Likewise.
12757 (LAST_HI_VFP_REGNUM): Likewise.
12758 (FIRST_IWMMXT_GR_REGNUM): Likewise.
12759 (LAST_IWMMXT_GR_REGNUM): Likewise.
12760 (FIRST_IWMMXT_REGNUM): Likewise.
12761 (LAST_IWMMXT_REGNUM): Likewise.
12762 (FRAME_POINTER_REGNUM): Renumbered.
12763 (ARG_POINTER_REGNUM): Renumbered.
12764 (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
12765 (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
12766 (HARD_REGNO_REGNUM): Remove FPA support.
12767 (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize.
12768 (reg_class): Likewise.
12769 (REG_CLASS_NAMES): Likewise.
12770 (REG_CLASS_CONTENTS): Likewise.
12771 (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment.
12772 (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
12773 (CLASS_MAX_NREGS): Remove FPA and Maverick support.
12774 * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
12775 Reorganize. Use AAPCS preferred names.
12776 (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update
12777 comments.
12778 (OVERLAPPING_REGISTER_NAMES): Update register numbering.
12779 * arm.c (FL_CIRRUS): Delete definition.
12780 (arm_arch_cirrus): Delete variable.
12781 (arm_float_words_big_endian): Delete function.
12782 (cirrus_memory_offset): Delete function.
12783 (output_mov_long_double_fpa_from_arm): Delete function.
12784 (output_mov_long_double_arm_from_fpa): Delete function.
12785 (output_mov_double_fpa_from_arm): Delete function.
12786 (output_mov_double_arm_from_fpa): Delete function.
12787 (emit_sfm): Delete function.
12788 (maybe_get_arm_condition_code): Update comment.
12789 (arm_file_start): Always use softvfp for softfloat systems.
12790 (thumb_core_reg_alloc_order): Adjust for updated register allocation.
12791 (arm_option_override): Remove FPA and Maverick support. Always
12792 default to vfp as the fallback FPU format.
12793 (use_return_insn): Remove FPA support.
12794 (arm_get_frame_offsets): Likewise.
12795 (arm_save_coproc_regs): Likewise.
12796 (arm_canonicalize_comparison): Remove Maverick support.
12797 (arm_select_cc_mode): Likewise.
12798 (arm_gen_compare_reg): Likewise.
12799 (arm_print_operand): Likewise.
12800 (arm_libcall_value_1): Remove FPA and Maverick support.
12801 (arm_function_value_regno_p): Likewise.
12802 (arm_apply_result_size): Likewise.
12803 (arm_legitimate_index_p): Likewise.
12804 (thumb2_legitimate_index_p): Likewise.
12805 (legitimize_reload_address): Likewise.
12806 (arm_register_move_cost): Likewise.
12807 (arm_hard_regno_mode_ok): Likewise.
12808 (arm_regno_class): Likewise.
12809 (arm_dbx_register_number): Likewise.
12810 (arm_emit_unwind_sequence): Likewise.
12811 (arm_conditional_register_usage): Likewise.
12812 * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
12813 (cirrus_memory_offset): Likewise.
12814 (output_move_long_double_fpa_from_arm): Likewise.
12815 (output_move_long_double_arm_from_fpa): Likewise.
12816 (output_move_double_fpa_from_arm): Likewise.
12817 (output_move_double_arm_from_fpa): Likewise.
12818 (arm_float_words_big_endian): Likewise.
12819 * arm.md (CC_REGNUM): Renumbered.
12820 (VFPCC_REGNUM): Moved here. Renumbered.
12821 (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
12822 (attr fpu): Remove FPA and Maverick support.
12823 * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md.
12824 * arm-cores.def (ep9312): Remove Maverick support.
12825 * arm-arches.def (ep9312): Delete architecture.
12826 * arm-tables.opt: Regenerated.
12827
12828 * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
12829
8166ff4d
SB
128302012-07-07 Steven Bosscher <steven@gcc.gnu.org>
12831
12832 PR tree-optimization/53881
12833 * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
12834 comparing labels to establish uniqueness of a switch case target,
12835 use the CFG instead.
12836
f99391fe
UW
128372012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org>
12838
12839 * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
12840 due to negative shift amount.
12841
755e0546
HPN
128422012-07-07 Hans-Peter Nilsson <hp@axis.com>
12843
12844 Fix configure test for "stack protector support in target C library".
12845 * configure.ac (test_prefix, test_exec_prefix): Move setting from
12846 inside sysroot handling to before and outside it.
12847 * configure: Regenerate.
12848
d44f78af
KT
128492012-07-06 Kai Tietz <ktietz@redhat.com>
12850
12851 PR bootstrap/52947
12852 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
12853 as "/mingw/include".
12854
2b9d5ad7
AO
128552012-07-06 Alexandre Oliva <aoliva@redhat.com>
12856
12857 PR debug/53820
12858 * var-tracking.c (vt_add_function_parameter): Convert
12859 internal_arg_pointer into arg_pointer-based address even
12860 without DRAP.
12861
fe8fb1c4
AO
128622012-07-06 Alexandre Oilva <aoliva@redhat.com>
12863
12864 PR rtl-optimization/53827
12865 PR debug/53671
12866 PR debug/49888
12867 * alias.c (memrefs_conflict_p): Adjust offset and size by the
12868 same amount for alignment ANDs.
12869
6867d9a9
TV
128702012-07-06 Tom de Vries <tom@codesourcery.com>
12871
12872 PR tree-optimization/51879
12873 * tree-ssa-sccvn.c (copy_reference_ops_from_call)
12874 (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
12875 (visit_use): Also call visit_reference_op_call for calls with a vdef.
12876
4ec0a198
TV
128772012-07-06 Tom de Vries <tom@codesourcery.com>
12878
12879 PR tree-optimization/52009
12880 * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
12881 value numbers of gimple_vdef.
12882 * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
12883 prototype.
12884 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
12885 (vn_reference_insert): Add and handle vdef parameter.
12886 (visit_reference_op_load): Add argument to vn_reference_insert call.
12887 (visit_reference_op_store): Find value number of vdef of store. Insert
12888 value number of vdef of store.
12889
e81941b7
UB
128902012-07-06 Uros Bizjak <ubizjak@gmail.com>
12891
12892 * config/i386/i386.md (simple lea to add peephole): Also transform
12893 RTXes where second PLUS operand matches output.
12894
6b908be7
UB
128952012-07-06 Uros Bizjak <ubizjak@gmail.com>
12896
12897 * config/i386/i386.c (construct_plt_address): Make static.
12898 * config/i386/i386-protos.h (construct_plt_address): Remove.
12899
2ba3d2a9
NC
129002012-07-06 Nick Clifton <nickc@redhat.com>
12901
12902 * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
12903 default_encode_section_info.
12904
dea8f801
UB
129052012-07-06 Uros Bizjak <ubizjak@gmail.com>
12906
6b908be7 12907 PR target/53853
dea8f801
UB
12908 * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
12909 emit PIC sequence for fnaddr symbol reference in advance.
12910
c253bc8c
EB
129112012-07-06 Eric Botcazou <ebotcazou@adacore.com>
12912
12913 Revert
12914 2012-06-14 Eric Botcazou <ebotcazou@adacore.com>
12915
12916 * dwarf2out.c (function_possibly_abstracted_p): New static function.
12917 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
12918 cgraph_function_possibly_inlined_p.
12919 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
12920 (process_scope_var): Do not emit concrete instances of abstracted
12921 nested functions from here.
12922 (gen_decl_die): Emit the abstract instance if the function is possibly
12923 abstracted and not only possibly inlined.
12924 (dwarf2out_finish): Find the first non-abstract parent instance and
12925 attach concrete instances on the limbo list to it.
12926
37891309
RR
129272012-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12928 Julian Brown <julian@codesourcery.com>
12929
6b908be7
UB
12930 PR target/48941
12931 PR target/51980
12932 * config/arm/neon-gen.ml (return_by_ptr): Delete.
12933 (print_function): Handle empty strings.
12934 (return): Delete use of return_by_ptr.
12935 (mask_shape_for_shuffle): New function.
12936 (mask_elems): Likewise.
12937 (shuffle_fn): Likewise.
12938 (params): Simplify and remove use of return_by_ptr.
12939 (get_shuffle): New function.
12940 (print_variant): Update.
12941 * config/arm/neon.ml (rev_elems): New function.
12942 (permute_range): Likewise.
12943 (zip_range): Likewise.
12944 (uzip_range): Likewise.
12945 (trn_range): Likewise.
12946 (zip_elems): Likewise.
12947 (uzip_elems): Likewise.
12948 (trn_elems): Likewise.
12949 (features): New enumeration Use_shuffle. Delete ReturnPtr.
12950 (pf_su_8_16): New.
12951 (suf_32): New.
12952 (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
12953 * config/arm/arm_neon.h: Regenerate.
37891309 12954
44b9837c
RG
129552012-07-05 Richard Guenther <rguenther@suse.de>
12956
12957 * tree-pretty-print.c (dump_generic_node): Properly test
12958 the result of exact_log2.
12959
367d32f3
AK
129602012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12961
12962 * config/s390/s390-protos.h (s390_expand_movmem)
12963 (s390_expand_cmpmem): Add return value.
12964 * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
12965 Return FALSE to use the library function in some cases.
12966 * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
12967 helper functions.
12968
604fbe51
AK
129692012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12970
12971 * config.gcc: Enable ifunc attribute by default on s390 and s390x.
12972
04a40cb9
SB
129732012-07-05 Steven Bosscher <steven@gcc.gnu.org>
12974
12975 * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
12976 * stmt.c (dump_case_nodes): New.
12977 (expand_case): Split out code generation parts into new functions.
12978 (expand_switch_as_decision_tree_p): Split out from expand_case.
12979 (emit_case_decision_tree): Likewise.
12980 (emit_case_dispatch_table): Likewise.
12981
76f722f4
MGD
129822012-07-05 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
12983
12984 * config/arm/iterators.md (SDF): New mode iterator.
12985 (V_if_elem): Add support for SF and DF modes.
12986 (V_reg): Likewise.
12987 (F_constraint): New mode iterator attribute.
12988 (F_fma_type): Likewise.
12989 config/arm/vfp.md (fma<SDF:mode>4): New pattern.
12990 (*fmsub<SDF:mode>4): Likewise.
12991 (*fmnsub<SDF:mode>4): Likewise.
12992 (*fmnadd<SDF:mode>4): Likewise.
12993
4b68f9ee
UB
129942012-07-04 Uros Bizjak <ubizjak@gmail.com>
12995
12996 * expmed.c (expand_mult): Initialize coeff and is_neg.
12997
33344a62
OE
129982012-07-04 Oleg Endo <olegendo@gcc.gnu.org>
12999
13000 * config/sh/predicates.md (zero_extend_operand): New predicate.
13001 * config/sh/sh.md (zero_extendhisi2): Simplify by using new
13002 zero_extend_operand predicate.
13003 (zero_extendqisi2): Likewise.
13004
3f1ae742
UB
130052012-07-04 Uros Bizjak <ubizjak@gmail.com>
13006
13007 PR middle-end/53321
13008 * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
13009 to not call cgraph_propagate_frequency if something was changed.
13010
23af816c
RG
130112012-07-04 Richard Guenther <rguenther@suse.de>
13012
13013 PR middle-end/53433
13014 * gimple-fold.c (get_base_constructor): Do not return an
13015 error_mark_node DECL_INITIAL.
13016
6c9df5a0
RG
130172012-07-04 Richard Guenther <rguenther@suse.de>
13018
13019 PR tree-optimization/53844
13020 * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
13021 the loop virtual PHI.
13022
e1b6bbea
RG
130232012-07-04 Richard Guenther <rguenther@suse.de>
13024
13025 PR tree-optimization/53849
13026 * tree-cfg.c (move_stmt_op): Only call add_referenced_var
13027 for duplicated locals. Use add_referenced_var_1 to avoid
13028 pushing/popping cfun.
13029
463d5aa0
KT
130302012-07-04 Kai Tietz <ktietz@redhat.com>
13031
13032 * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
13033 * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
13034 prototype.
13035 * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
13036 as i386_pe_reloc_rw_mask.
13037
cef8c100
RG
130382012-07-04 Richard Guenther <rguenther@suse.de>
13039
13040 * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
13041 as in free_lang_data_in_type.
13042
b60cc080 130432012-07-04 Tobias Grosser <tobias@grosser.es>
3f1ae742 13044 Michael Matz <matz@suse.de>
b60cc080
TG
13045
13046 * Makefile.in (OBJS): Add graphite-optimize-isl.o.
13047 (graphite-optimize-isl.o): Add dependencies.
13048 * common.opt (floop-nest-optimize): New flag.
13049 * doc/invoke.texi (floop-nest-optimize): Document.
13050 * graphite-dependences.c (compute_deps): Export.
13051 * graphite-poly.h (compute_deps): Declare.
13052 * graphite-optimize-isl.c: New file.
13053 * graphite-poly.c (apply_poly_transforms): Run the loop
13054 nest optimizer.
13055 * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
13056 if -floop-nest-optimize is enabled.
13057
5e204a6e
OE
130582012-07-03 Oleg Endo <olegendo@gcc.gnu.org>
13059
13060 * config/sh/predicates.md (logical_and_operand): New predicate.
13061 * config/sh/constraints.md (Jmb, Jmw): New constraints.
13062 * config/sh/sh.md (andsi3): Move expander above insns. Add handling
13063 of 0xFFFF constant. Use logical_and_operand predicate and
13064 satisfies_constraint_Jmb, satisfies_constraint_Jmw.
13065 (*andsi3_compact): Make it an insn_and_split. Use
13066 logical_and_operand predicate. Add Jmb,Jmw alternatives.
13067
f5d30680
JM
130682012-07-03 Jason Merrill <jason@redhat.com>
13069
13070 PR c++/53826
13071 * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
13072
f758c26c
NC
130732012-07-03 Nick Clifton <nickc@redhat.com>
13074
13075 * config/mep/mep.c (mep_reorg_regmove): Use
13076 next_nonnote_non_debug_insn to advance to the next insn. Do not
13077 expect delete_insn to return an rtx.
13078
9795be39
RG
130792012-07-03 Richard Guenther <rguenther@suse.de>
13080
13081 * doc/install.texi (CLooG): Clarify how CLooG needs to be
13082 configured and that it needs to be built against ISL 0.10.
13083
95a3d9ee
UB
130842012-07-03 Uros Bizjak <ubizjak@gmail.com>
13085
13086 * config/i386/i386.c (ix86_option_override_internal): Fix wrong
13087 code model string in the error message.
13088
19d7dc0d
UB
130892012-07-03 Uros Bizjak <ubizjak@gmail.com>
13090
13091 PR target/53811
13092 * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
13093 sibcall_insn_operand. Move it to a temporary register if not.
13094
8e22f79f
AS
130952012-07-03 Andreas Schwab <schwab@linux-m68k.org>
13096
13097 PR target/28896
13098 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
13099 if !TARGET_68020.
13100
68a12ef3
UB
131012012-07-03 Uros Bizjak <ubizjak@gmail.com>
13102
13103 * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
13104
43283548
UB
131052012-07-03 Roland McGrath <mcgrathr@google.com>
13106
13107 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
13108 assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
13109 * configure: Regenerated.
13110 * config/i386/i386.md (simple_return_internal_long): Use %;
13111 (ctz<mode>2): Likewise.
13112 (*pause): Likewise.
13113
f031c344
OE
131142012-07-02 Oleg Endo <olegendo@gcc.gnu.org>
13115
13116 PR target/51244
13117 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
13118 predicates.
13119 * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
13120 * config/sh/sh.c (get_t_reg_rtx): New function. Use it when invoking
13121 gen_branch_true and gen_branch_false.
13122 * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
13123 gen_branch_false.
13124 (branch_true, branch_false): Use t_reg_operand predicate.
13125 (*branch_true, *branch_false): Delete.
13126 (movt): Use t_reg_operand predicate.
13127 (*negnegt): Use negt_reg_operand predicate and fold little and big
13128 endian variants.
13129 (*movtt): Use t_reg_operand and fold little and big endian variants.
13130 (*movt_qi): Delete.
13131
531b10fc
SB
131322012-07-02 Steven Bosscher <steven@gcc.gnu.org>
13133
13134 * stmt.c (emit_case_bit_tests): Remove.
13135 (expand_case): Remove expand_switch_using_bit_tests_p code.
13136 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
13137 (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
13138 (lshift_cheap_p): Likewise.
13139 (expand_switch_using_bit_tests_p): Likewise.
13140 (struct case_bit_test): Likewise.
13141 (case_bit_test_cmp): Likewise.
13142 (emit_case_bit_tests): New implementation for GIMPLE.
13143 (gen_inbound_check): Do not release post-dominator info here.
13144 (process_switch): Reorder code. Expand as bit tests if it
13145 looks like a win.
43283548 13146 (do_switchconv): Release post-dominator info here if something changed.
531b10fc
SB
13147 (struct gimple_opt_pass): Verify more.
13148 * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
13149
4e03d849
MJ
131502012-07-02 Martin Jambor <mjambor@suse.cz>
13151
13152 PR middle-end/38474
13153 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
13154 dynamic type change check.
13155
33ad93b9 131562012-07-02 Richard Guenther <rguenther@suse.de>
43283548
UB
13157 Michael Matz <matz@suse.de>
13158 Tobias Grosser <tobias@grosser.es>
13159 Sebastian Pop <sebpop@gmail.com>
33ad93b9
RG
13160
13161 * Makefile.in: Remove PPL flags in favor of ISL ones.
13162 (BACKENDLIBS): Remove PPL libs.
13163 (INCLUDES): Remove PPL includes in favor of ISL ones.
13164 (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
13165 graphite-cloog-compat.h dependencies.
13166 (graphite-dependences.o): Likewise.
13167 (graphite-poly.o): Likewise.
13168 * configure.ac: Declare ISL vars instead of PPL ones.
13169 * configure: Regenerated.
43283548 13170 * doc/install.texi: Replace PPL requirement documentation with ISL one.
33ad93b9
RG
13171 * graphite-blocking.c: Remove PPL code, add ISL equivalent.
13172 * graphite-clast-to-gimple.c: Likewise.
13173 * graphite-dependences.c: Likewise.
13174 * graphite-interchange.c: Likewise.
13175 * graphite-poly.h: Likewise.
13176 * graphite-poly.c: Likewise.
13177 * graphite-sese-to-poly.c: Likewise.
13178 * graphite.c: Likewise.
13179 * graphite-scop-detection.c: Re-arrange includes.
13180 * graphite-cloog-util.c: Remove.
13181 * graphite-cloog-util.h: Likewise.
13182 * graphite-ppl.h: Likewise.
13183 * graphite-ppl.c: Likewise.
13184 * graphite-dependences.h: Likewise.
13185
6886e444
RG
131862012-07-02 Richard Guenther <rguenther@suse.de>
13187
13188 Merge from graphite branch
13189 2011-07-21 Tobias Grosser <tobias@grosser.es>
43283548 13190
6886e444
RG
13191 * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
13192 Remove graphite-cloog-util.h.
13193 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
13194 build_iv_mapping, translate_clast_user, translate_clast,
13195 free_scattering, initialize_cloog_names, build_cloog_prog,
13196 create_params_index): Do not use old compatibility functions.
13197 (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
13198 * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
13199 compatibility functions.
13200 (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
13201 cloog.
13202 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
13203 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
13204 cloog_finalize().
13205 * graphite-cloog-compat.h: Remove.
13206
13207 2011-08-09 Tobias Grosser <tobias@grosser.es>
13208
13209 * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
13210 of the string, no just a reference.
13211 (clast_name_index): Add a new field, that specifies if we need to free
13212 the name.
13213 (free_clast_name_index): If necessary, free the name string.
13214 (clast_name_index_elt_info): Calculate the hash based on the string
13215 content, not the memory location it is stored in.
13216 (clast_name_to_level): Specify that we do not need to free the name.
13217 (clast_name_to_index): Dito.
13218 (clast_name_to_lb_ub): Dito.
13219 (eq_clast_name_indexes): Compare the strings, not their base pointers.
13220 (free_scattering): Removed.
13221 (initialize_cloog_names): Renamed to add_names_to_union_domain().
13222 (add_names_to_union_domain): Changed to work on a union_domain,
13223 instead of a CloogNames structure.
13224 (build_cloog_prog): Removed.
13225 (build_cloog_union_domain): New.
13226 (generate_cloog_input): New.
13227 (scop_to_clast): Use CloogInput instead of CloogProgram.
13228 (print_generated_program): Adapt to new scop_to_clast() and do not
13229 print the CloogProgram any more.
13230 (create_params_index): Removed, functionality integrated in
13231 add_names_to_union_domain().
13232 (gloog): Adapt to new scop_to_clast().
13233 * graphite-clast-to-gimple.h (scop_to_clast): Remove.
13234
13235 2012-01-11 Tobias Grosser <tobias@grosser.es>
43283548 13236
6886e444
RG
13237 * graphite-clast-to-gimple.c (clast_name_to_index,
13238 clast_name_to_lb_ub, clast_name_to_gcc): Change types.
13239 (clast_to_gcc_expression): Add clast_expr_name as a new
13240 case. Do not assume a clast_expr_term points always to a
13241 clast_expr_name.
13242 (type_for_clast_term): Do not assume a clast_expr_term points always to
13243 a clast_expr_name.
13244 (type_for_clast_name): New.
13245 (type_for_clast_expr): Add clast_expr_name as a new case.
13246
13247 2011-08-03 Sebastian Pop <sebpop@gmail.com>
13248
13249 * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
13250 new_Cloog_Scattering_from_ppl_Polyhedron,
13251 new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
13252
6698ed01
JJ
132532012-07-02 Jakub Jelinek <jakub@redhat.com>
13254
13255 PR tree-optimization/53645
13256 * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
13257 instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
13258
44cd6810
WG
132592012-07-01 Wei Guozhi <carrot@google.com>
13260
13261 PR target/53447
13262 * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
13263 * config/arm/arm.c (const_ok_for_dimode_op): New function.
13264 * config/arm/constraints.md (Dd): New constraint.
13265 * config/arm/predicates.md (arm_adddi_operand): New predicate.
13266 * config/arm/arm.md (adddi3): Extend it to handle constants.
13267 (arm_adddi3): Likewise.
13268 (addsi3_carryin_<optab>): Extend it to handle sbc case.
13269 (addsi3_carryin_alt2_<optab>): Likewise.
13270 * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
13271
cb686b99
NS
132722012-06-30 Nathan Sidwell <nathan@acm.org>
13273
13274 * coverage.c (bbg_file_stamp): New.
13275 (read_counts_file): Merge incoming stamp with bbg_file_stamp.
13276 (build_info): Write bbg_file_stamp.
13277 (coverage_init): Initialize bbg_file_stamp. Read counts file
13278 before writing graph header.
13279 (coverage_finish): Don't unlink the data file if we can generate a
13280 unique file stamp.
13281 * tree.h (crc32_unsigned): Declare.
13282 * tree.c (crc32_unsigned_bits): New, broken out of ...
13283 (crc32_byte): ... here. Use it.
13284 (crc32_unsigned): New.
13285
43283548 132862012-06-29 Cary Coutant <ccoutant@google.com>
1ec205bf
CC
13287
13288 * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
13289 (gen_subprogram_die): Don't add pubname if want_pubnames is false.
13290 (gen_variable_die): Likewise.
13291 (gen_namespace_die): Likewise.
13292
0118b919
EB
132932012-06-29 Eric Botcazou <ebotcazou@adacore.com>
13294
13295 * tree-eh.c (lower_try_finally_switch): Really put the location of the
13296 last statement of the finally block onto the switch.
13297
dc726735
L
132982012-06-29 H.J. Lu <hongjiu.lu@intel.com>
13299
13300 PR target/53539
13301 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
13302 TARGET_LP64.
13303
dfa15de2
SA
133042012-06-29 Sterling Augustine <saugustine@google.com>
13305
13306 * dwarf2out.c (add_pubname): Add comment.
13307 (add_pubtype): Fix indentation.
13308 (gen_enumeration_type_die): Likewise.
13309
271be516
JJ
133102012-06-29 Jakub Jelinek <jakub@redhat.com>
13311
13312 * tree-vect-generic.c (expand_vector_divmod): For even/odd
43283548 13313 widening multiply, put even always as first argument to VEC_PERM_EXPR.
271be516 13314
0fcc85cd
RH
133152012-06-29 Richard Henderson <rth@redhat.com>
13316
13317 * tree-vect-generic.c: Include target.h.
13318 (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
13319 * Makefile.in (tree-vect-generic.o): Update.
13320
d4a10d0a
SB
133212012-06-29 Steven Bosscher <steven@gcc.gnu.org>
13322
13323 * configure.ac: Remove special gtfiles case for C.
13324 * configure: Regenerate.
13325 * Makefile.in: Remove C front-end hooks and build hooks that
13326 will be picked up from c/Make-lang.in now.
13327 Add tree-mudflap to C_COMMON_OBJS.
13328 * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
13329 * config/vms/vms.c: Look for c-tree.h in c/.
13330 * doc/gty.texi: Remove reference to c-config-lang.in.
13331 * doc/sourcebuild.texi: Document the c/ subdirectory.
13332
cc193fba
SB
133332012-06-29 Steven Bosscher <steven@gcc.gnu.org>
13334
13335 * system.h (CASE_USE_BIT_TESTS): Poison.
13336 * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
13337 (expand_switch_using_bit_tests_p): ...here.
13338 * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
13339 * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
13340
67a0732f
SB
133412012-06-29 Steven Bosscher <steven@gcc.gnu.org>
13342
13343 * system.h (IFCVT_EXTRA_FIELDS): Poison.
13344 (IFCVT_INIT_EXTRA_FIELDS): Poison.
13345 * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
13346 * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
13347 IFCVT_INIT_EXTRA_FIELDS.
13348 * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
13349 * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
13350 IFCVT_MACHDEP_INIT.
13351 * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
13352 frv_ifcvt_machdep_init.
13353 * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
13354 Remove documentation.
13355 (IFCVT_MACHDEP_INIT): Document.
13356 * doc/tm.texi: Regenerate.
13357
126ea3e1
NC
133582012-06-29 Nick Clifton <nickc@redhat.com>
13359
13360 * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
13361
2b5bb7da
JJ
133622012-06-29 Jakub Jelinek <jakub@redhat.com>
13363
13364 * tree-vect-stmts.c (vectorizable_operation): Check both
13365 VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
13366 Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
13367
99651574
RH
133682012-06-28 Richard Henderson <rth@redhat.com>
13369
13370 * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
13371
c9ba3307
JJ
133722012-06-28 Jakub Jelinek <jakub@redhat.com>
13373
5deb57cb
JJ
13374 PR tree-optimization/51581
13375 * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
13376 (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
13377 also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
13378 VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
13379 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
13380 MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
13381
c9ba3307
JJ
13382 PR tree-optimization/53645
13383 * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
13384 instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
13385 if possible.
13386
b04ffa56
GJL
133872012-06-28 Georg-Johann Lay <avr@gjlay.de>
13388
13389 PR 53595
13390 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
13391 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
13392 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
13393 avr_hard_regno_call_part_clobbered.
13394
4519d745
RG
133952012-06-28 Richard Guenther <rguenther@suse.de>
13396
13397 PR middle-end/53790
13398 * expr.c (expand_expr_real_1): Verify if the type is complete
13399 before inspecting its size.
13400
7db2226d
AS
134012012-06-28 Andreas Schwab <schwab@linux-m68k.org>
13402
13403 * doc/include/gpl.texi: Remove.
13404 * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
13405
4ee4c52c
JJ
134062012-06-28 Jakub Jelinek <jakub@redhat.com>
13407
13408 PR tree-optimization/53645
13409 * tree-vect-generic.c (add_rshift): New function.
13410 (expand_vector_divmod): New function.
13411 (expand_vector_operation): Use it for vector integer
13412 TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
13413 * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
13414 unused lguup variable with dummy_int.
13415
ecd49d51
OH
134162012-06-28 OLivier Hainque <hainque@adacore.com>
13417
13418 * expr.c (convert_move): Latch mem integer inputs into a
13419 register before expanding a multi-instructions sequence.
13420
9faeb493
UB
134212012-06-28 Alexandre Oliva <aoliva@redhat.com>
13422 Uros Bizjak <ubizjak@gmail.com>
13423 Jakub Jelinek <jakub@redhat.com>
a992a6d1
AO
13424
13425 PR debug/53706
13426 PR debug/47624
13427 * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
13428 (vt_finalize): ... here instead, if needed.
13429
6f9e260c
AO
134302012-06-28 Alexandre Oliva <aoliva@redhat.com>
13431
13432 PR debug/53740
13433 PR debug/52983
13434 PR debug/48866
13435 * dce.c (word_dce_process_block): Check whether inserting debug
13436 temps are needed even for needed insns.
13437 (dce_process_block): Likewise.
13438 * df-problems.c (dead_debug_add): Add comment about multi-regs.
13439 (dead_debug_insert_temp): Likewise. Don't subreg when we're
13440 setting fewer regs than a multi-reg requires.
13441
64a5dc56
RH
134422012-06-27 Richard Henderson <rth@redhat.com>
13443
13444 * config/alpha/alpha.c (alpha_dimode_u): New.
13445 (alpha_init_builtins): Initialize it, and use it.
13446 (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
13447 (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
13448 (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
13449 (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
13450 (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
13451 (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
13452 (alpha_fold_builtin_ctpop): Likewise.
13453 (alpha_fold_builtin_umulh): Remove.
13454 (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
13455 typo in MAX_ARGS check.
13456
98449720
RH
134572012-06-27 Richard Henderson <rth@redhat.com>
13458
13459 * tree.def (MULT_HIGHPART_EXPR): New.
13460 * cfgexpand.c (expand_debug_expr): Ignore it.
13461 * expr.c (expand_expr_real_2): Handle it.
13462 * fold-const.c (int_const_binop_1): Likewise.
13463 * optabs.c (optab_for_tree_code): Likewise.
13464 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
13465 * tree-inline.c (estimate_operator_cost): Likewise.
13466 * tree-pretty-print.c (dump_generic_node): Likewise.
13467 (op_code_prio, op_symbol_code): Likewise.
13468 * tree.c (commutative_tree_code): Likewise. Also handle
13469 WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
13470
ff4d1662
RH
134712012-06-27 Richard Henderson <rth@redhat.com>
13472
13473 PR target/53749
13474 * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
13475 in 2012-06-23 change. Adjust two other DImode tests as well.
13476
4b3650e3
NC
134772012-06-27 Nick Clifton <nickc@redhat.com>
13478
13479 * config/rx/rx.md (comparesi3_extend): Remove = modifier from
13480 input operand.
13481
195b4c50
RG
134822012-06-27 Richard Guenther <rguenther@suse.de>
13483
13484 PR middle-end/53676
13485 * tree-chrec.c (chrec_convert_1): Represent truncation to
13486 a type with undefined overflow as truncation to an unsigned
13487 type converted to the type with undefined overflow.
13488 * tree-scalar-evolution.c (interpret_rhs_expr): For computing
13489 the scalar evolution of a truncated widened operation avoid
13490 looking at the non-existing evolution of the widened operation
13491 result.
13492
be7493ca
RG
134932012-06-27 Richard Guenther <rguenther@suse.de>
13494
13495 PR tree-optimization/53774
13496 * tree-ssa-reassoc.c (get_rank): All default defs have
13497 precomputed rank.
13498 (init_reassoc): Precompute rank for all SSA default defs.
13499
d3f7b31e
NC
135002012-06-27 Nick Clifton <nickc@redhat.com>
13501
13502 * config/rx/rx.md (simple_return): Use the simple_return rtx.
13503
a247af83
RH
135042012-06-26 Richard Henderson <rth@redhat.com>
13505
13506 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
13507 and don't fall thru from standard_80387_constant_p to the memory
9faeb493 13508 fallback.
a247af83 13509
87b78516
RH
135102012-06-26 Richard Henderson <rth@redhat.com>
13511
13512 * config/i386/i386.c (bdesc_args): Update. Change
13513 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
13514 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
13515 (ix86_builtin_mul_widen_even): Use it.
13516 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
13517 (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
13518 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
13519 for all SSE2.
13520 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
13521 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2.
13522 (vec_widen_smult_even_v4si): New.
13523
298301d9
RH
135242012-06-26 Richard Henderson <rth@redhat.com>
13525
13526 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
13527 to expander; move guts to ...
13528 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add
13529 highparts before shifting up.
13530 * config/i386/i386-protos.h: Update.
13531
4e2edffd
SB
135322012-06-26 Steven Bosscher <steven@gcc.gnu.org>
13533
13534 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
13535 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
13536 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
13537
de2c775d
AO
135382012-06-26 Alexandre Oliva <aoliva@redhat.com>
13539
13540 * var-tracking.c (vt_add_function_parameter): Use a preserved
13541 VALUE for the MEM address of an incoming parameter.
13542
d44f5f25
SA
135432012-06-26 Sterling Augustine <saugustine@google.com>
13544
1542460a
SA
13545 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
13546 (prune_unused_types): Likewise.
d44f5f25 13547
01a07a64
SB
135482012-06-26 Steven Bosscher <steven@gcc.gnu.org>
13549
13550 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
13551 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
13552 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
13553 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
13554 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
13555 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
13556 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
13557 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
13558 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
13559 documentation.
13560 * doc/tm.texi: Regenerate.
13561 * doc/cpp.texi: Make example for #error generic.
13562 * config/frv/frv.h: Fix example text to match tm.texi.
13563
f9453c07
BS
135642012-06-26 Bill Schmidt <wschmidt@linux.ibm.com>
13565
13566 * tree-pass.h (pass_strength_reduction): New decl.
13567 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
13568 (finalize_costs): Likewise.
13569 * timevar.def (TV_TREE_SLSR): New timevar.
13570 * gimple-ssa-strength-reduction.c: New.
13571 * tree-flow.h (initialize_costs): New decl.
13572 (finalize_costs): Likewise.
13573 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
13574 * passes.c (init_optimization_passes): Add pass_strength_reduction.
13575
703ae70c
MT
135762012-06-26 Matt Turner <mattst88@gmail.com>
13577
9faeb493 13578 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
703ae70c
MT
13579 (__builtin_arm_tinsrh): Likewise.
13580 (__builtin_arm_tinsrw): Likewise.
13581 (__builtin_arm_wsadb): Add missing v2si parameter.
13582 (__builtin_arm_wsadh): Likewise.
13583 (__builtin_arm_getwcx): Delete.
13584 (__builtin_arm_setwcx): Delete.
13585 (__builtin_arm_getwcgr0): Add.
13586 (__builtin_arm_getwcgr1): Add.
13587 (__builtin_arm_getwcgr2): Add.
13588 (__builtin_arm_getwcgr3): Add.
13589 (__builtin_arm_setwcgr0): Add.
13590 (__builtin_arm_setwcgr1): Add.
13591 (__builtin_arm_setwcgr2): Add.
13592 (__builtin_arm_setwcgr3): Add.
13593
3c04921b
RG
135942012-06-26 Richard Guenther <rguenther@suse.de>
13595
13596 Revert
13597 2012-06-21 Richard Guenther <rguenther@suse.de>
13598
13599 * tree-inline.c (estimate_num_insns): Estimate call cost for
13600 tailcalls properly.
13601
a8d56c30
SB
136022012-06-26 Steven Bosscher <steven@gcc.gnu.org>
13603
13604 PR other/33190
13605 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
13606 * doc/tm.texi: Regenerate.
13607
0c93ed52
SB
136082012-06-26 Steven Bosscher <steven@gcc.gnu.org>
13609
13610 PR other/33190
13611 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
13612 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
13613 * doc/tm.texi.in: Remove documentation for unused target macros
13614 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
13615 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
13616 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
13617 TARGET_NARROW_VOLATILE_BITFIELDS.
13618 Document that MD_HANDLE_UNWABI is a macro in libgcc.
13619 * doc/tm.texi: Regenerate.
13620 * system.h: Poison target macros
13621 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
13622 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
13623 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
13624 TARGET_NARROW_VOLATILE_BITFIELDS
13625
3d2e04fd
JH
136262012-06-26 Jan Hubicka <jh@suse.cz>
13627
13628 PR lto/53572
13629 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
13630 used symbols.
13631
035775c8
DC
136322012-06-26 Dehao Chen <dehao@google.com>
13633
13634 * tree-inline.c: (expand_call_inline): Ensure that lexical block's
13635 source location is consistant with the call stmt.
13636
38eec4c6
UW
136372012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org>
13638
13639 PR tree-optimization/53729
13640 PR tree-optimization/53636
13641 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
13642 vect_verify_datarefs_alignment until after statements have
13643 been marked as relevant/irrelevant.
13644 * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
13645 Skip irrelevant statements.
13646 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
13647 instead of STMT_VINFO_RELEVANT.
13648 (vect_get_data_access_cost): Do not check for supportable
13649 alignment before calling vect_get_load_cost/vect_get_store_cost.
13650 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
13651 handling unsupported alignment.
13652 (vect_get_load_cost): Likewise.
13653
e4ae19bc
SB
136542012-06-25 Steven Bosscher <steven@gcc.gnu.org>
13655
13656 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
13657 Do not define JMP_BUF_SIZE.
13658
5dcf6b7f
JJ
136592012-06-26 Jakub Jelinek <jakub@redhat.com>
13660
13661 PR tree-optimization/53748
13662 * tree-ssa-phiopt.c (conditional_replacement): Only optimize
13663 if arg0/arg1 have integral or pointer types.
13664
a2051b26
RH
136652012-06-25 Richard Henderson <rth@redhat.com>
13666
13667 * config/i386/sse.md (sse2_sse4_1): Remove code attr.
13668 (<s>dot_prodv4si, <s>dot_prodv8si): Remove
13669 (sdot_prodv4si): New; handle only XOP.
13670
93703e79
RH
136712012-06-25 Richard Henderson <rth@redhat.com>
13672
13673 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
13674 (V2UDI_FUNC_V4USI_V4USI): New.
13675 (V4UDI_FUNC_V8USI_V8USI): New.
13676 * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
13677 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
13678 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
13679 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
13680 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
13681 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
13682 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
13683 (bdesc_args): Add them.
13684 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
13685 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
13686 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
13687 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
13688 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
13689
379eaa6f
RH
136902012-06-25 Richard Henderson <rth@redhat.com>
13691
13692 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
13693
ac357108
RH
136942012-06-25 Richard Henderson <rth@redhat.com>
13695
13696 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
13697 to V16QImode.
13698 (ix86_expand_vec_interleave): New.
13699 (ix86_expand_mul_widen_evenodd): New.
13700 (ix86_expand_mul_widen_hilo): New.
13701 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
13702 * config/i386/i386.md (u_bool) New code attr.
13703 * config/i386/predicates.md
13704 (nonimmediate_or_const_vector_operand): Remove.
13705 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
13706 both AVX and SSE4_1.
13707 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
13708 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
13709 (vec_widen<s>mult_hi_v8si): Remove.
13710 (vec_widen<s>mult_lo_v8si): Remove.
13711 (vec_widen_smult_hi_v4si): Remove.
13712 (vec_widen_smult_lo_v4si): Remove.
13713 (vec_widen_umult_hi_v4si): Remove.
13714 (vec_widen_umult_lo_v4si): Remove.
13715 (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
13716 (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
13717 * config/i386/i386-protos.h: Update.
13718
8490252a
CL
137192012-06-25 Christophe Lyon <christophe.lyon@st.com>
13720
13721 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
13722 (neon_vld1_dup): Restrict to VQ operands.
13723 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
13724
9e94a7fc 137252012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
9faeb493 13726 James Greenhalgh <james.greenhalgh@arm.com>
9e94a7fc
MGD
13727
13728 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
13729 (TARGET_FMA): New macro.
13730 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
13731 (TARGET_ARM_ARCH): Likewise.
13732 (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
13733 (TARGET_V6M, TARGET_V7M): Likewise.
13734 (TARGET_ARM_ARCH_PROFILE): Likewise.
13735 (TARGET_ARM_FEATURE_LDREX): Likewise.
13736 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
13737 (ARM_MIN_ENUM_SIZE): Likewise.
13738 * config/arm/arm.c (arm_file_start): Refactor appropriately.
13739 (base_architecture): New enumeration.
13740 (arm_base_arch): New global variable.
13741 (processors): Add field base_arch.
13742 (ARM_ARCH, ARM_CORE): Adjust accordingly.
13743 (arm_option_override): Add initialization of arm_base_arch.
13744 * doc/cpp.texi (system-specific predefined macros.): Change.
13745
85d91748
JJ
137462012-06-25 Jakub Jelinek <jakub@redhat.com>
13747
13748 PR target/53759
13749 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
13750 of x x x in the vmovlps load alternative.
13751
ecf706e5
RS
137522012-06-25 Richard Sandiford <rdsandiford@googlemail.com>
13753
13754 PR debug/53740
13755 * df.h (dead_debug_add): Remove third argument.
13756 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
13757 REG that we want to replace instead.
13758 (dead_debug_insert_temp): Use the REGNO of the reg that we want
13759 to replace instead of DF_REF_REGNO. Require there to always be
13760 at least one such use. Check for cases where the same location
13761 has more than df_ref associated with it.
13762 (df_note_bb_compute): Remove third dead_debug_add argument.
13763 * dce.c (word_dce_process_block): Likewise.
13764
39ce30d8
SB
137652012-06-25 Steven Bosscher <steven@gcc.gnu.org>
13766
13767 * config/v850/v850.c: Remove redundant extern declarations for
13768 last_assemble_variable_decl and size_directive_output.
13769
13770 * doc/tm.texi.in: Document JMP_BUF_SIZE.
13771 * doc/tm.texi: Regenerate.
13772 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
13773 * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
13774 * config/stormy16/stormy16.h: Likewise.
13775
13776 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
13777
13778 * doc/sourcebuild.texi: Add missing subdirectories.
13779
4e523f33
TG
137802012-06-25 Tristan Gingold <gingold@adacore.com>
13781
13782 * config/i386/i386.h: Fix typo.
13783
a2851b75
TG
137842012-06-25 Tristan Gingold <gingold@adacore.com>
13785
13786 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
13787 (seh_cfa_adjust_cfa): ... that function.
13788 (seh_emit_stackalloc): Do not emit out of range values.
13789 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
13790 UNSPEC_DEF_CFA constants.
13791 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
13792 * config/i386/i386.c (ix86_frame_pointer_required): Required
13793 for very large frames on SEH target.
13794 (ix86_compute_frame_layout): Save area is before frame pointer
13795 on SEH target. Handle very large frames.
13796 (ix86_expand_prologue): Likewise.
13797
416ff32e
SB
137982012-06-24 Steven Bosscher <steven@gcc.gnu.org>
13799
13800 * output.h: (current_function_is_leaf,
13801 current_function_sp_is_unchanging,
13802 current_function_uses_only_leaf_regs): Remove.
13803 * function.c (current_function_is_leaf,
13804 current_function_sp_is_unchanging,
13805 current_function_uses_only_leaf_regs): Remove.
13806 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
13807 instead of current_function_uses_only_leaf_regs.
13808 * function.h (struct rtl_data): New fields sp_is_unchanging,
13809 is_leaf, uses_only_leaf_regs.
13810 * resource.c (init_resource_info): Replace current_function_is_leaf,
13811 current_function_sp_is_unchanging, and
13812 current_function_uses_only_leaf_regs with new crtl fields.
13813 * sdbout.c (sdbout_symbol): Likewise.
13814 * df-core.c (rest_of_handle_df_initialize): Likewise.
13815 * ira.c (ira): Likewise.
13816 * final.c (final_start_function): Likewise.
13817 * reorg.c (fill_simple_delay_slots): Likewise.
13818 * regrename.c (check_new_reg_p): Likewise.
13819 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
13820 (notice_stack_pointer_modification): Likewise.
13821 * dbxout.c (dbxout_symbol): Likewise.
13822 (dbxout_parms): Likewise.
13823 * sel-sched.c (init_regs_for_mode): Likewise.
13824 * dwarf2out.c (dbx_reg_number): Likewise.
13825 (multiple_reg_loc_descriptor): Likewise.
13826 * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
13827 (gen_pop): Likewise.
13828 (ix86_select_alt_pic_regnum): Likewise.
13829 (ix86_compute_frame_layout): Likewise.
13830 (ix86_finalize_stack_realign_flags): Likewise.
13831 (ix86_expand_epilogue): Likewise.
13832 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
13833 * config/h8300/h8300.c (byte_reg): Likewise.
13834 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
13835 (c6x_save_reg): Likewise.
13836 (c6x_compute_frame_layout): Likewise.
13837 * config/pa/pa.c (pa_compute_frame_size): Likewise.
13838 (pa_output_function_prologue): Likewise.
13839 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
13840 * config/sparc/sparc.md (attr "leaf_function"): Likewise.
13841 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
13842 (sparc_expand_prologue): Likewise.
13843 (sparc_flat_expand_prologue): Likewise.
13844 (sparc_asm_function_prologue): Likewise.
13845 (sparc_output_mi_thunk): Likewise.
13846 (sparc_frame_pointer_required): Likewise.
13847 * config/epiphany/epiphany.c (epiphany_compute_function_type):
13848 Likewise.
13849 (epiphany_compute_frame_size): Likewise.
13850 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
13851 * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
13852 (cris_frame_pointer_required): Likewise.
13853 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
13854 (tilepro_current_function_is_leaf): Likewise.
13855 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
13856 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
13857 * config/ia64/ia64.c (find_gr_spill): Likewise.
13858 (ia64_compute_frame_size): Likewise.
13859 (ia64_can_eliminate): Likewise.
13860 (ia64_initial_elimination_offset): Likewise.
13861 * config/m68k/m68k.c (m68k_save_reg): Likewise.
13862 (m68k_expand_epilogue): Likewise.
13863 * config/rx/rx.c (rx_get_stack_layout): Likewise.
13864 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
13865 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
13866 Likewise.
13867 (picochip_output_frame_debug): Likewise.
13868 * config/sh/sh.c (sh_media_register_for_return): Likewise.
13869 (sh_allocate_initial_value): Likewise.
13870 (sh_output_mi_thunk): Likewise.
13871 * config/microblaze/microblaze.c (microblaze_must_save_register):
13872 Likewise.
13873 (compute_frame_size): Likewise.
13874 (microblaze_initial_elimination_offset): Likewise.
13875 (microblaze_expand_prologue): Likewise.
13876 (microblaze_expand_epilogue): Likewise.
13877 * config/frv/frv.c (frv_expand_epilogue): Likewise.
13878 (frv_frame_pointer_required): Likewise.
13879 * config/spu/spu.c (get_pic_reg): Likewise.
13880 (direct_return): Likewise.
13881 (spu_expand_prologue): Likewise.
13882 (spu_expand_epilogue): Likewise.
13883 (spu_initial_elimination_offset): Likewise.
13884 * config/mips/mips.c (mips_global_pointer): Likewise.
13885 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
13886 (mips_compute_frame_info): Likewise.
13887 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
13888 (mep_reload_pointer): Likewise.
13889 * config/rl78/rl78.c (need_to_save): Likewise.
13890 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
13891 * config/score/score.c (score_compute_frame_size): Likewise.
13892 (score_function_prologue): Likewise.
13893 * config/bfin/bfin.c (must_save_p): Likewise.
13894 (expand_prologue_reg_save): Likewise.
13895 (expand_epilogue_reg_restore): Likewise.
13896 (bfin_frame_pointer_required): Likewise.
13897 (n_regs_saved_by_prologue): Likewise.
13898 (add_to_reg): Likewise.
13899 (expand_interrupt_handler_prologue): Likewise.
13900 (expand_interrupt_handler_epilogue): Likewise.
13901 (bfin_expand_prologue): Likewise.
13902 * config/avr/avr.c (avr_regs_to_save): Likewise.
13903 (avr_prologue_setup_frame): Likewise.
13904 (expand_epilogue): Likewise.
13905 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
13906 (s390_register_info): Likewise.
13907 (s390_frame_info): Likewise.
13908 (s390_init_frame_layout): Likewise.
13909 (s390_emit_prologue): Likewise.
13910
13911
e1ab7892
SB
139122012-06-24 Steven Bosscher <steven@gcc.gnu.org>
13913
13914 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
13915 * vmsdbgout: Do not undefine it if defined.
13916 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
13917 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
13918 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
13919
636da826
RS
139202012-06-24 Richard Sandiford <rdsandiford@googlemail.com>
13921
9faeb493 13922 * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
636da826 13923
77a3dbf6
RH
139242012-06-23 Richard Henderson <rth@redhat.com>
13925
2d542a9f
RH
13926 PR target/53749
13927 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
13928 V*QImode shifts and multiply.
13929 (ix86_expand_vecop_qihi): Support shifts.
13930 * config/i386/i386.md (any_shift): New code iterator.
13931 * config/i386/sse.md (ashlv16qi3): Merge ...
13932 (<any_shiftrt>v16qi3): ... into ...
13933 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi
13934 to support SSE and AVX.
13935
7b532118
RH
13936 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
13937 parameter into src and dest.
13938 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
13939 (vec_unpacks_hi_<V124_AVX2>): Likewise.
13940 (vec_unpacku_lo_<V124_AVX2>): Likewise.
13941 (vec_unpacks_lo_<V124_AVX2>): Likewise.
13942 * config/i386/i386-protos.h: Update.
13943
77a3dbf6
RH
13944 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
13945 pure expander; move expansion code ...
13946 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function.
13947 * config/i386/i386-protos.h: Update.
13948
42533d77
EW
139492012-06-22 Edmar Wienskoski <edmar@freescale.com>
13950
13951 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
13952 (popcntb<mode>2): Add attribute type popcnt.
13953 (popcntd<mode>2): Ditto.
13954 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
13955 * config/rs6000/power5.md (define_insn_reservation): Ditto.
13956 * config/rs6000/power7.md (define_insn_reservation): Ditto.
13957 * config/rs6000/476.md (define_insn_reservation): Ditto.
13958 * config/rs6000/power6.md (define_insn_reservation): New
13959 reservation for popcnt instructions.
13960
50c7ad7e
L
139612012-06-22 H.J. Lu <hongjiu.lu@intel.com>
13962
13963 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
13964
5bfb2af2
L
139652012-06-22 H.J. Lu <hongjiu.lu@intel.com>
13966
13967 PR target/53383
13968 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
13969
13970 * config/i386/i386.c (ix86_option_override_internal): Allow
13971 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
13972
13973 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
13974 if SSE is disabled.
13975
7735d6c7
BS
139762012-06-22 Bill Schmidt <wschmidt@linux.ibm.com>
13977
13978 * double-int.c (double_int_multiple_of): New function.
13979 * double-int.h (double_int_multiple_of): New decl.
13980 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
13981 (mbc_entry_hash): New forward decl.
13982 (mbc_entry_eq): Likewise.
13983 (zero_cost): Change to no_cost.
13984 (mult_costs): New static var.
13985 (cost_tables_exist): Likewise.
13986 (initialize_costs): New function.
13987 (finalize_costs): Likewise.
13988 (tree_ssa_iv_optimize_init): Call initialize_costs.
13989 (add_cost): Change to add_regs_cost; distinguish costs by speed.
13990 (multiply_regs_cost): New function.
13991 (add_const_cost): Likewise.
13992 (extend_or_trunc_reg_cost): Likewise.
13993 (negate_reg_cost): Likewise.
13994 (multiply_by_cost): Change to multiply_by_const_cost; distinguish
13995 costs by speed.
13996 (get_address_cost): Change add_cost to add_regs_cost; change
13997 multiply_by_cost to multiply_by_const_cost.
13998 (force_expr_to_var_cost): Change zero_cost to no_cost; change
13999 add_cost to add_regs_cost; change multiply_by_cost to
14000 multiply_by_const_cost.
14001 (split_cost): Change zero_cost to no_cost.
14002 (ptr_difference_cost): Likewise.
14003 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
14004 to multiply_by_const_cost.
14005 (get_computation_cost_at): Change add_cost to add_regs_cost; change
14006 multiply_by_cost to multiply_by_const_cost.
14007 (determine_use_iv_cost_generic): Change zero_cost to no_cost.
14008 (determine_iv_cost): Change add_cost to add_regs_cost.
14009 (iv_ca_new): Change zero_cost to no_cost.
14010 (tree_ssa_iv_optimize_finalize): Call finalize_costs.
14011 * tree-ssa-address.c (most_expensive_mult_to_index): Change
14012 multiply_by_cost to multiply_by_const_cost.
14013 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
14014 (add_regs_cost): New decl.
14015 (multiply_regs_cost): Likewise.
14016 (add_const_cost): Likewise.
14017 (extend_or_trunc_reg_cost): Likewise.
14018 (negate_reg_cost): Likewise.
14019
62e0a1ed
RG
140202012-06-22 Richard Guenther <rguenther@suse.de>
14021
14022 Merge from graphite branch
14023 2011-08-10 Sebastian Pop <sebpop@gmail.com>
9faeb493 14024
62e0a1ed
RG
14025 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
14026
14027 2012-01-13 Tobias Grosser <tobias@grosser.es>
14028
14029 * tree-flow.h (parallelized_function_p): Declare.
14030 * tree-parloops.c (parallelized_function_p): Export.
14031 * graphite.c (graphite_transform_loops): Do not run graphite on
14032 already parallel functions.
14033
d25df882
AM
140342012-06-22 Alan Modra <amodra@gmail.com>
14035
14036 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
14037 return mem. Convert to indirect addressing if not indirect or
14038 indexed. Adjust all callers.
14039
de703cd7
RG
140402012-06-22 Richard Guenther <rguenther@suse.de>
14041
14042 * gcov-iov.c: Include bconfig.h and system.h.
14043
dbf85890
AS
140442012-06-22 Andreas Schwab <schwab@linux-m68k.org>
14045
14046 * doc/include/texinfo.tex: Update to version 2012-06-05.14.
14047
e196f4b7
RG
140482012-06-22 Richard Guenther <rguenther@suse.de>
14049
14050 PR gcov-profile/53744
14051 * gcov-iov.c (main): Treat "" and "prerelease" the same.
14052
c43470b1
EB
140532012-06-22 Eric Botcazou <ebotcazou@adacore.com>
14054
14055 PR debug/53704
14056 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
14057 for GNU Fortran if in strict DWARF2 mode.
14058
a300e459
EB
140592012-06-22 Eric Botcazou <ebotcazou@adacore.com>
14060
14061 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
14062 DECL_IGNORED_P non-reg vars even if they are used.
14063
61806a93
AO
140642012-06-21 Alexandre Oliva <aoliva@redhat.com>
14065
14066 PR debug/53671
14067 PR debug/49888
14068 * var-tracking.c (vt_get_canonicalize_base): New.
14069 (vt_canonicalize_addr, vt_stack_offset_p): New.
14070 (vt_canon_true_dep): New.
14071 (drop_overlapping_mem_locs): Use vt_canon_true_dep.
14072 (clobber_overlaping_mems): Use vt_canonicalize_addr.
14073
48b00503
AO
140742012-06-21 Alexandre Oliva <aoliva@redhat.com>
14075
14076 PR debug/53671
14077 PR debug/49888
14078 * var-tracking.c (vt_initialize): Record initial offset between
14079 arg pointer and stack pointer.
14080
4977e903
AO
140812012-06-21 Alexandre Oliva <aoliva@redhat.com>
14082
14083 PR debug/53671
14084 PR debug/49888
14085 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
14086 CFA base.
14087
a9bf4fe2
AO
140882012-06-21 Alexandre Oliva <aoliva@redhat.com>
14089
14090 PR debug/53671
14091 PR debug/49888
9faeb493 14092 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
a9bf4fe2 14093
1ca63357
AO
140942012-06-21 Alexandre Oliva <aoliva@redhat.com>
14095
14096 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
14097
ce8fe26d
AO
140982012-06-21 Alexandre Oliva <aoliva@redhat.com>
14099
14100 PR debug/53682
14101 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
14102
b6fbbea3
MI
141032012-06-21 Meador Inge <meadori@codesourcery.com>
14104
14105 PR c/53702
14106 * c-decl.c (c_push_function_context): Restore the behavior to reuse
14107 the language function allocated for -Wunused-local-typedefs.
14108 (c_pop_function_context): If necessary, clear the language function
14109 created in c_push_function_context. Always clear out the
14110 x_cur_stmt_list field of the restored language function.
14111
9faeb493
UB
141122012-06-21 Sterling Augustine <saugustine@google.com>
14113 Cary Coutant <ccoutant@google.com>
5175cbaf
SA
14114
14115 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
14116 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
14117 (comdat_type_struct): New field 'skeleton_die'.
14118 (breakout_comdat_types): Update it.
14119 (add_pubname): Rework logic. Call is_class_die, is_cu_die and
14120 is_namespace_die. Fix minor style violation. Call want_pubnames.
14121 (add_pubname_string): Call want_pubnames.
14122 (add_pubtype): Rework logic for calculating type name. Call
14123 is_namespace_die. Call want_pubnames.
14124 (output_pubnames): Move conditional logic deciding when to produce the
14125 section from dwarf2out_finish. Use new skeleton_die field.
14126 (base_type_die): Call add_pubtype.
14127 (gen_enumeration_type_die): Unconditionally call add_pubtype.
14128 (gen_subprogram_die): Adjust calls to add_pubname.
14129 (gen_namespace_die): Call add_pubname_string.
14130 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
14131 produce pubnames and pubtypes sections to output_pubnames.
0aba8600 14132 * common.opt (-gpubnames): New option.
1a102c52 14133 * doc/invoke.texi: Document it.
5175cbaf 14134
7033abe1
SB
141352012-06-21 Steven Bosscher <steven@gcc.gnu.org>
14136
14137 * config/m32c/m32c-pragma.c: Remove unnecessary includes.
14138
625ed172
MM
141392012-06-21 Michael Matz <matz@suse.de>
14140
14141 PR middle-end/53688
14142 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
14143 with correct size.
14144
ccd49f5a
RG
141452012-06-21 Richard Guenther <rguenther@suse.de>
14146
14147 * tree-inline.c (estimate_num_insns): Estimate call cost for
14148 tailcalls properly.
14149
19c1aa2d
RS
141502012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
14151
14152 * tree.h (DECL_SOURCE_COLUMN): New accessor.
14153
19425621
UB
141542012-06-20 Uros Bizjak <ubizjak@gmail.com>
14155
14156 * config/i386/i386.md (SINCOS): New int iterator.
14157 (sincos): New int attribute.
14158 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
14159 SINCOS int iterator.
14160 (*<sincos>_extend<mode>xf2_i387): Macroize insn from
14161 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
14162
141632012-06-20 Uros Bizjak <ubizjak@gmail.com>
14164
14165 * config/i386/i386.md (RDFSGSBASE): New int iterator.
14166 (WRFSGSBASE): Ditto.
14167 (fsgs): New int attribute.
14168 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
14169 RDFSGSBASE int iterator.
14170 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
14171 WRFSGSBASE int iterator.
14172
bafda723
UB
141732012-06-20 Uros Bizjak <ubizjak@gmail.com>
14174
14175 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
14176 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
14177 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
14178 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
14179 int iterator.
14180
975667e7
SB
141812012-06-20 Steven Bosscher <steven@gcc.gnu.org>
14182
14183 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
14184
a75f5017
RG
141852012-06-20 Richard Guenther <rguenther@suse.de>
14186
14187 PR tree-optimization/30318
14188 * tree-vrp.c (range_int_cst_p): Do not reject overflowed
14189 constants here.
14190 (range_int_cst_singleton_p): But explicitely here.
14191 (zero_nonzero_bits_from_vr): And here.
14192 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
14193 to cover all cases we can perform arbitrary precision
14194 arithmetic with double-ints.
14195 (intersect_ranges): Handle adjacent anti-ranges.
14196
fb124e23
UB
141972012-06-20 Uros Bizjak <ubizjak@gmail.com>
14198
14199 * config/i386/i386.md (rounding_insn): New int attribute.
14200 (<rounding_insn>xf2): Macroize insn from
14201 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
14202 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
14203
142042012-06-20 Uros Bizjak <ubizjak@gmail.com>
14205
14206 * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
14207 (ieee_maxmin): New int attribute.
14208 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
19425621 14209 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
fb124e23 14210
34dd397b
SB
142112012-06-20 Steven Bosscher <steven@gcc.gnu.org>
14212
14213 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
14214 * config/arm/arm.c: Do not include c-pragma.h.
14215 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
14216 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
14217 to arm_emit_eabi_attribute.
14218 * arm-c.c: Do not include output.h.
14219 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
14220 call to arm_emit_eabi_attribute.
14221 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
14222
f89dcfd8
RG
142232012-06-20 Richard Guenther <rguenther@suse.de>
14224
14225 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
14226 Allow adjusting alignment of user-aligned decls again.
14227
5a772946
SB
142282012-06-20 Steven Bosscher <steven@gcc.gnu.org>
14229
14230 * config/rl78/rl78-c.c: Remove unnecessary includes.
14231
3e71d953
SB
142322012-06-20 Steven Bosscher <steven@gcc.gnu.org>
14233
14234 * config/cris/cris.c: Include cgraph.h.
14235 (cris_option_override): Do not set non-existing flag_no_gcc_ident.
14236
8930883e
MK
142372012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
14238
14239 * emit-rtl.c (need_atomic_barrier_p): New function.
14240 * emit-rtl.h (need_atomic_barrier_p): Declare it.
14241 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
14242 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
14243 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
14244 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
14245 (mips_process_sync_loop): Use generic version instead.
14246
ff619148
MK
142472012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
14248
14249 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
14250 it is used.
14251
6399761a 142522012-06-19 Tom de Vries <vries@codesourcery.com>
fb124e23 14253 Maxim Kuvyrkov <maxim@codesourcery.com>
6399761a
TV
14254
14255 * config/mips/constraints.md (ZR): New constraint.
14256 * config/mips/predicates.md (mem_noofs_operand): New predicate.
14257 * config/mips/mips.c (mips_print_operand): Handle new print modifier.
fb124e23 14258 * config/mips/mips.h (TARGET_XLP): Define.
6399761a
TV
14259 (TARGET_SYNC_AFTER_SC): Update.
14260 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
14261 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
14262 XLP-specific swap and ldadd patterns.
14263 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
14264
01c196ea
TV
142652012-06-19 Tom de Vries <vries@codesourcery.com>
14266 Maxim Kuvyrkov <maxim@codesourcery.com>
14267
14268 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
14269 (mips_emit_post_atomic_barrier_p): New static functions.
14270 (mips_process_sync_loop): Use them. Emit sync memory barriers in
14271 accordance with memory model semantics. Add return of CMP result for
14272 compare_and_swap.
14273 * config/mips/mips.md: Update comment.
14274 (sync_cmp): New attribute.
14275 (sync_memmodel): New attribute replacing sync_release_barrier.
14276 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
14277 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
14278 (sync_lock_test_and_set, test_and_set_12): Update.
14279 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
14280 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
14281
b513d0fe
JM
142822012-06-19 Joseph Myers <joseph@codesourcery.com>
14283
14284 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
14285 mov_si<mode>_e500_subreg0.
14286 (*mov_si<mode>_e500_subreg0_elf_low)
14287 (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
14288
f49278e6
RH
142892012-06-19 Richard Henderson <rth@redhat.com>
14290
14291 * config/alpha/alpha.c: Include params.h.
14292 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
14293 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
14294
70f42967
SB
142952012-06-19 Steven Bosscher <steven@gcc.gnu.org>
14296
14297 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
14298 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
14299 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
14300 Remove.
14301 * doc/tm.texi: Regenerate.
14302 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
14303 .objc_class_name_*.
14304 * config/darwin-c.c: Include target.h.
14305 (darwin_objc_declare_unresolved_class_reference): New function.
14306 (darwin_objc_declare_class_definition): New function.
14307 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
14308 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
14309
a8781821
SB
143102012-06-19 Steven Bosscher <steven@gcc.gnu.org>
14311
14312 * target.def (output_ident): New hook.
14313 * targhooks.h (default_asm_output_ident_directive): Add prototype.
14314 * varasm.c (assemble_asm): Only prefix a tab if the string does not
14315 already start with one.
14316 (default_asm_output_ident_directive): New function to emit
14317 .ident as a top-level asm node while parsing, or directly to
14318 asm_out_file after parsing.
14319 * toplev.c (compile_file): Print a GCC .ident with
14320 targetm.asm_out.output_ident.
14321 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
14322 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
14323 * doc/tm.texi: Update.
14324
14325 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
14326 (TARGET_ASM_OUTPUT_IDENT): Define.
14327 * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
14328 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
14329 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
14330 * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
14331 (TARGET_ASM_OUTPUT_IDENT): Define.
14332 * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
14333 (TARGET_ASM_OUTPUT_IDENT): Define.
14334
14335 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
14336 * config/cris/cris.c (cris_asm_output_ident): New function.
14337 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
14338
14339 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
14340 Add prototype.
14341 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
14342 (microblaze_asm_output_ident): Rewrite to work similar to
14343 default_asm_output_ident_directive for front-end .idents.
14344 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
14345 (TARGET_ASM_OUTPUT_IDENT): Define.
14346
14347 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
14348 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
14349
14350 * config/rx/rx.c: Include cgraph.h for add_asm_node.
14351 (rx_asm_output_ident): New function, similar to
14352 default_asm_output_ident_directive, but handle AS100 syntax also, so
14353 that #ident also works for rx in AS100 syntax.
14354 (TARGET_ASM_OUTPUT_IDENT): Define.
14355 * config/rx/rx.h (IDENT_ASM_OP): Remove.
14356
14357 * Makefile.in: Fix dependencies for c-family/c-lex.o.
14358
e42d5b2d
UB
143592012-06-19 Uros Bizjak <ubizjak@gmail.com>
14360
14361 * config/i386/i386.md (FIST_ROUNDING): New int iterator.
14362 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
14363 (ROUNDING): Ditto.
14364 (*fist<mode>2_<rounding>_1): Macroize insn from
14365 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
14366 (fistdi2_<rounding>): Macroize insn from
14367 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
14368 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
14369 corresponding splitters from fistdi2_{floor,ceil} and corresponding
14370 splitters using FIST_ROUNDING int iterator.
14371 (fist<mode>2_<rounding>): Macroize insn from
14372 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
14373 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
14374 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
14375 splitters using FIST_ROUNDING int iterator.
14376 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
14377 using FIST_ROUNDING int iterator.
14378
73e9d637
RH
143792012-06-19 Richard Henderson <rth@redhat.com>
14380
14381 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
14382 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
14383 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
14384 * config/i386/sse.md (sse2_mulv4si3): Delete.
14385 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
14386 nonimmediate_or_const_vector_operand.
14387
84ddb681
RH
143882012-06-19 Richard Henderson <rth@redhat.com>
14389
14390 * expmed.c (struct init_expmed_rtl): Split ...
14391 (init_expmed_one_mode): ... out of ...
14392 (init_expmed): ... here. Initialize integer vector modes also.
14393 (synth_mult): Handle integer vector modes.
14394 (choose_mult_variant): Likewise.
14395 (expand_mult_const): Likewise.
14396 (expand_mult): Likewise.
14397 * machmode.h (GET_MODE_UNIT_BITSIZE): New.
14398
6bc0ff89
RH
143992012-06-19 Richard Henderson <rth@redhat.com>
14400
14401 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
14402 integral vector modes.
14403
b13024e6
UB
144042012-06-19 Uros Bizjak <ubizjak@gmail.com>
14405
14406 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
14407 (rounding): New int attribute.
14408 (ROUNDING): Ditto.
14409 (frndintxf2_<rounding>): Macroize insn from
14410 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
14411 (frndintxf2_<rounding>_i387): Macroize insn from
14412 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
14413
b54e19c2
RG
144142012-06-19 Richard Guenther <rguenther@suse.de>
14415
14416 * tree-vrp.c (union_ranges): New function.
14417 (vrp_meet_1): Use union_ranges.
14418 (vrp_meet): Dump what we union and call vrp_meet_1.
14419
82981dc4
RE
144202012-06-19 Richard Earnshaw <rearnsha@arm.com>
14421
14422 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
14423 (attr type): Remove fmul, ffmul, farith, ffarith, float_em
14424 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
14425 (attr write_conflict, attr core_cycles): Update.
14426 * arm-generic.md (r_mem_f_wbuf): Delete reservation.
14427
105b7208
RG
144282012-06-19 Richard Guenther <rguenther@suse.de>
14429
14430 * tree-vrp.c (intersect_ranges): Handle more cases.
14431 (vrp_intersect_ranges): Dump what we intersect and call ...
14432 (vrp_intersect_ranges_1): ... this.
14433
af4d0d91
RG
144342012-06-19 Richard Guenther <rguenther@suse.de>
14435
14436 PR tree-optimization/53708
14437 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
14438 user-supplied alignment and alignment of decls with the used
14439 attribute.
14440
a910399d
LC
144412012-06-18 Lawrence Crowl <crowl@google.com>
14442
14443 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
14444 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
14445 (TV_PHASE_STREAM_IN): New.
14446 (TV_PHASE_STREAM_OUT): New.
14447 * timevar.c (validate_phases): New.
14448 (timevar_print): Call validate_phases.
14449 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
14450 to TV_PHASE_OPT_GEN.
14451 * langhooks.c (write_global_declarations): Rename use of
14452 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of
14453 TV_PHASE_CHECK_DBGINFO.
14454 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
14455 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to
14456 lang_hooks.decls.final_write_globals.
14457
f897891a
DE
144582012-06-18 David Edelshn <dje.gcc@gmail.com>
14459
14460 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
14461
b86da593
UB
144622012-06-18 Uros Bizjak <ubizjak@gmail.com>
14463
14464 PR target/53712
14465 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
14466 (*sse4_2_pcmpistr_unaligned): New.
14467
c59e1214 144682012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14469 Sameera Deshpande <sameera.deshpande@arm.com>
14470 Greta Yorsh <greta.yorsh@arm.com>
c59e1214 14471
1a73c9e4
UB
14472 * config/arm/arm-protos.h (arm_output_epilogue): Remove.
14473 * config/arm/arm.c (print_multi_reg): Remove.
14474 (vfp_output_fldmd): Likewise.
14475 (arm_output_epilogue): Likewise.
14476 * config/arm/arm.md (epilogue_insns): Update condition and code.
c59e1214 14477
482baa63 144782012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14479 Sameera Deshpande <sameera.deshpande@arm.com>
14480 Greta Yorsh <greta.yorsh@arm.com>
482baa63 14481
1a73c9e4
UB
14482 * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
14483 * config/arm/arm.c (thumb2_expand_return): New function.
14484 * config/arm/arm.md (return): Update condition and code.
482baa63 14485
f79b86a4 144862012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14487 Sameera Deshpande <sameera.deshpande@arm.com>
14488 Greta Yorsh <greta.yorsh@arm.com>
f79b86a4 14489
1a73c9e4
UB
14490 * config/arm/arm-protos.h (output_return_instruction): New parameter
14491 and int to bool change of parameter types.
14492 * config/arm/arm.c (output_return_instruction): Likewise.
14493 * config/arm/arm.md (arm_simple_return): New pattern.
14494 (arm_return, cond_return, cond_return_inverted): Add new arguments.
14495 * config/arm/thumb2.md (thumb2_return): Update condition and code.
f79b86a4 14496
d461c88a 144972012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14498 Sameera Deshpande <sameera.deshpande@arm.com>
14499 Greta Yorsh <greta.yorsh@arm.com>
d461c88a 14500
1a73c9e4
UB
14501 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
14502 * config/arm/arm.c (arm_expand_epilogue): New function.
14503 * config/arm/arm.md (epilogue): Update condition and code.
14504 (sibcall_epilogue): Likewise.
d461c88a 14505
0f9926f3 145062012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14507 Sameera Deshpande <sameera.deshpande@arm.com>
14508 Greta Yorsh <greta.yorsh@arm.com>
0f9926f3 14509
1a73c9e4
UB
14510 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
14511 * config/arm/arm.md (arm_addsi3) Add an alternative.
0f9926f3 14512
4b2678f8 145132012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14514 Sameera Deshpande <sameera.deshpande@arm.com>
14515 Greta Yorsh <greta.yorsh@arm.com>
4b2678f8 14516
1a73c9e4
UB
14517 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
14518 * config/arm/predicates.md (pop_multiple_fp) New special predicate.
14519 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
4b2678f8 14520
3aee1982 145212012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
14522 Sameera Deshpande <sameera.deshpande@arm.com>
14523 Greta Yorsh <greta.yorsh@arm.com>
3aee1982 14524
1a73c9e4
UB
14525 * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
14526 (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
14527 (pop_multiple_with_return, ldr_with_return) Likewise.
14528 * config/arm/predicates.md (pop_multiple_return) New special predicate.
14529 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
14530 * config/arm/arm.c (arm_output_multireg_pop) New function.
14531 (arm_emit_multi_reg_pop): New function.
3aee1982 14532
474038cd
GY
145332012-06-18 Greta Yorsh <Greta.Yorsh@arm.com>
14534
14535 * config/arm/arm.c (ldm_stm_operation_p): Require SP
14536 as base register for loads if SP is in the register list.
14537
9ef7adc0
RG
145382012-06-18 Richard Guenther <rguenther@suse.de>
14539
14540 PR tree-optimization/53693
14541 * tree-vect-patterns.c (vect_operation_fits_smaller_type):
14542 Reject operands with more than one use.
14543
9b10be32
BS
145442012-06-18 Bill Schmidt <wschmidt@linux.ibm.com>
14545
14546 PR tree-optimization/53703
14547 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
14548 correctly set bb_for_def[12].
14549
d421b10c
SB
145502012-06-18 Steven Bosscher <steven@gcc.gnu.org>
14551
14552 * config/vax/vax.h (VMS_TARGET): Remove.
14553
3928c098
RG
145542012-06-18 Richard Guenther <rguenther@suse.de>
14555
14556 * tree-vrp.c (extract_range_from_assert): Split out range
14557 intersecting code.
14558 (intersect_ranges): New function.
14559 (vrp_intersect_ranges): Likewise.
14560
ab4a745b
AK
145612012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14562
14563 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
14564 r187965.
14565
57a4717b
TB
145662012-06-18 Tejas Belagod <tejas.belagod@arm.com>
14567
14568 * doc/md.texi: Document int iterators.
14569 * read-rtl.c (ints): New iterator group.
14570 (find_int): Int iterator group callback.
14571 (apply_int_iterator): Likewise.
14572 (apply_iterators): Traverse int iterator table and add all the used
14573 iterators to list.
1a73c9e4
UB
14574 (initialize_iterators): Initialize data structures and callbacks for
14575 int iterators.
57a4717b
TB
14576 (read_rtx): Parse and read mappings for int iterators.
14577 (read_rtx_code): Record int iterator usage.
14578
b7104c55
RS
145792012-06-18 Richard Sandiford <rdsandiford@googlemail.com>
14580
14581 PR middle-end/53698
14582 * expr.c (expand_expr_addr_expr_1): Convert to tmode before
14583 performing an addition.
14584
ca3f2950
SB
145852012-06-17 Steven Bosscher <steven@gcc.gnu.org>
14586
14587 * output.h (split_double): Move prototype to rtl.h.
14588 (constructor_static_from_elts_p): Move prototype to tree.c.
14589 * rtl.h (split_double): Moved here from output.h.
14590 * tree.h (constructor_static_from_elts_p): Moved here from output.h.
14591 * final.c (split_double): Move from here ...
14592 * rtlanal.c (split_double): ... to here.
14593 * expr.c: Do not include output.h.
14594
172a84ff
SB
145952012-06-17 Steven Bosscher <steven@gcc.gnu.org>
14596
14597 * cfglayout.h: Remove.
14598 * cfglayout.c: Remove.
14599 * function.h (struct function): Remove x_last_location field.
14600 * function.c: Do not include cfglayout.h.
14601 (expand_function_start): Do not call no-op force_next_line_note.
14602 (expand_function_end): Likewise.
14603 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h.
14604 (unlink_insn_chain): Moved here from cfglayout.c.
14605 (skip_insns_after_block, label_for_bb, record_effective_endpoints,
14606 into_cfg_layout_mode, outof_cfg_layout_mode,
14607 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
14608 relink_block_chain, fixup_reorder_chain, verify_insn_chain,
14609 fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
14610 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
14611 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
14612 cfg_layout_finalize): Likewise.
14613 (rtl_can_remove_branch_p): Likewise.
14614 * rtl.h (insn_scope): Move prototype from cfglayout.h here.
14615 (duplicate_insn_chain): Likewise.
14616 (force_next_line_note): Remove prototype.
14617 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h.
14618 (last_location): Remove #define to emit.x_last_location.
14619 (force_next_line_note): Remove no-op function.
14620 (init_emit): Don't set x_last_location.
14621 (block_locators_locs, block_locators_blocks, locations_locators_locs,
14622 locations_locators_vals, prologue_locator, epilogue_locator,
14623 curr_location, last_location, curr_block, last_block, curr_rtl_loc):
14624 Move POD to here from cfglayout.c.
14625 (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
14626 set_curr_insn_source_location, get_curr_insn_source_location,
14627 set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
14628 locator_scope, insn_scope, locator_location, locator_line, insn_line,
14629 locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
14630 * cfghooks.h: Remove double-include protection.
14631 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
14632 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
14633 * final.c: Do not include cfglayout.h.
14634 (choose_inner_scope, change_scope): Move to here from cfglayout.c.
14635 (reemit_insn_block_notes): Likewise. Make static.
14636 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
14637 operation_could_trap_p, tree_could_throw_p): Move from here...
14638 * tree.h: ... to here.
14639 * gengtype.c (open_base_files): Remove cfglayout.h from the list.
14640 * profile.c: Do not include cfghooks.h.
14641 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
14642 * modulo-sched.c: Likewise.
14643 * loop-unswitch.c: Do not include cfglayout.h.
14644 * sched-ebb.c: Likewise.
14645 * tracer.c: Likewise.
14646 * ddg.c: Likewise.
14647 * tree-vect-loop-manip.c: Likewise.
14648 * loop-init.c: Likewise.
14649 * dwarf2out.c: Likewise.
14650 * hw-doloop.c: Likewise.
14651 * loop-unroll.c: Likewise.
14652 * cfgcleanup.c: Likewise.
14653 * bb-reorder.c: Likewise.
14654 * sched-rgn.c: Likewise.
14655 * tree-cfg.c: Likewise.
14656 * config/alpha/alpha.c: Likewise.
14657 * config/spu/spu.c: Likewise.
14658 * config/sparc/sparc.c: Likewise.
14659 * config/sh/sh.c: Likewise.
14660 * config/c6x/c6x.c: Likewise.
14661 * config/ia64/ia64.c: Likewise.
14662 * config/rs6000/rs6000.c: Likewise.
14663 * config/score/score.c: Likewise.
14664 * config/mips/mips.c: Likewise.
14665 * config/bfin/bfin.c: Likewise.
14666 * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
14667 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
14668 * config/spu/t-spu-elf (spu.o: $): Likewise.
14669 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
14670
1c1ad7bb
SB
146712012-06-17 Steven Bosscher <steven@gcc.gnu.org>
14672
14673 * cfgloop.h: Do not include rtl.h.
14674 (enum iv_extend_code): New.
14675 (struct rtx_iv): Use iv_extend_code instead of rtx_code.
14676 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
14677 * loop-iv.c (iv_extend_to_rtx_code): New function to translate
14678 an IV_EXTEND_CODE to an RTX_CODE.
14679 (dump_iv_info): Update for rtx_iv field type change.
14680 (iv_constant): Likewise.
14681 (iv_subreg): Likewise.
14682 (iv_extend): Likewise.
14683 (iv_neg): Likewise.
14684 (iv_add): Likewise.
14685 (iv_mult): Likewise.
14686 (iv_shift): Likewise.
14687 (get_biv_step_1): Likewise.
14688 (get_biv_step): Likewise.
14689 (iv_analyze_biv): Likewise.
14690 (get_iv_value): Likewise.
14691 (shorten_into_mode): Likewise.
14692 (canonicalize_iv_subregs): Likewise.
14693 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
14694 of MAY_HAVE_DEBUG_INSNS.
14695 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
14696 * tree-ssa-loop-prefetch.c: Likewise.
14697
46d33ae9
SB
146982012-06-17 Steven Bosscher <steven@gcc.gnu.org>
14699
14700 * expmed.c (ceil_log2): Move from here...
14701 * hwint.c: ... to here for older GCCs...
14702 * hwint.h: ... and here for newer GCCs.
14703 * rtl.h (ceil_log2): Remove prototype.
14704
14705 * tree-phinodes.c: Do not include rtl.h.
14706 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
14707
0df965d7
SB
147082012-06-17 Steven Bosscher <steven@gcc.gnu.org>
14709
14710 * config/cris/cris.h (TARGET_ELF): Remove.
14711 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
14712 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
14713 (LOCAL_LABEL_PREFIX): Likewise.
14714 * config/cris/cris.c (cris_target_asm_named_section): Remove.
14715 (cris_option_override): Simpify using TARGET_ELF==1.
14716 (cris_file_start): Likewise.
14717 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
14718
0a2818d5
UB
147192012-06-17 Uros Bizjak <ubizjak@gmail.com>
14720
14721 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
14722
9510c5af
EB
147232012-06-16 Eric Botcazou <ebotcazou@adacore.com>
14724
14725 PR middle-end/53590
14726 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
14727
0a2818d5 147282012-06-15 Easwaran Raman <eraman@google.com>
ad14c7da
ER
14729
14730 * passes.c (init_optimization_passes): Remove pass_call_cdce
14731 from its current position and insert after pass_dce.
14732
7eb0f141
WL
147332012-06-15 Walter Lee <walt@tilera.com>
14734
14735 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
14736
96adb183
RE
147372012-06-15 Richard Earnshaw <rearnsha@arm.com>
14738
14739 * arm.c (note_invalid_constants): Don't return a result.
14740 (arm_memory_load_p): Delete function.
14741 (arm_const_double_rtx): Delete iterator variable i;
14742 (fp_immediate_constant): Likewise.
14743 (fp_const_from_val): Likewise.
14744
14745 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
14746
9e1a8dd1
RR
147472012-06-15 Marc Glisse <marc.glisse@inria.fr>
14748
14749 PR c++/51033
14750 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
b13024e6 14751 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
9e1a8dd1 14752
eb6bb559
GJL
147532012-06-15 Georg-Johann Lay <avr@gjlay.de>
14754
14755 * config/avr/avr.c (avr_default_expand_builtin): New function.
14756 (avr_expand_builtin): Use it.
14757 (avr_expand_unop_builtin): Remove.
14758 (avr_expand_binop_builtin): Remove.
14759 (avr_expand_triop_builtin): Remove.
14760
f8395d62
MM
147612012-06-15 Michael Matz <matz@suse.de>
14762
14763 PR middle-end/38474
14764 * cfgexpand.c (add_alias_set_conflicts): Remove.
14765 (expand_used_vars): Don't call it.
14766 (aggregate_contains_union_type): Remove.
14767 * function.c (n_temp_slots_in_use): New static data.
14768 (make_slot_available, assign_stack_temp_for_type): Update it.
14769 (init_temp_slots): Zero it.
14770 (remove_unused_temp_slot_addresses): Use it for quicker removal.
14771 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
14772
4c53d183
MM
147732012-06-15 Michael Matz <matz@suse.de>
14774
14775 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
14776 argument, don't emit assign statement if value is directly usable.
14777 (gimplify_expr): Adjust.
14778
6da8be89
MM
147792012-06-15 Michael Matz <matz@suse.de>
14780
14781 * gimplify.c (gimplify_modify_expr): Fold generated statements.
14782 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
14783
ef5ad3b7
RG
147842012-06-15 Richard Guenther <rguenther@suse.de>
14785
14786 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
14787 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case
14788 we assert for in set_value_range to VR_VARYING.
14789
dae840fc
RE
147902012-06-15 Richard Earnshaw <rearnsha@arm.com>
14791
14792 * arm.md (addsf3, adddf3): Use s_register_operand.
14793 (subsf3, subdf3): Likewise.
14794 (mulsf3, muldf3): Likewise.
14795 (difsf3, divdf3): Likewise.
14796 (movsfcc, movdfcc): Likewise.
14797 * predicates.md (f_register_operand): Delete.
14798 (arm_float_rhs_operand): Delete.
14799 (arm_float_add_operand): Delete.
14800 (arm_float_compare_operand): Use s_register_operand when
14801 there's no VFP.
14802 (cirrus_register_operand): Delete.
14803 (cirrus_fp_register): Delete.
14804 (cirrus_shift_const): Delete.
14805 (cmpdi_operand): Remove Maverick support.
14806 * constraints.md (f, v, H): Delete constraints.
14807 (G): Update documentation.
14808 * arm.c (fp_consts_inited): Convert to bool.
14809 (strings_fp): Delete.
14810 (values_fp): Delete.
14811 (value_fp0): New variable.
14812 (init_fp_table): Simplify logic.
14813 (arm_const_double_rtx): Likewise.
14814 (fp_immediate_constant): Likewise.
14815 (fp_const_from_val): Likewise.
14816 (neg_const_double_rtx_ok_for_fpa): Delete.
14817 * doc/md.texi (ARM constraints): Update documentation.
14818
3ebde0e9
UW
148192012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
14820
14821 PR tree-optimization/53636
14822 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
14823 stride when doing basic-block vectorization.
14824
273d260f
RR
148252012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14826
14827 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
14828 into VEC_PERM_EXPR.
14829
079c527f
JJ
148302012-06-15 Jakub Jelinek <jakub@redhat.com>
14831
772e61e1
JJ
14832 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
14833 allocate and free bbs array for the SLP case.
14834
079c527f
JJ
14835 PR tree-optimization/51581
14836 * expr.h (choose_multiplier): New prototype.
14837 * expmed.c (choose_multiplier): No longer static.
14838 Change multiplier_ptr from rtx * to UHWI *.
14839 (expand_divmod): Adjust callers.
0a2818d5 14840 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
079c527f
JJ
14841 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last
14842 argument to new_stmt_vec_info. Attempt to optimize also divisions
14843 by non-pow2 constants if integer vector division isn't supported.
14844 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
14845 don't look at pattern stmts and sequences.
14846
2da02156
EB
148472012-06-15 Eric Botcazou <ebotcazou@adacore.com>
14848
14849 PR middle-end/53590
14850 * common.opt (-fdelete-dead-exceptions): New switch.
14851 * doc/invoke.texi (Code Gen Options): Document it.
14852 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
14853 insn_could_throw_p predicate. Do not skip an insn that could throw
14854 if dead exceptions can be deleted.
14855 (insn_live_p): Likewise, do not return true in that case.
14856 * dce.c (can_alter_cfg): New flag.
14857 (deletable_insn_p): Do not return false for an insn that can throw if
14858 the CFG can be altered and dead exceptions can be deleted.
14859 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
14860 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
14861 predicate. Do not preserve an insn that could throw if dead exceptions
14862 can be deleted.
14863 * function.h (struct function): Add can_delete_dead_exceptions flag.
14864 * function.c (allocate_struct_function): Set it.
14865 * lto-streamer-in.c (input_struct_function_base): Stream it.
14866 * lto-streamer-out.c (input_struct_function_base): Likewise.
14867 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
14868 statement that could throw as necessary if dead exceptions can be
14869 deleted.
14870
2bcf3c5c
MK
148712012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com>
14872
14873 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
14874
3f8d753f
OE
148752012-06-14 Oleg Endo <olegendo@gcc.gnu.org>
14876
14877 PR target/53568
14878 * config/sh/sh.md: Add peephole for swapbsi2.
14879 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
14880
c5b7018e
UB
148812012-06-14 Uros Bizjak <ubizjak@gmail.com>
14882
87b86710 14883 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
6c31f5fb 14884 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute.
c5b7018e 14885
4e534d30
JJ
148862012-06-14 Jakub Jelinek <jakub@redhat.com>
14887
14888 PR target/53639
14889 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
14890
479f7546
RE
148912012-06-14 Richard Earnshaw <rearnsha@arm.com>
14892
14893 * arm.c (arm_cirrus_insn_p): Delete.
14894 (cirrus_reorg): Delete.
14895 (arm_reorg): Don't call cirrus_reorg.
14896 (arm_final_prescan_insn_p): Don't check for cirrus insns.
14897 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
14898 (adddi3, subdi3): Remove Maverick support.
14899 (arm_adddi3): Likewise.
14900 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
14901 (addsf3, adddf3): Likewise.
14902 (subsf3, subdf3): Likewise.
14903 (mulsf3, muldf3): Likewise.
14904 (ashldi3, ashrdi3, lshrdi3): Likewise.
14905 (floatsisf2, floatsidf2): Likewise.
14906 (fix_truncsfsi2, fix_truncdfsi2): Likewise.
14907 (arm_movdi, thumb1_movdi_insn): Likewise.
14908 (arm_cmpdi_insn): Likewise.
14909 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
14910 (cirrus.md): Don't include.
14911 * cirrus.md: Delete file.
14912 * t-arm (MD_INCLUDES): Remove cirrus.md.
14913
0364adfd
EB
149142012-06-14 Eric Botcazou <ebotcazou@adacore.com>
14915
14916 * dwarf2out.c (function_possibly_abstracted_p): New static function.
14917 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
14918 cgraph_function_possibly_inlined_p.
14919 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
14920 (process_scope_var): Do not emit concrete instances of abstracted
14921 nested functions from here.
14922 (gen_decl_die): Emit the abstract instance if the function is possibly
14923 abstracted and not only possibly inlined.
14924 (dwarf2out_finish): Find the first non-abstract parent instance and
14925 attach concrete instances on the limbo list to it.
14926
8fcd8c83
RE
149272012-06-14 Richard Earnshaw <rearnsha@arm.com>
14928
14929 * arm.md (divsf3, divdf3): Remove FPA support.
14930 (negsf2, negdf2): Likewise.
14931 (sqrtsf2, sqrtdf2): Likewise.
14932 (movdfcc): Likewise.
14933 (modsf3, moddf3, movxf): Delete.
14934 (push_fp_multi): Delete.
14935 (fpa.md): Don't include it.
14936 * fpa.md: Delete file.
14937 * t-arm (MD_INCLUDES): Remove fpa.md.
14938
b6cef4e0
BS
149392012-06-14 Bill Schmidt <wschmidt@linux.ibm.com>
14940
14941 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
14942 (cost_for_stmt): Remove decl.
14943 (vect_get_single_scalar_iteration_cost): Correct typo in name.
14944 * tree-vect-loop.c (vect_get_cost): Remove.
14945 (vect_get_single_scalar_iteration_cost): Correct typo in name; use
14946 vect_get_stmt_cost rather than vect_get_cost.
14947 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
14948 vect_get_cost.
14949 (vect_estimate_min_profitable_iters): Correct typo in call to
14950 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
14951 than vect_get_cost.
14952 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
14953 vect_get_cost.
14954 (vect_model_induction_cost): Likewise.
14955 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
14956 typo in call to vect_get_single_scalar_iteration_cost.
14957 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
14958 (cost_for_stmt): Remove unnecessary function.
14959 * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
14960
76702923
RE
149612012-06-14 Richard Earnshaw <rearnsha@arm.com>
14962
14963 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
f8395d62 14964 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
76702923 14965 * arm-tables.opt: Regenerated.
f8395d62 14966 * doc/invoke.texi: Remove references to deleted options.
76702923 14967
9257546b
SKS
149682012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
14969
c5b7018e 14970 * config/h8300/genmova.sh: Modified to add offset bits of
9257546b
SKS
14971 mova/Sz assembly instruction for memory access.
14972 * config/h8300/h8300.c: Likewise.
14973 * config/h8300/mova.md: Likewise.
14974
5921cd19
CB
149752012-06-12 Christian Bruel <christian.bruel@st.com>
14976
14977 PR target/53621
14978 * config/sh/sh.c (sh_option_override): Don't force
14979 flag_omit_frame_pointer and maccumulate_outgoing_args.
14980 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
14981
3c9c79e8
RG
149822012-06-14 Richard Guenther <rguenther@suse.de>
14983
14984 * tree-vrp.c (VR_INITIALIZER): New define.
14985 (ranges_from_anti_range): New function.
14986 (extract_range_from_binary_expr_1): Decompose operations on
14987 VR_ANTI_RANGEs to operations on VR_RANGE.
14988 (extract_range_from_unary_expr_1): Likewise.
14989 (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
14990 extract_range_from_unary_expr_1, extract_range_from_unary_expr,
14991 extract_range_from_cond_expr, adjust_range_with_scev,
14992 vrp_visit_assignment_or_call, vrp_visit_phi_node,
14993 simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
14994
fd2d9121
RH
149952012-06-13 Richard Henderson <rth@redhat.com>
14996
14997 * hwint.h (HOST_WIDEST_INT_C): New.
14998 (HOST_WIDE_INT_C): New.
14999 (HOST_WIDE_INT_1): Use it.
15000 * config/alpha/alpha.c (alpha_trampoline_init): Use it.
15001
8cda8ad3
AO
150022012-06-13 Alexandre Oliva <aoliva@redhat.com>
15003
15004 PR debug/49888
15005 * var-tracking.c: Include alias.h.
15006 (overlapping_mems): New struct.
15007 (drop_overlapping_mem_locs): New.
15008 (clobber_overlapping_mems): New.
15009 (var_mem_delete_and_set, var_mem_delete): Call it.
15010 (val_bind): Likewise, but only if modified.
15011 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
15012 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
15013
d05cae4a
AO
150142012-06-13 Alexandre Oliva <aoliva@redhat.com>
15015
15016 PR debug/47624
15017 * var-tracking.c (loc_exp_dep_pool): New.
15018 (vt_emit_notes): Create and release the pool.
15019 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
15020 (emit_notes_in_bb): Likewise.
15021 (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
15022 (notify_dependents_of_changed_value): Likewise.
15023 (notify_dependents_of_resolved_value): Check that NOT_ONEPART
15024 variables don't have a VAR_LOC_DEP_LST.
15025 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
15026 VALUEs or MEMs of VALUEs.
15027
39bc0f01
AO
150282012-06-13 Alexandre Oliva <aoliva@redhat.com>
15029
15030 PR debug/52983
15031 PR debug/48866
15032 * dce.c (word_dce_process_block): Insert debug temps only if the
15033 insn is not marked.
15034 (dce_process_block): Likewise, and if debug.used is not empty,
15035 and only after iterating over all DEFs that might mark the insn.
15036
21d01365
AO
150372012-06-13 Alexandre Oliva <aoliva@redhat.com>
15038
15039 * common.opt (ftree-coalesce-inlined-vars): New.
15040 (ftree-coalesce-vars): New.
15041 * doc/invoke.texi: Document them.
15042 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
15043 Implement them.
15044
b78fd164
RS
150452012-06-13 Richard Sandiford <rdsandiford@googlemail.com>
15046
15047 * read-rtl.c (mapping): Remove index field. Add current_value field.
15048 Define heap vectors.
15049 (iterator_group): Fix long line. Remove num_builtins field and
15050 uses_iterator fields. Make apply_iterator take a void * parameter.
15051 (iterator_use, atttribute_use): New structures.
15052 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
15053 (current_iterators, iterator_uses, attribute_uses): New variables.
15054 (uses_mode_iterator_p, uses_code_iterator_p): Delete.
15055 (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
15056 (map_attr_string, apply_iterator_to_string): Remove iterator
15057 and value parameters. Look through all current iterator values
15058 for a matching attribute.
15059 (mode_attr_index, apply_mode_maps): Delete.
15060 (apply_iterator_to_rtx): Replace with...
15061 (copy_rtx_for_iterators): ...this new function.
15062 (uses_iterator_p, apply_iterator_traverse): Delete.
15063 (apply_attribute_uses, add_current_iterators, apply_iterators): New
15064 functions.
15065 (add_mapping): Remove index field. Set current_value field.
15066 (initialize_iterators): Don't set num_builtins and uses_iterator_p
15067 fields.
15068 (find_iterator): Delete.
15069 (record_iterator_use, record_attribute_use): New functions.
15070 (record_potential_iterator_use): New function.
15071 (check_code_iterator): Remove handling of bellwether codes.
15072 (read_rtx): Remove mode maps. Truncate iterator and attribute uses.
15073 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
15074 parameter. Use the first code iterator value instead of the
c5b7018e 15075 bellwether_codes array. Use record_potential_iterator_use for modes.
b78fd164 15076
638a085f
OE
150772012-06-13 Oleg Endo <olegendo@gcc.gnu.org>
15078
15079 PR target/53568
15080 * config/sh/sh.md (bswapsi2): New expander.
15081 (swapbsi2): New insn.
15082
054121a4
L
150832012-06-13 H.J. Lu <hongjiu.lu@intel.com>
15084
15085 PR target/53647
15086 * config/i386/i386.c (ix86_tune_cost): New variable.
15087 (ix86_option_override_internal): Set ix86_tune_cost. Use
15088 ix86_tune_cost for simultaneous_prefetches, prefetch_block,
15089 l1_cache_size and l2_cache_size.
15090
cf35667e
RG
150912012-06-13 Richard Guenther <rguenther@suse.de>
15092
15093 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
15094 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement
15095 all possible meetings of VR_RANGE with VR_ANTI_RANGE and
15096 VR_ANTI_RANGE with VR_ANTI_RANGE.
15097
c4cc7bc1
RE
150982012-06-13 Richard Earnshaw <rearnsha@arm.com>
15099
15100 * config.gcc (unsupported): Move obsoleted FPA-based configurations
15101 here from ...
15102 (obsolete): ... here.
15103 (arm*-*-freebsd*): Remove.
15104 (arm*-*-linux*): Only accept EABI variants. Simplify logic.
15105 (arm*-*-uclinux*): Likewise.
15106 (arm*-*-ecos-elf): Remove.
15107 (arm*-*-rtems*): Remove.
15108 (arm*-*-elf): Remove.
15109 (arm*-wince-pe*): Remove.
15110 (arm, --with-fpu): Remove support for fpa and Maverick variants.
15111 * arm/ecos-elf.h: Delete.
15112 * arm/t-strongarm-elf: Delete.
15113 * arm/rtems-elf.h: Delete.
15114 * arm/wince-pe.h: Delete.
15115 * arm/pe.c: Delete.
15116 * arm/pe.h: Delete.
15117 * arm/t-wince-pe: Delete.
15118
7ef58a1a
BS
151192012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
15120
15121 PR tree-optimization/53647
15122 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
15123 targets with no defined cache line size.
15124
a21892ad
BS
151252012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
15126
15127 * targhooks.c (default_builtin_vectorized_conversion): Handle
15128 vec_construct, using vectype to base cost on subparts.
15129 * target.h (enum vect_cost_for_stmt): Add vec_construct.
15130 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
15131 instead of scalar_to-vec.
15132 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
15133 vec_construct in same way as default for now.
15134 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
15135 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
15136 Handle vec_construct, including special case for 32-bit loads.
15137
8fd03515
XQ
151382012-06-13 Xinyu Qi <xyqi@marvell.com>
15139
15140 * config/arm/arm.c (FL_IWMMXT2): New define.
15141 (arm_arch_iwmmxt2): New variable.
15142 (arm_option_override): Enable use of iWMMXt with VFP.
15143 Disable use of iWMMXt with NEON. Disable use of iWMMXt under
15144 Thumb mode. Set arm_arch_iwmmxt2.
15145 (arm_expand_binop_builtin): Accept VOIDmode op.
15146 (enum arm_builtins): Revise built-in fcode.
15147 (IWMMXT2_BUILTIN): New define.
15148 (IWMMXT2_BUILTIN2): Likewise.
15149 (iwmmx2_mbuiltin): Likewise.
15150 (builtin_description bdesc_2arg): Revise built in declaration.
15151 (builtin_description bdesc_1arg): Likewise.
15152 (arm_init_iwmmxt_builtins): Revise built in initialization.
15153 (arm_expand_builtin): Revise built in expansion.
15154 (arm_output_iwmmxt_shift_immediate): New function.
15155 (arm_output_iwmmxt_tinsr): Likewise.
15156 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
15157 (arm_output_iwmmxt_tinsr): Likewise.
15158 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
15159 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
15160 (rorv4hi3, rorv2si3, rordi3): Likewise.
15161 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
15162 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
15163 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
15164 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
15165 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
15166 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
15167 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
15168 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
15169 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
15170 (ror<mode>3, ror<mode>3_di): Likewise.
15171 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
15172 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
15173 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
15174 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
15175 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
15176 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
15177 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
15178 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
15179 (All instruction patterns): Add wtype attribute.
15180 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
15181 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
15182 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
15183 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
15184 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
15185 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
15186 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
15187 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
15188 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
15189 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
15190 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
15191 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
15192 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
15193 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
15194 (iwmmxt2.md): Include.
15195 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
15196 (TARGET_IWMMXT2): New define.
15197 (TARGET_REALLY_IWMMXT2): Likewise.
15198 (arm_arch_iwmmxt2): Declare.
15199 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
15200 Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
15201 Use C name-mangling for intrinsics.
15202 (__v8qi): Redefine.
15203 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
15204 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
15205 (_m_from_int): Likewise.
15206 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
15207 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
15208 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
15209 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
15210 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
15211 (_mm_tbcst_pi32): Likewise.
15212 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
15213 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
15214 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
15215 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
15216 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
15217 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
15218 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
15219 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
15220 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
15221 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
15222 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
15223 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
15224 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
15225 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
15226 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
15227 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
15228 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
15229 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
15230 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
15231 (_m_to_int): New define.
15232 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
15233 * config/arm/arm-arches.def (iwmmxt2): Likewise.
15234 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
15235 iwmmxt2.md.
15236 * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
15237 (arch): Add "iwmmxt2".
15238 (arch_enabled): Handle "iwmmxt2".
15239 (wtype): New attribute.
15240 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
15241 (UNSPEC_WALIGNI): New unspec.
15242 * config/arm/predicates.md (imm_or_reg_operand): New predicate.
15243 * config/arm/iterators.md (VMMX2): New mode_iterator.
15244 * config/arm/marvell-f-iwmmxt.md: New file.
15245 * config/arm/iwmmxt2.md: New file.
15246
cce50861
JJ
152472012-06-12 Jakub Jelinek <jakub@redhat.com>
15248
15249 PR c/53532
15250 PR c/51034
15251 PR c/53196
15252 * c-decl.c (build_compound_literal): Call c_incomplete_type_error
15253 if type isn't complete.
15254
69c8c01f
UB
152552012-06-12 Uros Bizjak <ubizjak@gmail.com>
15256
15257 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
15258
126294f4
RH
152592012-06-12 Richard Henderson <rth@redhat.com>
15260
15261 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
15262 iterator instead of INT.
69c8c01f 15263
372a6eb8
BS
152642012-06-12 Bill Schmidt <wschmidt@linux.ibm.com>
15265
15266 * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
15267 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
15268 declaration.
15269 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
15270 (tree_ssa_phiopt): Call gate_hoist_loads.
15271 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
15272 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
15273 hoist_adjacent_loads.
15274 (local_mem_dependence): New function.
15275 (hoist_adjacent_loads): Likewise.
15276 (gate_hoist_loads): Likewise.
15277 * common.opt (fhoist-adjacent-loads): New switch.
15278 * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
15279
175a7536
MM
152802012-06-12 Michael Matz <matz@suse.de>
15281
15282 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
15283 (nonoverlapping_memrefs_p): Don't call it here ...
15284 (true_dependence_1): ... but here.
15285
f68396a1
RG
152862012-06-12 Richard Guenther <rguenther@suse.de>
15287
15288 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
15289 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
15290 and MEM_SIZE only refines it. Reflect that and be less conservative
15291 if either of the latter is not known.
15292
891ca07d
JJ
152932012-06-12 Jakub Jelinek <jakub@redhat.com>
15294
15295 PR rtl-optimization/53589
15296 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
15297 discovery even when e->dest != target. If any LABEL_REF points
15298 to e->dest label, redirect it to target's label.
15299
2b8088e7
CLT
153002012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
15301
15302 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
15303 condition for generating REG_FRAME_RELATED_EXPR note.
15304 (pop): Add code for generating REG_CFA_RESTORE,
15305 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
15306 (sh_expand_epilogue): Use frame_insn() for FP to SP move.
15307 Set 'frame_p' of calls to output_stack_adjust() to 'true'.
15308
4522854a
RH
153092012-06-11 Richard Henderson <rth@redhat.com>
15310
3db91d7e
RH
15311 * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
15312 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
15313
4522854a
RH
15314 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
15315
f938987f
HPN
153162012-06-12 Hans-Peter Nilsson <hp@axis.com>
15317
15318 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
15319 Mention that this hook needs to be defined for native TLS.
15320 * doc/tm.texi: Regenerate.
15321
ede6c734
MS
153222012-06-11 Mike Stump <mikestump@comcast.net>
15323
15324 * emit-rtl.c (init_emit_once): Iterate through the
15325 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
15326 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
15327 all the MIN_MODE_PARTIAL_INT modes anymore.
15328
8b007d75
MK
153292012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com>
15330
15331 * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
15332
a04739cb
RM
153332012-06-11 Roland McGrath <mcgrathr@google.com>
15334
15335 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
15336 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
15337 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
15338 operand.
15339
159b4b2f
OE
153402012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
15341
15342 PR target/53511
15343 * config/sh/sh.md (fmasf4): New expander.
15344 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern.
15345 (mac_media): Rename to fmasf4_media. Adapt to fma pattern.
15346 * config/sh/sh.opt (mfused-madd): Remove.
15347 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
15348 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
15349 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
15350 as extra options.
15351 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
15352 descriptions.
15353
bf27c43e
RH
153542012-06-11 Richard Henderson <rth@redhat.com>
15355
15356 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
15357
e3b127e8
RG
153582012-06-11 Richard Guenther <rguenther@suse.de>
15359
15360 PR middle-end/53470
15361 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
15362 replace it with the first non-BLOCK context.
15363
a95b3cc7
RG
153642012-06-11 Richard Guenther <rguenther@suse.de>
15365
15366 * alias.c (aliases_everything_p): Remove.
15367 (DIFFERENT_ALIAS_SETS_P): Likewise.
15368 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
15369 Do not use aliases_everything_p or special-case ANDs. Do not
15370 special-case BLKmode moves.
15371 (may_alias_p): Likewise. Handle BLKmode similar like everywhere
69c8c01f 15372 - for SCATCH only.
a95b3cc7 15373
2f352e3d
HPN
153742012-06-09 Hans-Peter Nilsson <hp@axis.com>
15375
15376 Fix CRIS build errors with --enable-build-with-cxx.
15377 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
15378 variable "and" to "andop".
15379 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
15380 temporary variable for memory model, passing C++-type-correct
15381 parameter type to expand_mem_thread_fence.
15382 ("atomic_compare_and_swap<mode>"): Ditto.
15383
11a687e7
RH
153842012-06-09 Richard Henderson <rth@redhat.com>
15385
15386 PR c++/53602
15387 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
15388 (pass_jump): Rename from pass_jump2.
15389 (execute_jump2, pass_jump2): New.
15390 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
15391 perform cfg cleanup here. Move the test of PUSH_ROUNDING
15392 and ACCUMULATE_OUTGOING_ARGS test...
15393 (gate_handle_stack_adjustments): ... here.
15394 * passes.c (init_optimization_passes): Update for pass_jump2 rename.
15395 Place new pass_jump2 after pass_stack_adjustments.
15396 * tree-pass.h (pass_jump): Declare.
15397
aef2b1d1
KZ
153982012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
15399
15400 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
15401 count trucation.
15402
65c2e636
RH
154032012-06-08 Richard Henderson <rth@redhat.com>
15404
a3fac361
UB
15405 PR c++/53602
15406 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
15407 note to a clobber insn when no other insn is available.
65c2e636 15408
102375cc
GJL
154092012-06-08 Georg-Johann Lay <avr@gjlay.de>
15410
15411 * config/avr/avr.c (avr_case_values_threshold): Return 7.
15412
17c4f786
AS
154132012-06-07 Andreas Schwab <schwab@linux-m68k.org>
15414
15415 * genhooks.c (main): Set progname.
15416 (emit_documentation): Remove variable found_start, always bail out
15417 when a place is missing.
a3fac361 15418 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
17c4f786 15419
26127932
JJ
154202012-06-07 Jakub Jelinek <jakub@redhat.com>
15421
15422 PR middle-end/53580
a3fac361
UB
15423 * omp-low.c (scan_omp): Change first argument to gimple_seq *,
15424 call walk_gimple_seq_mod instead of walk_gimple_seq.
26127932
JJ
15425 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
15426 scan_omp_for, scan_omp_sections, scan_omp_single,
15427 execute_lower_omp): Adjust callers.
15428 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
15429 returns false, replace stmt with GIMPLE_NOP.
15430 (check_omp_nesting_restrictions): Instead of issuing warnings,
15431 issue errors and return false if any errors were reported.
15432
6f07a821
SB
154332012-06-06 Steven Bosscher <steven@gcc.gnu.org>
15434
15435 * doc/invoke.texi (fconserve-space): Remove documentation.
15436
ce79b857
EW
154372012-06-06 Edmar Wienskoski <edmar@freescale.com>
15438
15439 * config/rs6000/rs6000-tables.opt: Regenerated.
15440
d0582dc1
RG
154412012-06-06 Richard Guenther <rguenther@suse.de>
15442
15443 PR tree-optimization/53081
15444 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
15445 (adjacent_dr_p): ... this and make it work for reads, too.
15446 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
15447 (struct partition_s): Change main_stmt to main_dr, add
15448 secondary_dr member.
15449 (build_size_arg_loc): Change to date data-reference and not
15450 gimplify here.
15451 (build_addr_arg_loc): New function split out from ...
15452 (generate_memset_builtin): ... here. Use it and simplify.
15453 (generate_memcpy_builtin): New function.
15454 (generate_code_for_partition): Adjust.
a3fac361 15455 (classify_partition): Streamline pattern detection. Detect memcpy.
d0582dc1
RG
15456 (ldist_gen): Adjust.
15457 (tree_loop_distribution): Adjust seed statements for memcpy
15458 recognition.
15459
4ad4fa63
MT
154602012-06-06 Matt Turner <mattst88@gmail.com>
15461
15462 * config/arm/mmintrin.h (_mm_empty): New.
a3fac361 15463 (_m_empty): New.
4ad4fa63 15464
c881de02
RS
154652012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
15466
15467 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
15468 * common.opt (fsched-pressure-algorithm=): Remove.
15469 * flag-types.h (sched_pressure_algorithm): Move to...
15470 * sched-int.h (sched_pressure_algorithm): ...here.
15471 * params.def (sched-pressure-algorithm): New param.
15472 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
15473 * common/config/s390/s390-common.c (s390_option_optimization_table):
15474 Remove OPT_fsched_pressure_algorithm_ entry.
15475 * config/s390/s390.c (s390_option_override): Set a default value for
15476 PARAM_SCHED_PRESSURE_ALGORITHM.
15477
d7685183
MM
154782012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
15479
15480 PR target/53487
15481 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
15482 doing an unsigned compare, make sure the second argument is not a
15483 negative constant.
15484 (rs6000_emit_cmove): Don't allow floating point comparisons when
15485 generating ISEL moves.
15486
a6dac809 154872012-06-05 Edmar Wienskoski <edmar@freescale.com>
683ed19e
EW
15488
15489 * config/rs6000/e5500.md: New file.
15490 * config/rs6000/e6500.md: New file.
15491 * config/rs6000/rs6000.c (processor_costs): Add new costs for
15492 e5500 and e6500.
15493 (rs6000_option_override_internal): Altivec and Spe options not
15494 allowed with e5500. Spe options not allowed with e6500. Increase
15495 move inline limit for e5500 and e6500. Disable string instructions
15496 for e5500 and e6500. Enable branch targets alignment for e5500 and
15497 e6500. Initialize rs6000_cost for e5500 and e6500.
15498 (rs6000_adjust_cost): Add extra scheduling cycles between compare
15499 and brnach for e5500 and e6500.
15500 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
15501 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
15502 e6500.
15503 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
15504 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
15505 ppce6500.
15506 Include e5500.md and e6500.md.
15507 * config/rs6000/rs6000-opt.h (processor_type): Add
15508 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
15509 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
15510 (powerpc*-*-*): Add new cores e5500, e6500.
15511 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
15512
d4d5e146
RG
155132012-06-05 Richard Guenther <rguenther@suse.de>
15514
a3fac361 15515 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
d4d5e146 15516
9287b168
L
155172012-06-05 H.J. Lu <hongjiu.lu@intel.com>
15518
15519 PR target/53575
15520 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
15521 is used for x86_64-*-*.
15522
1aedeafe
RG
155232012-06-05 Richard Guenther <rguenther@suse.de>
15524
15525 PR tree-optimization/30442
15526 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
15527 vectorization stop analysis at the first stmt we cannot compute
15528 a data-reference for instead of giving up completely.
15529
7ad672e4
RG
155302012-06-05 Richard Guenther <rguenther@suse.de>
15531
a3fac361 15532 * tree-loop-distribution.c (struct partition_s): Add has_writes member.
7ad672e4
RG
15533 (partition_alloc): Initialize it.
15534 (partition_has_writes): New function.
15535 (rdg_flag_uses): Adjust.
15536 (rdg_flag_vertex): Likewise.
15537 (rdg_flag_vertex_and_dependent): Likewise.
15538 (rdg_flag_loop_exits): Likewise.
15539 (build_rdg_partition_for_component): Likewise.
15540 (rdg_build_partitions): Likewise.
15541
b6dd5261
RG
155422012-06-05 Richard Guenther <rguenther@suse.de>
15543
15544 PR tree-optimization/53081
15545 * tree-loop-distribution.c (generate_memset_builtin): Handle all
15546 kinds of byte-sized stores.
15547 (classify_partition): Likewise.
15548 (tree_loop_distribution): Adjust seed statements used for
15549 !flag_tree_loop_distribution.
15550
46f714c8
AM
155512012-06-05 Alan Modra <amodra@gmail.com>
15552
15553 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
15554 (rs6000_emit_prologue): Ensure register used for inline saves
15555 of vector regs is not the static chain register. Revise comment.
15556
6d1f6aff
OE
155572012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
15558
15559 * doc/md.texi (Standard Pattern Names For Generation): Document
15560 sincos pattern.
15561
dea9f99d
L
155622012-06-04 H.J. Lu <hongjiu.lu@intel.com>
15563
15564 PR bootstrap/53555
15565 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
15566
61a3e629
JM
155672012-06-04 Jason Merrill <jason@redhat.com>
15568
15569 * dwarf2out.c (is_unit_die): New.
15570 (copy_declaration_context, copy_ancestor_tree): Use it.
15571 (copy_decls_walk): Likewise.
15572
0e1dd874
PC
155732012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
15574
15575 PR c++/53524
15576 * doc/invoke.texi (Wenum-compare): Update documentation.
15577
7ca643e1
DS
155782012-06-04 Dodji Seketeli <dodji@redhat.com>
15579
15580 PR preprocessor/53463
15581 * parser.c (cp_parser_assignment_expression): Use the location
15582 for the '=' as the default location for the expression.
15583
fbc932e7
EW
155842012-06-04 Edmar Wienskoski <edmar@freescale.com>
15585
15586 PR target/53559
15587 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
15588 operands.
15589 (altivec_stvlxl): Ditto.
15590 (altivec_stvrx): Ditto.
15591 (altivec_stvrxl): Ditto.
15592
165f639c
VM
155932012-06-04 Vladimir Makarov <vmakarov@redhat.com>
15594
a3fac361 15595 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
165f639c
VM
15596 (ira_uniform_class_p): New macro.
15597
15598 * ira.c (setup_uniform_class_p): New function.
15599 (setup_allocno_and_important_classes): Call the function.
15600 (print_unform_and_important_classes): New function.
15601 (print_classes): Rename to print_translated_classes.
15602 (ira_debug_allocno_classes): Add call of
15603 print_unform_and_important_classes.
15604
15605 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
15606 classes instead of pressure classes.
15607
764ce4f2
AH
156082012-06-04 Aldy Hernandez <aldyh@redhat.com>
15609
15610 PR middle-end/47530
15611 * trans-mem.c (expand_block_edges): Do not skip the first
15612 statement when resetting the BB.
15613
be6b029b
RG
156142012-06-04 Richard Guenther <rguenther@suse.de>
15615
15616 * tree-data-ref.c (stores_from_loop): Remove.
15617 (stmt_with_adjacent_zero_store_dr_p): Likewise.
15618 (stores_zero_from_loop): Likewise.
15619 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
15620 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
15621 (adjacent_store_dr_p): New function.
15622 * tree-loop-distribution.c (generate_memset_builtin): Pass
15623 the RDG, use the already available data-reference.
15624 (generate_code_for_partition): Pass down RDG.
15625 (classify_partition): Inline parts of the former
15626 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
15627 (ldist_gen): Remember if there was any detected builtin and
15628 do less work if not and flag_tree_loop_distribution is not set.
15629 (tree_loop_distribution): Inline and fuse stores_from_loop
15630 and stores_zero_from_loop here.
15631
ad16e152
RG
156322012-06-04 Richard Guenther <rguenther@suse.de>
15633
15634 PR middle-end/53471
15635 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
15636 create new assembler names.
15637
1fa0c180
RG
156382012-06-04 Richard Guenther <rguenther@suse.de>
15639
15640 * tree-data-ref.c (struct rdg_vertex_info): Remove.
15641 (rdg_vertex_for_stmt): Simplify using gimple_uid.
15642 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
9faeb493 15643 hashtable. Record stmt data-references.
1fa0c180
RG
15644 (hash_stmt_vertex_info): Remove.
15645 (eq_stmt_vertex_info): Likewise.
15646 (hash_stmt_vertex_del): Likewise.
15647 (build_empty_rdg): Simplify.
15648 (build_rdg): Adjust.
15649 (free_rdg): Likewise.
15650 (ref_base_address): Remove.
15651 (have_similar_memory_accesses): Likewise.
15652 * tree-data-ref.h (create_rdg_vertices): Remove.
15653 (struct rdg_vertex): Add datarefs member.
15654 (RDGV_DATAREFS): New define.
15655 (RDG_DATAREFS): Likewise.
15656 (have_similar_memory_accesses): Remove.
15657 (rdg_has_similar_memory_accesses): Likewise.
15658 * tree-loop-distribution.c (ref_base_address): Re-implement here.
15659 (similar_memory_accesses): Re-implement using existing data-references.
15660 (tree_loop_distribution): Initialize stmt uids for the stmt to
15661 RDG index mapping.
15662 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
15663 access stmt vinfo for stmts in loop.
15664
143015c4
AS
156652012-06-04 Andreas Schwab <schwab@linux-m68k.org>
15666
15667 PR target/53461
15668 * config/m68k/m68k.md ("tablejump"): Fix check for
15669 CASE_VECTOR_PC_RELATIVE.
15670
a4b7d13c
SB
156712012-06-04 Steven Bosscher <steven@gcc.gnu.org>
15672
15673 * output.h (merge_weak, assemble_alias,
15674 initializer_constant_valid_p,
15675 initializer_constant_valid_for_bitfield_p): Move protos from here...
15676 * tree.h: ... to here.
15677 * cgraphclones.c: Do not include output.h.
15678 * gimplify.c: Likewise.
15679 * reload.c: Likewise.
15680 * recog.c: Likewise.
15681 * tree-ssa-loop-ivopts.c: Likewise.
15682 * tree-switch-conversion.c: Likewise.
15683 * c-parser.c: Likewise.
15684 * c-typeck.c: Likewise.
15685 * Makefile.in: Fix dependencies.
15686
0b8a03e1
GJL
156872012-06-04 Georg-Johann Lay <avr@gjlay.de>
15688
15689 PR target/46261
15690 * config/avr/avr-stdint.h: New file.
15691 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
15692 newlib-stdint.h
15693
5ece9847
JJ
156942012-06-04 Jakub Jelinek <jakub@redhat.com>
15695
15696 PR tree-optimization/53550
15697 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
15698 is POINTER_TYPE_P, use sizetype as step type instead of type.
15699
c014f6f5
RG
157002012-06-04 Richard Guenther <rguenther@suse.de>
15701
15702 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
15703 (ref_base_address_1): Likewise.
15704 (remove_similar_memory_refs): Likewise.
15705 * tree-data-ref.h (remove_similar_memory_refs): Remove.
15706 * tree-loop-distribution.c (classify_partition): Do not classify
15707 as builtin if -ftree-loop-distribute-patterns is not enabled.
15708 (fuse_partitions_with_similar_memory_accesses): Inline ...
15709 (ldist_gen): ... here. Fuse all non-builtin partitions if
15710 -ftree-loop-distribution is not enabled. Properly return
a3fac361 15711 the number of created partitions. Do not update SSA form here but ...
c014f6f5
RG
15712 (tree_loop_distribution): ... once here for the whole function.
15713 Only walk innermost loops, constrain loops we consider here
15714 further. Do not call remove_similar_memory_refs.
15715 (distribute_loop): Do not check number of loop nodes here.
15716
296f202e
SB
157172012-06-04 Steven Bosscher <steven@gcc.gnu.org>
15718
15719 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
15720
7b872d9e
MJ
157212012-06-03 Martin Jambor <mjambor@suse.cz>
15722
15723 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
15724 (ipa_get_jf_known_type_base_type): Likewise.
15725 (ipa_get_jf_known_type_component_type): Likewise.
15726 (ipa_get_jf_constant): Likewise.
15727 (ipa_get_jf_pass_through_formal_id): Likewise.
15728 (ipa_get_jf_pass_through_operation): Likewise.
15729 (ipa_get_jf_ancestor_offset): Likewise.
15730 (ipa_get_jf_ancestor_type): Likewise.
15731 (ipa_get_jf_ancestor_formal_id): Likewise.
15732 (ipa_get_jf_member_ptr_pfn): Likewise.
15733 * ipa-prop.c (ipa_set_jf_known_type): New function.
15734 (ipa_set_jf_constant): Likewise.
15735 (ipa_set_jf_simple_pass_through): Likewise.
15736 (ipa_set_jf_arith_pass_through): Likewise.
15737 (ipa_set_ancestor_jf): Likewise.
15738 (fill_member_ptr_cst_jump_function): Moved up and renamed to
15739 ipa_set_jf_member_ptr_cst.
15740 (detect_type_change_1): Use the new jump function creation functions.
15741 (compute_complex_assign_jump_func): Likewise.
15742 (compute_complex_ancestor_jump_func): Likewise.
15743 (compute_known_type_jump_func): Likewise.
15744 (compute_scalar_jump_functions): Likewise.
15745 (compute_pass_through_member_ptrs): Likewise.
15746 (determine_cst_member_ptr): Likewise.
15747 (combine_known_type_and_ancestor_jfs): Likewise.
15748 (try_make_edge_direct_simple_call): Likewise.
15749 (try_make_edge_direct_virtual_call): Likewise.
15750 (update_indirect_edges_after_inlining): Likewise.
15751 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
15752 access functions. Incorporat NOP_EXPR and BINFO handling from its
15753 callers.
15754 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
15755 which was in its callers.
15756 (ipa_value_from_jfunc): Use jump function access functions. Some
15757 functionality moved to functions above.
15758 (propagate_vals_accross_ancestor): Likewise.
15759 (propagate_vals_accross_pass_through): Use jump function access
15760 functions.
15761 (propagate_accross_jump_function): Likewise.
15762 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
15763 access functions.
15764 (inline_merge_summary): Likewise.
15765
a43434ff
JDA
157662012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15767
15768 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
15769 * config/pa/pa.c (pa_attr_length_millicode_call): Use
15770 MAX_PCREL17F_OFFSET instead of fixed offset.
15771 (pa_attr_length_call): Likewise.
15772 (pa_attr_length_indirect_call): Likewise.
15773
aba92f5f
OE
157742012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
15775
15776 PR target/53512
f9f472bd
OE
15777 * config/sh/sh.opt (mfsca, mfsrra): New options.
15778 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
15779 condition.
aba92f5f
OE
15780 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
15781 (sinssf2, cossf2): Fold expanders to ...
15782 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
15783 TARGET_FSCA condition.
f9f472bd
OE
15784 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
15785 TARGET_FSCA.
aba92f5f
OE
15786 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
15787 -mno-fsca, -mfsrra, -mno-fsrra.
15788
d58e7d69
MT
157892012-06-03 Matt Turner <mattst88@gmail.com>
15790
15791 * config/mips/4600.md (r4700_imul_si): New.
15792 (r4700_imul_di): New.
15793 (r4700_fmul_single): New.
15794 (r4700_fmul_double): New.
15795 * config/mips/mips-cpus.def: Add r4700.
15796 * config/mips/mips.c: Likewise.
15797 * config/mips/mips.md: Likewise.
15798 * config/mips/mips-tables.opt: Regenerate.
15799
9e6a4b77
SB
158002012-06-02 Steven Bosscher <steven@gcc.gnu.org>
15801
15802 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
15803 new function sparc_initial_elimination_offset.
15804 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
15805 function.
15806 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
15807 Prototype it.
15808
aba92f5f 158092012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
49ab6098 15810
a3fac361
UB
15811 * expmed.c (expand_mult, choose_multiplier): Change
15812 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
49ab6098
KZ
15813 * expr.c (convert_modes): Likewise.
15814 * explow.c (plus_constant): Likewise.
15815 * fixed-value.c (fixed_saturate1, fixed_saturate2)
15816 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
15817 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
15818 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
15819 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
15820 (do_fixed_shift, fixed_convert, fixed_convert)
15821 (fixed_convert_from_int, fixed_convert_from_int)
15822 (fixed_convert_from_real): Likewise.
15823 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
15824 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
15825 * varasm.c (output_constructor_bitfield): Likewise.
15826 * tree-vrp.c (register_edge_assert_for_2): Likewise.
15827 * double-int.c (rshift_double, lshift_double): Likewise.
f9f472bd
OE
15828 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
15829 Likewise.
49ab6098
KZ
15830 * simplify-rtx.c (mode_signbit_p)
15831 (simplify_const_unary_operation, simplify_binary_operation_1)
15832 (simplify_immed_subreg): Likewise.
15833 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
15834 * tree-vect-generic.c (build_replicated_const): Likewise.
15835 * dbxout.c (stabstr_O): Likewise.
15836 * emit-rtl.c (immed_double_int_const, immed_double_const)
15837 (gen_lowpart_common, init_emit_once): Likewise.
15838 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
15839 (widest_int_cst_value, upper_bound_in_type): Likewise.
15840 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
15841 (fixup_unsigned_type): Likewise.
15842 * real.c (real_to_integer2, real_from_integer): Likewise.
15843 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
15844 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
15845
4efa9261
EB
158462012-06-01 Eric Botcazou <ebotcazou@adacore.com>
15847
15848 PR middle-end/53501
15849 * fold-const.c (fold_binary_loc): Refine previous change.
15850
676bd9a4
OH
158512012-06-01 Olivier Hainque <hainque@adacore.com>
15852
15853 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
15854 the "do {" part of the do-while(0) loop.
15855
674dd90a
YR
158562012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15857
15858 * config/i386/i386.c (x86_sched_reorder): New function.
15859 Added new function x86_sched_reorder.
15860
9ca86fc3
RG
158612012-06-01 Richard Guenther <rguenther@suse.de>
15862
15863 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
15864 Handle PHIs.
15865 (classify_partition): Likewise.
15866
30d55936
RG
158672012-06-01 Richard Guenther <rguenther@suse.de>
15868
15869 * tree-loop-distribution.c (enum partition_kind): New enum.
15870 (struct partition_s): Add kind and main_stmt members.
15871 (partition_alloc): Initialize kind to PKIND_NORMAL.
15872 (partition_builtin_p): New function.
15873 (copy_loop_before): Remove failure path and assert instead.
15874 (generate_loops_for_partition): Likewise.
15875 (generate_memset_zero): Fold into ...
15876 (generate_memset_builtin): ... this.
15877 (classify_partition): New function with code from
15878 can_generate_builtin and generate_builtin.
15879 (generate_builtin): Remove.
15880 (can_generate_builtin): Likewise.
15881 (fuse_partitions_with_similar_memory_accesses): Call
15882 partition_builtin_p instead of can_generate_builtin.
15883 (rdg_build_partitions): Do not call
15884 fuse_partitions_with_similar_memory_accesses here...
15885 (ldist_gen): ... but here after classifying all partitions.
15886 Remove failure path of generate_code_for_partition.
15887 (generate_code_for_partition): Generate code according
15888 to partition classification.
15889
c3a43311 158902012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
a3fac361 15891 Jonathan Wakely <jwakely.gcc@gmail.com>
c3a43311
MLI
15892
15893 PR c++/50134
15894 * doc/invoke.texi (Warning Options): Explain purpose and differences
15895 between -Wmissing-prototypes and -Wmissing-declarations.
15896
d168aaee
CB
158972012-06-01 Christian Bruel <christian.bruel@st.com>
15898
15899 * gcc.c (save_switch): Add user_p parameter.
15900 (read_specs): Likewise.
15901 (set_specs): Likewise.
15902 (validate_switches): Likewise.
15903 (validate_switches_from_spec): Likewise.
15904 (validate_all_switches): Pass on user_p parameter.
15905 (struct spec_list): Add user_p field.
15906 (struct switchstr): Add known field.
15907 (save_switch): Add known parameter.
15908 (INIT_STATIC_SPEC): Initialize user_p;
15909 (driver_unknown_option_callbac): call save_switch if
15910 OPT_SPECIAL_unknown.
15911 (driver_handle_option): Propagate OPT_specs.
15912 (do_spec_1): Set validated only if known.
15913 (check_live_switch): Likewise.
15914 (validate_switches): Set validated if known or user_spec.
15915
21ed4444
HPN
159162012-06-01 Hans-Peter Nilsson <hp@axis.com>
15917
15918 Add CRIS atomic patterns for 1, 2, and 4 bytes.
15919 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
15920 * config/cris/cris-protos.h: Declare it.
69c8c01f 15921 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
21ed4444
HPN
15922 (TARGET_DEFAULT): Add alignment by 32.
15923 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
15924 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
69c8c01f 15925 TARGET_CPU_DEFAULT == 32.
21ed4444
HPN
15926 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
15927 * config/cris/cris.md: Include sync.md. Avoid allocating specific
15928 numbers by replacing the define_constants for all UNSPECs with the
15929 equivalent define_c_enum construct.
15930 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
15931 * config/cris/sync.md: New file.
15932
22e83457
MT
159332012-05-31 Matt Turner <mattst88@gmail.com>
15934
15935 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
15936 (r4600_imul_di): New.
15937 (r4600_idiv_si): Rename from r4600_idiv.
15938 (r4600_idiv_di): New.
15939
be7a421e
SB
159402012-05-31 Steven Bosscher <steven@gcc.gnu.org>
15941
15942 * output.h (__gcc_host_wide_int__): Move to hwint.h.
15943 (decl_default_tls_model): Move to tree.h
15944 (dump_file): Move to system.h.
15945 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
15946 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
15947 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
15948 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
15949 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
15950 dbxout_stab_value_internal_label,
15951 dbxout_stab_value_internal_label_diff): Move from here ...
15952 * dbxout.h: ... to here.
15953 * system.h (dump_file): Moved here from output.h.
15954 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
15955 * tree.h (decl_default_tls_model): Moved here from output.h.
15956 * varasm.c (default_stabs_asm_out_destructor,
15957 default_stabs_asm_out_constructor): Move from here ...
15958 * dbxout.c: ... to here.
15959
15960 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
15961
15962 * collect2.h (dump_file): Rename to dump_ld_file.
15963 * collect2.c: Likewise.
15964 * tlink.c: Likewise.
15965
15966 * alias.c: Do not include output.h.
15967 * auto-inc-dec.c: Likewise.
15968 * bt-load.c: Likewise.
15969 * caller-save.c: Likewise.
15970 * cfg.c: Likewise.
15971 * cfgbuild.c: Likewise.
15972 * cfgcleanup.c: Likewise.
15973 * cfglayout.c: Likewise.
15974 * cfgloop.c: Likewise.
15975 * cfgloopanal.c: Likewise.
15976 * cfgloopmanip.c: Likewise.
15977 * cfgrtl.c: Likewise.
15978 * cgraph.c: Likewise.
15979 * cgraphclones.c: Likewise.
15980 * combine-stack-adj.c: Likewise.
15981 * combine.c: Likewise.
15982 * cprop.c: Likewise.
15983 * cse.c: Likewise.
15984 * cselib.c: Likewise.
15985 * dbgcnt.c: Likewise.
15986 * df-problems.c: Likewise.
15987 * df-scan.c: Likewise.
15988 * dojump.c: Likewise.
15989 * fwprop.c: Likewise.
15990 * gcse.c: Likewise.
15991 * graph.c: Likewise.
15992 * haifa-sched.c: Likewise.
15993 * hw-doloop.c: Likewise.
15994 * ipa-inline-transform.c: Likewise.
15995 * ipa-pure-const.c: Likewise.
15996 * ipa-reference.c: Likewise.
15997 * ipa-utils.c: Likewise.
15998 * ira-build.c: Likewise.
15999 * ira-emit.c: Likewise.
16000 * lcm.c: Likewise.
16001 * loop-doloop.c: Likewise.
16002 * loop-invariant.c: Likewise.
16003 * loop-iv.c: Likewise.
16004 * loop-unroll.c: Likewise.
16005 * loop-unswitch.c: Likewise.
16006 * lto-cgraph.c: Likewise.
16007 * lto-section-in.c: Likewise.
16008 * lto-streamer-in.c: Likewise.
16009 * mcf.c: Likewise.
16010 * mode-switching.c: Likewise.
16011 * postreload-gcse.c: Likewise.
16012 * postreload.c: Likewise.
16013 * predict.c: Likewise.
16014 * profile.c: Likewise.
16015 * ree.c: Likewise.
16016 * reg-stack.c: Likewise.
16017 * regcprop.c: Likewise.
16018 * regmove.c: Likewise.
16019 * regstat.c: Likewise.
16020 * reload1.c: Likewise.
16021 * sched-ebb.c: Likewise.
16022 * sel-sched-dump.c: Likewise.
16023 * simplify-rtx.c: Likewise.
16024 * stor-layout.c: Likewise.
16025 * store-motion.c: Likewise.
16026 * tracer.c: Likewise.
16027 * tree-affine.c: Likewise.
16028 * tree-cfg.c: Likewise.
16029 * tree-cfgcleanup.c: Likewise.
16030 * tree-dfa.c: Likewise.
16031 * tree-into-ssa.c: Likewise.
16032 * tree-nomudflap.c: Likewise.
16033 * tree-optimize.c: Likewise.
16034 * tree-pretty-print.c: Likewise.
16035 * tree-profile.c: Likewise.
16036 * tree-ssa-address.c: Likewise.
16037 * tree-ssa-ccp.c: Likewise.
16038 * tree-ssa-copy.c: Likewise.
16039 * tree-ssa-dom.c: Likewise.
16040 * tree-ssa-loop-ch.c: Likewise.
16041 * tree-ssa-loop-im.c: Likewise.
16042 * tree-ssa-loop-manip.c: Likewise.
16043 * tree-ssa-loop-niter.c: Likewise.
16044 * tree-ssa-loop-prefetch.c: Likewise.
16045 * tree-ssa-loop-unswitch.c: Likewise.
16046 * tree-ssa-loop.c: Likewise.
16047 * tree-ssa-propagate.c: Likewise.
16048 * tree-ssa-structalias.c: Likewise.
16049 * tree-ssa-tail-merge.c: Likewise.
16050 * tree-ssa-threadedge.c: Likewise.
16051 * tree-ssa-threadupdate.c: Likewise.
16052 * tree-ssa-uncprop.c: Likewise.
16053 * tree-ssa-uninit.c: Likewise.
16054 * tree-ssa.c: Likewise.
16055 * value-prof.c: Likewise.
16056 * var-tracking.c: Likewise.
16057 * web.c: Likewise.
16058
16059 * config/m32r/m32r.c: Include dbxout.h.
16060 * config/pa/pa.c: Likewise.
16061 * config/rs6000/rs6000.c: Likewise.
16062
16063 * Makefile.in: Fix dependencies.
16064 * config/rs6000/t-rs5000: Likewise.
16065
874a3589
AH
160662012-05-31 Aldy Hernandez <aldyh@redhat.com>
16067
16068 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
16069 * gimple.h (block_in_transaction): Check for flag_tm.
16070
039496da
AH
160712012-05-31 Aldy Hernandez <aldyh@redhat.com>
16072
16073 PR tree-optimization/52558
16074 * cfg.c (alloc_aux_for_edge): Fix comment.
16075 (alloc_aux_for_edge): Remove static.
16076 * basic-block.h (alloc_aux_for_edge): Protoize.
16077 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
16078 (execute_sm_if_changed_flag): New.
16079 (execute_sm_if_changed_flag_set): New.
16080 (execute_sm): Do not generate data races unless requested.
16081 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
16082 (tree_ssa_lim_finalize): Call free_aux_for_edges.
16083 * gimple.h (block_in_transaction): New.
16084 (gimple_in_transaction): Use block_in_transaction.
16085
621dfb1e
GJL
160862012-05-31 Georg-Johann Lay <avr@gjlay.de>
16087
16088 PR target/51345
16089 * config/avr/avr.opt (-msp8): Document it.
16090 * doc/invoke.texi (AVR Options): Ditto. And document related
16091 built-in macros.
16092
416ff32e 160932012-05-31 Diego Novillo <dnovillo@google.com>
bdd5dc28 16094
a3fac361
UB
16095 * configure.ac (CXX_FOR_BUILD): Define and substitute.
16096 (BUILD_CXXFLAGS): Define and substitute.
16097 * Makefile.in (BUILD_CXXFLAGS): Define.
16098 (CXX_FOR_BUILD): Define.
16099 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
16100 (LINKER_FOR_BUILD): Likewise.
16101 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
16102 (BUILD_LINKERFLAGS): Likewise.
16103 * configure: Regenerate.
bdd5dc28 16104
6f4185d7
SB
161052012-05-31 Steven Bosscher <steven@gcc.gnu.org>
16106
16107 * Makefile.in: Fix many dependencies.
16108 * tree-profile.c: Don't include regs.h.
16109 * tree-vectorizer.c: Don't include cfglayout.h.
16110 * tree-vect-stmts.c: Likewise.
16111 * tree-vect-slp.c: Likewise.
16112 * tree-vect-loop.c: Likewise.
16113 * reg-stack.c: Likewise.
16114 * tree-ssa-loop-manip.c: Likewise.
16115 * toplev.c: Likewise.
16116 * varasm.c: Don't include cfglayout.h, basic-block.h,
16117 and tree-iterator.h.
16118 * tree-cfgcleanup.c: Don't include cfglayout.h.
16119 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
16120 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
16121 * cgraphclones.c: Don't include plugin.h.
16122
5a0563dc
GJL
161232012-05-31 Georg-Johann Lay <avr@gjlay.de>
16124
16125 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
16126 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
16127 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
a3fac361 16128
c61f8985
RG
161292012-05-31 Richard Guenther <rguenther@suse.de>
16130
16131 * tree-loop-distribution.c (struct partition_s): New struct,
16132 typedef and vector type.
16133 (partition_alloc, partition_free): New functions.
16134 (generate_loops_for_partition, generate_builtin,
16135 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
16136 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
16137 build_rdg_partition_for_component, can_generate_builtin,
16138 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
16139 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
16140 number_of_rw_in_partition, partition_contains_all_rw,
16141 ldist_gen): Use partition_t instead of bitmap.
16142
5be35a61
GJL
161432012-05-31 Georg-Johann Lay <avr@gjlay.de>
16144
a3fac361 16145 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
5be35a61 16146 * doc/avr-mmcu.texi: Regenerate.
a3fac361 16147
88af7c1a
RG
161482012-05-31 Richard Guenther <rguenther@suse.de>
16149
16150 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
16151 Use FOR_EACH_SSA_DEF_OPERAND.
16152 (generate_builtin): Adjust.
16153 (stmt_generated_in_another_partition): Remove.
16154 (add_scalar_computations_to_partition): Likewise.
16155 (rdg_build_partitions): Do not call
16156 add_scalar_computations_to_partition.
16157
ca8d9092
EB
161582012-05-31 Eric Botcazou <ebotcazou@adacore.com>
16159
16160 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
16161 double ints throughout.
16162 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
16163 Check that the position of the field is representable as an integer.
16164
673910d7
RG
161652012-05-31 Richard Guenther <rguenther@suse.de>
16166
16167 * tree-data-ref.c (dr_analyze_innermost): Properly convert
16168 the MEM_REF offset to sizetype.
16169
5b2f6f97
GJL
161702012-05-31 Georg-Johann Lay <avr@gjlay.de>
16171
16172 * doc/invoke.texi (AVR Options): Fix typos.
16173
e8baa9bc
HPN
161742012-05-31 Hans-Peter Nilsson <hp@axis.com>
16175
16176 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
16177 and -mcpu= options.
16178 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
ef0cd8fe 16179 non-v32 into --march=v0_v10.
e8baa9bc 16180
7cc61ee4
RS
161812012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16182
16183 * ira-int.h (target_ira_int): Rename x_move_cost to
16184 x_ira_register_move_cost, x_may_move_in_cost to
16185 x_ira_may_move_in_cost and x_may_move_out_cost to
16186 x_ira_may_move_out_cost. Delete the old fields with
16187 those names and also x_ira_max_register_move_cost,
16188 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
16189 (move_cost, may_move_in_cost, may_move_out_cost)
16190 (ira_max_register_move_cost, ira_max_may_move_in_cost)
16191 (ira_max_may_move_out_cost): Delete.
16192 * ira.c (init_move_cost): Rename to...
16193 (ira_init_register_move_cost): ...this, deleting the old
16194 function with that name. Apply above variable renamings.
16195 Retain asserts for null fields.
16196 (ira_init_once): Don't initialize register move costs here.
16197 (free_register_move_costs): Apply above variable renamings.
16198 Remove code for deleted fields.
16199
48e3d6e9
RS
162002012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16201
16202 * ira.c (init_move_cost): Adjust choice of subclasses to match
16203 the current ira_init_register_move_cost choice. Use
16204 ira_class_subset_p instead of reg_class_subset_p.
16205 (ira_init_register_move_cost): Assert that move_cost,
16206 may_move_in_cost and may_move_out_cost already hold the desired
16207 values for their ira_* equivalents. For the latter two,
16208 ignore classes that can't store a register of the given mode.
16209
3e575fe2
RS
162102012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16211
16212 * ira.c (setup_allocno_and_important_classes): Use
16213 ira_class_hard_regs_num to check whether a class has any
16214 allocatable registers.
16215 (ira_init_register_move_cost): Likewise.
16216
ed9e2ed0
RS
162172012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16218
16219 * ira.c (init_move_cost): Adjust local variable names to match
16220 file conventions. Use ira_assert instead of gcc_assert.
16221
e80ccebc
RS
162222012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16223
16224 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
16225 Move these definitions and associated target_globals fields to...
16226 * ira-int.h: ...here.
16227 * rtl.h (init_move_cost): Delete.
16228 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
16229 * ira.c: ...here, making the latter static.
16230
bac1c6a4
RS
162312012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16232
16233 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
16234 and ira_register_move_cost instead of init_move_cost and move_cost.
16235
f508f827
RS
162362012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
16237
16238 * ira.h (target_ira): Delete x_ira_available_class_regs.
16239 (ira_available_class_regs): Delete.
16240 * ira.c (setup_available_class_regs): Delete.
16241 (setup_alloc_classes): Don't call it.
16242 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
16243 ira_available_class_regs.
16244 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
16245 (model_spill_cost): Likewise.
16246 * ira-build.c (low_pressure_loop_node_p): Likewise.
16247 * ira-color.c (color_pass): Likewise.
16248 * ira-emit.c (change_loop): Likewise.
16249 * ira-lives.c (inc_register_pressure, dec_register_pressure)
16250 (single_reg_class, ira_implicitly_set_insn_hard_regs)
16251 (process_bb_node_lives): Likewise.
16252 * loop-invariant.c (gain_for_invariant): Likewise.
16253
fda33f15
JDA
162542012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16255
16256 PR target/52999
16257 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
16258 (pa_section_type_flags): New.
16259 (pa_legitimate_constant_p): Revert previous change.
16260
a932fb89
SB
162612012-05-30 Steven Bosscher <steven@gcc.gnu.org>
16262
16263 * ira.c (allocate_initial_values): Make static.
16264
974485d7
UB
162652012-05-30 Uros Bizjak <ubizjak@gmail.com>
16266
16267 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
16268 Generate tls_initial_exec_64_sun only when !TARGET_X32.
16269
e40a9680
RG
162702012-05-30 Richard Guenther <rguenther@suse.de>
16271
16272 PR middle-end/53501
16273 * fold-const.c (fold_binary_loc): Make sure to call
16274 fold_plusminus_mult_expr with the original sign of operands.
16275
ee666c25
SB
162762012-05-30 Steven Bosscher <steven@gcc.gnu.org>
16277
16278 * Makefile.in: Fix many dependencies.
16279 (DWARF2_H): Depend on dwarf2.def.
16280 (RTL_ERROR_H): Depend on rtl-error.h.
16281 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
16282 all gimple-pretty-print.h and tree-pretty-print.h references.
16283
66c540d2
MG
162842012-05-30 Marc Glisse <marc.glisse@inria.fr>
16285
16286 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
16287 concatenations.
16288
ab068278
RG
162892012-05-30 Richard Guenther <rguenther@suse.de>
16290
16291 PR middle-end/53522
16292 * tree-emutls.c (gen_emutls_addr): Do not add globals to
16293 referenced-vars.
16294
d6a6a07a
EB
162952012-05-30 Eric Botcazou <ebotcazou@adacore.com>
16296
16297 * explow.c (probe_stack_range): Restore simple control flow and stop
16298 again when the probe cannot be generated if HAVE_check_stack.
16299
667c517b
JJ
163002012-05-30 Jakub Jelinek <jakub@redhat.com>
16301
16302 PR rtl-optimization/53519
16303 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
16304 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
16305
fa95aa25
RR
163062012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16307
16308 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
16309
638c962f
JH
163102012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
16311
16312 PR debug/53453
16313 * doc/tm.texi: Update.
16314 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
16315 * target.def (force_at_comp_dir): New hook.
16316 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
16317 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
16318
a8b4175c 163192012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
3127f133
JH
16320
16321 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
16322 Darwin >= 10.
16323 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
16324 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
16325
2df2ce3f
OE
163262012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
16327
16328 PR target/51340
16329 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
16330 flag_unsafe_math_optimizations is set.
16331 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
16332 Update description of -mfused-madd.
16333
c11394f8
OE
163342012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
16335
16336 PR target/52941
16337 * config/sh/predicates.md (atomic_arith_operand,
16338 atomic_logical_operand): New predicates.
16339 * config/sh/sh.c (sh_option_override): Check atomic options.
16340 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
16341 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
16342 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
16343 UNSUPPORTED_HARD_ATOMIC_CPU.
16344 * config/sh/sync.md: Update description comments.
16345 (I12): New mode iterator.
16346 (fetchop_predicate, fetchop_constraint): New code attributes.
16347 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
16348 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
16349 atomic_fetch_<fetchop_name>si_hard,
16350 atomic_fetch_<fetchop_name><mode>_hard,
16351 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
16352 atomic_<fetchop_name>_fetchsi_hard,
16353 atomic_<fetchop_name>_fetch<mode>_hard,
16354 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
16355 atomic_test_and_set_hard): New insns.
16356 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
16357 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
16358 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
16359 atomic_test_and_set_soft): Use same formatting for the first line of
16360 the asm block as in new insns above.
16361 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
16362 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
16363 atomic_test_and_set): Integrate new *_hard insns into expanders.
16364 * config/sh/sh.opt (mhard-atomic): New option.
16365 * doc/invoke.texi (SH Options): Document it.
16366
d0421638
MI
163672012-05-29 Meador Inge <meadori@codesourcery.com>
16368
16369 * c-decl.c (c_push_function_context): Always create a new language
16370 function.
16371 (c_pop_function_context): Clear the language function created in
16372 c_push_function_context.
16373
5e631e49
MT
163742012-05-29 Matt Turner <mattst88@gmail.com>
16375
16376 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
16377 (define_bypass "ev6_fcmov"): New.
16378
6399c0ab
SB
163792012-05-29 Steven Bosscher <steven@gcc.gnu.org>
16380
16381 * integrate.c: Remove.
16382 * integrate.h: Remove.
16383 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
16384 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
16385 * config/rs6000/t-rs6000: Likewise
16386 * config/spu/t-spu-elf: Likewise.
16387 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
16388 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
16389 from integrate.h to here.
16390 (initial_value_entry): New prototype.
16391 * reload.h (allocate_initial_values): Remove prototype.
16392 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
16393 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
16394 integrate.c.
16395 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
16396 set_decl_abstract_flags, set_block_abstract_flags): Move from
16397 integrate.c to here, the only user.
16398 * expmed.c (extract_fixed_bit_field): Remove outdated comment
16399 about integrate.c.
16400 * function.c: Don't include integrate.h.
16401 (struct initial_value_pair, struct initial_value_struct,
16402 get_hard_reg_initial_val, has_hard_reg_initial_val,
16403 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
16404 integrate.c to here.
16405 (initial_value_entry): New function.
16406 * genemit.c (main): Don't print integrate.h include line.
16407 * ira.c: Don't include integrate.h.
16408 (allocate_initial_values): Move from integrate.c to here.
16409 (ira): Update allocate_initial_values call.
16410 * tree-inline.c: Don't include integrate.h.
16411 (function_attribute_inlinable_p): Moved from integrate.c to here.
16412 * cfgexpand.c: Don't include integrate.h.
16413 * except.c: Likewise.
16414 * langhooks.c: Likewise.
16415 * passes.c: Likewise.
16416 * toplev.c: Likewise.
16417 * config/frv/frv.c: Likewise.
16418 * config/pa/pa.c: Likewise.
16419 * config/spu/spu.c: Likewise.
16420 * config/epiphany/epiphany.c: Likewise.
16421 * config/mep/mep.c: Likewise.
16422 * config/score/score.c: Likewise.
16423 * config/picochip/picochip.c: Likewise.
16424 * config/sh/sh.c: Likewise.
16425 * config/alpha/alpha.c: Likewise.
16426 * config/microblaze/microblaze.c: Likewise.
16427 * config/mips/mips.c: Likewise.
16428 * config/v850/v850.c: Likewise.
16429 * config/mmix/mmix.c: Likewise.
16430 * config/bfin/bfin.c: Likewise.
16431 * config/arm/arm.c: Likewise.
16432 * config/s390/s390.c: Likewise.
16433 * config/m32r/m32r.c: Likewise.
16434 * config/rs6000/rs6000.c: Likewise.
16435 * config/c6x/c6x.c: Include function.h instead of integrate.h.
16436 * config/tilegx/tilegx.c: Likewise.
16437 * config/tilepro/tilepro.c: Likewise.
16438
030a9eb6
GJL
164392012-05-29 Georg-Johann Lay <avr@gjlay.de>
16440
974485d7 16441 * config/avr/t-avr (s-avr-mmcu-texi): Call
030a9eb6 16442 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
974485d7 16443
9474e8ab
MM
164442012-05-29 Michael Matz <matz@suse.de>
16445
16446 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
16447 assign_temp): Remove 'keep' argument.
16448 (mark_temp_addr_taken): Remove prototype.
16449 * tree.h (expand_decl): Remove prototype.
974485d7 16450 * function.c (struct temp_slot): Remove addr_taken and keep member.
9474e8ab
MM
16451 (assign_stack_temp_for_type) Don't initialize above, remove
16452 keep argument.
16453 (assign_stack_temp, assign_temp): Remove keep argument.
16454 (mark_temp_addr_taken): Remove.
974485d7 16455 (preserve_temp_slots): Remove handling of addr_taken and keep members.
9474e8ab
MM
16456 (free_temp_slots): Ditto.
16457 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
16458 dead code.
16459 * stmt.c (expand_asm_operands): Remove dead code.
16460 (expand_decl): Remove.
16461 * c-decl.c (finish_struct): Don't call expand_decl.
16462 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
16463 and assign_stack_temp.
16464 * calls.c (save_fixed_argument_area, initialize_argument_information,
16465 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
16466 * expmed.c (extract_bit_field_1): Ditto.
16467 * expr.c (emit_group_load_1, emit_group_store,
16468 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
16469 store_field, expand_constructor, expand_cond_expr_using_cmove,
16470 expand_expr_real_2, expand_expr_real_1): Ditto.
16471 * stmt.c (expand_asm_operands, expand_return): Ditto.
16472
16473 * function.c (pop_temp_slots): Call free_temp_slots.
16474 * calls.c (store_one_arg): Don't call preserve_temp_slots or
16475 free_temp_slots.
16476 * expr.c (expand_assignment): Don't call free_temp_slots.
16477
16478 * config/arm/arm.c (neon_expand_vector_init): Ditto.
16479 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
16480 (ix86_expand_vector_extract): Ditto.
16481 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
16482 ia64_expand_movxf_movrf): Ditto.
16483 * config/mips/mips.c (mips_expand_vi_general): Ditto.
16484 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
16485 extendsfdf2): Ditto.
16486 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
16487 rs6000_expand_vector_set, rs6000_expand_vector_extract,
16488 rs6000_allocate_stack_temp): Ditto.
16489 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
16490 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
16491 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
16492 sparc_expand_vector_init): Ditto.
16493
ca5f4331
MM
164942012-05-29 Michael Matz <matz@suse.de>
16495
16496 * c-tree.h (c_expand_decl): Remove prototype.
16497
16498 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
16499 a kept temp.
16500 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
974485d7 16501 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
ca5f4331
MM
16502 COMPOUND_LITERAL_EXPR.
16503 * function.c (expand_function_start): Don't call expand_decl,
16504 instead assert that we have RTL assigned.
16505 * tree-ssa-live.c (remove_unused_locals): Clear
16506 nonlocal_goto_save_area if its backing variable is removed.
16507 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
16508 as mem inputs.
16509 (expand_decl): Assert that this does nothing.
16510 * calls.c (expand_call): Don't call mark_temp_addr_taken.
16511
508ef0c6
RG
165122012-05-29 Richard Guenther <rguenther@suse.de>
16513
16514 PR tree-optimization/53516
16515 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
16516 bitfield accesses.
16517 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
16518
073a8998
JM
165192012-05-29 Joseph Myers <joseph@codesourcery.com>
16520
16521 * LANGUAGES: Fix typos.
16522 * Makefile.in: Fix typos.
16523 * alias.c: Fix typos.
16524 * auto-inc-dec.c: Fix typos.
16525 * bb-reorder.c: Fix typos.
16526 * cfgcleanup.c: Fix typos.
16527 * cgraph.c: Fix typos.
16528 * cgraph.h: Fix typos.
16529 * cgraphunit.c: Fix typos.
16530 * collect2-aix.h: Fix typos.
16531 * collect2.c: Fix typos.
16532 * compare-elim.c: Fix typos.
16533 * config/alpha/vms.h: Fix typos.
16534 * config/arm/README-interworking: Fix typos.
16535 * config/arm/arm.c: Fix typos.
16536 * config/arm/iterators.md: Fix typos.
16537 * config/arm/vxworks.h: Fix typos.
16538 * config/avr/avr.c: Fix typos.
16539 * config/avr/avr.h: Fix typos.
16540 * config/avr/avr.md: Fix typos.
16541 * config/avr/builtins.def: Fix typos.
16542 * config/c6x/c6x.c: Fix typos.
16543 * config/cr16/cr16.c: Fix typos.
16544 * config/cr16/cr16.md: Fix typos.
16545 * config/cris/cris.md: Fix typos.
16546 * config/darwin.c: Fix typos.
16547 * config/darwin.opt: Fix typos.
16548 * config/i386/i386-c.c: Fix typos.
16549 * config/i386/i386.c: Fix typos.
16550 * config/ia64/ia64.c: Fix typos.
16551 * config/m68k/cf.md: Fix typos.
16552 * config/mep/mep.c: Fix typos.
16553 * config/microblaze/microblaze.c: Fix typos.
16554 * config/microblaze/microblaze.h: Fix typos.
16555 * config/mn10300/mn10300.c: Fix typos.
16556 * config/mn10300/mn10300.md: Fix typos.
16557 * config/pa/pa.c: Fix typos.
16558 * config/picochip/picochip.h: Fix typos.
16559 * config/rs6000/a2.md: Fix typos.
16560 * config/rs6000/rs6000.c: Fix typos.
16561 * config/rs6000/vector.md: Fix typos.
16562 * config/rx/rx.md: Fix typos.
16563 * config/rx/rx.opt: Fix typos.
16564 * config/s390/2097.md: Fix typos.
16565 * config/s390/s390.c: Fix typos.
16566 * config/s390/s390.h: Fix typos.
16567 * config/sh/sh.c: Fix typos.
16568 * config/sh/sh.md: Fix typos.
16569 * config/sparc/sync.md: Fix typos.
16570 * config/spu/spu.c: Fix typos.
16571 * config/spu/spu.md: Fix typos.
16572 * config/vms/vms.c: Fix typos.
16573 * config/vxworks-dummy.h: Fix typos.
16574 * config/vxworks.h: Fix typos.
16575 * cselib.c: Fix typos.
16576 * df-scan.c: Fix typos.
16577 * df.h: Fix typos.
16578 * doc/extend.texi: Fix typos.
16579 * doc/install.texi: Fix typos.
16580 * doc/invoke.texi: Fix typos.
16581 * doc/md.texi: Fix typos.
16582 * doc/plugins.texi: Fix typos.
16583 * doc/rtl.texi: Fix typos.
16584 * dse.c: Fix typos.
16585 * dwarf2asm.c: Fix typos.
16586 * dwarf2out.c: Fix typos.
16587 * except.h: Fix typos.
16588 * expr.c: Fix typos.
16589 * fold-const.c: Fix typos.
16590 * gcc.c: Fix typos.
16591 * gcse.c: Fix typos.
16592 * genautomata.c: Fix typos.
16593 * gengtype-state.c: Fix typos.
16594 * gengtype.c: Fix typos.
16595 * genhooks.c: Fix typos.
16596 * gimple-fold.c: Fix typos.
16597 * gimple-pretty-print.c: Fix typos.
16598 * gimple.c: Fix typos.
16599 * gimple.h: Fix typos.
16600 * gimplify.c: Fix typos.
16601 * graphite-interchange.c: Fix typos.
16602 * graphite-sese-to-poly.c: Fix typos.
16603 * ifcvt.c: Fix typos.
16604 * input.c: Fix typos.
16605 * ipa-cp.c: Fix typos.
16606 * ipa-inline-analysis.c: Fix typos.
16607 * ipa-inline-transform.c: Fix typos.
16608 * ipa-inline.c: Fix typos.
16609 * ipa-pure-const.c: Fix typos.
16610 * ipa-ref.h: Fix typos.
16611 * ipa-reference.c: Fix typos.
16612 * ipa-utils.c: Fix typos.
16613 * ipa.c: Fix typos.
16614 * ira-emit.c: Fix typos.
16615 * ira-lives.c: Fix typos.
16616 * lto-streamer.c: Fix typos.
16617 * lto-streamer.h: Fix typos.
16618 * lto-wrapper.c: Fix typos.
16619 * mcf.c: Fix typos.
16620 * mode-switching.c: Fix typos.
16621 * modulo-sched.c: Fix typos.
16622 * plugin.c: Fix typos.
16623 * postreload.c: Fix typos.
16624 * sched-deps.c: Fix typos.
16625 * sel-sched-ir.c: Fix typos.
16626 * sel-sched-ir.h: Fix typos.
16627 * sel-sched.c: Fix typos.
16628 * sese.c: Fix typos.
16629 * stor-layout.c: Fix typos.
16630 * target-hooks-macros.h: Fix typos.
16631 * target.def: Fix typos.
16632 * trans-mem.c: Fix typos.
16633 * tree-eh.c: Fix typos.
16634 * tree-predcom.c: Fix typos.
16635 * tree-sra.c: Fix typos.
16636 * tree-ssa-address.c: Fix typos.
16637 * tree-ssa-loop-ivopts.c: Fix typos.
16638 * tree-ssa-loop-niter.c: Fix typos.
16639 * tree-ssa-math-opts.c: Fix typos.
16640 * tree-ssa-pre.c: Fix typos.
16641 * tree-ssa-propagate.c: Fix typos.
16642 * tree-ssa-reassoc.c: Fix typos.
16643 * tree-ssa-sccvn.c: Fix typos.
16644 * tree-ssa-ter.c: Fix typos.
16645 * tree-ssa-uninit.c: Fix typos.
16646 * tree-ssanames.c: Fix typos.
16647 * tree-vect-generic.c: Fix typos.
16648 * tree-vect-slp.c: Fix typos.
16649 * tree.c: Fix typos.
16650 * tree.h: Fix typos.
16651 * varasm.c: Fix typos.
16652 * varpool.c: Fix typos.
16653
aba6f2c2
JM
166542012-05-29 Joseph Myers <joseph@codesourcery.com>
16655
16656 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
16657
a502e677
RG
166582012-05-29 Richard Guenther <rguenther@suse.de>
16659
16660 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
16661 for globals.
16662 (add_referenced_var_1): Re-organize. Assert we are not
16663 called for globals.
16664 (remove_referenced_var): Likewise.
16665 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
16666 * tree-mudflap.c (execute_mudflap_function_ops): Do not
16667 call add_referenced_var on globals.
16668 * matrix-reorg.c (transform_access_sites): Likewise.
16669
9ff3c7ca
SB
166702012-05-29 Steven Bosscher <steven@gcc.gnu.org>
16671
16672 * alias.c (reg_known_value): Make this a VEC.
16673 (reg_known_equiv_p): Make this an sbitmap.
16674 (reg_known_value_size): Remove.
16675 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
16676 set_reg_known_equiv_p): Update for reg_known_value and
16677 reg_known_value_size data structure change.
16678 (init_alias_analysis, end_alias_analysis): Likewise.
16679
92b05e72
JJ
166802012-05-29 Jakub Jelinek <jakub@redhat.com>
16681
16682 PR middle-end/53510
16683 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
16684 to avoid leaking memory. No need to handle memory allocation
974485d7 16685 failure. Double string_len on each reallocation instead of adding 2.
92b05e72
JJ
16686 * gcov.c (read_line): Likewise.
16687
64f5af47
HPN
166882012-05-29 Hans-Peter Nilsson <hp@axis.com>
16689
16690 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
16691 New macros.
16692 * config/cris/cris.md ("trap"): Define, enabled for
16693 TARGET_TRAP_USING_BREAK8.
16694 * config/cris/cris.opt (mtrap-using-break8): New option.
16695
4a792f9b
PC
166962012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
16697
16698 PR c++/25137
16699 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
16700 for C++.
16701
e9d3ef3b
HPN
167022012-05-28 Hans-Peter Nilsson <hp@axis.com>
16703
974485d7 16704 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
b4922105 16705 (Standard Names): Fix typos in documentation of atomic patterns.
e9d3ef3b 16706
253cbc5f
NS
167072012-05-27 Nathan Sidwell <nathan@acm.org>
16708
16709 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
16710
1f37c583
JM
167112012-05-26 Jason Merrill <jason@redhat.com>
16712
16713 PR c++/53220
16714 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
16715 about array compound literals.
16716
9be94227
EB
167172012-05-26 Eric Botcazou <ebotcazou@adacore.com>
16718
16719 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
16720 if CLEANUP_NO_INSN_DEL.
16721 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
16722 from cfg_layout_merge_blocks.
16723 (emit_nop_for_unique_locus_between): New function.
16724 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
16725 (cfg_layout_merge_blocks): Likewise.
16726
c5ebdc25
DA
167272012-05-26 Dimitrios Apostolou <jimis@gmx.net>
16728 Paolo Bonzini <bonzini@gnu.org>
16729
16730 * df-scan.c (df_def_record_1): Assert a parallel must contain an
16731 EXPR_LIST at this point. Receive the LOC and move its extraction...
16732 (df_defs_record): ... here. Change if-else to a switch statement.
16733 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
16734 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
16735 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
16736 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
16737 regs_invalidated_by_call.
16738 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
16739 df_get_call_refs().
16740
37c59e69
EB
167412012-05-25 Eric Botcazou <ebotcazou@adacore.com>
16742
16743 PR lto/52178
16744 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
16745 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
16746
13af22d7
MM
167472012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
16748
16749 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
16750 software floating point emulation. No longer build the multilibs
16751 with -mstrict-align.
16752
7be9eece
AH
167532012-05-25 Aldy Hernandez <aldyh@redhat.com>
16754
16755 PR middle-end/53008
16756 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
16757 accessed indirectly.
16758 (ipa_tm_create_version): Same.
16759
a295fa90
UB
167602012-05-25 Uros Bizjak <ubizjak@gmail.com>
16761
16762 PR target/53474
16763 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
16764 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
16765
0ba89f9b
AI
167662012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
16767
16768 PR target/53435
16769 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
16770 (ix86_expand_vec_perm): Use int mode instead of float.
16771 (expand_vec_perm_pshufb): Remove handling of useseless type
16772 conversion.
16773
b993039f
EB
167742012-05-25 Eric Botcazou <ebotcazou@adacore.com>
16775
16776 PR ada/52362
16777 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
16778 gnu_ld variables to yes.
16779 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
16780 (HAVE_GNU_AS): Likewise.
16781 * config.in: Regenerate.
16782 * configure: Likewise.
16783
4aa820fe
TG
167842012-05-25 Tristan Gingold <gingold@adacore.com>
16785
16786 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
16787 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
16788 and preferred_alignment.
16789
d656c9c5
TG
167902012-05-25 Tristan Gingold <gingold@adacore.com>
16791
16792 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
16793
48938147
TS
167942012-05-25 Thomas Schwinge <thomas@codesourcery.com>
16795
16796 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
16797 volatile bitfields case.
16798
167992012-05-24 Pat Haugen <pthaugen@us.ibm.com>
6fac31b4
PH
16800
16801 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
16802 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
16803 (adjacent_mem_locations): Move some code to and call...
16804 (get_memref_parts): ...new function.
16805 (mem_locations_overlap): New function.
16806 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
16807 (is_mem_ref): Rename to...
16808 (find_mem_ref): ...this. Return MEM rtx.
16809 (get_store_dest): Remove function.
16810 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
16811 new parameter and adjust calls.
16812 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
16813 mem refs overlap for true_store_to_load_dep_costly.
16814 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
16815 passed to adjacent_mem_locations.
16816 (is_costly_group): Walk resolved dependency list.
16817 (force_new_group): Emit group ending nop for Power6/Power7.
16818 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
16819 (group_ending_nop): New define_insn.
16820
165ca58d
DS
168212012-05-24 Dodji Seketeli <dodji@redhat.com>
16822
16823 Make unwound macro expansion trace less redundant
16824 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
16825 context of macro definition in the trace, when it's redundant.
16826 Update comments.
16827
49bdc0a6
RG
168282012-05-24 Richard Guenther <rguenther@suse.de>
16829
16830 PR middle-end/53460
16831 * tree-profile.c (tree_profiling): Cleanup the CFG if
16832 execute_fixup_cfg requests it.
16833
0faa0562
RG
168342012-05-24 Richard Guenther <rguenther@suse.de>
16835
16836 * tree-flow.h (create_var_ann): Remove.
16837 * tree-dfa.c (create_var_ann): Remove and inline into its
16838 single caller ...
16839 (add_referenced_var_1): ... here.
16840 * varpool.c (add_new_static_var): Do not call add_referenced_var
16841 for global vars.
16842 * gimple-fold.c (canonicalize_constructor_val): Likewise.
16843 * tree-switch-conversion.c (build_one_array): Likewise.
16844 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
16845 * tree-flow-inline.h (gimple_referenced_vars): Guard against
16846 NULL fn argument.
16847 * tree-inline.c (remap_gimple_op_r): Likewise. Check
16848 gimple_referenced_vars instead of gimple_in_ssa_p.
16849 (copy_tree_body_r): Likewise.
16850 (setup_one_parameter): Likewise.
16851 (declare_return_variable): Likewise.
16852 (tree_function_versioning): Likewise.
16853
0d5a9e78
JJ
168542012-05-24 Jakub Jelinek <jakub@redhat.com>
16855
16856 PR tree-optimization/53465
16857 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
16858 vr0 into *vr, then vrp_meet that.
16859 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
16860 have any equivalences.
16861 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
16862 first time.
16863
168642012-05-24 Jim MacArthur <jim.macarthur@arm.com>
e7bcc691
JM
16865
16866 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
16867 hard registers.
16868 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
16869 check end_regno - 1 is a hard register.
16870
b44be1e6
RG
168712012-05-24 Richard Guenther <rguenther@suse.de>
16872
16873 * varpool.c (add_new_static_var): Remove call to create_var_ann.
16874 * tree-ssa-operands.c (create_vop_var): Likewise.
16875
1431ce01
RG
168762012-05-24 Richard Guenther <rguenther@suse.de>
16877
16878 PR bootstrap/53466
16879 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
16880 handle globals.
16881 (remove_unused_locals): Pass global_unused_vars to
16882 remove_unused_scope_block_p. Restore code walking all
16883 referenced vars and pruning them.
16884
07250f0e
JH
168852012-05-23 Jan Hubicka <jh@suse.cz>
16886
16887 * tree.h (alias_diag_flags): Remove.
16888 (alias_pair): Remove emitted_diags.
16889 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
16890 symbol_alias_set_t, symbol_alias_set_destroy,
16891 symbol_alias_set_contains, propagate_aliases_backward): Remove.
16892 * toplev.c (compile_file): Do not call finish_aliases_2
a295fa90
UB
16893 * cgraphunit.c (cgraph_process_new_functions): Do not call
16894 finish_aliases_1.
07250f0e
JH
16895 (handle_alias_pairs): Output diagnostics about aliases to externals.
16896 (assemble_thunks_and_aliases): Use do_assemble_alias.
16897 (output_weakrefs): Likewise.
16898 (finalize_compilation_unit): Do not call finish_aliases_1.
a295fa90
UB
16899 * ipa.c (symtab_remove_unreachable_nodes): De not call
16900 remove_unreachable_alias_pairs.
07250f0e 16901 * varasm.c (do_assemble_alias): Export.
a295fa90
UB
16902 (symbol_alias_set_create, symbol_alias_set_destroy,
16903 symbol_alias_set_contains, symbol_alias_set_insert,
16904 propagate_aliases_forward, propagate_aliases_backward,
16905 propagate_aliases_backward, trivially_visible_alias,
16906 trivially_defined_alias, remove_unreachable_alias_pairs,
16907 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
07250f0e 16908 * output.h (do_assemble_alias): Declare.
a295fa90
UB
16909 * varpool.c (varpool_remove_unreferenced_decls): Do not call
16910 finish_aliases_1.
07250f0e 16911
fb909888
MJ
169122012-05-23 Martin Jambor <mjambor@suse.cz>
16913
16914 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
16915
2e745103
EB
169162012-05-23 Eric Botcazou <ebotcazou@adacore.com>
16917
16918 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
16919 size handling.
16920 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
16921 (iterative_hash_gimple_type): Adjust comment.
16922 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
16923 domain for an array type instead of the domain type itself.
16924
e8257960
RG
169252012-05-23 Richard Guenther <rguenther@suse.de>
16926
16927 PR tree-optimization/53438
16928 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
16929
b49eb0ff
GJL
169302012-05-23 Georg-Johann Lay <avr@gjlay.de>
16931
16932 PR target/53448
16933 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
16934 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
16935 ASM_OUTPUT_ALIGN.
16936
9c09f152
RB
169372012-05-23 Richard Guenther <rguenther@suse.de>
16938
16939 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
16940 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
16941 via the global_unused_vars bitmap.
16942 (remove_unused_locals): Handle global vars in local-decls via
16943 a global_unused_vars bitmap instead of the used flag in the
16944 var annotation. Simplify global variable handling and removal.
16945
aa19cf87
JH
169462012-05-22 Jan Hubicka <jh@suse.cz>
16947
16948 PR middle-end/53426
9c09f152
RB
16949 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
16950 from other partitions.
aa19cf87 16951
66379195
JH
169522012-05-22 Jan Hubicka <jh@suse.cz>
16953
16954 PR middle-end/53161
16955 * symtab.c (symtab_register_node): Fix ordering issue.
16956
3cd50158
SD
169572012-05-22 Steven Drake <sbd@NetBSD.org>
16958
16959 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
16960
f8dc1d83
DE
169612012-05-22 David Edelsohn <dje.gcc@gmail.com>
16962
16963 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
16964 Use strip_name_encoding target hook.
16965
3828719a
RG
169662012-05-22 Richard Guenther <rguenther@suse.de>
16967
16968 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
16969 (init_function_for_compilation): Remove.
16970 * tree-dfa.c (find_vars_r): Take struct function argument.
16971 (find_referenced_vars_in): Adjust.
16972 * tree-ssa-operands.c (clobber_stats): Remove.
16973 (create_vop_var): Take struct function argument. Mark
16974 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
16975 (init_ssa_operands): Take struct function argument.
16976 (fini_ssa_operands): Do not dump dead stats.
16977 * tree-ssa-operands.h (init_ssa_operands): Take struct function
16978 argument.
16979 * cgraphunit.c (init_lowered_empty_function): Adjust.
16980 * lto-streamer-in.c (input_cfg): Likewise.
16981 * tree-inline.c (initialize_cfun): Likewise.
16982 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
a295fa90 16983 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
3828719a
RG
16984 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
16985 virtual operands are not registers.
16986
72d5c6c1
RG
169872012-05-22 Richard Guenther <rguenther@suse.de>
16988
a295fa90 16989 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
72d5c6c1 16990
27eb31c9
RG
169912012-05-22 Richard Guenther <rguenther@suse.de>
16992
16993 PR middle-end/53437
16994 * tree-inline.c (setup_one_parameter): Create a dummy init
16995 statement for unused parameters when not optimizing.
16996
3efa0725
RG
169972012-05-22 Richard Guenther <rguenther@suse.de>
16998
16999 * tree-flow.h (add_referenced_var_1): Declare.
17000 (add_referenced_var): Define.
a295fa90 17001 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
3efa0725
RG
17002 (add_referenced_var): Rename to ...
17003 (add_referenced_var_1): ... this. Take struct function argument.
17004
95ffee1f
RR
170052012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17006
17007 PR target/53334
17008 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
17009 * config/arm/arm.c (arm_validize_comparison): Define.
17010 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
17011 arm_validize_comparison.
17012 ("cbranchdi4"): Likewise.
17013 ("cstoredi4"): Likewise.
17014 ("movsicc"): Likewise.
17015 ("movsfcc"): Likewise.
17016 ("movdfcc"): Likewise.
17017
7c2dbbdc
DA
170182012-05-22 Dimitrios Apostolou <jimis@gmx.net>
17019
17020 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
95ffee1f 17021 the mw_reg_pool size.
7c2dbbdc 17022
819f3b2c
PB
170232012-05-22 Paolo Bonzini <bonzini@gnu.org>
17024
17025 PR tree-optimization/53336
17026 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
17027 non-integer integral types to offset type and vice versa.
17028
c5e0766b
AM
170292012-05-22 Alan Modra <amodra@gmail.com>
17030
7caf4b0c
PB
17031 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
17032 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
17033 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
17034 V_SAVE_INLINE): Delete.
c5e0766b
AM
17035 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
17036 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
17037 For ELF targets, use out-of-line restores for -Os and any number
17038 of regs if the restore exits, and out-of-line gp save for two or
17039 more regs. Use save_reg_p to test for holes in reg restore set.
17040 Replace "#if" with "if".
17041
bbd72c2f
AM
170422012-05-22 Alan Modra <amodra@gmail.com>
17043
17044 * config/rs6000/rs6000.c (save_reg_p): New function.
17045 (first_reg_to_save, first_fp_reg_to_save): Use it here.
17046 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
17047 (emit_frame_save): Use gen_frame_store.
17048 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
17049 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
17050 vrsave and toc.
17051 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
17052 vrsave, toc, gp and fp restores.
17053
e1968bba
AM
170542012-05-22 Alan Modra <amodra@gmail.com>
17055
17056 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
17057 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
17058 Move function pointer variables after forward declarations.
17059 (rs6000_builtin_support_vector_misalignment): Make static.
17060 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
17061 (rs6000_function_value, rs6000_can_eliminate): Likewise.
17062
1d2944a3
BS
170632012-05-21 Bernd Schmidt <bernds@codesourcery.com>
17064
17065 PR rtl-optimization/53373
17066 * caller-save.c (save_call_clobbered_regs): Look into a possible
17067 PARALLEL manually rather than using single_set on a call insn.
17068
a9a58711
JJ
170692012-05-21 Jakub Jelinek <jakub@redhat.com>
17070
17071 PR tree-optimization/53436
17072 * omp-low.c (omp_build_component_ref): New function.
17073 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
17074
f1ea1f5c
UB
170752012-05-21 Uros Bizjak <ubizjak@gmail.com>
17076
17077 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
17078 arguments to bool.
17079 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
17080 Do not print '.' here. Output operand lossage error for unhandled
17081 sizes. Move.
17082 <case '*'>: Move.
17083 <case '&'>: Ditto.
17084 <case 'Y'>: Ditto.
17085 <case 'z'>: Hardcode "code" argument into error strings.
17086 <case 'Z'>: Ditto.
17087 <case 'D'>: Merge AVX and non-AVX codes.
17088 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
17089 Update call to put_condition_code.
17090
577e0395
AS
170912012-05-21 Andreas Schwab <schwab@linux-m68k.org>
17092
17093 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
17094 CC_STATUS_INIT.
17095 (clzsi2): New expander.
17096 (*clzsi2_68k): New insn.
f1ea1f5c 17097 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
577e0395 17098
83e1a7f0
AH
170992012-05-21 Aldy Hernandez <aldyh@redhat.com>
17100
17101 * gimple.h (gimple_set_in_transaction): Remove.
17102 (gimple_in_transaction): Look in BB instead.
17103 (gimple_statement_base): Remove in_transaction field.
17104 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
17105 * trans-mem.c (compute_transaction_bits): Place transaction bit
17106 information into basic blocks.
17107
18c56439
AS
171082012-05-21 Andreas Schwab <schwab@linux-m68k.org>
17109
17110 * expr.c (get_def_for_expr_class): Define only if
17111 HAVE_conditional_move.
17112 (convert_tree_comp_to_rtx): Likewise.
17113
89ac11d8
UB
171142012-05-21 Uros Bizjak <ubizjak@gmail.com>
17115
17116 PR target/53399
17117 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
17118 for TARGET_BMI.
17119 (ffssi2_no_cmove): Ditto.
17120 (*ffs<mode>_1): Remove insn pattern.
17121 (*tzcnt<mode>_1): New insn pattern.
17122 (*bsf<mode>1): Ditto.
17123
cb0c9fc3
RG
171242012-05-21 Richard Guenther <rguenther@suse.de>
17125
17126 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
17127 more referenced vars.
17128 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
17129 flag on variables that have a var-annotation.
17130
01c7ccbb
JM
171312012-05-21 Joseph Myers <joseph@codesourcery.com>
17132
ce863f5d 17133 PR c/53418
01c7ccbb
JM
17134 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
17135 from folded operands before wrapping another around the
17136 conditional expression.
17137
27edb974
JJ
171382012-05-21 Jakub Jelinek <jakub@redhat.com>
17139
7772bae0
JJ
17140 PR tree-optimization/53366
17141 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
17142 tests if complex_numbers == 2, but there are non-complex number loads
17143 too.
17144
017a2020
JJ
17145 PR tree-optimization/53409
17146 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
17147 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
17148
27edb974
JJ
17149 PR tree-optimization/53410
17150 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
17151 instead of build_int_cst (type, 0) where vector types might be
17152 involved. Instead of build_int_cst (type, 1) convert the original
17153 integer_onep argument to the desired type.
17154
fb639843
MM
171552012-05-21 Michael Matz <matz@suse.de>
17156
17157 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
17158 (simplify_test_exp): Handle one more case of distributive law,
17159 decrease cost threshold.
17160 (tests_attr_p, get_attr_order): New functions.
17161 (optimize_attrs): Use topological order, inline only cheap values.
17162 (write_attr_set): Reset our_known_true after some time.
17163
30ee9dbf
L
171642012-05-21 H.J. Lu <hongjiu.lu@intel.com>
17165
17166 PR target/53425
17167 * config/i386/i386.c (type_natural_mode): Warn passing SSE
17168 vector argument without SSE enabled changes the ABI.
17169
21039e0e
RG
171702012-05-21 Richard Guenther <rguenther@suse.de>
17171
17172 PR tree-optimization/53408
17173 * tree-vect-loop.c (vectorizable_induction): Properly check
17174 the restriction that we cannot handle induction results from
17175 the inner loop outside of the outer loop.
17176
9b5effa4
L
171772012-05-21 H.J. Lu <hongjiu.lu@intel.com>
17178
17179 PR target/53416
17180 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
17181 (UNSPECV_RDRAND): This.
17182 (rdrand<mode>_1): Updated.
17183
8450aa97
RG
171842012-05-21 Richard Guenther <rguenther@suse.de>
17185
17186 * tree-loop-distribution.c (can_generate_builtin): Reject
17187 volatile stmts.
17188
6be4d3ac
CLT
171892012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
17190
17191 * Makefile.in (options.c): Add options.h to included header
17192 files, before tm.h.
17193
70837b71
RL
171942012-05-21 Razya Ladelsky <razya@il.ibm.com>
17195
89ac11d8 17196 * tree-parloops.c : Add myself to contributors, update
70837b71
RL
17197 TODO list, add link to wiki.
17198
8afc3636
AM
171992012-05-21 Alan Modra <amodra@gmail.com>
17200
17201 * config/rs6000/predicates.md (input_operand): Don't match
17202 constant pool addresses. Remove label_ref, high and plus from
17203 match_code list. Remove redundant CONSTANT_P test.
17204 (splat_input_operand): Similarly update match_code list.
17205 (small_toc_ref): New predicate.
17206 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
17207 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
17208 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
17209 register checks to..
17210 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
17211 generated by create_TOC_reference.
17212 (rs6000_legitimize_address): Update cerate_TOC_reference call.
17213 (rs6000_delegitimize_address): Handle new rtl for toc refs.
17214 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
17215 (use_toc_relative_ref): New function, split out from..
17216 (rs6000_emit_move): ..here. Remove redundant tests. Update
17217 create_TOC_reference calls.
17218 (rs6000_legitimize_reload_address): Formatting. Handle splitting
17219 of medium/large model toc addresses. Use use_toc_relative_ref.
17220 (print_operand): Formatting, style. Adjust for toc changes.
17221 (print_operand_address): Likewise.
17222 (rs6000_output_addr_const_extra): Likewise.
17223 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
17224 than a PLUS. Use this formulation for both high and low part
17225 of -mcmodel=medium/large toc reference too. Before reload,
17226 always use the small model formulation.
17227 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
17228 a PLUS in high part of addresses here.
17229 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
17230 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
17231 (largetoc_high, largetoc_low): Move earlier. Cope when no
17232 base reg available.
17233 (largetoc_high_plus): New insn.
17234 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
17235 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
17236 (tocref): ..instead do so here, new insn and split.
17237
d1925759
L
172382012-05-20 H.J. Lu <hongjiu.lu@intel.com>
17239
17240 * config/i386/driver-i386.c (host_detect_local_cpu): Support
17241 RDRND, F16C and FSGSBASE.
17242
05607e5b
JDA
172432012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17244
17245 PR rtl-optimzation/53373
17246 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
17247 call pattern. Update split patterns.
17248 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
17249 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
17250
768da0da 172512012-05-20 Razya Ladelsky <razya@il.ibm.com>
89ac11d8
UB
17252
17253 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
17254 for outer loops.
768da0da 17255
877ab5e9
JH
172562012-05-18 Jan Hubicka <jh@suse.cz>
17257
17258 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
17259 (cgraph_process_new_functions): Process also aliases.
17260 * lto-streamer-out.c (struct sets): Remove.
17261 (trivally_defined_alias): Remove.
17262 (output_alias_pair_p): Remove.
17263 (output_unreferenced_globals): Remove.
17264 (produce_symtab); Do not handle alias pairs.
17265 (produce_asm_for_decls): Likewise.
17266 * lto-streamer-in.c (input_alias_pairs): Remove.
17267 (lto_read_body): Do not input alias pairs.
17268 (lto_input_constructors_and_inits): Remove.
17269
38e55ac9
JH
172702012-05-18 Jan Hubicka <jh@suse.cz>
17271
89ac11d8
UB
17272 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
17273 aliases.
38e55ac9 17274
c44c2088
JH
172752012-05-18 Jan Hubicka <jh@suse.cz>
17276
17277 * cgraphbuild.c (record_reference): Update.
17278 * lto-cgraph.c (lto_output_varpool_node): External vars
17279 are not in other partition even if they are not output
17280 in current partition.
17281 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
17282 argument; fix.
17283 (canonicalize_constructor_val): Take FROM_DECL argument.
17284 (fold_ctor_reference, fold_string_cst_ctor_reference,
17285 fold_array_ctor_reference, fold_nonarray_ctor_reference,
17286 fold_ctor_reference): Likewise.
17287 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
17288 * gimple.h (gimple_fold_builtin): Likewise.
17289
0ac3cb2a
OH
172902012-05-18 Olivier Hainque <hainque@adacore.com>
17291
17292 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
17293 $(libsubdir) as libexecsubdir.
17294
9c68125e
BS
172952012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17296
17297 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
17298 relied on signed overflow behavior.
17299
a4293fa6
RG
173002012-05-18 Richard Guenther <rguenther@suse.de>
17301
17302 PR tree-optimization/53346
17303 * tree-loop-distribution.c (ldist_gen): Make sure to apply
17304 builtin transform even when only a single partition with
17305 all reads/writes exists.
17306
7595989b
RG
173072012-05-18 Richard Guenther <rguenther@suse.de>
17308
17309 PR tree-optimization/53390
17310 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
17311 strided loads.
17312
917a5202
BS
173132012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17314
17315 * tree-ssa-reassoc.c (bip_map): Remove decl.
17316 (completely_remove_stmt): Remove function.
17317 (remove_def_if_absorbed_call): Remove function.
17318 (remove_visited_stmt_chain): Remove __builtin_powi handling.
17319 (possibly_move_powi): Remove function.
17320 (rewrite_expr_tree): Remove calls to possibly_move_powi.
17321 (rewrite_expr_tree_parallel): Likewise.
17322 (attempt_builtin_powi): Build multiplies explicitly rather than
17323 relying on the ops vector and rank system.
17324 (transform_stmt_to_copy): New function.
17325 (transform_stmt_to_multiply): Likewise.
17326 (reassociate_bb): Handle leftover operations after __builtin_powi
17327 optimization; build a final multiply if necessary.
17328
387df871
JH
173292012-05-18 Jan Hubicka <jh@suse.cz>
17330
17331 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
17332 (mark_functions_to_output): Fix sanity check.
89ac11d8 17333 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
387df871 17334
f9a21e13
RG
173352012-05-18 Richard Guenther <rguenther@suse.de>
17336
17337 * tree-flow.h (mark_symbols_for_renaming): Remove.
17338 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
89ac11d8 17339 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
f9a21e13
RG
17340 (copy_debug_stmt): Likewise.
17341 (expand_call_inline): Likewise.
17342 (declare_return_variable): Mark the return variable for renaming
17343 if necessary.
17344
99aea943
AS
173452012-05-18 Andrew Stubbs <ams@codesourcery.com>
17346
17347 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
17348 prototype.
17349 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
17350 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
17351 (ashrdi3,lshrdi3): Likewise.
17352 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
17353
7cb6668a
MI
173542012-05-18 Meador Inge <meadori@codesourcery.com>
17355
17356 PR rtl-optimization/53352
17357 * cse.c (equiv_constant): Ignore paradoxical subregs.
17358
8e6acdb8
SB
173592012-05-17 Steven Bosscher <steven@gcc.gnu.org>
17360
17361 PR rtl-optimization/53125
17362 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
17363 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
17364 die in the basic block. Correctly top off REG_FREQ and
17365 REG_FREQ_CALLS_CROSSED.
17366 Remove do_not_gen.
17367 (regstat_compute_ri): Allocate and free local_live_last_luid.
17368 Remove do_not_gen.
17369 (regstat_bb_compute_calls_crossed): Correctly top off
17370 REG_FREQ_CALLS_CROSSED.
17371
6649df51
JH
173722012-05-17 Jan Hubicka <jh@suse.cz>
17373
89ac11d8
UB
17374 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
17375 constructor over decl without.
6649df51
JH
17376 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
17377 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
89ac11d8 17378 * cgraphunit.c (process_function_and_variable_attributes): Finalize
6649df51 17379 extrnal decls.
89ac11d8
UB
17380 (mark_functions_to_output): Also accept bodies for functions with
17381 clones.
6649df51
JH
17382 (output_in_order): Skip external vars.
17383 * lto-cgraph.c (lto_output_node): External functions are never in other
17384 partition.
17385 (lto_output_varpool_node): Likewise.
17386 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
17387 forgotten initializers.
17388 * ipa.c (process_references): Handle external vars.
17389 (symtab_remove_unreachable_nodes): Update to handle external vars.
17390 (varpool_externally_visible_p): External vars are externally visible.
17391 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
17392 * varpool.c (varpool_remove_node): Remove constructor.
17393 (decide_is_variable_needed): Handle externals.
17394 (varpool_remove_unreferenced_decls): Likewise.
17395
9b095bf1
MLI
173962012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
17397
17398 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
17399 (enable_warning_as_error): Do not special case Wuninitialized.
17400 * optc-gen.awk: Add sanity checks.
17401
9faeb493 174022012-05-17 Jan Hubicka <jh@suse.cz>
5264f487
JH
17403
17404 * ipa-reference.c (is_proper_for_analysis): Do not check flags
17405 that might change as result of global optimization.
17406 (analyze_function): Do not check analyzed and externally_visible
17407 flags; be happy about address dereferences.
17408 (propagate): Prune all_module_statics so it really contains just
17409 statics; prune all the local summaries.
17410 (ipa_reference_write_optimization_summary): Simplify.
17411
de7ee1e9
KCY
174122012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
17413
89ac11d8 17414 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
de7ee1e9
KCY
17415 * config/m68k/m68k-tables.opt: Regenerated.
17416 * doc/invoke.texi (M680x0 Options): Document.
17417
8730965e
PM
174182012-05-16 Dave Boutcher <daveboutcher@gmail.com>
17419 Patrick Marlier <patrick.marlier@gmail.com>
17420
17421 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
17422 indirect calls.
17423
e6d5f8c9
L
174242012-05-16 H.J. Lu <hongjiu.lu@intel.com>
17425
17426 * configure: Regenerated.
17427
763dc99d
AP
174282012-05-16 Andrew Pinski <apinski@cavium.com>
17429
17430 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
17431 GIMPLE_ASSIGN.
17432
0e2b0f75
DM
174332012-05-16 David S. Miller <davem@davemloft.net>
17434
17435 * jump.c (delete_related_insns): If we remove a CALL, make sure
17436 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
17437
f002c196
BS
174382012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17439
17440 PR tree-optimization/53217
17441 * tree-ssa-reassoc.c (bip_map): New static variable.
17442 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
17443 (attempt_builtin_powi): Save feeding multiplies on a stack.
17444 (reassociate_bb): Create and destroy bip_map.
17445
8294b6fe
OH
174462012-05-16 Olivier Hainque <hainque@adacore.com>
17447
17448 * Makefile.in (install-no-fixedincludes): New target, former toplevel
17449 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
17450 Add comments and improve stamp preservation across the whole sequence.
17451 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
17452
6b18b1a3
RG
174532012-05-16 Richard Guenther <rguenther@suse.de>
17454
17455 * tree-inline.c (insert_init_stmt): Do not call
17456 mark_symbols_for_renaming.
17457 (setup_one_parameter): Avoid initializing unused parameters.
17458 (declare_return_variable): Properly handle DECL_BY_REFERENCE
17459 return vars in SSA form.
17460
00d9266f
RG
174612012-05-16 Richard Guenther <rguenther@suse.de>
17462
17463 * tree-flow.h (get_virtual_var): Remove.
17464 * tree-dfa.c (get_virtual_var): Likewise.
17465
c334023f
RG
174662012-05-16 Richard Guenther <rguenther@suse.de>
17467
17468 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
17469 Remove set-only bitmap of new names.
17470 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
17471 CFG hooks.
17472 * tree-flow.h (ssa_names_to_replace): Remove.
17473 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
17474
a952cc06
RG
174752012-05-16 Richard Guenther <rguenther@suse.de>
17476
17477 PR tree-optimization/53364
17478 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
17479 detect a view-conversion of the decl.
17480
0b2c4be5
DS
174812012-05-16 Dodji Seketeli <dodji@redhat.com>
17482
17483 PR preprocessor/7263
17484 * c-tree.h (enum c_declspec_word): Declare new enum.
17485 (struct c_declspecs::locations): New member.
17486 (declspecs_add_qual, declspecs_add_scspec)
17487 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
17488 location parameter.
17489 * c-decl.c (build_null_declspecs): Initialize the new struct
17490 c_declspecs::locations member.
17491 (declspecs_add_addrspace): Take a location parameter for the
17492 address space. Store it onto declaration specifiers.
17493 (declspecs_add_qual): Likewise, take a location parameter for the
17494 qualifier.
17495 (declspecs_add_type): Likewise, take a location parameter for the
17496 type specifier.
17497 (declspecs_add_scspec): Likewise, take a location parameter for
17498 the storage class specifier.
17499 (declspecs_add_attrs): Likewise, take a location parameter for the
17500 first attribute.
17501 (declspecs_add_alignas): Likewise, take a location parameter for
17502 the alignas token.
17503 (finish_declspecs): For diagnostics, use the location of the
17504 relevant declspec, instead of the global input_location.
17505 * c-parser.c (c_parser_parameter_declaration): Pass the precise
17506 virtual location of the declspec to the declspecs-setters.
17507 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
17508 repeatedly.
17509
40295cc7
IZ
175102012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
17511
17512 * configure.ac: Stack protector enabling for Android targets.
17513 * configure: Regenerate.
17514
a36b2706
RS
175152012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
17516
17517 * ira.c (pseudo_move_insn): Delete.
17518 (find_moveable_pseudos): Don't set it.
17519 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
17520 the definitions of the original pseudo. Delete all of them.
17521
a7c6c6d6
OH
175222012-05-16 Olivier Hainque <hainque@adacore.com>
17523
17524 * config/rs6000/rs6000-opts.h (enum processor_type): Add
17525 PROCESSOR_PPC8548.
17526 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
17527 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
17528 * config/rs6000/8540.md: indicate that the units/patterns apply to
17529 ppc8548 as well.
17530
17531 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
17532 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
17533 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
17534 related flags, check that what is queried is supported by the selected
17535 configuration. Rework the single/double_float and MASK_STRING resets to
17536 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
17537 costs for PROCESSOR_PPC8548 as well.
17538 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
17539 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
17540 statement instead of a sequence of ifs.
17541
17542 * config/rs6000/rs6000.h (TARGET_E500): Remove.
17543 (TARGET_NO_LWSYNC): Adjust accordingly.
17544 * config/rs6000/e500.h (TARGET_E500): Remove.
17545 (CHECK_E500_OPTIONS): Adjust accordingly.
17546 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
17547 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
17548 * config/rs6000/linuxspe.h: Likewise.
17549 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
17550 superfluous comments.
17551 * config/rs6000/e500-double.h: Remove.
17552
17553 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
17554 default to with_cpu=8548 if --enable-e500-double, and to 8540
17555 otherwise.
17556 (set misc flags section): For powerpc*|rs6000*, remove inclusion
17557 of e500-double.h for --enable-e500-double.
17558
af0a7a92
OH
175592012-05-16 Olivier Hainque <hainque@adacore.com>
17560
17561 * Makefile.in (s-header-vars): Resort to -n instead of trailing
17562 -e d in sed invocation.
17563
176a96de
HPN
175642012-05-16 Hans-Peter Nilsson <hp@axis.com>
17565
17566 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
17567 source-code.
17568 * doc/tm.texi: Regenerate.
17569
f2437399
PC
175702012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
17571
17572 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
17573
64137a35
JJ
175742012-05-15 Jakub Jelinek <jakub@redhat.com>
17575
17576 PR target/53358
17577 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
17578 that operands[2] is either immediate, or q_regs_operand.
17579
7d80ca1f
RG
175802012-05-15 Richard Guenther <rguenther@suse.de>
17581
17582 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
17583 (assemble_thunk): Likewise. Manually rename and register
17584 function arguments.
17585
8c1f1d42
RG
175862012-05-15 Richard Guenther <rguenther@suse.de>
17587
17588 PR tree-optimization/53355
17589 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
17590 by constants.
17591
33960e2e
TG
175922012-05-15 Tristan Gingold <gingold@adacore.com>
17593
89ac11d8 17594 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
33960e2e 17595
a02f0c5d
RG
175962012-05-15 Richard Guenther <rguenther@suse.de>
17597
17598 * gimple.c (gimple_set_modified): Move ...
17599 * gimple.h (gimple_set_modified): ... here.
17600
094aaeab
TG
176012012-05-15 Tristan Gingold <gingold@adacore.com>
17602
17603 * ira-color.c (move_spill_restore): Add a guard.
17604
f65e3801
TG
176052012-05-15 Tristan Gingold <gingold@adacore.com>
17606
17607 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
17608 plus_constant.
17609
f301837e
EB
176102012-05-15 Eric Botcazou <ebotcazou@adacore.com>
17611
17612 * gimplify.c (gimplify_init_constructor): Do a block move for very
17613 small objects as well.
17614
aa44c80c
BS
176152012-05-15 Bernd Schmidt <bernds@codesourcery.com>
17616
17617 * ira.c (find_moveable_pseudos): Skip registers whose
17618 DF_REG_EQ_USE_COUNT is nonzero.
17619
d6373302
KZ
176202012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
17621
89ac11d8 17622 * doc/md.texi (fma): Define to only be applicable for single rounding.
33960e2e 17623
517f1b34
UB
176242012-05-14 Uros Bizjak <ubizjak@gmail.com>
17625
17626 PR target/46098
17627 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
17628 generate target register for "load" class builtins.
17629
17630 Revert:
17631 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
17632
17633 PR target/46098
17634 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
17635 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
17636 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
17637 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
17638 (<sse>_movu<ssemodesuffix>): New expander.
17639 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
17640 (avx_movdqu<avxmodesuffix>): New expander.
17641 (*sse2_movdqu): Rename from sse2_movdqu.
17642 (sse2_movdqu): New expander.
17643
6015a67d
MG
176442012-05-14 Marc Glisse <marc.glisse@inria.fr>
17645
17646 PR target/52607
17647 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
17648 (canonicalize_perm): ... new function.
17649 (expand_vec_perm_2vperm2f128_vshuf): New function.
17650 (ix86_expand_vec_perm_const_1): Call it.
17651
f6286674
JJ
176522012-05-14 Andrew Pinski <apinski@cavium.com>
17653 H.J. Lu <hongjiu.lu@intel.com>
17654 Jakub Jelinek <jakub@redhat.com>
17655
17656 PR target/53315
517f1b34 17657 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
f6286674
JJ
17658 (xbegin): Updated.
17659
d5c90983
JJ
176602012-05-14 Jakub Jelinek <jakub@redhat.com>
17661
210cfe63
JJ
17662 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
17663 lineno 1 the same as lineno 0 before first start file directive.
17664 (optimize_macinfo_range): Likewise.
17665
d5c90983
JJ
17666 * dwarf2out.c (have_macinfo): Define.
17667 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
17668 attribute, don't force empty compilation unit and don't emit any
17669 .debug_macinfo/.debug_macro section if macinfo_table is empty.
17670
5bb53d1a
GJL
176712012-05-14 Georg-Johann Lay <avr@gjlay.de>
17672
17673 PR target/53344
17674 * config/avr/avr.c (avr_const_address_lo16): Remove.
17675 (avr_assemble_integer): Print ".byte lo8(x)",
17676 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
89ac11d8 17677 .warning if 3-byte address is assembled.
5bb53d1a
GJL
17678 * doc/extend.texi (AVR Named Address Spaces): Document that
17679 binutils 2.23 is needed to assemble 3-byte addresses.
17680
6ba84010
RG
176812012-05-14 Richard Guenther <rguenther@suse.de>
17682
17683 * tree-vect-data-refs.c (vect_setup_realignment): Remove
17684 call to mark_symbols_for_renaming.
17685 (vect_permute_load_chain): Likewise.
17686 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
17687 instead of calling mark_symbols_for_renaming.
17688 * tree-vect-stmts.c (read_vector_array): Remove call to
17689 mark_symbols_for_renaming.
17690 (write_vector_array): Likewise.
17691 (vectorizable_call): Likewise.
17692 (vectorizable_store): Likewise.
17693 (vectorizable_load): Likewise.
17694 * matrix-reorg.c (transform_allocation_sites): Likewise.
17695 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
17696 (create_expression_by_pieces): Likewise.
17697
097dcc66
RG
176982012-05-14 Richard Guenther <rguenther@suse.de>
17699
17700 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
17701 of statements for renaming.
17702 (force_gimple_operand_1): Likewise, consistently for both
17703 calls to force_gimple_operand and force_gimple_operand_gsi.
17704
a5efada7
RG
177052012-05-14 Richard Guenther <rguenther@suse.de>
17706
17707 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
17708 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
17709 to update_ssa.
17710 (expand_omp_for): Likewise.
17711 (expand_omp_for_generic): Adjust conditional add to referenced vars.
17712 Use make_rename_temp for temporaries that should be rewritten into
17713 SSA form.
17714 (expand_omp_for_static_nochunk): Likewise.
17715 (expand_omp_atomic_pipeline): Likewise.
17716
a82960aa
RG
177172012-05-14 Richard Guenther <rguenther@suse.de>
17718
17719 PR tree-optimization/53331
17720 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
17721 strided loads.
17722 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
17723
f2bc201f
MLI
177242012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
17725
17726 PR 53063
17727 * doc/options.texi: (LangEnabledBy): Document it.
17728 * optc-gen.awk: Handle LangEnabledBy.
17729 * opth-gen.awk: Generate declaration for lang-specific functions.
17730 * opt-read.awk: Record lang numbers.
17731 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
17732 (lang_sanitized_name): New.
17733
e384e6b5
BS
177342012-05-14 Bernd Schmidt <bernds@codesourcery.com>
17735
17736 * attribs.c (decl_attributes): Avoid emitting a warning if
17737 ATTR_FLAG_BUILT_IN.
17738 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
17739 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
e384e6b5
BS
17740 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
17741 define a string "1".
17742 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
17743 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
17744 BUILT_IN_STRCPY): Use it for these functions.
17745 * postreload.c (reload_combine): Deal with SETs inside
17746 CALL_INSN_FUNCTION_USAGE.
17747 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
17748 Look for REG_RETURNED notes and use a cheap restore if possible.
17749 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
17750 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
17751 * ira-build.c (ira_create_allocno, create_cap_allocno,
17752 propagate_allocno_info, propagate_some_info_from_allocno,
17753 copy_info_to_removed_store_destination, ira_flattening): Handle it.
17754 * ira-lives.c (pseudo_regno_single_word_and_live_p,
17755 find_call_crossed_cheap_reg): New static functions.
17756 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
17757 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
17758 a REG_RETURNED note in that case.
17759 * ira.c (setup_reg_renumber): Change assert to allow cases where
17760 allocnos only cross calls for which they are cheap to restore.
17761 * ira-costs.c (ira_tune_allocno_costs): Compare
17762 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
17763 than 0.
17764 * reg-notes.def (REG_RETURNED): New note.
17765 * cse.c (cse_insn): Likewise.
17766 * sched-deps.c (sched_analyze_insn): Likewise.
17767 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
17768 * calls.c (decl_return_flags): New static function.
17769 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
17770 functions that return one of their arguments.
e384e6b5
BS
17771 * regcprop.c (struct kill_set_value_data): New.
17772 (kill_set_value): Interpret data as a pointer to such a struct.
17773 Do nothing if the caller wants the register to be ignored.
17774 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
17775
92290a18
RG
177762012-05-14 Richard Guenther <rguenther@suse.de>
17777
17778 PR tree-optimization/53340
17779 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
17780
412a1d9e
RG
177812012-05-14 Richard Guenther <rguenther@suse.de>
17782
17783 * gimplify.c (gimplify_expr): Remove odd code.
17784
9cbbba28
EB
177852012-05-14 Eric Botcazou <ebotcazou@adacore.com>
17786
17787 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
17788 into a PLUS_EXPR byte offset.
17789
17790 * tree-ssa-pre.c (can_value_number_call): Delete.
17791 (compute_avail): Skip all statements with side effects.
17792 <GIMPLE_CALL>: Skip calls to internal functions.
17793
ef4df353
SB
177942012-05-13 Steven Bosscher <steven@gcc.gnu.org>
17795
17796 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
17797
95744782
MLI
177982012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
17799
17800 * common.opt (Wtype-limits): Use EnabledBy.
17801
c9423cef
UB
178022012-05-13 Uros Bizjak <ubizjak@gmail.com>
17803
17804 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
17805 (pushtf splitter): Ditto.
17806 (movtf): Ditto.
17807 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
17808 (<code>tf2): Enable for TARGET_SSE.
17809 (*absnegtf2_sse): Ditto.
17810 (copysign<mode>3): Enable TFmode for TARGET_SSE.
17811 (copysign<mode>3_const): Ditto.
17812 (copysign<mode>3_var): Ditto.
17813 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
17814 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
17815 (*<code>tf3): Ditto.
17816 * config/i386/i386.c (struct builtin_description bdesc_args)
17817 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
17818 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
17819 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
17820 Emit a normal call if SSE isn't available.
17821
b8dd0894
UB
178222012-05-13 Uros Bizjak <ubizjak@gmail.com>
17823
17824 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
17825 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
17826 (<code><mode>3): Ditto.
17827 (*andnot<mode>3): Ditto.
17828 (*andnottf3): Ditto.
17829 (*<code><mode>3): Ditto.
17830 (<code>tf3): Ditto.
17831
71caddc5
MLI
178322012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
17833
17834 * optc-gen.awk: Error instead of warning for conflicting help.
17835
bf4c7d4a
JM
178362012-05-12 Jason Merrill <jason@redhat.com>
17837
17838 PR debug/53235
17839 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
17840 comdat types.
17841
4265801b
EB
178422012-05-12 Eric Botcazou <ebotcazou@adacore.com>
17843
17844 * function.c (requires_stack_frame_p): If the function can throw
17845 non-call exceptions, return true if the insn can throw internally.
17846
66b1156a
PC
178472012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
17848
17849 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
17850
d2b21f20
UB
178512012-05-12 Uros Bizjak <ubizjak@gmail.com>
17852
17853 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
17854 ORDERED and UNORDERED conditions.
17855
835c9db0
RG
178562012-05-11 Richard Guenther <rguenther@suse.de>
17857
17858 * tree-flow.h (referenced_var_check_and_insert): Remove.
17859 (find_new_referenced_vars): Likewise.
17860 * tree-dfa.c (referenced_var_check_and_insert): Make static.
17861 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
17862 * tree-inline.c (copy_bb): Use find_referenced_vars_in
17863 instead of find_new_referenced_vars.
17864 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
17865
6083578b
RG
178662012-05-11 Richard Guenther <rguenther@suse.de>
17867
17868 * tree-pass.h (pass_rest_of_compilation,
17869 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
17870 Remove.
17871 * passes.c (pass_all_optimizations, pass_postreload,
17872 pass_all_early_optimizations): Make static.
17873 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
17874 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
17875 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
17876 (delete_tree_ssa): Do not call fini_phinodes.
17877 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
17878
7d5a5747
MLI
178792012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
17880
17881 PR 53063
17882 * doc/options.texi (EnabledBy): Document
17883 * opts.c: Include opts.h and options.h before tm.h.
17884 (finish_options): Do not handle some sub-options here...
6399c0ab
SB
17885 (common_handle_option): ... instead call common_handle_option_auto
17886 here.
7d5a5747
MLI
17887 * optc-gen.awk: Handle EnabledBy.
17888 * opth-gen.awk: Declare common_handle_option_auto.
17889 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
17890 (Wmaybe-uninitialized): Likewise.
517f1b34
UB
17891 (Wunused-but-set-variable): Likewise.
17892 (Wunused-function): Likewise.
17893 (Wunused-label): Likewise.
17894 (Wunused-value): Likewise.
17895 (Wunused-variable): Likewise.
17896 * opt-read.awk: Create opt_numbers array.
7d5a5747 17897
319e6439
RG
178982012-05-11 Richard Guenther <rguenther@suse.de>
17899
17900 PR tree-optimization/53295
17901 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
17902 strides.
17903 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
17904 strides when analyzing data-references in a loop context.
17905 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
17906 non-constant strides for now.
17907 (vect_enhance_data_refs_alignment): Ignore data references
17908 that are strided loads.
17909 (vect_analyze_data_ref_access): Handle non-constant strides.
17910 (vect_check_strided_load): Verify the data-reference is a load.
17911 (vect_analyze_data_refs): Restructure to make strided load
17912 support not dependent on gather support.
17913 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
17914 when doing strided or gather loads.
17915 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
17916 integer_zerop to compare stride with zero.
17917
76a02e42
L
179182012-05-11 H.J. Lu <hongjiu.lu@intel.com>
17919
b8dd0894 17920 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
76a02e42 17921
8fc17ddc
JH
179222012-05-11 Jan Hubicka <jh@suse.cz>
17923
17924 PR bootstrap/53300
17925 * varpool.c (varpool_assemble_decl): Also output constat pool entries
17926 that output_constant_pool missed.
17927
cc90dc84
MX
179282012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
17929
17930 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
17931 MULTILIB_EXTRA_OPTS.
17932
8d463d3a
UB
179332012-05-11 Uros Bizjak <ubizjak@gmail.com>
17934
17935 PR target/53291
17936 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
17937
63705578
UB
179382012-05-11 Uros Bizjak <ubizjak@gmail.com>
17939
17940 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
17941 optimization for TARGET_AVX.
17942 (*movti_internal_sse): Ditto.
17943 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
17944 (*movdi_internal): Ditto.
17945 (*movsi_internal): Ditto.
17946 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
17947 (*movdf_internal_rex64): Ditto.
17948 (*movfd_internal): Ditto.
17949 (*movsf_internal): Ditto.
17950 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
17951
e580d8ee
EB
179522012-05-10 Eric Botcazou <ebotcazou@adacore.com>
17953
17954 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
17955 reference as size attribute.
17956
7b84aac0
EB
179572012-05-10 Eric Botcazou <ebotcazou@adacore.com>
17958 Tristan Gingold <gingold@adacore.com>
17959
17960 * doc/md.texi (Standard Names): Document probe_stack_address.
17961 * explow.c (emit_stack_probe): Handle probe_stack_address.
17962 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
17963 (UNSPECV_PROBE_STACK_RANGE): Likewise.
17964 (probe_stack_address): New insn.
17965 (probe_stack_range): Likewise.
17966 * config/ia64/ia64.c: Include common/common-target.h.
17967 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
17968 checking is enabled.
17969 (ia64_emit_probe_stack_range): New function.
17970 (output_probe_stack_range): Likewise.
17971 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
17972 builtin stack checking is enabled.
17973 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
17974 and UNSPECV_PROBE_STACK_ADDRESS.
17975 (unknown_for_bundling_p): New predicate.
17976 (group_barrier_needed): Use important_for_bundling_p.
17977 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
17978 (issue_nops_and_insn): Likewise.
17979 (bundling): Likewise.
17980 (final_emit_insn_group_barriers): Likewise.
17981 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
17982 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
17983 (STACK_CHECK_PROTECT): Likewise.
17984 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17985
f1016df4
JH
179862012-05-10 Jan Hubicka <jh@suse.cz>
17987
17988 * ipa-inline.c (update_all_callee_keys): Remove.
17989 (inline_small_functions): Simplify priority updating.
17990
57228a69
JH
179912012-05-10 Jan Hubicka <jh@suse.cz>
17992
17993 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
17994
04142cc3
JH
179952012-05-10 Jan Hubicka <jh@suse.cz>
17996
17997 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
17998 (symtab_remove_unreachable_nodes): ... this one.
17999 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
18000 * cgraphunit.c (ipa_passes): Update.
18001 * cgraphclones.c (cgraph_materialize_all_clones): Update.
18002 * cgraph.c (cgraph_release_function_body): Only turn initial
18003 into error mark when initial was previously set.
18004 * ipa-inline.c (ipa_inline): Update.
18005 * ipa.c: Include ipa-inline.h
18006 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
18007 (enqueue_node): New function.
18008 (process_references): Update.
18009 (symtab_remove_unreachable_nodes): Cleanup.
18010 * passes.c (execute_todo, execute_one_pass): Update.
18011
e8d7e3e7
VM
180122012-05-10 Vladimir Makarov <vmakarov@redhat.com>
18013
18014 PR rtl-optimization/53125
3af2e3b5 18015 * ira.c (ira): Call find_moveable_pseudos and
e8d7e3e7
VM
18016 move_unallocated_pseudos if only ira_conflicts_p is true.
18017
e338c25c
UB
180182012-05-10 Uros Bizjak <ubizjak@gmail.com>
18019
18020 * config/i386/i386.md (*movoi_internal_avx): Handle
18021 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
18022 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
18023 (*movti_internal_sse): Ditto.
18024 (*movtf_internal): Ditto.
18025 * config/i386/sse.md (ssePSmode): New mode attribute.
18026 (*move<mode>_internal): Use ssePSmode.
18027 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
18028 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
18029 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
18030 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
18031
d400d17e
EB
180322012-05-10 Eric Botcazou <ebotcazou@adacore.com>
18033
18034 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
18035 DECL_ORIGINAL_TYPE if it is present.
18036
b5ba5188
NC
180372012-05-10 Nick Clifton <nickc@redhat.com>
18038
18039 PR target/53120
18040 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
18041 a "0" constraint to being a (match_dup 0).
18042
8244f252
RG
180432012-05-10 Richard Guenther <rguenther@suse.de>
18044
18045 * stor-layout.c (byte_from_pos): Amend comment.
18046
aca06c90
RO
180472012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18048
18049 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
18050 Document requirement to call in constructors.
18051
e338c25c 18052 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
aca06c90 18053
3ac8781c
RG
180542012-05-10 Richard Guenther <rguenther@suse.de>
18055
18056 * tree.h (TYPE_IS_SIZETYPE): Remove.
18057 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
18058 (extract_muldiv_1): Likewise.
18059 * gimple.c (gtc_visit): Likewise.
18060 (gimple_types_compatible_p): Likewise.
18061 (iterative_hash_canonical_type): Likewise.
18062 (gimple_canonical_types_compatible_p): Likewise.
18063 * gimplify.c (gimplify_one_sizepos): Likewise.
18064 * print-tree.c (print_node): Likewise.
18065 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
18066
d21a7b44
UB
180672012-05-09 Uros Bizjak <ubizjak@gmail.com>
18068
18069 PR target/52908
18070 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
18071 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
18072 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
18073 instead of xop_mulv2div2di3_low.
18074 (xop_p<macs>dql): Fix vec_select selector.
18075 (xop_p<macs>dqh): Ditto.
18076 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
18077 (xop_mulv2div2di3_high): Ditto.
18078
1b8b126f
MLI
180792012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
18080
18081 PR c++/53289
18082 * diagnostic.h (diagnostic_context): Add last_location.
18083 * diagnostic.c (diagnostic_initialize): Initialize it.
18084 (diagnostic_show_locus): Use it.
18085
c54e7136
MLI
180862012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
18087
517f1b34 18088 * doc/extend.texi (Function Attributes): Point xref to section
c54e7136
MLI
18089 about Pragmas.
18090
0ba511a1
UB
180912012-05-09 Uros Bizjak <ubizjak@gmail.com>
18092
18093 * config/i386/i386.c (*movdf_internal_rex64): Remove
18094 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
18095 Calculate "mode" attribute according to
18096 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
18097 (*movdf_internal): Ditto.
18098
20f9034b
UB
180992012-05-09 Uros Bizjak <ubizjak@gmail.com>
18100
18101 PR target/44141
18102 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
18103 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
18104 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
18105 or when optimizing for size.
18106 * config/i386/sse.md (*mov<mode>_internal): Remove
18107 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
18108 Calculate "mode" attribute according to optimize_function_for_size_p
18109 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
18110 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
18111 depending on the mode of the instruction. Calculate "mode" attribute
18112 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
18113 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
18114 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
18115
eac188c5
GJL
181162012-05-09 Georg-Johann Lay <avr@gjlay.de>
18117
18118 PR target/53256
18119 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
18120 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
18121 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
18122 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
18123 (expand_prologue): Move initialization of cfun->machine->is_naked,
18124 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
18125 (avr_set_current_function): ...this new static function.
18126 (TARGET_SET_CURRENT_FUNCTION): New define.
18127 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
18128 checking attributes of current_function_decl.
18129 (avr_regs_to_save): Ditto.
18130 (signal_function_p): Rename to avr_signal_function_p.
18131 (interrupt_function_p): Rename to avr_interrupt_function_p.
18132
18133 * doc/extend.texi (Function Attributes): Better explanation of
18134 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
18135 alphabetical order.
18136
0c910378
MM
181372012-05-09 Michael Matz <matz@suse.de>
18138
18139 PR tree-optimization/53185
18140 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
18141 peeling when we see strided loads.
18142
b0cd199e
MK
181432012-05-09 Matthias Klose <doko@ubuntu.com>
18144
18145 * gcc-ar.c (main): Don't check for execute bits for the plugin.
18146
8875e939
RR
181472012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18148
18149 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
18150 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
18151 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
18152 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
18153 (USE_LOAD_POST_INCREMENT): Define.
18154 (USE_LOAD_PRE_INCREMENT): Define.
18155 (USE_LOAD_POST_DECREMENT): Define.
18156 (USE_LOAD_PRE_DECREMENT): Define.
18157 (USE_STORE_PRE_DECREMENT): Define.
18158 (USE_STORE_PRE_INCREMENT): Define.
18159 (USE_STORE_POST_DECREMENT): Define.
18160 (USE_STORE_POST_INCREMENT): Define.
18161 (arm_auto_incmodes): Add enumeration.
18162 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
18163 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
18164
cc603b40
JJ
181652012-05-09 Jakub Jelinek <jakub@redhat.com>
18166
18167 PR tree-optimization/53226
18168 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
18169 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
18170 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
18171 doesn't need to be revisited, look for earliest stmt with
18172 !gimple_plf (stmt, GF_PLF_1) if something changed.
18173
97e574d8
TG
181742012-05-09 Terry Guo <terry.guo@arm.com>
18175
18176 * genmultilib: Update copyright dates.
18177 * doc/fragments.texi: Ditto.
18178
43661dc4
TG
181792012-05-09 Terry Guo <terry.guo@arm.com>
18180
18181 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
18182 * genmultilib (MULTILIB_REQUIRED): New.
18183 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
18184
368117e8
RG
181852012-05-09 Richard Guenther <rguenther@suse.de>
18186
18187 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
18188 (vect_do_peeling_for_loop_bound): Likewise.
18189 (vect_do_peeling_for_alignment): Likewise.
18190 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
18191 (vect_do_peeling_for_loop_bound): Get check_profitability and
18192 threshold as parameters.
18193 (vect_do_peeling_for_alignment): Likewise.
18194 (vect_loop_versioning): Likewise.
18195 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
18196 and threshold here. Control where to put the check here.
18197
372d6395
RS
181982012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
18199
18200 PR middle-end/53249
18201 * dwarf2out.h (get_address_mode): Move declaration to...
18202 * rtl.h: ...here.
18203 * dwarf2out.c (get_address_mode): Move definition to...
18204 * rtlanal.c: ...here.
18205 * var-tracking.c (get_address_mode): Delete.
18206 * combine.c (find_split_point): Use get_address_mode instead of
18207 targetm.addr_space.address_mode.
18208 * cselib.c (cselib_record_sets): Likewise.
18209 * dse.c (canon_address, record_store): Likewise.
18210 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
18211 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
18212 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
18213 (expand_expr_real_1): Likewise.
18214 * ifcvt.c (noce_try_cmove_arith): Likewise.
18215 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
18216 * reload.c (find_reloads): Likewise.
18217 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
18218 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
18219
45d05c5f
MR
182202012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
18221
18222 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
18223 information from the instruction produced.
18224
2af27301
RG
182252012-05-09 Richard Guenther <rguenther@suse.de>
18226
18227 * stor-layout.c (bit_from_pos): Document.
18228 (byte_from_pos): Likewise. Optimize.
18229 (pos_from_bit): Likewise.
18230 (normalize_offset): Use pos_from_bit instead of replicating it.
18231
570a374a
AM
182322012-05-09 Alan Modra <amodra@gmail.com>
18233
18234 PR target/53271
18235 * config/rs6000/rs6000.c (gen_frame_set): New function.
18236 (gen_frame_load, gen_frame_store): New functions.
18237 (rs6000_savres_rtx): Use the above.
18238 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
18239 Correct mode used for CR2 in save/restore_world patterns.
18240 Don't emit instructions for eh_return frame unwind reg info.
18241
0d6bf48c
JH
182422012-05-08 Jan Hubicka <jh@suse.cz>
18243
18244 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
18245 with VALUE_EXPR.
18246 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
18247 are removable.
18248 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
18249 need to wrapup.
18250 (compile_file): Do not output variables.
18251 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
18252 output it.
18253 * langhooks.c: Include timevar.h
18254 (write_global_declarations): Finalize compilation unit after wrapup;
18255 set timevars correctly.
18256 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
18257 not to be added to varpool.
18258 * varpool.c (varpool_assemble_decl): Sanity check that we are called
18259 only on cases where it makes sense; skip constant pool and value expr
18260 vars.
18261
36e0c0a5
DM
182622012-05-08 David S. Miller <davem@davemloft.net>
18263
18264 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
18265 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
18266 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
18267
b3c9bb62
RS
182682012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
18269
18270 PR rtl-optimization/53278
18271 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
18272 speed_p code from earlier patch.
18273
ef402c65
OE
182742012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
18275
18276 PR target/51244
18277 * config/sh/sh.md (*branch_true, *branch_false): New insns.
18278
20f9034b 182792012-05-08 Teresa Johnson <tejohnson@google.com>
4e8ee9cb
TJ
18280
18281 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
18282 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
18283
66a20fc2
JH
182842012-05-08 Jan Hubicka <jh@suse.cz>
18285
18286 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
18287 (cgraph_create_node_1): Rename to ...
18288 (cgraph_create_empty_node): ... this one; export.
18289 (cgraph_create_node): Update.
18290 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
18291 (cgraph_create_edge_including_clones): Likewise.
18292 (cgraph_find_replacement_node): Likewise.
18293 (cgraph_clone_edge): Likewise.
18294 (cgraph_clone_node): Likewise.
18295 (clone_function_name): Likewise.
18296 (cgraph_create_virtual_clone): Likewise.
18297 (cgraph_remove_node_and_inline_clones): Likewise.
20f9034b 18298 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
66a20fc2
JH
18299 * cgraph.h: Reorder declarations so they match file of origin.
18300 (cgraph_create_empty_node): Declare.
18301 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
18302 (cgraph_copy_node_for_versioning): Likewise.
18303 (cgraph_function_versioning): Likewise.
18304 (cgraph_materialize_clone): Likewise.
18305 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
18306 (cgraph_materialize_all_clones): Likewise.
18307 * cgraphclones.c: New file.
18308 * Makefile.in: Update for cgraphclones.
18309
3f3dcbb3
UB
183102012-05-08 Uros Bizjak <ubizjak@gmail.com>
18311
aedfe0a8 18312 PR target/53176
3f3dcbb3
UB
18313 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
18314 (ix86_rtx_costs): Handle SET.
18315
bcc708fc
MM
183162012-05-08 Michael Matz <matz@suse.de>
18317
18318 * basic-block.h (struct rtl_bb_info): Remove visited member and
18319 move head_ member to ...
18320 (struct basic_block_def.basic_block_il_dependent): ... the new
18321 member x, replacing but containing old member rtl.
18322 (enum bb_flags): New BB_VISITED flag.
18323 (BB_HEADER, BB_FOOTER): New macros.
18324
18325 * jump.c (mark_all_labels): Adjust.
18326 * cfgcleanup.c (try_optimize_cfg): Adjust.
18327 * cfglayout.c (record_effective_endpoints): Adjust.
18328 (relink_block_chain): Ditto (and don't fiddle with visited).
18329 (fixup_reorder_chain): Adjust.
18330 (fixup_fallthru_exit_predecessor): Ditto.
18331 (cfg_layout_duplicate_bb): Ditto.
18332 * combine.c (update_cfg_for_uncondjump): Adjust.
3f3dcbb3 18333 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
bcc708fc
MM
18334 (bb_visited_trace): New accessor.
18335 (mark_bb_visited): Move in front.
18336 (rotate_loop): Use bb_visited_trace.
18337 (find_traces_1_round): Ditto.
18338 (emit_barrier_after): Ditto.
18339 (copy_bb): Ditto, and initialize visited on resize.
18340 (reorder_basic_blocks): Initize visited member.
18341 (duplicate_computed_gotos): Clear bb flags at start, use
18342 BB_VISITED flags.
18343
18344 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
18345 (rtl_verify_flow_info_1): Ditto.
18346 (cfg_layout_split_block): Ditto.
18347 (cfg_layout_delete_block): Ditto.
18348 (cfg_layout_merge_blocks): Ditto.
18349 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
18350
b3374f14
HPN
183512012-05-08 Hans-Peter Nilsson <hp@axis.com>
18352
18353 PR target/53272
18354 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
18355 when a constant source operand matches an "I" constraint, the "no
18356 CC0 change" applies to a register-destination only, not a
18357 strict_low_part-destination.
18358
ad9fc55a
RG
183592012-05-08 Richard Guenther <rguenther@suse.de>
18360
18361 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
18362 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
18363
04d170d2
GJL
183642012-05-08 Georg-Johann Lay <avr@gjlay.de>
18365
18366 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
18367
18368 * doc/avr-mmcu.texi: New auto-generated file.
18369 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
18370 to document all valid -mmcu= arguments.
18371
18372 * config/avr/avr.h (arch_info_s): New struct definition.
18373 * config/avr/avr-devices.c (avr_texinfo): New variable.
18374 * config/avr/gen-avr-mmcu-texi.c: New file.
18375 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
18376
9c04723a
DC
183772012-05-08 Dehao Chen <dehao@google.com>
18378
99b113f9
DC
18379 * predict.c (find_qualified_ssa_name): New.
18380 (find_ssa_name_in_expr): New.
18381 (find_ssa_name_in_assign_stmt): New.
18382 (is_comparison_with_loop_invariant_p): New.
18383 (is_bound_expr_similar): New.
18384 (predict_iv_comparison): New.
9c04723a
DC
18385 (predict_loops): Add heuristic for loop-nested branches that compare an
18386 induction variable to a loop bound variable.
99b113f9 18387 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
9c04723a 18388
536b0cb7
UB
183892012-05-08 Uros Bizjak <ubizjak@gmail.com>
18390
18391 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
18392 TARGET_BDVER2 defines where appropriate.
18393
36d21883
EB
183942012-05-07 Eric Botcazou <ebotcazou@adacore.com>
18395
18396 * configure.ac (PLUGIN_LD): Rename into...
18397 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
18398 * config.in: Regenerate.
18399 * configure: Likewise.
18400 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
18401
b48e22b2
EB
184022012-05-07 Eric Botcazou <ebotcazou@adacore.com>
18403
18404 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
18405 computation using the precision of the index type.
18406 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
18407 (fold_array_ctor_reference): Do index computations in the index type.
18408
184092012-05-07 Georg-Johann Lay <avr@gjlay.de>
55796e90
GJL
18410
18411 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
18412 down to plus_constant.
18413 (expand_epilogue): Ditto.
18414
8bb91f49
SB
184152012-05-07 Steven Bosscher <steven@gcc.gnu.org>
18416
18417 * postreload.c (reload_cse_regs): Make static.
18418 * reload.h (reload_cse_regs): Remove prototype.
18419
e220a047
RH
184202012-05-07 Richard Henderson <rth@redhat.com>
18421
18422 * config/alpha/alpha.md (clear_cache): New pattern.
18423
5be1632b
SB
184242012-05-07 Steven Bosscher <steven@gcc.gnu.org>
18425
18426 PR middle-end/53245
18427 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
18428 is folded to a type boundary value, verify that the resulting case
18429 label is still a care range.
18430
60197adb
UB
184312012-05-07 Uros Bizjak <ubizjak@gmail.com>
18432
18433 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
18434 only for TARGET_GENERIC, when not optimizing for size.
18435 (*ffs<mode>_1): Ditto.
18436
198fc9f1
SB
184372012-05-07 Steven Bosscher <steven@gcc.gnu.org>
18438
18439 * tree-cfg.c (verify_gimple_switch): Tighten checks.
18440
7a04f01c
JJ
184412012-05-07 Jakub Jelinek <jakub@redhat.com>
18442
18443 PR tree-optimization/53239
536b0cb7
UB
18444 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
18445 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
7a04f01c 18446
fb7c3cc8
RB
184472012-05-07 Richard Guenther <rguenther@suse.de>
18448
18449 PR tree-optimization/53195
18450 * tree-inline.c (setup_one_parameter): Properly add referenced
18451 vars from the parameters new known value.
18452
75647ade
SB
184532012-05-07 Steven Bosscher <steven@gcc.gnu.org>
18454
18455 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
18456 (sched_branch_type): Remove.
18457 (m68k_sched_md_init_global): Don't allocate it.
18458 (m68k_sched_md_finish_global): Don't free it.
18459 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
fb7c3cc8
RB
18460 * config/m68k/m68k.md: Set the type of insns using
18461 m68k_sched_branch_type to bcc directly.
75647ade 18462
fe551ce4
RO
184632012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18464
18465 * config/sol2.c (solaris_override_options): New function.
18466 * config/sol2-protos.h (solaris_override_options): Declare.
18467 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
18468
1e373390
RG
184692012-05-07 Richard Guenther <rguenther@suse.de>
18470
18471 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
18472 whether we failed to compute data dependences.
18473 (loop_prefetch_arrays): Fail if we failed.
18474
19010925
UB
184752012-05-07 Uros Bizjak <ubizjak@gmail.com>
18476 Paolo Bonzini <bonzini@gnu.org>
18477
18478 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
18479 Emit bsf when optimizing for size.
18480 (*ffs<mode>_1): Ditto.
18481
0345d1dd
OE
184822012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
18483
18484 PR target/53250
18485 * config/sh/sh.c (sh_rtx_costs): Handle SET.
18486
69f088a7
UB
184872012-05-06 Uros Bizjak <ubizjak@gmail.com>
18488
18489 PR target/53227
18490 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
18491 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
18492 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
18493 (bswapsi2): Ditto.
18494 (*bswapdi2_doubleword): New insn pattern.
18495 (*bswap<mode>2): Rename from *bswap<mode>2_1.
18496
91000c66
RS
184972012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
18498
18499 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
18500 (mips_set_reg_reg_cost): Likewise.
18501 (mips_rtx_costs): Handle SET.
18502
69523a7c
RS
185032012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
18504
18505 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
18506 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
18507 to compute the cost of moves. Set the mode of the target register.
18508
0a81f074
RS
185092012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
18510
18511 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
18512 plus_constant function.
18513 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
18514 that the mode is sensible.
18515 (use_anchored_address, round_push, allocate_dynamic_stack_space)
18516 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
18517 plus_constant.
18518
18519 * alias.c (canon_rtx): Likewise.
18520 (init_alias_analysis): Likewise.
18521 * builtins.c (expand_builtin_return_addr)
18522 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
18523 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
18524 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
18525 (expand_builtin_stpcpy): Likewise.
18526 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
18527 (compute_argument_addresses, internal_arg_pointer_based_exp)
18528 (expand_call, emit_library_call_value_1): Likewise.
18529 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
18530 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
18531 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
18532 * cse.c (insert_const_anchor, find_reg_offset_for_const)
18533 (use_related_value, fold_rtx): Likewise.
18534 * cselib.c (cselib_subst_to_values): Likewise.
18535 * dse.c (record_store, check_mem_read_rtx): Likewise.
18536 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
18537 * emit-rtl.c (adjust_address_1): Likewise.
18538 * except.c (sjlj_emit_function_enter)
18539 (expand_builtin_extract_return_addr)
18540 (expand_builtin_frob_return_addr): Likewise.
18541 * expmed.c (expand_divmod): Likewise.
18542 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
18543 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
18544 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
18545 * function.c (assign_stack_local_1)
18546 (instantiate_virtual_regs_in_rtx): Likewise.
18547 * optabs.c (prepare_cmp_insn): Likewise.
18548 * recog.c (offsettable_address_addr_space_p): Likewise.
18549 * reload.c (find_reloads_address, form_sum)
18550 (find_reloads_subreg_address): Likewise.
18551 * reload1.c (init_reload, eliminate_regs_1)
18552 (eliminate_regs_in_insn): Likewise.
18553 * simplify-rtx.c (simplify_unary_operation_1)
18554 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
18555 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
18556 (vt_add_function_parameter): Likewise.
18557
18558 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
18559 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
18560 * config/alpha/alpha.c (alpha_legitimize_address_1)
18561 (get_unaligned_address, alpha_expand_unaligned_load)
18562 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
18563 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
18564 (alpha_expand_builtin_establish_vms_condition_handler)
18565 (alpha_setup_incoming_varargs, emit_frame_store_1)
18566 (alpha_expand_prologue, alpha_expand_epilogue)
18567 (alpha_use_linkage): Likewise.
18568 * config/alpha/alpha.md: Likewise.
18569
18570 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
18571 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
18572 (thumb_legitimize_address, arm_gen_load_multiple_1)
18573 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
18574 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
18575 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
18576 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
18577 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
18578 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
18579 (thumb_expand_movmemqi, arm_set_return_address)
18580 (thumb_set_return_address): Likewise.
18581 * config/arm/arm.md: Likewise.
18582
18583 * config/avr/avr.c (avr_incoming_return_addr_rtx)
18584 (avr_prologue_setup_frame, expand_epilogue)
18585 (avr_const_address_lo16): Likewise.
18586
18587 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
18588 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
18589 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
18590 (bfin_output_mi_thunk): Likewise.
18591
18592 * config/c6x/c6x.c (c6x_initialize_trampoline)
18593 (c6x_output_mi_thunk): Likewise.
18594
18595 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
18596 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
18597
18598 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
18599 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
18600 (cris_emit_movem_store, cris_trampoline_init): Likewise.
18601 * config/cris/cris.md: Likewise.
18602
18603 * config/darwin.c (machopic_indirect_data_reference)
18604 (machopic_legitimize_pic_address): Likewise.
18605
18606 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
18607 (epiphany_expand_prologue, epiphany_expand_epilogue)
18608 (epiphany_trampoline_init): Likewise.
18609 * config/epiphany/epiphany.md: Likewise.
18610
18611 * config/fr30/fr30.c (fr30_move_double): Likewise.
18612
18613 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
18614 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
18615 (frv_index_memory, unspec_got_name, frv_find_base_term)
18616 (frv_output_dwarf_dtprel): Likewise.
18617
18618 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
18619 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
18620
18621 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
18622 * config/i386/i386.c (setup_incoming_varargs_64)
18623 (setup_incoming_varargs_ms_64, choose_baseaddr)
18624 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
18625 (ix86_emit_probe_stack_range, ix86_expand_prologue)
18626 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
18627 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
18628 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
18629 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
18630 (x86_output_mi_thunk): Likewise.
18631 * config/i386/i386.md: Likewise.
18632
18633 * config/ia64/ia64.c (ia64_expand_load_address)
18634 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
18635 (do_spill, ia64_trampoline_init): Likewise.
18636
18637 * config/iq2000/iq2000.c (iq2000_va_start)
18638 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
18639 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
18640 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
18641
18642 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
18643
18644 * config/m32c/m32c.c (m32c_return_addr_rtx)
18645 (m32c_expand_insv): Likewise.
18646
18647 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
18648 (m32r_legitimize_pic_address, m32r_print_operand)
18649 (m32r_print_operand_address): Likewise.
18650
18651 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
18652 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
18653 (EH_RETURN_HANDLER_RTX): Likewise.
18654 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
18655 (m68k_expand_epilogue, legitimize_pic_address)
18656 (m68k_output_mi_thunk): Likewise.
18657 * config/m68k/m68k.md: Likewise.
18658
18659 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
18660 (mcore_expand_epilog): Likewise.
18661 * config/mcore/mcore.md: Likewise.
18662
18663 * config/mep/mep.c (mep_allocate_initial_value)
18664 (mep_expand_prologue, mep_expand_epilogue): Likewise.
18665
18666 * config/microblaze/microblaze.c (double_memory_operand)
18667 (microblaze_block_move_loop): Likewise.
18668
18669 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
18670 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
18671 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
18672 (mips_expand_prologue, mips_epilogue_set_cfa)
18673 (mips_expand_epilogue): Likewise.
18674 * config/mips/mips.md: Likewise.
18675
18676 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
18677 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
18678
18679 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
18680 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
18681
18682 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
18683 (EH_RETURN_HANDLER_RTX): Likewise.
18684 * config/moxie/moxie.c (moxie_static_chain): Likewise.
18685
18686 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
18687 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
18688 (pa_return_addr_rtx, hppa_builtin_saveregs)
18689 (pa_trampoline_init): Likewise.
18690 * config/pa/pa.md: Likewise.
18691
18692 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
18693
18694 * config/picochip/picochip.c (picochip_static_chain): Likewise.
18695
18696 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
18697 * config/rs6000/rs6000.c (rs6000_legitimize_address)
18698 (setup_incoming_varargs, print_operand, rs6000_return_addr)
18699 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
18700 (rs6000_emit_epilogue)
18701 (rs6000_machopic_legitimize_pic_address): Likewise.
18702
18703 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
18704
18705 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
18706 (DYNAMIC_CHAIN_ADDRESS): Likewise.
18707 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
18708 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
18709 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
18710 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
18711 (s390_emit_epilogue, s390_function_profiler): Likewise.
18712 * config/s390/s390.md: Likewise.
18713
18714 * config/score/score.c (score_add_offset, score_prologue): Likewise.
18715
18716 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
18717 (sh_output_mi_thunk): Likewise.
18718 * config/sh/sh.md: Likewise.
18719
18720 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
18721 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
18722 * config/sparc/sparc.c (sparc_legitimize_pic_address)
18723 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
18724 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
18725 (emit_and_preserve): Likewise.
18726 * config/sparc/sparc.md: Likewise.
18727
18728 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
18729 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
18730 (spu_setup_incoming_varargs, ea_load_store_inline)
18731 (spu_expand_load): Likewise.
18732
18733 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
18734 (combine_bnp): Likewise.
18735
18736 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
18737 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
18738 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
18739
18740 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
18741 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
18742 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
18743
18744 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
18745 * config/v850/v850.md: Likewise.
18746
18747 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
18748 (EH_RETURN_HANDLER_RTX): Likewise.
18749 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
18750 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
18751 (print_operand_address, vax_trampoline_init): Likewise.
18752
18753 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
18754 (xtensa_function_value_regno_p): Likewise.
18755
683c600b
AP
187562012-05-04 Andrew Pinski <apinski@cavium.com>
18757
18758 * expr.c (get_def_for_expr_class): New function.
18759 (convert_tree_comp_to_rtx): New function.
18760 (expand_cond_expr_using_cmove): New function.
18761 (expand_expr_real_2 <case COND_EXPR>): Call
18762 expand_cond_expr_using_cmove first and return if it succeeds.
18763 Remove the check for HAVE_conditional_move since we should have
18764 already converted it to a conditional move.
18765 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
18766 modes of DImode for 32bits and TImode.
18767
41723253
SB
187682012-05-04 Steven Bosscher <steven@gcc.gnu.org>
18769
18770 PR other/29442
18771 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
18772 (print_md_ptr_loc, print_c_condition): Use them.
18773 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
18774 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
18775 attr_file, dfa_file, latency_file): New global variables.
18776 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
18777 write_upcase, write_indent, write_length_unit_log, write_test_expr,
18778 write_attr_get, write_insn_cases, write_eligible_delay,
18779 write_const_num_delay_slots): Accept FILE pointer and toss it around.
18780 Update all callers.
18781 (write_header, open_outfile, handle_arg): New funcions.
18782 (make_automaton_attrs): Write prototypes as extern to the output
18783 files.
18784 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
18785 names from the command line. Open the output files and write out
18786 internal functions for DFA functions to dfa_file_name, insn latency
18787 functions to latency_file_name, and everything else to attr_file.
18788 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
18789 (BACKEND): Build libbackend first.
18790 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
18791 (.PRECIOUS): Likewise.
18792 (insn-dfatab.o): New rule.
18793 (insn-latencytab.o): New rule.
18794 (simple_rtl_generated_c): Do not include insn-attrtab.c.
18795 (s-attrtab): New rule.
18796
593dbe11
SB
187972012-05-04 Steven Bosscher <steven@gcc.gnu.org>
18798
18799 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
18800 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
18801 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
18802 * reorg.c (get_jump_flags): Do not set the removed flags.
18803
81e7aa8e
SB
18804 * doc/md.texi (attr_flag): Update for abovementioned changes.
18805
cef31f9c
UB
188062012-05-04 Uros Bizjak <ubizjak@gmail.com>
18807
18808 PR target/53228
18809 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
18810 (TARGET_CMOV): Rename from TARGET_CMOVE.
18811 (TARGET_CMOVE): New define.
18812 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
18813 Do not set TARGET_CMOVE here.
18814
33d11b97
DS
188152012-05-04 Dodji Seketeli <dodji@redhat.com>
18816
18817 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
18818 * opts.c (finish_options): Activate -Wunused-local-typedefs if
20f9034b 18819 -Wunused is activated.
33d11b97
DS
18820 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
18821
1eae36f0
AK
188222012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18823
18824 * config/s390/s390.md (*movmem_short, *clrmem_short)
18825 (*cmpmem_short): Move the mode check from the insn condition to
18826 the match_scratch.
18827
33018845
UW
188282012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
18829
18830 PR tree-optimization/52633
18831 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
18832 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
18833 (vect_recog_over_widening_pattern): Remove handling of code that was
18834 already detected as over-widening pattern. Remove special handling
18835 of "unsigned" cases. Instead, support general case of conversion
18836 of the shift result to another type.
18837
9a7a4398
UW
188382012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
18839
18840 * tree-vect-patterns.c (vect_single_imm_use): New function.
18841 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
18842 (vect_recog_over_widening_pattern): Likewise.
18843 (vect_recog_widen_shift_pattern): Likewise.
18844
f71cf56a
UW
188452012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
18846
18847 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
18848 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
18849 (vect_recog_widen_mult_pattern): Likewise.
18850 (vect_operation_fits_smaller_type): Likewise.
18851 (vect_recog_over_widening_pattern): Likewise.
18852 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
18853
8bb50e5c
RG
188542012-05-04 Richard Guenther <rguenther@suse.de>
18855
18856 PR lto/50602
18857 * lto-wrapper.c (merge_and_complain): Complain about mismatches
18858 of -freg-struct-return and -fpcc-struct-return.
18859 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
18860 from the input file options and ignore those from the link
18861 command line.
18862
efe7068b
RG
188632012-05-04 Richard Guenther <rguenther@suse.de>
18864
18865 PR tree-optimization/53168
18866 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
18867 memory reads when the result is a constant we can pun.
18868
1d67dde8
RB
188692012-05-04 Richard Guenther <rguenther@suse.de>
18870
18871 * common.opt (flto-report): Do not mark as Optimization.
18872
a2f2d218
EB
188732012-05-04 Eric Botcazou <ebotcazou@adacore.com>
18874
18875 PR target/48496
18876 * recog.c (constrain_operands): If extra constraints are present, also
18877 accept pseudo-registers with equivalent memory locations during reload.
18878
9178a345
OH
188792012-05-04 Olivier Hainque <hainque@adacore.com>
18880
18881 * collect2.c (may_unlink_output_file): New global.
18882 (maybe_unlink): Honor it.
18883 * collect2.h: Add extern for it.
18884 * tlink.c (do_tlink): Set it to true if the link succeeded.
18885
b50ff8bb
OH
188862012-05-04 Olivier Hainque <hainque@adacore.com>
18887
18888 * gcc.c (eval_spec_function): Finalize/restore the current string
18889 obstack state as part of the context push/pop operations.
18890
73292fcf
BC
188912012-05-04 Bin Cheng <bin.cheng@arm.com>
18892
18893 PR rtl-optimization/52804
18894 * reload1.c (reload_reg_reaches_end_p): Check whether successor
18895 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
18896 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
18897 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
18898 RELOAD_FOR_OUTADDR_ADDRESS.
18899
24454141
MLI
189002012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
18901
18902 PR c++/24985
18903 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
18904 for macro expansion.
18905
0c3641b0
MLI
189062012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
18907
18908 * flags.h (flag_permissive): Do not declare.
18909 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
18910 option specially.
18911 * toplev.c (flag_permissive): Do not define.
18912 * c-tree.h (system_header_p): Delete unused.
18913
d333c3eb
DM
189142012-05-03 David S. Miller <davem@davemloft.net>
18915
18916 PR target/52684
18917 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
18918 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
18919 (sparc_emit_float_lib_cmp): Likewise.
18920
65d512d1
MM
189212012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
18922
18923 PR target/53199
18924 * config/rs6000/rs6000.md (bswapdi splitters): If
18925 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
18926 default) is used, generate an alternate sequence that does not
18927 depend on using indexed addressing.
18928
88f4f86f
JM
189292012-05-03 Jason Merrill <jason@redhat.com>
18930
18931 * gengtype.c (write_types): Fix warning message.
18932 (write_local): Likewise.
18933
05688bf7
JM
189342012-05-02 Jason Merrill <jason@redhat.com>
18935
18936 * dwarf2out.c (struct external_ref, build_local_stub): New.
18937 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
18938 (optimize_external_refs, optimize_external_refs_1): New.
18939 (change_AT_die_ref): New.
18940 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
18941 (build_abbrev_table): Take the external refs hashtable.
18942 (output_comp_unit): Get it from optimize_external_refs and pass it in.
18943
f95f017c
JH
189442012-05-03 Jan Hubicka <jh@suse.cz>
18945
18946 PR middle-end/53093
18947 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
18948
c2b6c111
JH
189492012-05-03 Jan Hubicka <jh@suse.cz>
18950
18951 PR middle-end/53106
18952 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
18953
d8acd563
JM
189542012-05-03 Jason Merrill <jason@redhat.com>
18955
18956 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
18957 use_debug_types to discriminate the die_id union.
18958 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
18959 (build_abbrev_table, output_die): Likewise.
18960 (prune_unused_types_walk_attribs): Likewise.
18961 (generate_type_signature, copy_declaration_context): Set it.
18962 (remove_child_or_replace_with_skeleton): Set it.
18963 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
18964 check use_debug_types.
18965 (dwarf2out_finish): Do break_out_includes after .debug_types.
18966
0fd0752e
JM
189672012-05-03 Jason Merrill <jason@redhat.com>
18968
18969 * dwarf2out.c (modified_type_die): Use scope_die_for.
18970 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
18971 (uses_local_type_r, uses_local_type): New.
18972 (scope_die_for): Keep a type that uses a local type in local scope.
18973 Use get_context_die for namespace and type scope.
18974
63aaf27c
JM
189752012-05-03 Jason Merrill <jason@redhat.com>
18976
18977 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
18978 pc thunk.
18979 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
18980 (dwarf2out_finish): Likewise.
18981
644ffefd
MJ
189822012-05-03 Martin Jambor <mjambor@suse.cz>
18983
18984 * builtins.c (get_object_alignment_1): Return whether we can determine
18985 the alignment or conservatively assume byte alignment. Return the
18986 alignment by reference. Use get_pointer_alignment_1 for dereference
18987 alignment.
18988 (get_pointer_alignment_1): Return whether we can determine the
18989 alignment or conservatively assume byte alignment. Return the
18990 alignment by reference. Use get_ptr_info_alignment to get SSA name
18991 alignment.
18992 (get_object_alignment): Update call to get_object_alignment_1.
18993 (get_object_or_type_alignment): Likewise, fall back to type alignment
18994 only when it returned false.
18995 (get_pointer_alignment): Update call to get_pointer_alignment_1.
18996 * fold-const.c (get_pointer_modulus_and_residue): Update call to
18997 get_object_alignment_1.
18998 * ipa-prop.c (ipa_modify_call_arguments): Update call to
18999 get_pointer_alignment_1.
19000 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
19001 of MEM_REF or TARGET_MEM_REF only when it returns false.
19002 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
19003 get_object_alignment_1.
19004 (ccp_finalize): Use set_ptr_info_alignment.
19005 * tree.h (get_object_alignment_1): Update declaration.
19006 (get_pointer_alignment_1): Likewise.
19007 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
19008 (dump_gimple_stmt): Likewise.
19009 * tree-flow.h (ptr_info_def): Updated comments of fields align and
19010 misalign.
19011 (get_ptr_info_alignment): Declared.
19012 (mark_ptr_info_alignment_unknown): Likewise.
19013 (set_ptr_info_alignment): Likewise.
19014 (adjust_ptr_info_misalignment): Likewise.
19015 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
19016 and set alignment of SSA names.
19017 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
19018 mark_ptr_info_alignment_unknown.
19019 * tree-ssanames.c (get_ptr_info_alignment): New function.
19020 (mark_ptr_info_alignment_unknown): Likewise.
19021 (set_ptr_info_alignment): Likewise.
19022 (adjust_ptr_info_misalignment): Likewise.
19023 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
19024 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19025 Likewise.
19026 (bump_vector_ptr): Likewise.
19027 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
19028 (vectorizable_store): Likewise.
19029 (vectorizable_load): Likewise.
19030
3e8b732e
MM
190312012-05-03 Michael Matz <matz@suse.de>
19032
19033 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
19034 in front of basic_block_def.
19035 (struct basic_block_def): Make il.gimple the full struct, not a
19036 pointer.
19037 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
19038
cef31f9c 19039 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
3e8b732e
MM
19040 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
19041 NULL il.gimple, which can't happen anymore.
19042 * gimple.h (bb_seq): il.gimple can't be NULL.
19043 (bb_seq_add): Ditto.
19044 (set_bb_seq): Adjust.
19045 (gsi_start_bb, gsi_last_bb): Tidy.
19046 * lto-streamer-in.c (make_new_block): Don't zero members that
19047 are zeroed already, don't allocate a gimple_bb_info.
19048 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
19049 (remove_bb): Clear all il.gimple members.
19050 (gimple_verify_flow_info): Adjust for flat il.gimple.
19051 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
19052
19053 * coretypes.h (const_gimple_seq): Remove typedef.
19054 * gimple.h (gimple_seq_first): Take gimple_seq.
19055 (gimple_seq_first_stmt): Ditto.
19056 (gimple_seq_last): Ditto.
19057 (gimple_seq_last_stmt): Ditto.
19058 (gimple_seq_empty_p): Ditto.
19059
bea966c2
RG
190602012-05-03 Richard Guenther <rguenther@suse.de>
19061
19062 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
19063 operations.
cef31f9c 19064 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
bea966c2
RG
19065 (compute_avail): Do not add possibly trapping operations to
19066 EXP_GEN if they might not be executed in the block.
19067
1cbdef51
UB
190682012-05-03 Uros Bizjak <ubizjak@gmail.com>
19069
19070 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
19071
6ab1ab14
SB
190722012-05-03 Steven Bosscher <steven@gcc.gnu.org>
19073
19074 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
19075 information as early as possible. Update dominance info instead of
19076 discarding it.
19077
19372838
RG
190782012-05-03 Richard Guenther <rguenther@suse.de>
19079
19080 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
19081 (union_contains_value): Remove.
19082 (vro_valid_in_sets): Likewise.
19083 (op_valid_in_sets): New function.
19084 (valid_in_sets): Use op_valid_in_sets.
19085 (insert_into_preds_of_block): Move dumping ...
19086 (do_regular_insertion): ... here.
19087 (do_partial_partial_insertion): ... and here. Dump that
19088 we've found a partial partial redundancy.
19089 (insert): Dump the current insert iteration.
19090
d5becc11
JJ
190912012-05-03 Jakub Jelinek <jakub@redhat.com>
19092
68d23306
JJ
19093 PR plugins/53126
19094 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
19095 append program name to it and pass that as first argument
19096 to make_relative_prefix. Always pass standard_libexec_prefix
19097 as last argument to make_relative_prefix. If
19098 make_relative_prefix returns NULL, fall back to
19099 standard_libexec_prefix.
19100
273ccb6d
JJ
19101 PR debug/53174
19102 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
19103 removed.
19104
d40a89e7
JJ
19105 PR target/53187
19106 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
19107 mode, return that mode.
19108
d5becc11
JJ
19109 PR target/53194
19110 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
19111 define __ATOMIC_HLE_* macros here.
19112 (ix86_target_macros): But here, using cpp_define_formatted.
19113
9179ed9d
RG
191142012-05-03 Richard Guenther <rguenther@suse.de>
19115
19116 PR tree-optimization/53144
19117 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
19118 Rename to ...
19119 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
19120 with SSA name values.
19121 (vn_reference_lookup_3): Adjust callers.
19122
d130f146
GG
191232012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
19124
19125 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
19126 has_fma4 for AMD processors with both fma3 and fma4 support.
19127
38d7f26e
KY
191282012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
19129
19130 PR target/53201
19131 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
19132 "-mno-hle".
19133
0285a18e
MM
191342012-05-03 Michael Matz <matz@suse.de>
19135
19136 PR bootstrap/53197
1cbdef51 19137 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
0285a18e
MM
19138 (dse_enter_block): Properly iterate the whole sequence even
19139 if the last statement was removed.
19140
daccad6d
SB
191412012-05-02 Steven Bosscher <steven@gcc.gnu.org>
19142
19143 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
19144 unset flag_jump_tables.
19145 * stmt.c (expand_case): Remove special flag_pic case conditional
19146 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
19147
aefa216b
UW
191482012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
19149
19150 * common/config/s390/s390-common.c (s390_option_optimization_table):
19151 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
19152 default when optimizing.
19153
d282264e
MJ
191542012-05-02 Martin Jambor <mjambor@suse.cz>
19155
19156 PR lto/52605
19157 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
19158 of a variable when the contect is a function.
19159
355a7673
MM
191602012-05-02 Michael Matz <matz@suse.de>
19161
19162 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
19163 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
19164 (const_gimple_seq_node): Remove.
19165 (gimple_seq_node): Typedef as gimple.
19166 (struct gimple_statement_base): Add next and prev members,
19167 adjust all WORD markers in using structs.
19168 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
19169 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
19170 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
19171 gimple are the same.
19172 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
19173 gimple_seq, adjust.
19174 (gimple_init_singleton): New function.
19175 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
19176 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
19177 (gsi_stmt): Adjust.
19178 (gsi_stmt_ptr): Remove.
19179 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
19180
19181 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
19182 again, adjust for above changes.
19183 (update_call_edge_frequencies): Adjust for above changes.
19184 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
19185 (gsi_insert_seq_nodes_after): Ditto.
19186 (gsi_split_seq_after): Ditto.
19187 (gsi_set_stmt): Ditto.
19188 (gsi_split_seq_before): Ditto.
19189 (gsi_remove): Ditto.
19190 (gsi_insert_seq_before_without_update): Don't free sequence.
19191 (gsi_insert_seq_after_without_update): Ditto.
19192 (gsi_replace): Assert some more invariants.
19193 (gsi_insert_before_without_update, gsi_insert_after_without_update):
19194 Tidy.
19195 (gsi_for_stmt): Don't search for stmt.
19196 (gsi_insert_on_edge_immediate): Tidy.
19197
19198 * gimple.c (gimple_alloc_k): Remove "sequences".
19199 (gimple_seq_cache): Remove.
19200 (gimple_alloc_stat): Make stmt a singleton sequence.
19201 (gimple_seq_alloc, gimple_seq_free): Remove.
19202 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
19203 (gimple_copy): Ditto.
19204 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
19205 create iterator from correct sequence.
19206 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
19207
192082012-05-02 Michael Matz <matz@suse.de>
19209
19210 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
19211 gimple_seq.
19212 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
19213 sequence, lazily allocate it.
19214 (bb_seq_addr): New function.
19215 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
19216 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
19217 (gsi_none): New function.
19218 (gsi_start_bb): Adjust.
19219 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
19220 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
19221 (gsi_last_bb): Adjust.
19222 (gsi_seq): Adjust.
19223 * tree-flow-inline.h (phi_nodes_ptr): New function.
19224
1cbdef51 19225 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
355a7673
MM
19226 datastructure and interface change.
19227 (gsi_insert_seq_before_without_update): Ditto.
19228 (gsi_insert_seq_nodes_after): Ditto.
19229 (gsi_insert_seq_after_without_update): Ditto.
19230 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
19231 (gsi_split_seq_before): Ditto.
19232 (gsi_start_phis): Adjust.
1cbdef51 19233 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
355a7673
MM
19234 (vect_transform_loop): Ditto.
19235 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
19236 gimple_seq_copy): Don't use gimple_seq_alloc.
19237 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
19238 (gimplify_seq_add_seq): Ditto.
19239 * lto-streamer-in.c (make_new_block): Ditto.
19240 * tree-cfg.c (create_bb): Ditto.
19241 * tree-sra.c (initialize_parameter_reductions): Ditto.
19242
192432012-05-02 Michael Matz <matz@suse.de>
19244
19245 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
19246 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
19247 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
19248 set_bb_seq): Move down to after gimple_statement_d definition.
19249
192502012-05-02 Michael Matz <matz@suse.de>
19251
19252 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
19253 gsi_replace_with_seq, instead of inserting itself.
19254 * gimple-iterator.c (gsi_replace_with_seq): New function.
19255 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
19256 iterator instead of statement, advance it.
19257 (ssa_forward_propagate_and_combine): Adjust call to above.
19258
192592012-05-02 Michael Matz <matz@suse.de>
19260
19261 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
19262 gimple_seq_alloc.
19263 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
19264 * tree-nested.c (walk_gimple_omp_for): Ditto.
19265 * trans-mem.c (lower_transaction): Ditto.
19266 * tree-eh.c (do_return_redirection): Ditto.
19267 (do_goto_redirection): Ditto.
19268 (lower_try_finally_switch): Ditto.
19269 * gimplify.c (gimplify_stmt): Ditto.
19270 (gimplify_scan_omp_clauses): Ditto.
19271 (gimplify_omp_for): Ditto.
19272 (gimplify_function_tree): Ditto.
19273 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
19274 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
19275 (mf_build_check_statement_for): Ditto.
19276 (mx_register_decls): Ditto.
19277 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
19278 and don't use itertors to append.
19279 (insert_stmts): Ditto.
19280 (insert_out_of_ssa_copy): Ditto.
19281 (insert_out_of_ssa_copy_on_edge): Ditto.
19282
192832012-05-02 Michael Matz <matz@suse.de>
19284
19285 * gimple.h (gimple_bind_body_ptr): New function.
19286 (gimple_bind_body): Use it.
19287 (gimple_catch_handler): Use gimple_catch_handler_ptr.
19288 (gimple_eh_filter_failure_ptr): New function.
19289 (gimple_eh_filter_failure): Use it.
19290 (gimple_eh_else_n_body_ptr): New function.
19291 (gimple_eh_else_n_body): Use it.
19292 (gimple_eh_else_e_body_ptr): New function.
19293 (gimple_eh_else_e_body): Use it.
19294 (gimple_try_eval_ptr): New function.
19295 (gimple_try_eval): Use it.
19296 (gimple_try_cleanup_ptr): New function.
19297 (gimple_try_cleanup): Use it.
19298 (gimple_wce_cleanup_ptr): New function.
19299 (gimple_wce_cleanup): Use it.
19300 (gimple_omp_body_ptr): New function.
19301 (gimple_omp_body): Use it.
19302 (gimple_omp_for_pre_body_ptr): New function.
19303 (gimple_omp_for_pre_body): Use it.
19304 (gimple_transaction_body_ptr): New function.
19305 (gimple_transaction_body): Use it.
19306 (gsi_split_seq_before): Adjust to return nothing and take pointer
19307 to sequence.
19308 (gsi_set_stmt): Declare.
19309 (gsi_replace_with_seq): Declare.
19310 (walk_gimple_seq_mod): Declare.
19311 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
19312
19313 * gimple-iterator.c (gsi_set_stmt): New function.
19314 (gsi_split_seq_before): Return new sequence via pointer argument.
19315 (gsi_replace): Use gsi_set_stmt.
19316
19317 * tree-ssa-loop-im.c (move_computations_stmt): First remove
19318 then insert stmt.
1cbdef51 19319 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
355a7673
MM
19320 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
19321 return new stmt.
19322 (reserve_phi_args_for_new_edge): Change call to above,
19323 use gsi_set_stmt.
19324
1cbdef51 19325 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
355a7673
MM
19326 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
19327 iterators. Adjust call to lower_omp.
19328 (lower_lastprivate_clauses): Adjust call to lower_omp.
19329 (lower_reduction_clauses): Ditto.
19330 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
19331 (lower_omp_sections): Don't explicitely count sequence length,
19332 nullify lowered bodies earlier, ensure stmts are part of only
19333 one sequence, adjust call to lower_omp.
19334 (lower_omp_single): Ensure stmts are part of only one sequence,
19335 adjust call to lower_omp.
19336 (lower_omp_master): Ditto.
19337 (lower_omp_ordered): Ditto.
19338 (lower_omp_critical): Ditto.
19339 (lower_omp_for): Ditto.
19340 (lower_omp_taskreg): Ditto, tidy.
19341 (lower_omp_1): Adjust calls to lower_omp.
19342 (execute_lower_omp): Ditto.
19343 (lower_omp): Adjust to take pointer to sequence.
19344 (diagnose_sb_2): Use walk_gimple_seq_mod.
19345 (diagnose_omp_structured_block_errors): Ditto and set possibly
19346 changed function body.
19347 * gimple-low.c (lower_function_body): Set function body after
19348 it stabilizes.
19349 (lower_sequence): Adjust to take pointer to sequence.
19350 (lower_omp_directive): Ensure stmt isn't put twice into the
19351 sequence, adjust call to lower_sequence.
19352 (lower_stmt): Adjust calls to lower_sequence.
19353 (lower_gimple_bind): Ditto.
19354 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
19355 * tree-nested.c (walk_body): Take pointer to sequence, use
19356 walk_gimple_seq_mod.
1cbdef51 19357 (walk_function): Adjust call to walk_body, set possibly changed body.
355a7673
MM
19358 (walk_gimple_omp_for): Adjust calls to walk_body.
19359 (convert_nonlocal_omp_clauses): Ditto.
19360 (convert_nonlocal_reference_stmt): Ditto.
19361 (convert_local_omp_clauses): Ditto.
19362 (convert_local_reference_stmt): Ditto.
19363 (convert_tramp_reference_stmt): Ditto.
19364 (convert_gimple_call): Ditto.
19365 (convert_nl_goto_reference): Use local iterator copy.
19366 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
19367 but taking pointer to sequence, ensure gsi_start is called with
19368 callers lvalue.
19369 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
19370 asserting that the sequence head didn't change.
19371 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
19372 walk_gimple_seq_mod.
19373 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
19374 (execute_lower_tm): Ditto, and set possibly changed body.
19375 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
19376 call gsi_start with that lvalue.
19377 (replace_goto_queue_stmt_list): Ditto.
19378 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
19379 (replace_goto_queue): Ditto.
19380 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
19381 (lower_try_finally_onedest): Ditto.
19382 (lower_try_finally_copy): Ditto.
19383 (lower_try_finally_switch): Ditto.
19384 (lower_try_finally): Ditto.
19385 (lower_eh_filter): Ditto.
19386 (lower_eh_must_not_throw): Ditto.
19387 (lower_cleanup): Ditto.
19388 (lower_eh_constructs_2): Ditto.
19389 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
19390 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
19391 set possibly changed body.
19392 (optimize_double_finally): Call gsi_start with lvalue.
19393
19394 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
19395 (gimple_split_block): Ditto.
19396 (gimple_merge_blocks): Use gsi_start_phis.
19397 (move_stmt_r): Use walk_gimple_seq_mod.
19398 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
19399 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
19400 (rebuild_cgraph_edges): Ditto.
19401 (cgraph_rebuild_references): Ditto.
19402 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
19403 * tree-inline.c (copy_phis_for_bb): Ditto.
19404 * tree-ssa-dce.c: Ditto.
19405
19406 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
19407
5dcfdccd 194082012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
ed56b7f9 19409 Andi Kleen <ak@linux.intel.com>
5dcfdccd 19410
355a7673 19411 * coretypes.h (MEMMODEL_MASK): New.
5dcfdccd
KY
19412 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
19413 and return new variable.
19414 (expand_builtin_atomic_exchange): Mask memmodel values.
19415 (expand_builtin_atomic_compare_exchange): Ditto.
19416 (expand_builtin_atomic_load): Ditto.
19417 (expand_builtin_atomic_store): Ditto.
19418 (expand_builtin_atomic_clear): Ditto.
19419 * doc/extend.texi: Mention port-dependent memory model flags.
19420 * config/i386/cpuid.h (bit_HLE): New.
19421 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
19422 HLE support.
19423 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
cef31f9c 19424 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
5dcfdccd 19425 (ix86_target_string)<-mhle>: New.
1cbdef51
UB
19426 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
19427 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
19428 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
19429 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
5dcfdccd
KY
19430 enabled for generic, generic64 and core-avx2.
19431 (ix86_print_operand): Generate HLE lock prefixes.
19432 (ix86_memmodel_check): New.
19433 (TARGET_MEMMODEL_CHECK): Ditto.
19434 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
19435 (IX86_HLE_ACQUIRE): Ditto.
19436 (IX86_HLE_RELEASE): Ditto.
19437 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
19438 * config/i386/i386.opt (mhle): Ditto.
19439 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
19440 success model to instruction emitter.
19441 (atomic_fetch_add<mode>): Ditto.
19442 (atomic_exchange<mode>): Ditto.
19443 (atomic_add<mode>): Ditto.
19444 (atomic_sub<mode>): Ditto.
19445 (atomic_<code><mode>): Ditto.
19446 (*atomic_compare_and_swap_doubledi_pic): Ditto.
19447 (atomic_compare_and_swap_single<mode>): Define and use argument
19448 for success model.
19449 (atomic_compare_and_swap_double<mode>): Ditto.
19450 * configure.ac: Check if assembler support HLE prefixes.
19451 * configure: Regenerate.
19452 * config.in: Ditto.
19453
68e72840
SB
194542012-05-02 Steven Bosscher <steven@gcc.gnu.org>
19455
19456 PR middle-end/53153
19457 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
19458 split out from ...
19459 (gimplify_switch_expr): ... here.
19460 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
19461 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
19462 to clean up case labels with values outside the index type range.
19463 (simplify_gimple_switch): Call it if something changed.
19464 Remove strange and unnecessary assert.
19465
56099f00
RG
194662012-05-02 Richard Guenther <rguenther@suse.de>
19467
19468 * fold-const.c (div_if_zero_remainder): sizetypes no longer
19469 sign-extend.
19470 (int_const_binop_1): New worker for int_const_binop with
cef31f9c 19471 overflowable parameter. Pass it through to force_fit_type_double.
56099f00
RG
19472 (int_const_binop): Wrap around int_const_binop_1 with overflowable
19473 equal to one.
19474 (size_binop_loc): Call int_const_binop_1 with overflowable equal
19475 to minus one, forcing overflow detection for even unsigned types.
19476 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
19477 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
19478 * stor-layout.c (initialize_sizetypes): sizetypes no longer
19479 sign-extend.
19480 (layout_type): For zero-sized arrays ignore overflow on the
19481 size calculations.
19482 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
19483 (bit_value_binop_1): Likewise.
19484 * tree.c (double_int_to_tree): Likewise.
19485 (double_int_fits_to_tree_p): Likewise.
19486 (force_fit_type_double): Likewise.
19487 (host_integerp): Likewise.
19488 (int_fits_type_p): Likewise.
19489 * varasm.c (output_constructor_regular_field): Sign-extend the
1cbdef51
UB
19490 field-offset to cater for negative offsets produced by the Ada
19491 frontend.
56099f00
RG
19492 * omp-low.c (extract_omp_for_data): Convert the loop step to
19493 signed for pointer adjustments.
19494
194952012-05-02 Richard Guenther <rguenther@suse.de>
19496
19497 * tree.c (valid_constant_size_p): New function.
19498 * tree.h (valid_constant_size_p): Declare.
19499 * cfgexpand.c (expand_one_var): Adjust check for too large
19500 variables by using valid_constant_size_p.
19501 * varasm.c (assemble_variable): Likewise.
19502
19503 * c-decl.c (grokdeclarator): Properly check for sizes that
19504 cover more than half of the address-space.
19505
6aae324c
JJ
195062012-05-02 Jakub Jelinek <jakub@redhat.com>
19507
795e8869
JJ
19508 PR tree-optimization/53163
19509 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
19510 return value from compute_all_dependences.
19511
6aae324c
JJ
19512 PR rtl-optimization/53160
19513 * ree.c (combine_reaching_defs): Handle the case where cand->insn
19514 has been modified by ree pass already.
19515
a845a7f5
ILT
195162012-05-01 Ian Lance Taylor <iant@google.com>
19517
19518 PR c/37303
19519 * c-decl.c (build_compound_literal): Make the decl readonly if it
19520 an array of a readonly type.
19521 * gimplify.c (gimplify_compound_literal_expr): Add fallback
19522 parameter. Change all callers. If the decl is not addressable
19523 and is not an l-value, make it readonly.
19524
fb99ee9b
BS
195252012-05-01 Bernd Schmidt <bernds@codesourcery.com>
19526
19527 * ira.c (allocated_reg_info_size): New static variable.
19528 (expand_reg_info): Manage it. Call
19529 setup_preferred_alternate_classes_for_new_pseudos.
19530 (ira): Don't do it here. Remove local allocated_reg_info_size,
19531 set the global before calling find_moveable_pseudos.
19532 (find_moveable_pseudos): Call expand_reg_info rather than
19533 resize_reg_info.
19534
e8053cf5
RH
195352012-05-01 Richard Henderson <rth@redhat.com>
19536
19537 * common.opt (fsync-libcalls): New.
19538 * doc/invoke.texi: Document it.
19539 * optabs.c (init_sync_libfuncs): Honor it.
19540
af4ba423
KZ
195412012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
19542 Richard Sandiford <r.sandiford@uk.ibm.com>
19543
ecfd6cec 19544 PR rtl-optimization/52543
af4ba423
KZ
19545 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
19546 lower-subreg.h.
19547 * lower-subreg.h: New file.
19548 * target-globals.h (this_target_lower_subreg): Declare.
19549 (target_globals): Add lower_subreg;
19550 (restore_target_globals): Restore this_target_lower_subreg.
19551 * target-globals.c: Include it.
19552 (default_target_globals): Add default_target_lower_subreg.
19553 (save_target_globals): Initialize target_lower_subreg.
19554 * rtl.h (init_lower_subreg): Added declaration.
19555 * toplev.c (backend_init_target): Call initializer for lower-subreg
19556 pass.
19557 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
19558 (default_target_lower_subreg): New variable.
19559 (this_target_lower_subreg): Likewise.
19560 (twice_word_mode, choices): New macros.
19561 (shift_cost, compute_splitting_shift, compute_costs)
19562 (init_lower_subreg): New functions.
19563 (resolve_simple_move): Add speed_p argument. Check choices.
19564 (find_pseudo_copy): Don't check the mode size here.
19565 (resolve_simple_move): Assert the mode size.
19566 (find_decomposable_shift_zext): Add speed_p argument and return
19567 a bool. Check choices.
19568 (resolve_shift_zext): Add comment.
19569 (dump_shift_choices, dump_choices): New functions.
19570 (decompose_multiword_subregs): Dump list of profitable
19571 transformations. Add code to skip non profitable transformations.
19572 Update calls to simple_move and find_decomposable_shift_zext.
19573
90911ab6 195742012-05-01 Ian Bolton <ian.bolton@arm.com>
1cbdef51
UB
19575 Sameera Deshpande <sameera.deshpande@arm.com>
19576 Greta Yorsh <greta.yorsh@arm.com>
90911ab6
IB
19577
19578 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
1cbdef51 19579 (thumb1_unexpanded_epilogue): ...this.
90911ab6 19580 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
1cbdef51 19581 (thumb1_unexpanded_epilogue): ...this.
90911ab6 19582 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
1cbdef51 19583 (thumb1_unexpanded_epilogue): ...this.
90911ab6 19584
6302b84b
RE
195852012-05-01 Richard Earnshaw <rearnsha@arm.com>
19586
19587 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
19588 comparing enumeration values. Update comments.
19589
56ca756c
AM
195902012-05-01 Alan Modra <amodra@gmail.com>
19591
19592 PR target/53038
19593 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
19594 load_cr_save, add_crlr_cfa_restore): New functions.
19595 (rs6000_restore_saved_cr): Rename to..
19596 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
19597 (rs6000_emit_epilogue): Use new functions. Adjust condition
19598 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
19599 regs when using out-of-line restore only when shrink wrapping.
19600
036c0102
UB
196012012-04-30 Uros Bizjak <ubizjak@gmail.com>
19602
19603 PR middle-end/53136
19604 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
19605 calls to cgraph_node_name in xstrdup.
19606 (ipa_make_edge_direct_to_target): Ditto.
19607 * cgraph.c (dump_cgraph_node): Ditto.
19608 * tree-sra.c (convert_callers_for_node): Ditto.
19609 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
19610 * ipa-cp.c (perhaps_add_new_callers): Ditto.
19611 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
19612 (cgraph_materialize_all_clones): Ditto.
19613 * ipa-inline.c (report_inline_failed_reason): Ditto.
19614 (want_early_inline_function_p): Ditto.
19615 (edge_badness): Ditto.
19616 (update_edge_key): Ditto.
19617 (flatten_function): Ditto.
19618 (ipa_inline): Ditto.
1cbdef51 19619 (inline_always_inline_functions): Ditto.
036c0102
UB
19620 (early_inline_small_functions): Ditto.
19621
24b2a15a
UB
196222012-04-30 Uros Bizjak <ubizjak@gmail.com>
19623
19624 PR target/53141
19625 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
19626 constraints 0 and 1.
19627
65d630d4
JH
19628012-04-30 Jan Hubicka <jh@suse.cz>
19629
19630 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
19631 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
19632 (cgraph_add_to_same_comdat_group): Remove.
19633 (cgraph_add_asm_node): Move to cgraphunit.c.
19634 (cgraph_make_decl_local): Move to symtab.c
19635 (cgraph_make_node_local_1): Update.
19636 (cgraph_can_remove_if_no_direct_calls_and): Update.
19637 (used_from_object_file_p): Update.
19638 (resolution_used_from_other_file_p): Move to symtab.c
19639 (cgraph_used_from_object_file_p): move to symtab.c
19640 (verify_cgraph_node): Verify same comdat groups.
19641 * cgraph.h (cgraph_asm_node): Rename to ...
19642 (asm_node): ... this one.
19643 (cgraph_asm_nodes): Rename to ...
19644 (asm_nodes): ... this one.
19645 (symtab_add_to_same_comdat_group): New function.
19646 (symtab_dissolve_same_comdat_group_list): New function.
19647 (symtab_used_from_object_file_p): Declare.
19648 (symtab_make_decl_local): Declare.
19649 (cgraph_add_to_same_comdat_group): Remove.
19650 (cgraph_add_asm_node): Remove.
19651 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
19652 Remove.
19653 (cgraph_finalize_compilation_unit): Rename to ...
19654 (finalize_compilation_unit): ... this one.
19655 (cgraph_optimize): Rename to ....
19656 (compile): ... this one.
19657 (add_asm_node): Declare.
19658 (fixup_same_cpp_alias_visibility): Declare.
19659 (cgraph_make_decl_local): Remove.
19660 (varpool_assemble_pending_decls): Rename to ...
19661 (varpool_output_variables): ... this one.
19662 (varpool_remove_unreferenced_decls): Remove.
19663 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
19664 (preserve_function_body_p): Make static.
24b2a15a 19665 * toplev.c (compile_file): Update comments; update.
65d630d4
JH
19666 * cgraphunit.c: Update comments.
19667 (cgraph_expand_all_functions): Rename to ...
19668 (expand_all_functions): ... this one; update.
19669 (cgraph_mark_functions_to_output): Rename to ...
19670 (mark_functions_to_output): ... this one; cleanup.
19671 (cgraph_output_pending_asms): Remove prototype.
19672 (asm_nodes, asm_last_node): New static vars.
19673 (cgraph_process_new_functions): Update.
19674 (cgraph_reset_node): Cleanup; add comment.
19675 (cgraph_add_new_function): Update.
19676 (cgraph_output_pending_asms): Rename to ...
19677 (output_asm_statements): ... this one.
19678 (add_asm_node): New function.
19679 (fixup_same_cpp_alias_visibility): New function based on code
19680 in cgraph_analyze_function.
19681 (cgraph_analyze_function): Use it.
19682 (cgraph_order_sort): Update.
19683 (cgraph_output_in_order): Update.
19684 (cgraph_function_versioning): Update.
19685 (cgraph_optimize): Rename to ...
19686 (compile): ... this one; initialize streamer hooks here.
19687 (cgraph_finalize_compilation_unit): Rename to ...
19688 (finalize_compilation_unit): ... this one; do not initialize streamer
19689 hook here.
19690 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
19691 * dwarf2out.c: Update ocmment.
19692 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
19693 * method.c (use_thunk): Likewise.
19694 * semantics.c (maybe_add_lambda_conv_op): Likewise.
24b2a15a 19695 * decl2.c (maybe_emit_vtables): Likewise.
65d630d4
JH
19696 (cp_write_global_declarations): Use finalize_compilation_unit.
19697 * parser.c (cp_parser_asm_definition): Use add_asm_node.
19698 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
24b2a15a
UB
19699 * c-decl.c (c_write_global_declarations): Use
19700 finalize_compilation_unit.
65d630d4
JH
19701 * langhooks.c (write_global_declarations): Update.
19702 * ipa.c (cgraph_externally_visible_p): Update.
19703 (dissolve_same_comdat_group_list): Remove.
19704 (function_and_variable_visibility): Update.
19705 * symtab.c: Inlcude lto-streamer.h and rtl.h
19706 (ld_plugin_symbol_resolution_names): New.
19707 (symtab_add_to_same_comdat_group): New.
19708 (symtab_dissolve_same_comdat_group_list): New.
19709 (resolution_used_from_other_file_p): Move here from cgraph.c
19710 (symtab_used_from_object_file_p): New.
19711 (symtab_make_decl_local): New.
19712 * passes.c (register_pass): Update comments.
19713 * c-parser.c (c_parser_asm_definition): Update.
24b2a15a
UB
19714 * varpool.c (varpool_analyze_node): Use
19715 fixup_same_cpp_alias_visibility.
65d630d4
JH
19716 (varpool_remove_unreferenced_decls): Make static.
19717 (varpool_assemble_pending_decls): Rename to ...
19718 (varpool_output_variables): ... this one; call
19719 varpool_remove_unreferenced_decls.
19720 (varpool_used_from_object_file_p): Remove.
19721
7edaa4d2
MG
197222012-04-30 Marc Glisse <marc.glisse@inria.fr>
19723
19724 PR c++/51033
19725 * c-typeck.c (build_array_ref): Call
19726 convert_vector_to_pointer_for_subscript.
19727 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
19728
f45d8c45
UB
197292012-04-30 Uros Bizjak <ubizjak@gmail.com>
19730
19731 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
19732 to compile-time "mode == <MODE>mode" checks.
19733 (and splitter): Ditto.
19734
a7b8107f
RH
197352012-04-30 Richard Henderson <rth@redhat.com>
19736
19737 * config/arm/arm.md (UNSPEC_LL): New.
19738 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
19739 (arm_load_exclusivedi): Use %H0.
19740
85dd5559
JM
197412012-04-30 Jason Merrill <jason@redhat.com>
19742
19743 * dwarf2out.c (comdat_symbol_id): Add const.
19744 (union die_symbol_or_type_node): Add const to die_symbol.
19745 (output_die_symbol, output_die, output_comp_unit): Adjust.
19746
b8fb55d1
AS
197472012-04-30 Andrew Stubbs <ams@codesourcery.com>
19748
19749 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
19750 * config/arm/neon.md (negdi2_neon): New insn.
19751 Also add splitters for core and NEON registers.
19752
00a3a76a
AS
197532012-04-30 Andrew Stubbs <ams@codesourcery.com>
19754
19755 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
19756 (arm_print_operand): Add 'x' format.
19757 * config/arm/constraints.md (Dn): Allow const_int.
19758 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
19759 Use 'x' format to print constants.
19760 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
19761 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
19762 is enabled.
19763 (movdi_vfp_cortexa8): Likewise.
19764
0d5a9e78 197652012-04-30 Ian Bolton <ian.bolton@arm.com>
84ba0835
RE
19766 Sameera Deshpande <sameera.deshpande@arm.com>
19767 Greta Yorsh <greta.yorsh@arm.com>
5991e156
IB
19768
19769 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
19770 * config/arm/arm.c (ldm_stm_operation_p): New function.
19771 * config/arm/predicates.md (load_multiple_operation): Update predicate.
19772 (store_multiple_operation): Likewise.
19773
fb40241d
IB
19774 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
19775 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
19776 * config/arm/predicates.md (load_multiple_operation): Add arguments.
f45d8c45 19777 (store_multiple_operation): Likewise.
fb40241d 19778
d55d2c84
UB
197792012-04-30 Uros Bizjak <ubizjak@gmail.com>
19780
19781 * config/i386/i386.md (and<mode>3): Expand masking operations with
19782 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
19783 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
19784
b9c8da34
DS
197852012-04-30 Dodji Seketeli <dodji@redhat.com>
19786
19787 Add -Wvarargs option
19788 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
d55d2c84 19789 argument for the various warning_at calls.
b9c8da34
DS
19790 * docs/invoke.texi: Update the documentation.
19791
163fa1eb
DS
197922012-04-30 Dodji Seketeli <dodji@redhat.com>
19793
51fce2d3
DS
19794 Switch -ftrack-macro-expansion=2 on by default.
19795 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
19796 by default.
19797
34c88790
DS
19798 Fix va_start related location
19799 * builtins.c (fold_builtin_next_arg): Unwinds to the first
19800 location in real source code.
19801
70dc395a
DS
19802 Make conversion warnings work on NULL with -ftrack-macro-expansion
19803 * input.h (expansion_point_location_if_in_system_header): Declare
19804 new function.
d55d2c84 19805 * input.c (expansion_point_location_if_in_system_header): Define it.
70dc395a 19806
2d48bdca 19807 Fix -Wuninitialized for -ftrack-macro-expansion
d55d2c84
UB
19808 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
19809 declaration. Use linemap_location_before_p for source locations.
2d48bdca 19810
c4ca1a09
DS
19811 Strip "<built-in>" loc from displayed expansion context
19812 * input.c (expand_location_1): When expanding to spelling location
19813 in a context of a macro expansion, skip reserved system header
19814 locations. Update comments. * tree-diagnostic.c
19815 (maybe_unwind_expanded_macro_loc): Likewise.
19816
7eb918cc
DS
19817 Make expand_location resolve to locus in main source file
19818 * input.c (expand_location_1): New. Takes a parameter to choose
19819 whether to resolve the location to spelling or expansion point.
19820 Was factorized from ...
19821 (expand_location): ... here.
19822 (expand_location_to_spelling_point): New. Implemented in terms of
19823 expand_location_1.
19824 * diagnostic.c (diagnostic_build_prefix): Use the new
19825 expand_location_to_spelling_point instead of expand_location.
19826
163fa1eb
DS
19827 Fix PCH crash on GTYed pointer-to-scalar field of a struct
19828 * gengtype.c (write_types_process_field): Force second argument of
19829 the call to the PCH object hierarchy walker to be 'x'.
19830
bb358f1c
EB
198312012-04-30 Eric Botcazou <ebotcazou@adacore.com>
19832
19833 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
19834 predicate to discriminate types.
19835
90137d8f
MLI
198362012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
19837
19838 * doc/invoke.texi (Wmissing-format-attribute): Document as an
19839 alias of Wsuggest-attribute=format.
19840 * c-typeck.c (convert_for_assignment): Replace
19841 Wmissing-format-attribute with Wsuggest-attribute=format.
19842 (digest_init): Likewise.
19843
94ee6979
MLI
198442012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
19845
d55d2c84
UB
19846 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
19847 * common.opt (Wmissing-noreturn): Alias of
19848 -Wsuggest-attribute=noreturn.
94ee6979 19849
ff2ca1bc
HPN
198502012-04-29 Hans-Peter Nilsson <hp@axis.com>
19851
19852 PR target/53156
19853 * config/cris/cris.md (andqu): New peephole2.
19854 (andu): Tweak head comment.
19855
fa06ad0d
JR
198562012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
19857 Steven Bosscher <steven@gcc.gnu.org>
19858 Maxim Kuvyrkov <maxim@codesourcery.com>
19859
19860 PR tree-optimization/38785
19861 * common.opt (ftree-partial-pre): New option.
19862 * doc/invoke.texi: Document it.
19863 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
19864 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
19865 benefit speed path.
19866 (execute_pre): Use flag_tree_partial_pre.
19867
5f5f36f9
JDA
198682012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19869
19870 PR target/52999
19871 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
19872 in constant pool.
19873
20f9034b 198742012-04-27 Ollie Wild <aaw@google.com>
7f5f5f98
OW
19875
19876 * doc/invoke.texi (Wliteral-suffix): Document new option.
19877
11ec770e
TT
198782012-04-27 Tom Tromey <tromey@redhat.com>
19879
19880 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
19881 (dwarf_tag_name): Use get_DW_TAG_name.
19882 (dwarf_attr_name): Use get_DW_AT_name.
19883 (dwarf_form_name): Use get_DW_FORM_name.
19884 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
19885
809c929c
PB
198862012-04-27 Paolo Bonzini <bonzini@gnu.org>
19887
d55d2c84
UB
19888 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
19889 arguments are -1 and 0, by negating the result of the conditional.
809c929c 19890
d5548709
PB
198912012-04-27 Paolo Bonzini <bonzini@gnu.org>
19892
19893 PR target/53138
19894 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
19895
209be553
RG
198962012-04-27 Richard Guenther <rguenther@suse.de>
19897
19898 * tree-flow.h (is_hidden_global_store): Remove.
19899 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
19900 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
19901 (stmt_may_clobber_global_p): Likewise.
19902 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
19903 (stmt_may_clobber_global_p): Likewise.
19904 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
19905 stmt_may_clobber_global_p.
19906 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
19907
886cd84f
SB
199082012-04-27 Steven Bosscher <steven@gcc.gnu.org>
19909
c813039d
SB
19910 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
19911 place.
19912
886cd84f
SB
19913 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
19914 reorganize some fields and update comments. Rename bit_test_uniq
19915 and bit_test_count to uniq resp. count. Remove bit_test_bb.
19916 (collect_switch_conv_info): New function, collects info about a
19917 GIMPLE_SWITCH into a struct switch_conv_info.
19918 (check_range): Simplify to use pre-recorded info. Fix think-o in
19919 range-branch ratio check.
19920 (check_process_case): Remove function.
19921 (check_all_empty_except_final): New function, verifies that all
19922 non-final basic blocks are empty.
19923 (process_switch): Simplify to use pre-recorded info. Call
19924 collect_switch_conv_info to do that. Assert that degenerate switch
19925 statements have been cleaned up.
19926
07ab2b1b
MG
199272012-04-27 Marc Glisse <marc.glisse@inria.fr>
19928
19929 PR middle-end/27139
19930 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
19931
ae933128
MLI
199322012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
19933
19934 PR c/53130
19935 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
19936
00115921
TV
199372012-04-27 Tom de Vries <tom@codesourcery.com>
19938
19939 PR tree-optimization/51879
19940 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
19941 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
19942 of ...
19943 (defs_to_varying): ... here. Don't set use_processed.
19944 (visit_reference_op_call): Handle gimple_vdef.
19945 Handle case that lhs is NULL_TREE.
19946 (visit_use): Use mark_use_processed. Handle calls with side-effect
19947 using visit_reference_op_call.
19948
fd59643c
RS
199492012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
19950
19951 * sched-deps.c (fixup_sched_groups): Rename to...
19952 (chain_to_prev_insn): ...this.
19953 (chain_to_prev_insn_p): New function.
19954 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
19955
7a1aca9c
RS
199562012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
19957
19958 * sched-int.h (_haifa_insn_data): Move priority_status.
19959 Add model_index.
19960 (INSN_MODEL_INDEX): New macro.
19961 * haifa-sched.c (insn_delay): New function.
19962 (sched_regno_pressure_class): Update commentary.
19963 (mark_regno_birth_or_death): Pass the liveness bitmap and
19964 pressure array as arguments, instead of using curr_reg_live and
19965 curr_reg_pressure. Only update the pressure if the bit in the
19966 liveness set has changed.
19967 (initiate_reg_pressure_info): Always trust the live-in set for
19968 SCHED_PRESSURE_MODEL.
19969 (initiate_bb_reg_pressure_info): Update call to
19970 mark_regno_birth_or_death.
19971 (dep_list_size): Take the list as argument.
19972 (calculate_reg_deaths): New function, extracted from...
19973 (setup_insn_reg_pressure_info): ...here.
19974 (MODEL_BAR): New macro.
19975 (model_pressure_data, model_insn_info, model_pressure_limit)
19976 (model_pressure_group): New structures.
19977 (model_schedule, model_worklist, model_insns, model_num_insns)
19978 (model_curr_point, model_before_pressure, model_next_priority):
19979 New variables.
19980 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
19981 (MODEL_INSN_INFO, MODEL_INSN): New macros.
19982 (model_index, model_update_limit_points_in_group): New functions.
19983 (model_update_limit_points, model_last_use_except): Likewise.
19984 (model_start_update_pressure, model_update_pressure): Likewise.
19985 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
19986 (model_excess_cost, model_dump_pressure_points): Likewise.
19987 (model_set_excess_costs): Likewise.
19988 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
19989 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
19990 schedule as an alternative tie-breaker. Update the call to
19991 dep_list_size.
19992 (ready_sort): Call model_set_excess_costs.
19993 (update_register_pressure): Update call to mark_regno_birth_or_death.
19994 Rely on that function to check liveness rather than doing it here.
19995 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
19996 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
19997 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
19998 (model_record_pressure, model_record_pressures): New functions.
19999 (model_record_final_pressures, model_add_successors_to_worklist)
20000 (model_promote_predecessors, model_choose_insn): Likewise.
20001 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
20002 (model_start_schedule, model_finalize_pressure_group): Likewise.
20003 (model_end_schedule): Likewise.
20004 (schedule_insn): Say when we're scheduling the next instruction
20005 in the model schedule.
20006 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
20007 (queue_to_ready): Do not add instructions that are
20008 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
20009 Always allow the next instruction in the model schedule to be added.
20010 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
20011 and delay for SCHED_PRESSURE_MODEL too.
20012 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
20013 SCHED_PRIORITY_MODEL, but also take the DFA into account.
20014 (schedule_block): Call model_start_schedule and model_end_schedule.
20015 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
20016 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
20017 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
20018 region_ref_regs.
20019 (sched_finish): Update accordingly.
20020 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
20021 to SCHED_PRESSURE_MODEL.
20022 (add_jump_dependencies): Update call to dep_list_size.
20023 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
20024 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
20025 to SCHED_PRESSURE_MODEL.
20026 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
20027 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
20028 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
20029 handling to SCHED_PRESSURE_MODEL.
20030
60867e8c
RS
200312012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
20032
20033 * common.opt (fsched-pressure-algorithm=): New option.
20034 * flag-types.h (sched_pressure_algorithm): New enum.
20035 * sched-int.h (sched_pressure_p): Replace with...
20036 (sched_pressure): ...this new variable.
20037 * haifa-sched.c (sched_pressure_p): Replace with...
20038 (sched_pressure): ...this new variable.
20039 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
20040 (update_reg_and_insn_max_reg_pressure, schedule_insn)
20041 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
20042 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
20043 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20044 (sched_analyze_insn): Likewise.
20045 * sched-rgn.c (schedule_region): Likewise.
20046 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
20047
81c082ec
BS
200482012-04-26 Bernd Schmidt <bernds@codesourcery.com>
20049
6e74642b 20050 PR middle-end/52997
81c082ec
BS
20051 * ira.c (find_moveable_pseudos): Call resize_reg_info.
20052
e90247f8
BS
20053 PR middle-end/52940
20054 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
20055 * expr.c (convert_move): Honor unsignedp when extending partial int
20056 modes.
20057 * genmodes.c (complete_mode): Don't clear component field of partial
20058 int modes.
20059 (emit_mode_inner): Don't emit it however.
20060 (calc_wider_mode): Partial int modes widen to their component.
20061
afa3ed85
DM
200622012-04-26 David S. Miller <davem@davemloft.net>
20063
851634c7
DM
20064 * config/sparc/niagara4.md: New file.
20065 * config/sparc/sparc.md: Include it.
20066 * config/sparc/sparc.c (niagara4_costs): New processor costs.
20067 (sparc_option_override): Use it.
20068 (sparc_use_sched_lookahead): Return 2 for niagara4.
20069 (sparc_issue_rate): Likewise.
20070
afa3ed85
DM
20071 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
20072 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
20073 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
d55d2c84 20074 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
afa3ed85
DM
20075 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
20076 alignaddrldi_vis): Set type to gsr.
20077 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
20078 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
20079 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
20080 v<vis3_shift_patname><mode>3, fmean16_vis,
20081 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
20082 fucmp<code>8<P:mode>_vis): Set type to fga.
20083 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
20084 * config/sparc/niagara.md: Likewise.
20085 * config/sparc/niagara2.md: Likewise.
20086 * config/sparc/ultra3.md: Likewise, and fix type matching for
20087 us3_ialuX reservation.
20088
b5068425
AK
200892012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20090
20091 * reload.c (find_reloads): Change the loop nesting when trying an
20092 alternative with swapped operands.
20093
1d72e96f
MLI
200942012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20095
20096 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
20097 comment. Delete unused parameter first_exp_point_map.
20098 (virt_loc_aware_diagnostic_finalizer): Update call.
20099
c7121189
MH
201002012-04-26 Michael Hope <michael.hope@linaro.org>
20101 Richard Earnshaw <rearnsha@arm.com>
20102
20103 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
20104 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
20105 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
870128f2 20106 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
c7121189 20107
5ddecff9
ST
201082012-04-25 Sriraman Tallam <tmsriram@google.com>
20109
20110 * doc/extend.texi: Document avx2 support.
20111 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
20112
d7173593
HPN
201132012-04-26 Hans-Peter Nilsson <hp@axis.com>
20114
20115 PR target/53120
20116 * config/cris/cris.md ("*andhi_lowpart_v32")
20117 ("*andqi_lowpart_v32"): Change first input-only operand from
20118 a (match_operand ...) to (match_dup 0). Drop alternatives with
20119 const_int-matching constraints for redundancy.
20120 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
20121 three-operand alternative.
20122
c1d40097
JJ
201232012-04-25 Jakub Jelinek <jakub@redhat.com>
20124
20125 PR target/53110
20126 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
20127 instead expand it as zero extension.
20128
ff5f00c3
L
201292012-04-25 H.J. Lu <hongjiu.lu@intel.com>
20130
20131 PR debug/52857
d55d2c84 20132 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
ff5f00c3 20133
98095aa3
JJ
201342012-04-25 Jakub Jelinek <jakub@redhat.com>
20135
20136 * common.opt (flag_debug_types_section): Default to 0.
20137 (dwarf_version): Default to 4.
20138 (dwarf_record_gcc_switches): Default to 1.
20139 (dwarf_strict): Default to 0.
20140 * toplev.c (process_options): Don't handle dwarf_strict
20141 or dwarf_version here.
20142 * config/vxworks.c (vxworks_override_options): Don't
20143 test whether dwarf_strict or dwarf_version are negative,
20144 instead test !global_options_set.x_dwarf_*.
20145 * config/darwin.c (darwin_override_options): Default to
20146 dwarf_version 2.
20147 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
20148 and -fno-debug-types-section are now the default.
20149
9c8305f8
JH
201502012-04-25 Jan Hubicka <jh@suse.cz>
20151
20152 * cgraphunit.c: Update toplevel comment.
20153 (tree_rest_of_compilation): Merge into cgraph_expand_function.
20154 (cgraph_analyze_function): Make static.
20155 (cgraph_decide_is_function_needed): Make static.
20156 (cgraph_add_new_function): Use expand_function instead of
20157 rest_of_compilation.
20158 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
20159 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
20160 Move to cgraph.c
20161 (cgraph_inline_p): Remove.
20162 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
20163 (init_cgraph): Add comment.
20164 * cgraphbuild.c (record_reference, mark_address, mark_load,
20165 mark_store): Do not call analyze_expr hook.
20166 * cgraph.c: Update toplevel comment.
20167 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
20168 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
20169 Move fere from cgraphunit.c
20170 (cgraph_mark_force_output_node): Move to cgraph.h
20171 * cgraph.h: Reorder so the comments match the function placement.
20172 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
20173 (cgraph_mark_force_output_node): Move here from cgraph.c
20174 * tree.c (free_lang_data): Do not clear analyze_expr hook.
20175 * ipa-inline-transform.c (preserve_function_body_p): New function.
20176 (inline_transform): Update.
20177 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
20178 * langhooks.h (lang_hooks_for_callgraph): Remove.
20179 (lang_hooks): Remove callgraph.
20180 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
20181 * varpool.c: Remove out of date comment.
20182 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
20183 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
20184
838ff415
JH
201852012-04-25 Jan Hubicka <jh@suse.cz>
20186
d55d2c84
UB
20187 PR middle-end/53089
20188 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
20189 forward declaration.
838ff415
JH
20190 (cgraph_finalize_function): Finalize them here.
20191 * symtab.c (dump_symtab): Dump ctors and dtors.
20192
0ea62d93
JJ
201932012-04-25 Jakub Jelinek <jakub@redhat.com>
20194
f1cc9589
JJ
20195 PR middle-end/52979
20196 * stor-layout.c (get_best_mode): Don't return mode with bitsize
20197 larger than maxbits. Don't compute maxbits modulo align.
20198 Also check that unit bytes long store at bitpos / unit * unit
20199 doesn't affect bits beyond bitregion_end.
20200 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
d55d2c84 20201 would not fit into bitregion_start ... bitregion_end + 1 bit region.
f1cc9589
JJ
20202 (store_split_bit_field): Decrease unit close to end of bitregion_end
20203 if access is restricted in order to avoid mutual recursion.
20204
0ea62d93
JJ
20205 PR tree-optimization/53058
20206 * double-int.h (double_int_max_value, double_int_min_value): New
20207 prototypes.
20208 * double-int.c (double_int_max_value, double_int_min_value): New
20209 functions.
d55d2c84
UB
20210 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
20211 or GT_EXPR with double_int_max_value instead of double_int_mask.
0ea62d93 20212
d68d56b5
RG
202132012-04-25 Richard Guenther <rguenther@suse.de>
20214
20215 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
20216 * tree-vect-loop.c (vect_transform_loop): Adjust.
20217 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
20218 the maximum number of iterations for the epilogue loop.
d55d2c84 20219 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
d68d56b5 20220
fdce1719
JJ
202212012-04-25 Jakub Jelinek <jakub@redhat.com>
20222
20223 PR c/52880
20224 * c-typeck.c (set_nonincremental_init,
20225 set_nonincremental_init_from_string): Pass true instead of false
20226 as IMPLICIT to add_pending_init.
20227
32397f22
MLI
202282012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
20229
20230 * c-typeck.c (pop_init_level): Improve diagnostics.
20231
ad1d9a50
UB
202322012-04-25 Uros Bizjak <ubizjak@gmail.com>
20233
20234 * compare-elim.c (try_eliminate_compare): Also handle operands with
20235 implicit extensions.
20236
b427dd7a
AM
202372012-04-25 Alan Modra <amodra@gmail.com>
20238
20239 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
20240 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
20241 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
20242 (no_global_regs_above): Delete.
20243 (no_global_regs): New function.
20244 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
20245 value for load multiple test.
20246 (savres_routine_syms): Increase size.
20247 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
20248 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
20249 rather than a number of boolean flags. Update all callers.
20250 (rs6000_savres_routine_name): Generate vector save/restore names.
20251 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
20252 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
20253 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
20254 and using_store_multiple. Expand uses. Don't always use r11 as
20255 frame reg when needed for out-of-line saves. Set up initial offset
20256 for out-of-line vector saves when buying stack frame. Handle pointer
20257 reg setup for out-of-line fp save. Emit call to out-of-line vector
20258 save function. Choose r11 or r12 for vrsave reg when available for
20259 better scheduling.
20260 (rs6000_output_function_prologue): Don't emit .extern for ELF.
20261 (rs6000_emit_epilogue): Choose a better frame reg when restoring
20262 from back-chain to suit out-of-line vector restore functions. Emit
20263 call to out-of-line vector restore function. Adjust register used
20264 for cr restore. Tweak pointer register setup for gpr restore.
20265 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
20266 FIXED_R13.
20267 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
20268 (V_SAVE_INLINE): Define.
20269 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
20270
1bf7c2a7
AM
202712012-04-25 Alan Modra <amodra@gmail.com>
20272
20273 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
20274 out-of-line save/restore for large frames. Don't disable
20275 out-of-line saves on ABI_AIX when using static chain reg.
20276 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
20277 clobber static chain reg, and tweak for out-of-line gpr saves
20278 that use r1.
20279
c344e265
AM
202802012-04-25 Alan Modra <amodra@gmail.com>
20281
20282 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
20283 (rs6000_emit_prologue): Use the above to catch register overlap.
20284
544055ae
AM
202852012-04-25 Alan Modra <amodra@gmail.com>
20286
20287 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
20288 decl. Move logic selecting update reg to callers. Update all callers.
20289 (rs6000_emit_allocate_stack): Add copy_off param.
20290 (emit_frame_save): Don't handle reg+reg addressing.
20291 (ptr_regno_for_savres): New function, extracted from..
20292 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
20293 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
20294 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
20295 frame offset adjustment for out-of-line save with copy from sp.
20296 Simplify condition controlling whether cr is saved early or
20297 late. Use ptr_regno_for_savres to verify correct reg is set
20298 up for out-of-line saves. Pass the actual pointer reg used to
20299 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
20300 function. Rearrange spe vars so code is similar to that
20301 elsewhere in this function. Don't update frame_off when spe
20302 save code will restore r11. Use emit_frame_save for spe and
20303 gpr saves. Consolidate darwin out-of-line gpr setup with that
20304 for other abis. Don't assume frame_offset is zero and frame
20305 reg is sp when setting up altivec reg saves, and calculate
20306 exact offset requirement.
20307 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
20308 spe restore code. Consolidate darwin out-of-line gpr setup
20309 with that for other abis.
20310
471df90f
AM
203112012-04-25 Alan Modra <amodra@gmail.com>
20312
20313 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
20314 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
20315 the replacement.
20316 (emit_frame_save): Delete frame_ptr param. Rename total_size to
20317 frame_reg_to_sp.
20318 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
20319 and emit_frame_save calls. Cope with possibly missing note.
20320
792317cc
ST
203212012-04-24 Sriraman Tallam <tmsriram@google.com>
20322
20323 * config/i386/i386.c (build_processor_model_struct): New function.
20324 (make_var_decl): New function.
20325 (fold_builtin_cpu): New function.
20326 (ix86_fold_builtin): New function.
20327 (make_cpu_type_builtin): New function.
20328 (ix86_init_platform_type_builtins): New function.
20329 (ix86_expand_builtin): Expand new builtins by folding them.
20330 (ix86_init_builtins): Make new builtins to detect CPU type.
20331 (TARGET_FOLD_BUILTIN): New macro.
20332 (IX86_BUILTIN_CPU_INIT): New enum value.
20333 (IX86_BUILTIN_CPU_IS): New enum value.
20334 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
20335 * config/i386/i386-builtin-types.def: New function type.
792317cc
ST
20336 * doc/extend.texi: Document builtins.
20337
7a9cf7e9
OH
203382012-04-24 Olivier Hainque <hainque@adacore.com>
20339
20340 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
20341 * toplev.c (process_options): Default to dwarf_version 2.
20342 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
20343 and dwarf_version 2.
20344
21e41715
MLI
203452012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
20346
20347 * tree-pretty-print.h (default_tree_printer): Do not declare.
20348 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
20349 intl.h.
20350 (default_tree_diagnostic_starter): Make static.
20351 (default_tree_printer): Move to here. Make static.
20352 (tree_diagnostics_defaults): New.
20353 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
20354 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
20355 * toplev.c: Do not include tree-pass.h.
20356 (default_tree_printer): Move from here.
20357 (general_init): Use tree_diagnostics_defaults.
20358
3eab78f4
CF
203592012-04-24 Chao-ying Fu <fu@mips.com>
20360
20361 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
20362 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
20363 * config/mips/gnu-user.h
20364 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
20365 (GNU_USER_TARGET_LINK_SPEC): New define.
20366 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
20367 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
20368 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
20369 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
20370 GNU_USER_TARGET_ENDFILE_SPEC.
20371 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
20372 (GNU_USER_TARGET_LINK_SPEC): New define.
20373 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
20374 * config/mips/linux-common.h: New file.
20375
24d5b351
BS
203762012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20377
20378 PR target/47197
20379 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
20380 (altivec_build_resolved_builtin): Call fully_fold_convert.
20381
59d9ade4
GJL
203822012-04-24 Georg-Johann Lay <avr@gjlay.de>
20383
20384 PR target/53065
20385 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
20386
46b380a2
RG
203872012-04-24 Richard Guenther <rguenther@suse.de>
20388
20389 PR tree-optimization/53085
20390 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
20391 stores.
20392
05232ff6
RB
203932012-04-24 Richard Guenther <rguenther@suse.de>
20394
20395 * tree-if-conv.c (main_tree_if_conversion): Move bb under
20396 ENABLE_CHECKING.
20397
203982012-04-24 Jim Meyering <meyering@redhat.com>
57f10fe5
JM
20399
20400 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
20401 absence of an define_enum call.
20402
7d5a99f4
RG
204032012-04-24 Richard Guenther <rguenther@suse.de>
20404
20405 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
20406 the epilogue loop is not re-used as unvectorized version
20407 record the its maximum number of iterations.
20408
8eddb625
AP
204092012-04-24 Andrew Pinski <apinski@cavium.com>
20410
20411 * tree-ssa-forwprop.c (simplify_bitwise_binary):
20412 Don't directly use def1/def2.
20413
e1b435ad
RG
204142012-04-24 Richard Guenther <rguenther@suse.de>
20415
20416 PR tree-optimization/53098
20417 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
20418 comparison sign.
20419
a1e179f5
AP
204202012-04-24 Andrew Pinski <apinski@cavium.com>
20421
20422 PR tree-opt/33512
20423 * tree-ssa-forwprop.c (defcodefor_name): New function.
20424 (simplify_bitwise_binary): Use defcodefor_name instead of manually
20425 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
20426 Simplify "(~X | Y) & X" to "X & Y" and
20427 "(~X & Y) | X" to "X | Y".
20428
57ac4c34
AK
204292012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20430
20431 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
20432 validate_change to add clobbers if IN_GROUP is nonzero.
20433 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
20434 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
20435 prototype.
20436 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
20437 set to false.
20438 * config/s390/s390.c (insn_invalid_p): Likewise.
20439
06edd772
JJ
204402012-04-24 Jakub Jelinek <jakub@redhat.com>
20441
dd0a516f 20442 PR middle-end/53084
ad1d9a50 20443 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
dd0a516f
JJ
20444 (output_addressed_constants): Likewise.
20445
06edd772
JJ
20446 PR middle-end/52999
20447 * varasm.c (get_section): Don't ICE for section conflicts with
20448 built-in section kinds.
20449
5e0cea66
DD
204502012-04-23 DJ Delorie <dj@redhat.com>
20451
20452 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
20453 (LIBSTDCXX): Change to CPP2.
20454
eefdb8e6
L
204552012-04-23 H.J. Lu <hongjiu.lu@intel.com>
20456
20457 PR bootstrap/52878
20458 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
20459 extra_masks.
20460
025735b7
UB
204612012-04-23 Uros Bizjak <ubizjak@gmail.com>
20462
20463 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
20464 (*addsi_2_zext): Ditto.
20465 (*add<mode>_3): Ditto.
20466 (*addsi_3_zext): Ditto.
20467 (*add<mode>_5): Ditto.
20468
24fc7360
AP
204692012-04-23 Andrew Pinski <apinski@cavium.com>
20470
20471 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
20472 (C & B) to (A OP0) & B.
20473
e9d68de9
MJ
204742012-04-23 Martin Jambor <mjambor@suse.cz>
20475
20476 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
20477 temporaries created for a bitfield (reverting revision 122014).
20478
f7a06a98
RG
204792012-04-23 Richard Guenther <rguenther@suse.de>
20480
20481 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
20482 the condition using is_gimple_condexpr and avoid the not necessary
20483 boolification.
20484 (set_prologue_iterations): Likewise.
20485 (vect_loop_versioning): Likewise.
20486
c6542175
RG
204872012-04-23 Richard Guenther <rguenther@suse.de>
20488
20489 PR tree-optimization/53070
20490 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
20491 (main_tree_if_conversion): Verify we succeeded in that.
20492
93a18a70
JH
204932012-04-23 Jan Hubicka <jh@suse.cz>
20494
20495 * lto-symtab.c (lto_cgraph_replace_node): Do not call
20496 mark_reahcable_node.
20497 * cgraph.c (cgraph_remove_node): Do not clear reachable.
20498 (cgraph_mark_reachable_node): Remove.
20499 (cgraph_mark_force_output_node): Do not set reachable.
20500 (dump_cgraph_node): Do not dump reachable.
20501 (cgraph_create_virtual_clone): Do not set reachable.
20502 * cgraph.h (cgraph_node): Remove reachable flag.
20503 (varpool_node): Remove reachable flag.
20504 (cgraph_mark_if_needed): Remove.
20505 (cgraph_mark_reachable_node): Remove.
025735b7 20506 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
93a18a70
JH
20507 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
20508 reachable.
20509 (cgraph_add_new_function): Likewise.
20510 (cgraph_mark_if_needed): Remove.
20511 (cgraph_analyze_function): Do not set target as reachable.
025735b7
UB
20512 (process_function_and_variable_attributes): Do not care about
20513 dllexport.
93a18a70
JH
20514 (cgraph_analyze_functions): Do not set reachable flags.
20515 (cgraph_mark_functions_to_output): Do not check reachability.
20516 (cgraph_copy_node_for_versioning): Do not set reachable flag.
20517 (dbxout_expand_expr): Update.
20518 * c-decl.c (merge_decls): Do not track changed externs.
20519 * ipa.c: Include pointer-set.h
20520 (enqueue_cgraph_node): Use reachable pointer set.
20521 (process_references): Likewise.
20522 (cgraph_remove_unreachable_nodes): Likewise.
025735b7
UB
20523 (whole_program_function_and_variable_visibility): Do not recompute
20524 reachable.
93a18a70
JH
20525 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
20526
da4343c3
GJL
205272012-04-23 Georg-Johann Lay <avr@gjlay.de>
20528
20529 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
20530
54b9f838
RB
205312012-04-23 Richard Guenther <rguenther@suse.de>
20532
20533 PR c/53060
20534 * c-typeck.c (build_binary_op): Fix typo.
20535
e6a21dd2
JJ
205362012-04-23 Jakub Jelinek <jakub@redhat.com>
20537
20538 PR tree-optimizations/52891
20539 * tree-vect-patterns.c (adjust_bool_pattern): Use
20540 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
20541 but with non-standard precision.
20542
837a549b
JH
205432012-04-22 Jan Hubicka <jh@suse.cz>
20544
54b9f838
RB
20545 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
20546 tree refs.
837a549b 20547
66058468
JH
205482012-04-22 Jan Hubicka <jh@suse.cz>
20549
20550 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
20551 * cgraphbuild.c (record_reference, record_type_list, mark_address,
20552 mark_load, mark_store): Do not mark varpool nodes as needed.
20553 * cgraph.c (cgraph_new_nodes): Remove.
20554 (cgraph_create_function_alias): Do not mark nodes as reachable.
20555 (cgraph_add_thunk): Likewise.
20556 (cgraph_mark_reachable_node): Do not manage the queue.
20557 * cgraph.h (cgraph_node): Remove next_needed.
20558 (varpool_nodes_queue): Remove next_needed and prev_needed.
20559 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
20560 (cgraph_new_nodes): Declare.
20561 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
20562 (varpool_analyze_pending_decls): Remove.
20563 (varpool_analyze_node): New.
20564 (varpool_mark_needed_node): Remove.
20565 (varpool_first_variable, varpool_next_variable): New inlines.
025735b7
UB
20566 (varpool_first_static_initializer, varpool_next_static_initializer):
20567 Update.
66058468
JH
20568 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
20569 (varpool_first_defined_variable): New inline.
20570 (varpool_next_defined_variable): New inline
20571 (FOR_EACH_VARIABLE): Reimplement.
20572 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
20573 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
20574 needed flag.
20575 * cgraphunit.c (cgraph_new_nodes): Declare here.
20576 (enqueue_node): New function.
20577 (cgraph_process_new_functions): update for new
20578 node set; when constructing cgraph enqueue node for processing.
20579 (cgraph_add_new_function): Use new node set.
20580 (process_function_and_variable_attributes): Do not set varpool needed
20581 flags.
20582 (referred_to_p): New function.
20583 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
20584 when varpool is in construction.
20585 (cgraph_analyze_functions): Rewrite.
20586 (cgraph_expand_all_functions): Update.
025735b7
UB
20587 (cgraph_output_in_order): Do not analyze pending decls; do not set
20588 needed flags.
66058468 20589 (cgraph_optimize): Do not analyze pending decls.
025735b7
UB
20590 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
20591 in other partition; do not mark node as needed.
66058468
JH
20592 * dwarf2out.c (reference_to_unused): Use analyzed flag.
20593 (premark_types_used_by_global_vars_helper): Likewise.
20594 * ipa.c (process_references): Do not call varpool_mark_needed_node.
20595 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
20596 cgrpah queues.
20597 (function_and_variable_visibility): Do not mark node as needed.
20598 (whole_program_function_and_variable_visibility): Likewise.
20599 * Makefile.in (gt-varpool.h): No longer needed.
20600 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
20601 (ipa_write_summaries): Do not use needed flag.
20602 * varpool.c: Do not include gt-varpool.h
20603 (x_varpool_nodes_queue, x_varpool_last_needed_node,
20604 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
20605 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
20606 Remove.
20607 (varpool_remove_node): Do not update the lists.
20608 (dump_varpool_node): Do not dump needed flag.
20609 (varpool_enqueue_needed_node): Remove.
20610 (varpool_mark_needed_node): Remove.
20611 (varpool_reset_queue): Remove.
20612 (varpool_finalize_decl): Move to cgraphunit.c
20613 (varpool_analyze_node): New functions based on former
20614 varpool_analyze_pending_decls.
20615 (varpool_analyze_pending_decls): Remove.
20616 (varpool_assemble_decl): Do not update the lists.
20617 (enqueue_node): New function.
20618 (varpool_remove_unreferenced_decls): Rewrite.
20619 (varpool_empty_needed_queue): Remove.
20620 (add_new_static_var): Do not mark node as needed.
20621 (varpool_create_variable_alias): Handle expansion state
20622 creation.
20623 * except.c (output_ttype): Do not mark node as needed.
20624 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
20625 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
20626 Likewise.
20627 * tree-switch-conversion.c (build_one_array): Likewise.
20628
c1771a20
MLI
206292012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
20630
20631 PR c/44774
20632 * doc/invoke.texi (pedantic): Rename to Wpedantic.
20633 * common.opt (Wpedantic): New.
20634 (pedantic): Alias Wpedantic.
20635 * diagnostic.c (warning_at): Likewise.
20636 * c-decl.c (diagnose_mismatched_decls): Likewise.
20637 (build_array_declarator): Likewise.
20638 (mark_forward_parm_decls):
20639 (check_bitfield_type_and_width): Likewise.
20640 (grokdeclarator): Likewise.
20641 (grokfield): Likewise.
20642 (finish_struct): Likewise.
20643 (build_enumerator): Likewise.
20644 (store_parm_decls_oldstyle): Likewise.
20645 (declspecs_add_qual): Likewise.
20646 (declspecs_add_type): Likewise.
20647 (finish_declspecs): Likewise.
20648 * c-typeck.c (composite_type): Likewise.
20649 (comp_target_types): Likewise.
20650 (build_array_ref): Likewise.
20651 (pointer_diff): Likewise.
20652 (build_unary_op): Likewise.
20653 (build_conditional_expr): Likewise.
20654 (build_c_cast): Likewise.
20655 (convert_for_assignment): Likewise.
20656 (maybe_warn_string_init): Likewise.
20657 (digest_init): Likewise.
20658 (pop_init_level): Likewise.
20659 (set_init_index): Likewise.
20660 (c_finish_goto_label): Likewise.
20661 (c_finish_return): Likewise.
20662 (do_case): Likewise.
20663 (build_binary_op): Likewise.
20664 * c-parser.c (static): Likewise.
20665 (c_parser_external_declaration): Likewise.
20666 (c_parser_declaration_or_fndef): Likewise.
20667 (c_parser_static_assert_declaration_no_se): Likewise.
20668 (c_parser_enum_specifier): Likewise.
20669 (c_parser_struct_or_union_specifier): Likewise.
20670 (c_parser_struct_declaration): Likewise.
20671 (c_parser_alignas_specifier): Likewise.
20672 (c_parser_braced_init): Likewise.
20673 (c_parser_initelt): Likewise.
20674 (c_parser_compound_statement_nostart): Likewise.
20675 (c_parser_conditional_expression): Likewise.
20676 (c_parser_alignof_expression): Likewise.
20677 (c_parser_postfix_expression): Likewise.
20678 (c_parser_postfix_expression_after_paren_): Likewise.
20679 (c_parser_objc_class_instance_variables): Likewise.
20680 (c_parser_objc_method_definition): Likewise.
20681 (c_parser_objc_methodprotolist): Likewise.
20682
f12e8bd5
ILT
206832012-04-22 Ian Lance Taylor <iant@google.com>
20684
20685 * godump.c (go_output_typedef): Dump size of structs.
20686
69958396 206872012-04-22 Razya Ladelsky <razya@il.ibm.com>
49c45e28
UB
20688
20689 Correcting transform_to_exit_first_loop + fix to PR46886
20690 * tree-parloops.c (transform_to_exit_first_loop): Remove
20691 setting of number of iterations according to the loop pattern.
20692 Duplicate from entry to exit->src instead of loop->latch.
20693 (pallelize_loops): Remove the condition preventing do-while loops.
20694 * tree-cfg.c (bool bb_in_region_p): New.
20695 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
20696 Adjust redirection of the duplicated iteration.
20697
9e412ca3
RS
206982012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
20699
20700 PR bootstrap/53021
20701 * rtl.def (ADDRESS): Use "i" rather than "w".
20702 * rtl.h (find_base_term): Delete.
20703 (may_be_sp_based_p): Declare.
20704 * rtl.c (rtx_code_size): Remove ADDRESS special case.
20705 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
20706 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
20707 * alias.c: ...here.
20708 (find_base_term): Make static.
20709 (may_be_sp_based_p): New function.
20710 * dse.c (record_store): Use it.
20711 * store-motion.c (store_killed_in_insn): Likewise.
20712
1a14ac4b
RS
207132012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
20714
20715 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
20716
ae52741c
MLI
207172012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
20718
20719 PR 35441
20720 * c-typeck.c (inform_declaration): New.
20721 (build_function_call_vec): Do not pretty-print
20722 expressions when caret is enabled.
20723 (convert_arguments): Use inform_declaration.
20724
1f36f7b3
JM
207252012-04-20 Jim Meyering <meyering@redhat.com>
20726
20727 * genmodes.c (make_complex_modes): Don't truncate a mode name of
20728 length 7 or more when prepending a "C". Suggested by Richard Guenther.
20729
add6207a
BS
207302012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20731
20732 PR rtl-optimization/44214
20733 * fold-const.c (exact_inverse): New function.
20734 (fold_binary_loc): Fold vector and complex division by constant into
20735 multiply by recripocal with flag_reciprocal_math; fold vector division
20736 by constant into multiply by reciprocal with exact inverse.
20737
ead84f73
JH
207382012-04-20 Jan Hubicka <jh@suse.cz>
20739
49c45e28
UB
20740 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
20741 force flags.
ead84f73
JH
20742 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
20743 (cgraph_remove_node): Update.
20744 (cgraph_mark_needed_node): Remove.
20745 (cgraph_mark_force_output_node): New.
20746 (dump_cgraph_node): Do not dump needed flag.
20747 (cgraph_node_cannot_be_local_p_1): Update.
20748 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
20749 * cgraph.h (symtab_node_base): Add force_output flag.
20750 (cgraph_node): Remove needed flag.
20751 (varpool_node): Remove force_output flag.
20752 (cgraph_mark_needed_node): Remove.
20753 (cgraph_mark_force_output_node): New.
20754 (cgraph_only_called_directly_or_aliased_p,
20755 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
20756 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
20757 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
49c45e28
UB
20758 (cgraph_add_new_function): Update.
20759 (cgraph_mark_if_needed): Update.
ead84f73
JH
20760 (verify_cgraph_node): Update.
20761 (cgraph_analyze_function): Alias target is reachable.
20762 (process_function_and_variable_attributes): Update: externally_visible
20763 flag makes function reachable.
20764 (cgraph_analyze_functions): Update dumping.
20765 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
20766 input_overwrite_node, input_varpool_node): Update streaming.
20767 * lto-streamer-out.c (produce_symtab): Use force_output.
20768 * ipa.c (process_references): Weakrefs must be processed.
20769 (cgraph_remove_unreachable_nodes): Likewise; update for new
20770 force_output flag.
49c45e28 20771 (varpool_externally_visible_p): Weakrefs are externally visible
ead84f73
JH
20772 even if they are not.
20773 (function_and_variable_visibility): Update; when processing alias
20774 pair force the targets to be output.
49c45e28
UB
20775 (whole_program_function_and_variable_visility): Use
20776 mark_reachable_node.
ead84f73
JH
20777 * trans-mem.c (ipa_tm_mark_needed_node): Remove
20778 (ipa_tm_mark_force_output_node): New function.
20779 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
49c45e28
UB
20780 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
20781 aliases.
ead84f73
JH
20782 * varasm.c (mark_decl_referenced): Update.
20783 (find_decl_and_mark_needed): Remove.
20784 (find_decl): New function.
20785 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
20786 alias targets as needed.
20787 (dump_tm_clone_pairs): Update.
20788 * tree-inline.c (copy_bb): Update check.
20789 * symtab.c (dump_symtab_base): Dump force_output.
20790 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
20791 * passes.c (execute_todo): Fix dumping.
20792 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
20793 (varpool_analyze_pending_decls): Alias target is reachable.
20794 (varpool_create_variable_alias): Finalize weakrefs.
20795
757e8ba2
JJ
207962012-04-20 Jakub Jelinek <jakub@redhat.com>
20797
20798 PR bootstrap/53021
20799 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
20800 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
20801 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
20802 macros instead of constants.
20803 * dse.c (record_store): Check for SP ADDRESS by comparing
20804 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
20805 XEXP to be stack_pointer_rtx.
20806
faaf273b
RG
208072012-04-20 Richard Guenther <rguenther@suse.de>
20808
20809 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
20810 update_call_from_tree when propagating into a call.
20811
a51e5fa2
AM
208122012-04-20 Alan Modra <amodra@gmail.com>
20813
20814 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
20815 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
20816 sp_offset to frame_off. Move world save code earlier.
20817
4cbc836e
RG
208182012-04-20 Richard Guenther <rguenther@suse.de>
20819
20820 PR tree-optimization/53050
20821 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
20822 Do only one transform on COND_EXPRs at the same time.
20823
efb496b5
JH
208242012-04-19 Jan Hubicka <jh@suse.cz>
20825
20826 * symtab.c (dump_symtab_base): Revert accidental checkin.
20827
7153fab9
AM
208282012-04-20 Alan Modra <amodra@gmail.com>
20829
20830 PR target/53040
20831 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
20832 static chain, set REST_INLINE_FPRS too.
20833
4e0bd6d3
TS
208342012-04-20 Thomas Schwinge <thomas@codesourcery.com>
20835
20836 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
20837 nodes.
20838
552fd8e6
RG
208392012-04-20 Richard Guenther <rguenther@suse.de>
20840
49c45e28
UB
20841 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
20842 loops that can never run more often than the vectorization factor.
552fd8e6 20843
fe0bd630
JH
208442012-04-19 Jan Hubicka <jh@suse.cz>
20845
20846 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
20847
3877ce45
DE
208482012-04-19 David Edelsohn <dje.gcc@gmail.com>
20849
20850 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
20851
75be0217
JM
208522012-04-19 Jim Meyering <meyering@redhat.com>
20853
75be0217
JM
20854 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
20855 We verified above that the string(including trailing NUL) fits in buf,
20856 so just use memcpy.
20857
f68c0487
RG
208582012-04-19 Richard Guenther <rguenther@suse.de>
20859
20860 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
20861 for dumping DECL_SECTION_NAME.
20862
314b662a
MM
208632012-04-19 Michael Matz <matz@suse.de>
20864
20865 PR middle-end/52977
20866 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
20867 (struct tree_vector): Adjust GTY length.
20868 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
20869
20870 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
20871 members.
20872 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
20873 caller emitted the length calulation already.
20874 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
20875 before handling any of the fields for structs.
20876
7c98ec60
RG
208772012-04-19 Richard Guenther <rguenther@suse.de>
20878
20879 PR tree-optimization/53031
20880 * tree-vrp.c (adjust_range_with_scev): Revert back to
20881 using max_loop_iterations.
20882
80f24351
MM
208832012-04-19 Michael Matz <matz@suse.de>
20884
20885 * diagnostic.c (emit_diagnostic): Move va_end call after user
20886 of the va_list.
20887 (warning, warning_at, pedwarn, permerror): Ditto.
20888
d0a854af
RG
208892012-04-19 Richard Guenther <rguenther@suse.de>
20890
20891 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
20892 array access.
20893
20955f5a
GJL
208942012-04-19 Georg-Johann Lay <avr@gjlay.de>
20895
20896 PR target/53033
20897 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
20898 the case *(X+const).
20899
e4eb230d
RR
209002012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20901
20902 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
20903
49c45e28 209042012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
007a787d
CB
20905
20906 PR c/52283/37985
20907 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
20908 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
20909
daa57386
RG
209102012-04-19 Richard Guenther <rguenther@suse.de>
20911
20912 PR rtl-optimization/44688
20913 * loop-iv.c (determine_max_iter): Only return max_iter.
20914 (iv_number_of_iterations): Also use the recorded loop bound
20915 on the maximum number of iterations.
20916 * loop-unroll.c (decide_unroll_runtime_iterations): Use
20917 max_iter to avoid unrolling loops that do not roll.
20918 (decide_unroll_stupid): Likewise.
20919
0cd2402d
SB
209202012-04-18 Steven Bosscher <steven@gcc.gnu.org>
20921
20922 * targhooks.c (default_case_values_threshold): Fix code style nit.
20923
20924 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
20925 case range and type folding from here...
20926 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
809e5f82 20927 type, as documented in tree.def.
0cd2402d 20928
474ffc72
JH
209292012-04-18 Jan Hubicka <jh@suse.cz>
20930
20931 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
20932 Declare.
618107ba 20933 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
474ffc72 20934 cgraph hash and same comdat groups.
49c45e28 20935 (cgraph_optimize): Verify symbol table.
474ffc72
JH
20936 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
20937 (dissolve_same_comdat_group_list): Work on symtab nodes.
20938 (function_and_variable_visibility): Dissolve variable same comdat group
20939 lists, too.
20940 * symtab.c: Include timevar.h
20941 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
20942
308e3ba6
SB
209432012-04-18 Steven Bosscher <steven@gcc.gnu.org>
20944
fade902a
SB
20945 * tree-switch-conversion.c (info): Remove global pass info.
20946 (check_range, check_process_case, check_final_bb, create_temp_arrays,
20947 free_temp_arrays, gather_default_values, build_constructors,
20948 array_value_type, build_one_array, build_arrays, gen_def_assigns,
20949 fix_phi_nodes, gen_inbound_check): Pass info around from ...
20950 (process_switch): ... here. Unify message format. Return a const
20951 char pointer to the failure reason message.
20952 (do_switchconv): Unify message format. Update process_switch usage.
20953
308e3ba6
SB
20954 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
20955 * tree-cfg.c (edge_to_cases): Fix documentation.
20956
27dd0a95
UB
209572012-04-18 Uros Bizjak <ubizjak@gmail.com>
20958
20959 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
20960
b59eee40
BS
209612012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20962
20963 PR tree-optimization/52976
20964 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
20965 (possibly_move_powi): New function.
20966 (rewrite_expr_tree): Call possibly_move_powi.
20967 (rewrite_expr_tree_parallel): Likewise.
20968 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
20969 call add_to_ops_vec instead.
20970
c2723bde
BS
209712012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20972
20973 PR tree-optimization/52976
20974 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
20975 (decrement_power): Likewise.
20976 (propagate_op_to_single_use): Likewise.
20977 (zero_one_operation): Handle __builtin_pow* calls in linearized
20978 expression trees; factor logic into propagate_op_to_single_use.
20979 (undistribute_ops_list): Allow operands with repeat counts > 1.
20980
03fd03d5
RG
209812012-04-18 Richard Guenther <rguenther@suse.de>
20982
20983 PR tree-optimization/44688
20984 * cfgloop.h (record_niter_bound): Declare.
20985 * tree-ssa-loop-niter.c (record_niter_bound): Export.
20986 Update the estimation with the upper bound here...
20987 (estimate_numbers_of_iterations_loop): ... instead of here.
20988 Do not forcefully reset a recorded upper bound.
20989 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
49c45e28 20990 Record the maximum number of loop iterations of the prologue loop.
03fd03d5 20991
5932a4d4
JH
209922012-04-18 Jan Hubicka <jh@suse.cz>
20993
20994 * lto-symtab.c (lto_cgraph_replace_node): Update.
20995 * cgraphbuild.c (record_reference, record_type_list,
20996 record_eh_tables, mark_address, mark_load, mark_store): Update.
20997 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
20998 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
20999 Update.
21000 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
21001 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
21002 * reload.c: Fix typo in comment.
21003 * rtlanal.c: Likewise.
21004 * tree-emultls.c (gen_emutls_addr): Update.
21005 * ipa-reference.c (analyze_function): Update.
21006 * cgraphunit.c (cgraph_analyze_function,
21007 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
21008 Update.
21009 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
21010 (ipa_remove_reference): Likewise.
21011 (ipa_remove_all_refering): Rename to ...
21012 (ipa_remove_all_referring): ... this one; update.
21013 (ipa_dump_references): Update.
21014 (ipa_dump_referring): Update.
21015 (ipa_clone_references): Update.
21016 (ipa_clone_refering): Rename to ...
21017 (ipa_clone_referring): ... this one; update.
21018 (ipa_ref_cannot_lead_to_return): Update.
21019 (ipa_ref_has_aliases_p): Update.
21020 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
21021 forward typedefs.
21022 (ipa_ref_type): Remove.
21023 (ipa_ref_ptr_u): Remove.
21024 (ipa_ref): Remove referencing, refered, refered_index, refering_type
21025 and refered_type; add referring, referred and referred_index.
21026 (ipa_ref_list): Rename refering to referring.
21027 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
21028 ipa_clone_references, ipa_clone_referring): Update prototypes.
21029 * lto-cgraph.c (referenced_from_other_partition_p): Update.
21030 (lto_output_ref): Update.
21031 (add_references): Update.
21032 (input_varpool_node): Update.
21033 (input_refs): Update.
21034 * ipa-ref-inline.h (ipa_ref_node): Update.
21035 (ipa_ref_varpool_node): Update.
49c45e28 21036 (ipa_ref_referring_node): Update.
5932a4d4 21037 (ipa_ref_referring_varpool_node): Update.
49c45e28 21038 (ipa_ref_referring_ref_list): Update.
5932a4d4
JH
21039 (ipa_ref_referred_ref_list): Update.
21040 (ipa_ref_list_first_referring): Update.
21041 (ipa_empty_ref_list): Update.
21042 (ipa_ref_list_refering_iterate): Rename to ...
21043 (ipa_ref_list_referring_iterate): ... this one.
21044 * cse.c: Update comment.
21045 * ipa-utils.c (ipa_reverse_postorder): Update.
21046 * tree-ssa-alias.c: Update.
21047 * ipa-inline.c (reset_edge_caches): Update.
21048 (update_caller_keys): Update.
21049 * ipa-inline.h: Update comments.
21050 * jump.c: Update comment.
21051 * alias.c: Likewise.
21052 * ipa.c (process_references): Update.
21053 (cgraph_remove_unreachable_nodes): Likewise.
21054 (ipa_discover_readonly_nonaddressable_var): Likewise.
21055 (cgraph_address_taken_from_non_vtable_p): Likewise.
21056 * trans-mem.c (ipa_tm_execute): Update.
21057 * simplify-rtx.c: Fix comment.
21058 * rtl.c: Fix comment.
21059 * symtab.c (symtab_unregister_node): Update.
21060 * varpool.c (dump_varpool_node): Update.
21061 (varpool_analyze_pending_decls): Update.
21062 (assemble_aliases): Update.
21063 (varpool_for_node_and_aliases): Update.
21064
421e6082
RG
210652012-04-18 Richard Guenther <rguenther@suse.de>
21066
21067 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
21068 use_undefined_p parameter.
21069 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
21070 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
21071 Likewise.
21072 (estimate_numbers_of_iterations): Likewise.
21073 (estimated_loop_iterations): Adjust.
21074 (max_loop_iterations): Likewise.
21075 (scev_probably_wraps_p): Likewise.
21076 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
21077 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
21078 not max_loop_iterations.
21079 (execute_vrp): Remove explicit number of iterations estimation.
21080
6acc8a3c
EI
210812012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
21082
21083 * config/i386/linux-common.h: New.
21084
21085 * config.gcc: Add i386/linux-common.h before
21086 all i386/linux.h and i386/linux64.h usages.
21087
21088 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
21089 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
21090 * config/i386/gnu-user64.h: Likewise.
21091
21092 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
21093 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
21094 (GNU_USER_TARGET_MATHFILE_SPEC): New.
21095 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
21096
8f940ee6
JH
210972012-04-18 Jan Hubicka <jh@suse.cz>
21098
21099 * cgraph.c (cgraph_node_name): Remove.
21100 (dump_cgraph_node): Use dump_symtab_base; reformat.
21101 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
21102 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
21103 Declare.
21104 (cgraph_node_name, varpool_node_name): Remove.
21105 (cgraph_node_asm_name, varpool_node_asm_name,
21106 cgraph_node_name, varpool_node_name): New.
21107 * tree-pass.h (TODO_dump_cgraph): Rename to ...
21108 (TODO_dump_symtab): ... this one.
21109 * ipa-cp (pass_ipa_cp): Update.
21110 * ia-reference.c (generate_summary, read_write_all_from_decl,
21111 propagate, ipa_reference_read_optimization_summary): Update.
21112 * cgraphunit.c (cgraph_analyze_functions): Update.
21113 (cgraph_optimize): Update.
21114 * ipa-ref.c (ipa_dump_references): Update.
21115 (ipa_dump_refering): Update.
21116 * ipa-inline.c (pass_ipa_inline): Update.
21117 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
21118 * ipa.c (pass_ipa_function_visibility,
21119 pass_ipa_whole_program_visibility): Update.
21120 * tree-sra.c (pass_early_ipa_sra): Update.
21121 * symtab.c: Include langhooks.h
21122 (symtab_node_asm_name): New.
21123 (symtab_node_name): New.
21124 (symtab_type_names): New static var.
21125 (dump_symtab_base): New.
21126 (dump_symtab_node, dump_symtab): New.
21127 (debug_symtab_node, debug_symtab): New.
21128 * tree-ssa-structalias.c: Dump symbol table.
21129 * pases.c (execute_todo): Handle TODO_dump_symtab instead
21130 of TODO_dump_cgraph.
21131 * varpoo.c (varpool_node_name): Remove.
21132 (dump_varpool_node): Use dump_symtab_base; reformat.
21133
dae1c90e
MLI
211342012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
21135
49c45e28 21136 * doc/invoke.texi (Language Independent Options): @item should be
dae1c90e
MLI
21137 before @opindex.
21138
f0184d42
RS
211392012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
21140
21141 PR bootstrap/53021
21142 * rtl.c (rtx_code_size): Handle ADDRESS.
21143
a60596b8
TV
211442012-04-17 Tom de Vries <tom@codesourcery.com>
21145
21146 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
21147 is not a STMT_LIST.
21148
6c381d9d
UB
211492012-04-17 Uros Bizjak <ubizjak@gmail.com>
21150
21151 PR target/53020
21152 * config/i386/sync.md (atomic_<code><mode>): Rename to
21153 atomic_<logic><mode>.
21154
9fc37b2b
RS
211552012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
21156
21157 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
21158 * alias.c (reg_base_value): Expand and update comment.
21159 (arg_base_value): New variable.
21160 (unique_id): Move up file.
21161 (unique_base_value, unique_base_value_p, known_base_value_p): New.
21162 (find_base_value): Use arg_base_value and known_base_value_p.
21163 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
21164 (find_base_term): Use known_base_value_p.
21165 (base_alias_check): Use unique_base_value_p.
21166 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
21167 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
21168
9f89e66e
PH
211692012-04-17 Pat Haugen <pthaugen@us.ibm.com>
21170
21171 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
21172
7d75abc8
MM
211732012-04-17 Michael Matz <matz@suse.de>
21174
21175 PR tree-optimization/18437
21176 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
21177 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
21178 (vect_check_strided_load): Declare.
21179 * tree-vect-data-refs.c (vect_check_strided_load): New function.
21180 (vect_analyze_data_refs): Use it to accept strided loads.
21181 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
21182
efa26eaa
RG
211832012-04-17 Richard Guenther <rguenther@suse.de>
21184
21185 PR middle-end/53011
21186 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
21187 loops when redirecting an entry or latch edge.
21188
d51e8a2d
BS
211892012-04-17 Bernd Schmidt <bernds@codesourcery.com>
21190
21191 * sel-sched.c (sel_global_init): Revert previous change.
21192
d8279b12
RG
211932012-04-17 Richard Guenther <rguenther@suse.de>
21194
21195 * tree-flow.h (array_at_struct_end_p): Move declaration ...
21196 * tree.h (array_at_struct_end_p): ... here.
21197 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
21198 * expr.c (array_at_struct_end_p): ... here. Rewrite.
21199
c5c20c55
SB
212002012-04-17 Steven Bosscher <steven@gcc.gnu.org>
21201
21202 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
21203 COST_TABLE): Remove.
21204 (estimate_case_costs): Remove.
21205 (expand_case): Do not call estimate_case_costs
21206 to set use_cost_table.
21207 (balance_case_nodes): Do not use use_cost_table.
21208
1ab24192
JH
212092012-04-16 Jan Hubicka <jh@suse.cz>
21210
21211 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
21212 (hash_node, eq_node): Remove.
21213 (cgraph_create_node): Do not handle hashtable.
21214 (cgraph_get_node): Remove.
21215 (cgraph_insert_node_to_hashtable): Remove.
21216 (hash_node_by_assembler_name): Remove.
21217 (eq_assembler_name): Remove.
21218 (cgraph_node_for_asm): Rewrite.
21219 (cgraph_find_replacement_node): Break out from ...
21220 (cgraph_remove_node): ... here; do not maintain hashtables.
21221 (change_decl_assembler_name): Remove.
21222 (cgraph_clone_node): Do not maintain hashtables.
21223 * cgraph.h (const_symtab_node): New typedef.
21224 (cgraph_insert_node_to_hashtable): Remove.
21225 (symtab_get_node, symtab_node_for_asm,
21226 symtab_insert_node_to_hashtable): Declare.
21227 (cgraph_find_replacement_node): Declare.
21228 (cgraph_get_node, varpool_get_node): Turn into inlines.
21229 (cgraph, varpool): Work sanely on NULL pointers.
21230 (FOR_EACH_SYMBOL): New walker.
21231 * ipa-inline-transform.c (save_inline_function_body): Use
21232 symtab_insert_node_to_hashtable.
21233 * symtab.c: Include ggc.h and diagnostics.h
21234 (symtab_hash, assembler_name_hash): New static vars;
21235 (hash_node, eq_node, hash_node_by_assembler_name,
21236 eq_assembler_name, insert_to_assembler_name_hash,
21237 unlink_from_assembler_name_hash): New.
21238 (symtab_register_node): Update hashtables.
21239 (symtab_insert_node_to_hashtable): New.
21240 (symtab_unregister_node): Update hashtables.
21241 (symtab_get_node): New.
21242 (symtab_node_for_asm): New.
21243 (change_decl_assembler_name): New.
21244 * Makefile.in (symtab.o): Needs GTY.
21245 * varpool.c (varpool_hash): Remove.
21246 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
21247 (varpool_node): Rewrite using varpool_get_node.
21248 (varpool_remove_node): DO not maintain hashtables.
49c45e28 21249 (varpool_node_for_asm): Rewrite.
1ab24192 21250
0d63b643
SL
212512012-04-16 Sandra Loosemore <sandra@codesourcery.com>
21252
21253 * doc/invoke.texi: Copy-edit to put verbs in the present tense
21254 when describing the current behavior of GCC.
21255
6b338d0a
RS
212562012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
21257
21258 * genemit.c (gen_exp): Remove ADDRESS handling.
21259 * genoutput.c (scan_operands): Likewise.
21260 * genpeep.c (match_rtx): Likewise.
21261 * genrecog.c (add_to_sequence): Likewise.
21262
a0bc8f9c
DE
212632012-04-16 David Edelsohn <dje.gcc@gmail.com>
21264
49c45e28 21265 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
a0bc8f9c 21266
36e57e16
MJ
212672012-04-16 Martin Jambor <mjambor@suse.cz>
21268
21269 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
21270 bit-fields.
21271
d6cb05db
UW
212722012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
21273
21274 PR target/51819
21275 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
21276 hints for 'A' operand types.
21277
2aae7680
JH
212782012-04-16 Jan Hubicka <jh@suse.cz>
21279
21280 * cgraph.h (symtab_node_base): Add next and previous pointers.
21281 (cgraph_node): Remove next and preivous pointers.
21282 (varpool_node): Likewise; remove next/previous GTY marker;
21283 it is not type safe.
21284 (symtab_node_def): Update GTY marker
21285 (x_cgraph_nodes, cgraph_nodes): Remove.
21286 (symtab_nodes): New function.
21287 (cgraph_order): Rename to ...
21288 (symtab_order): ... this one.
21289 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
21290 Declare.
21291 (x_varpool_nodes, varpool_nodes): Remove.
21292 (FOR_EACH_STATIC_VARIABLE): Update.
21293 (symtab_function_p, symtab_variable_p): New function.
21294 (FOR_EACH_VARIABLE): Update.
21295 (varpool_first_variable, varpool_next_variable): New functions.
21296 (FOR_EACH_VARIABLE): Update.
21297 (cgraph_first_defined_function): Update.
21298 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
21299 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
21300 (cgraph_first_function, cgraph_next_function): New.
21301 (FOR_EACH_FUNCTION): Update.
21302 (cgraph_first_function_with_gimple_body,
21303 cgraph_next_function_with_gimple_body): Update.
21304 * symtab.c: New file.
21305 * cgraph.c: Update copyright dates.
21306 (x_cgraph_nodes, cgraph_order): Remove.
21307 (NEXT_FREE_NODE): Update.
21308 (SET_NEXT_FREE_NODE): New.
21309 (cgraph_create_node_1): Remove common code.
49c45e28 21310 (cgraph_create_node): Remove common code; call symtab_register_node.
2aae7680 21311 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
49c45e28 21312 (cgraph_add_asm_node): Update.
2aae7680
JH
21313 (cgraph_clone_node): Register new node.
21314 * cgraphunit.c (process_function_and_variable_attributes): Update.
21315 (cgraph_analyze_functions): Update.
21316 (cgraph_analyze_functions): Update.
21317 (cgraph_output_in_order): Update.
49c45e28
UB
21318 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
21319 Update.
21320 * ipa-inline.c (recursive_inlining): Update.
21321 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
2aae7680
JH
21322 * ipa.c (cgraph_remove_unreachable_nodes): Update.
21323 * Makefile.in: Add symtab.o
21324 * varpool.c (x_varpool_nodes): Remove
21325 (varpool_node): Remove common code; call symtab_register_node.
49c45e28 21326 (varpool_remove_node): Remove common code; call symtab_unregister_node.
2aae7680 21327
ac9a074c
RG
213282012-04-16 Richard Guenther <rguenther@suse.de>
21329
21330 PR middle-end/52977
21331 * tree.h (VECTOR_CST_NELTS): Adjust.
21332 (struct tree_vector): Add explicit length field.
21333 (make_vector_stat): Declare.
21334 (make_vector): Define.
21335 * tree.c (make_vector_stat): New function.
21336 (build_vector_stat): Use it.
21337 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
21338
fba62120
BS
213392012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21340
21341 PR tree-optimization/52976
21342 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
21343 (undistribute_ops_list): Ops with repeat counts aren't eligible for
21344 undistribution.
21345 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
21346
65c70e6b
JH
213472012-04-16 Jan Hubicka <jh@suse.cz>
21348
21349 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
21350 New macros.
21351 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
21352 walkers to walk cgraph and varpool.
21353 * cgraph.c (cgraph_node_for_asm): Likewise.
21354 (dump_cgraph): Likewise.
21355 * value-prof.c (init_node_map): Likewise.
21356 * tree.c (free_lang_data_in_cgraph): Likewise.
21357 * tree-emutls.c: (ipa_lower_emutls): Likewise.
21358 * ipa-reference.c (generate_summary, propagate): Likewise.
21359 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
21360 cgraph_mark_functions_to_output, cgraph_output_in_order,
21361 output_weakrefs, cgraph_materialize_all_clones,
21362 cgraph_optimize): Likewise.
21363 * lto-cgraph.c (merge_profile_summaries): Likewise.
21364 (input_cgraph): Likewise.
21365 * ipa-pure-const.c (generate_summary): Likewise.
21366 (propagate): Likwise.
21367 * ipa-utils.c (ipa_reduced_postorder): Likewise.
21368 (ipa_free_postorder_info): Likewise.
21369 (ipa_reverse_postorder): Likewise.
21370 * ipa-inline.c (ipa_inline): Likewise.
21371 * matrix-reorg.c (find_matrices_decl): Likewise.
21372 (matrix_reorg): Likewise.
21373 * tree-vectorizer.c (increase_alignment): Likewise.
21374 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
21375 (function_and_variable_visibility): Likewise.
21376 (whole_program_function_and_variable_visibility): Likewise.
21377 (ipa_cdtor_merge): Likewise.
21378 * trans-mem.c (ipa_tm_execute): Likewise.
21379 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
21380 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
21381 (ipa_print_all_params): Likewise.
21382 (ipa_update_after_lto_read): Likewise.
21383 * tree-profie.c (tree_profiling): Likewise.
21384 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
21385 * passes.c (dump_passes): Likewise.
21386 (do_per_function): Likewise.
21387 (ipa_write_summaries): Likewise.
21388 * varpool.c (dump_varpool): Likewise.
21389 (varpool_node_for_asm): Likewise.
21390 (varpool_assemble_pending_decls): Likewise.
21391
8b7db259
RG
213922012-04-16 Richard Guenther <rguenther@suse.de>
21393
21394 PR tree-optimization/52975
21395 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
21396 condition but always mark it with TRUTH_NOT_EXPR.
6c381d9d 21397
2515d916
RG
213982012-04-16 Richard Guenther <rguenther@suse.de>
21399
21400 PR tree-optimization/52975
21401 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
21402 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
21403 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
21404 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
21405
8861ba4d
UB
214062012-04-14 Uros Bizjak <ubizjak@gmail.com>
21407
21408 * config/i386/sse.md (ssse3_plusminus): New code iterator.
21409 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
21410 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
21411 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
21412 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
21413 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
21414 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
21415
21416 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
21417 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
21418 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
21419 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
21420 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
21421 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
21422
21423 (xop_plus): New code iterator.
21424 (macs): New code attribute.
21425 (macds): Ditto.
21426 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
21427 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
21428 iterator.
21429 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
21430 xop_plus code iterator.
21431 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
21432 xop_plus code iterator.
21433 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
21434 xop_plus code iterator.
21435 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
21436 xop_plus code iterator.
21437
21438 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
21439 any_extend code iterator.
21440 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
21441 any_extend code iterator.
21442 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
21443 any_extend code iterator.
21444 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
21445 any_extend code iterator.
21446 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
21447 any_extend code iterator.
21448 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
21449 any_extend code iterator.
21450
03fbe718
TV
214512012-04-14 Tom de Vries <tom@codesourcery.com>
21452
21453 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
21454 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
21455 DELETED_LABEL note, and move it to ...
21456 * cfgrtl.c (delete_insn): ... here. Change return type to void.
21457 (delete_insn_and_edges): Likewise.
21458 (delete_insn_chain): Handle new return type of delete_insn. Delete
21459 chain backwards rather than forwards.
21460 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
21461 void.
21462 * cfglayout.c (fixup_reorder_chain): Delete unused label.
21463
960bfb69
JH
214642012-04-14 Jan Hubicka <jh@suse.cz>
21465
21466 * cgraph.h: Update copyrights;
21467 (symtab_node): Turn to union typedef.
21468 (symtab_node_base): New structure.
21469 (symtab_type): Add SYMTAB_SYMBOL tag.
21470 (cgraph_node): Annotate some pinters with nested_ptr.
21471 (varpool_node): Likewise.
21472 (cgraph_local_info): Remove lto_file_data
21473 and externally_visible.
21474 (cgraph_node): Remove decl; same_comdat_group list;
21475 aux; ref_list; order; address_taken; reachable_from_other_parittion,
21476 in_other_partition; resolution.
21477 (varpool_node): Remove decl; same_comdat_group;
21478 ref_list; lto_file_data; aux; order; resolution; externally_visible;
21479 used_from_other_partition; in_other_partition.
49c45e28 21480 (symtab_node_def): New union.
960bfb69
JH
21481 (cgraph, varpool): Update.
21482 (varpool_first_static_initializer, varpool_next_static_initializer,
21483 cgraph_only_called_directly_or_aliased_p,
21484 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
21485 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
21486 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
21487 field references.
21488 * cgraph.c: Likewise.
21489 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
21490 * cgraphbuild.c: Likewise.
21491 * lto-symtab.c: Likewise.
21492 * c-gimplify.c: Likewise.
21493 * value-prof.c: Likewise.
21494 * tree.c: Likewise.
21495 * ipa-cp.c: Likewise.
21496 * tree-emutls.c: Likewise.
21497 * ipa-inline-transform.c: Likwise.
21498 * ipa-reference.c: Likewise.
21499 * cgraphunit.c: Likewise.
21500 * ipa-ref.c: Likewise.
21501 * lto-cgraph.c: Likewise.
21502 * ipa-ref-inline.h: Likewise.
21503 * ipa-pure-const.c: Likewise.
21504 * lto-streamer-out.c: Likewise.
21505 * ipa-utils.c: Likewise.
21506 * ipa-inline.c: Likewise.
21507 * matrix-reorg.c: Likewise.
21508 * tree-eh.c: Likewise.
21509 * tree-vectorizer.c: Likewise.
21510 * ipa-split.c: Likewise.
21511 * ipa.c: Likewise.
21512 * trans-mem.c: Likewise.
21513 * ipa-inline-analysis.c: Likewise.
21514 * gimplify.c: Likewise.
21515 * cfgexpand.c: Likewise.
21516 * tree-sra.c: Likewise.
21517 * ipa-prop.c: Likewise.
21518 * varasm.c: Likewise.
21519 * tree-nested.c: Likewise.
21520 * tree-inline.c: Likewise.
21521 * tree-profile.c: Likewise.
21522 * tree-ssa-structalias.c: Likewise.
21523 * passes.c: Likewise.
21524 * varpool.c: Likewise.
21525
b2b2f160
TV
215262012-04-14 Tom de Vries <tom@codesourcery.com>
21527
21528 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
21529 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
21530 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
21531 of find_edge.
21532 (gsi_advance_fw_nondebug_nonlocal): New function.
21533 (local_def): Removed function.
21534 (same_succ_hash): Use stmt_local_def.
21535 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
21536 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
21537
6573c644
L
215382012-04-13 H.J. Lu <hongjiu.lu@intel.com>
21539
21540 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
21541 and __ILP32__ for x32.
21542
8e8483e6
MJ
215432012-04-13 Martin Jambor <mjambor@suse.cz>
21544
21545 PR middle-end/52939
21546 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
21547 fold_ctor_reference returns a zero constant.
21548
70a69509
EI
215492012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
21550
21551 * config.gcc: Add i386/gnu-user-common.h before all
21552 i386/gnu-user.h and i386/gnu-user64.h usages.
21553
21554 * config/i386/gnu-user-common.h: New.
21555
21556 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
21557 (CC1_SPEC): Likewise.
21558 (ENDFILE_SPEC): Likewise.
21559 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
21560 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
21561 (TARGET_OS_CPP_BUILTINS): Likewise.
21562 (LIBGCC2_HAS_TF_MODE): Likewise.
21563 (LIBGCC2_TF_CEXT): Likewise.
21564 (TF_SIZE): Likewise.
21565 (TARGET_ASM_FILE_END): Likewise.
21566 (STACK_CHECK_MOVING_SP): Likewise.
21567 (STACK_CHECK_STATIC_BUILTIN): Likewise.
21568 * config/i386/gnu-user64.h: Likewise.
21569
65dc645a
MJ
215702012-04-13 Martin Jambor <mjambor@suse.cz>
21571
21572 * expr.c (expand_expr_real_1): Pass type, not the expression, to
21573 set_mem_attributes for a memory temporary. Do not call the function
21574 for the memory temporary created for a bitfield.
21575
1adbb361
AO
215762012-04-13 Alexandre Oliva <aoliva@redhat.com>
21577
21578 PR debug/48866
21579 * df.h (enum debug_temp_where): New.
21580 (dead_debug_init, dead_debug_finish) Declare.
21581 (dead_debug_add, dead_debug_insert_temp): Declare.
21582 (struct dead_debug_use, struct dead_debug): Moved from...
21583 * df-problems.c: ... here.
21584 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
21585 to a debug temp.
21586 (df_create_unused_note): Likewise.
21587 (df_set_dead_notes_for_mw): Move comment where it belongs.
21588 (dead_debug_init): Export.
21589 (dead_debug_reset_uses): New, factored out of...
21590 (dead_debug_finish): ...this. Export.
21591 (dead_debug_reset): Remove.
21592 (dead_debug_add): Export.
21593 (dead_debug_insert_before): Rename to...
21594 (dead_debug_insert_temp): ... this. Add where argument. Export.
21595 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
21596 Return insertion count.
21597 (df_note_bb_compute): Adjust.
21598 * dce.c (word_dce_process_block): Adjust dead debug uses.
21599 (dce_process_block): Likewise.
21600
6ae1d471
AO
216012012-04-13 Alexandre Oliva <aoliva@redhat.com>
21602
21603 * df-problems.c (df_note_bb_compute): Do not take note of
21604 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
21605
6a184afa
AO
216062012-04-13 Alexandre Oliva <aoliva@redhat.com>
21607
21608 PR debug/51570
21609 * var-tracking.c (expand_depth): New type.
21610 (onepart_aux, expand_loc_callback_data): Change depth type to it.
21611 (loc_exp_dep_alloc): Adjust initializer.
21612 (update_depth): Use new type. Add entryvals.
21613 (vt_expand_var_loc_chain): Take note of expansions with
21614 ENTRY_VALUEs, but don't accept them right away. Run an optional
21615 second pass accepting the minimum ENTRY_VALUE count found in the
21616 first pass.
21617 (vt_expand_loc_callback, INIT_ELCD): Adjust.
21618
46301137
TV
216192012-04-13 Tom de Vries <tom@codesourcery.com>
21620
21621 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
21622 parameters vuse and vuse_escaped.
21623 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
21624 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
21625 vuse1 != vuse2.
21626
95df37bf
RG
216272012-04-13 Richard Guenther <rguenther@suse.de>
21628
21629 PR tree-optimization/52969
21630 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
21631 the condition for the COND_EXPR and handle predicate negation
21632 by swapping the COND_EXPR arms.
21633
7911cc9e
NC
216342012-04-13 Nick Clifton <nickc@redhat.com>
21635
21636 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
21637 TODO_dump_func flag.
21638
d66b8f4b
AB
216392012-04-13 Andrey Belevantsev <abel@ispras.ru>
21640
21641 PR rtl-optimization/52203
21642 PR rtl-optimization/52715
21643
21644 Revert the 2012-03-07 fix for PR 52203.
21645 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
21646 the insn does not modify DFA right before issuing, adjust
21647 issue_rate accordingly.
21648
1e867b22
RG
216492012-04-13 Richard Guenther <rguenther@suse.de>
21650
21651 PR c/52549
21652 * c-typeck.c (pointer_diff): Remove bogus assert.
21653
09c2b6d0
RG
216542012-04-13 Richard Guenther <rguenther@suse.de>
21655
21656 PR c/52862
8861ba4d 21657 * convert.c (convert_to_pointer): Remove special-casing of zero.
09c2b6d0 21658
572a49c8
JY
216592012-04-13 Joey Ye <joey.ye@arm.com>
21660
21661 * config/arm/constraints.md (Pe): New constraint.
21662 * config/arm/arm.md: New split for imm 256-510.
21663
50f75124
TG
216642012-04-13 Terry Guo <terry.guo@arm.com>
21665
21666 * config/arm/arm-cores.def: Added core cortex-m0plus.
21667 * config/arm/arm-tune.md: Regenerated.
21668 * config/arm/arm-tables.opt: Regenerated.
21669 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
21670
e8e029df
AM
216712012-04-13 Alan Modra <amodra@gmail.com>
21672
21673 PR target/52828
21674 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
21675 tie regs on destination of sets. Delete forward declaration.
21676 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
21677 (rs6000_emit_prologue): Likewise.
21678 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
21679 and gen_stack_tie.
21680 (is_mem_ref): Use tie_operand to recognise stack ties.
21681 * config/rs6000/predicates.md (tie_operand): New.
21682 * config/rs6000/rs6000.md (restore_stack_block): Generate new
21683 stack tie rtl.
21684 (restore_stack_nonlocal): Likewise.
21685 (stack_tie): Update.
21686 (frame_tie): Delete.
21687
1ede5f2c
BS
216882012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21689
21690 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
21691 HOST_WIDE_INT_PRINT_DEC in format strings.
21692
2ff5ea2d
UB
216932012-04-12 Uros Bizjak <ubizjak@gmail.com>
21694
21695 PR target/52932
21696 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
21697 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
21698 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
21699 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
21700 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
21701 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
21702 avx2_permvarv8si using VI4F_256 mode iterator.
21703 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
21704 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
21705 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
21706 gen_avx2_permvarv8sf.
21707 (expand_vec_perm_pshufb): Ditto.
21708
c3f8384f
MM
217092012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
21710
21711 PR target/52775
21712 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
21713 the list of options to enable the FCFID instruction.
21714 (TARGET_EXTRA_BUILTINS): Adjust comment.
21715
a6f8851e
BS
217162012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21717
21718 PR tree-optimization/18589
21719 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
21720 (operand_entry): Add count field.
21721 (add_repeat_to_ops_vec): New function.
21722 (completely_remove_stmt): Likewise.
21723 (remove_def_if_absorbed_call): Likewise.
21724 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
21725 (acceptable_pow_call): New function.
21726 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
21727 entries with repeat counts when found.
21728 (repeat_factor_d): New struct and associated typedefs.
21729 (repeat_factor_vec): New static vector variable.
21730 (compare_repeat_factors): New function.
21731 (get_reassoc_pow_ssa_name): Likewise.
21732 (attempt_builtin_powi): Likewise.
21733 (reassociate_bb): Call attempt_builtin_powi.
21734 (fini_reassoc): Two new calls to statistics_counter_event.
21735
452aa9c5
RG
217362012-04-12 Richard Guenther <rguenther@suse.de>
21737
21738 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
21739 * cgraph.h (tree_rest_of_compilation): Remove.
21740 * cgraph.c (cgraph_add_new_function): Move ...
21741 * cgraphunit.c (cgraph_add_new_function): ... here.
21742 (tree_rest_of_compilation): Make static.
21743 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
21744 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
21745 gate_all_early_local_passes, execute_all_early_local_passes,
21746 pass_early_local_passes, gate_all_early_optimizations,
21747 pass_all_early_optimizations): Move ...
21748 * passes.c (gate_all_optimizations, pass_all_optimizations,
21749 gate_all_early_local_passes, execute_all_early_local_passes,
21750 pass_early_local_passes, gate_all_early_optimizations,
21751 pass_all_early_optimizations): ... here.
21752 * tree-optimize.c (execute_free_datastructures): Remove.
21753 * tree-flow.h (execute_free_datastructures): Remove.
21754 * tree-optimize.c (execute_init_datastructures,
21755 pass_init_datastructures): Move ...
21756 * tree-ssa.c (execute_init_datastructures,
21757 pass_init_datastructures): ... here.
21758 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
21759 execute_free_datastructures.
21760
acf41a74
BS
217612012-04-12 Bernd Schmidt <bernds@codesourcery.com>
21762
21763 * dbgcnt.def (ira_move): New counter.
21764 * ira-int.h (ira_create_new_reg): Declare function.
21765 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
21766 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
21767 no longer static. All callers changed.
21768 * ira.c: Include "dbgcnt.h".
21769 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
21770 move_unallocated_pseudos): New static functions.
21771 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
21772 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
21773 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
21774 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
21775 to the pseudos generated in find_moveable_pseudos.
21776 * Makefile.in (ira.o): Add $(DBGCNT_H).
21777
5f1fab58
RG
217782012-04-12 Richard Guenther <rguenther@suse.de>
21779
21780 PR tree-optimization/52943
21781 * tree-chrec.h (chrec_is_positive): Remove.
21782 * tree-scalar-evolution.c (chrec_is_positive): Move ...
21783 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
21784 Return false for a constant zero instead of negative.
21785 (analyze_siv_subscript_cst_affine): Handle zero difference
21786 in the initial condition explicitely.
21787
e5b332cd
RG
217882012-04-12 Richard Guenther <rguenther@suse.de>
21789
21790 * tree-parloops.c (parallelize_loops): Also consult the upper
21791 bound for the number of iterations.
21792 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
21793 (loop_prefetch_arrays): Likewise.
21794
652c4c71
RG
217952012-04-12 Richard Guenther <rguenther@suse.de>
21796
21797 * cfgloop.h (estimated_loop_iterations_int): Ditch
21798 'conservative' parameter.
21799 (max_stmt_executions_int): Likewise.
21800 (estimated_loop_iterations): Likewise.
21801 (max_stmt_executions): Likewise.
21802 (max_loop_iterations): Declare.
21803 (max_loop_iterations_int): Likewise.
21804 (estimated_stmt_executions): Likewise.
21805 (estimated_stmt_executions_int): Likewise.
21806 * tree-ssa-loop-niter.c (estimated_loop_iterations):
21807 Split parts to ...
21808 (max_loop_iterations): ... this.
21809 (estimated_loop_iterations_int): Split parts to ...
21810 (max_loop_iterations_int): ... this.
21811 (max_stmt_executions_int): Split parts to ...
21812 (estimated_stmt_executions_int): ... this.
21813 (max_stmt_executions): Split parts to ...
21814 (estimated_stmt_executions): ... this.
21815 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
21816 * predict.c (predict_loops): Likewise.
21817 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
21818 (analyze_siv_subscript_cst_affine): Likewise.
21819 (compute_overlap_steps_for_affine_1_2): Likewise.
21820 (analyze_subscript_affine_affine): Likewise.
21821 (init_omega_for_ddr_1): Likewise.
21822 * tree-parloops.c (parallelize_loops): Likewise.
21823 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
21824 (may_eliminate_iv): Likewise.
21825 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
21826 (loop_prefetch_arrays): Likewise.
21827 * tree-vrp.c (adjust_range_with_scev): Likewise.
21828
23d0939b
OE
218292012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
21830
21831 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
21832 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
21833 Fix line width.
21834 (dump_table): Use bool type for need_align and have_df variables.
21835 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
21836 (regs_used): Remove register modifier.
21837 (barrier_align): Move variables slot, credit, jump_to_next
21838 into if block above for loop. Use bool type for jump_to_next.
21839 (sh_function_arg): Use NULL_RTX instead of 0.
21840
dee16055
AS
218412012-04-11 Andreas Schwab <schwab@linux-m68k.org>
21842
21843 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
21844 (bswapsi2): New expander.
21845
98bf0377
L
218462012-04-11 H.J. Lu <hongjiu.lu@intel.com>
21847
21848 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
21849 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
21850
de6f3f7a
L
218512012-04-11 H.J. Lu <hongjiu.lu@intel.com>
21852
21853 PR rtl-optimization/52876
21854 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
27dd0a95 21855 Don't call mark_reg_pointer for incompatible pointer sign extension.
de6f3f7a 21856
dee16055 21857 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
de6f3f7a
L
21858 directly.
21859
d3ea1dbd
BS
218602012-04-11 Bernd Schmidt <bernds@codesourcery.com>
21861
21862 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
21863 comparisons against TYPE_PRECISION.
21864 * tree-ssa-forwprop.c (combine_conversions): Likewise.
21865
c634f4ba
XDL
218662012-04-11 Xinliang David Li <davidxl@google.com>
21867
21868 * tree-passes.h: Remove TODO_dump_func.
21869 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
21870 * trans-mem.c: Remove TODO_dump_func.
21871 * ira.c: Remove TODO_dump_func.
21872
ed6205b7
L
218732012-04-11 H.J. Lu <hongjiu.lu@intel.com>
21874
21875 * config/i386/i386.c (ix86_option_override_internal): Check
21876 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
21877 after TARGET_64BIT is updated.
21878
a1fa0e6c
OE
218792012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
21880
21881 * config/sh/sh.h: Remove old secondary reload code.
21882
e6b8b8c7
OE
218832012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
21884
21885 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
21886 (ready_reorder): ... this function.
21887
7861732f
BS
218882012-04-11 Bernd Schmidt <bernds@codesourcery.com>
21889
21890 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
21891 sched_init calls.
21892
05641603
BS
21893 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
21894 insns so that no other insn is queued for a time before them.
21895
0c51653d
BS
21896 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
21897 unknown.
21898
754870ed
RG
218992012-04-11 Richard Guenther <rguenther@suse.de>
21900
21901 PR middle-end/52621
21902 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
21903 consider loop nesting.
21904 (evolution_function_is_univariate_p): Properly check the remainder
21905 for chrecs.
21906
405af656
RG
219072012-04-11 Richard Guenther <rguenther@suse.de>
21908
21909 PR middle-end/52918
2ff5ea2d 21910 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
405af656 21911
cf5025b6
NC
219122012-04-11 Nick Clifton <nickc@redhat.com>
21913
21914 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
21915 information, if requested.
21916
84e60183
NC
21917 * config/rx/rx.c (rx_expand_prologue): Likewise.
21918
7bc14a04
PB
219192012-04-11 Peter Bergner <bergner@vnet.ibm.com>
21920 Michael Matz <matz@suse.de>
21921
21922 PR target/16458
21923 * rtlanal.c (unsigned_reg_p): New function.
21924 Update copyright notice dates.
21925 * rtl.h (unsigned_reg_p): Prototype it.
21926 Update copyright notice dates.
21927 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
21928 Update comment.
21929 * expr.c (expand_expr_real_1): Set register attributes.
21930 * stmt.c (expand_case): Likewise.
21931
8c2a3f3b
OE
219322012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
21933
21934 PR target/50751
21935 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
21936 consider_sh2a and allow_zero.
21937 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
21938 (disp_addr_displacement): New function.
21939 (sh_address_cost): Use disp_addr_displacement function instead
21940 of DISP_ADDR_OFFSET.
21941 (sh_legitimate_address_p): Adapt to changed
21942 sh_legitimate_index_p declaration.
21943 (sh_find_mov_disp_adjust): Remove HImode check.
21944 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
21945 disp_addr_displacement and max_mov_insn_displacement.
21946 (max_mov_insn_displacement): Remove HImode check.
cf5025b6 21947 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
8c2a3f3b
OE
21948 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
21949 * config/sh/constraints.md (K05, K13): New constraints.
21950 (K12): Correct comment.
21951 (Sdd): Do not use DISP_ADDR_P macro.
21952 (Snd, Sbw): Use satisfies_constraint_Sdd.
21953 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
21954 (*extendhisi2_compact, movhi_i): Remove.
21955 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
21956 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
21957 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
21958 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
21959 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
21960 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
21961 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
21962 CONST_OK_FOR_Kxx.
21963 Add new peepholes for HImode displacement addressing.
21964
32ed5fcc
OE
219652012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
21966
21967 * config/sh/sh.h (SIDI_OFF): Remove.
21968 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
21969 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
21970 or operand_subword.
21971
ac868f29
EB
219722012-04-11 Eric Botcazou <ebotcazou@adacore.com>
21973
21974 PR target/52624
21975 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
21976 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
21977 * doc/md.texi (Standard Names): Add bswap.
21978 * builtin-types.def (BT_UINT16): New primitive type.
21979 (BT_FN_UINT16_UINT16): New function type.
21980 * builtins.def (BUILT_IN_BSWAP16): New.
21981 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
21982 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
21983 expand_builtin_bswap.
21984 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
21985 (fold_builtin_1): Likewise.
21986 (is_inexpensive_builtin): Likewise.
21987 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
21988 missing bits for bswap to libcall code.
21989 * tree.c (build_common_tree_nodes): Build uint16_type_node.
21990 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
21991 (uint16_type_node): New define.
21992 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
21993 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
21994 above builtin.
21995 (rs6000_init_builtins): Likewise.
21996 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
21997
ada37101
TG
219982012-04-11 Tristan Gingold <gingold@adacore.com>
21999
22000 * doc/extend.texi (Type Attributes): Move paragraph.
22001
9fec0042
MLI
220022012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
22003
22004 PR 24985
dee16055 22005 * diagnostic.h (show_caret): Declare.
9fec0042
MLI
22006 (caret_max_width): Declare.
22007 (diagnostic_show_locus): Declare.
dee16055
AS
22008 * diagnostic.c (diagnostic_initialize): Initialize to false.
22009 (diagnostic_show_locus): New.
22010 (diagnostic_report_diagnostic): Call it.
9fec0042
MLI
22011 (getenv_columns): New.
22012 (adjust_line): New.
22013 (diagnostic_set_caret_max_width): New.
dee16055 22014 * input.c (read_line): New.
9fec0042 22015 (location_get_source_line): New.
dee16055
AS
22016 * input.h (location_get_source_line): Declare.
22017 * toplev.c (general_init): Initialize show_caret from options.
22018 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
22019 * opts.c (common_handle_option): Likewise.
9fec0042
MLI
22020 * pretty-print.h (pp_get_prefix): New.
22021 (pp_base_get_prefix): New.
dee16055 22022 * common.opt (fdiagnostics-show-caret): New option.
9fec0042
MLI
22023 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
22024
13a7578b
RG
220252012-04-11 Richard Guenther <rguenther@suse.de>
22026
22027 PR rtl-optimization/52881
22028 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
22029
12df9a2f
RG
220302012-04-11 Richard Guenther <rguenther@suse.de>
22031
22032 PR tree-optimization/52912
22033 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
22034 manipulation code we are threading through a loop header
22035 to an exit destination.
22036
fd4116f4
MLI
220372012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
22038
22039 * tree.h (warn_if_unused_value): Move declaration from here.
22040 * stmt.c (warn_if_unused_value): Move definition from here.
22041
8ca92d04 220422012-04-10 Michael Matz <matz@suse.de>
0d0293ac
MM
22043
22044 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
22045 grouped_stores.
22046 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
22047 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
22048 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
22049 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
22050 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
22051 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
22052 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
22053 (vect_record_strided_load_vectors): Rename to
22054 vect_record_grouped_load_vectors.
22055 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
22056 Rename use of above macros.
22057 (vect_verify_datarefs_alignment): Ditto.
22058 (vector_alignment_reachable_p): Ditto.
22059 (vect_peeling_hash_get_lowest_cost): Ditto.
22060 (vect_enhance_data_refs_alignment): Ditto.
22061 (vect_analyze_group_access): Ditto and rename stride to groupsize.
22062 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
22063 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
22064 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
22065 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
22066 (vect_record_strided_load_vectors): Rename to
22067 vect_record_grouped_load_vectors.
22068 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
22069 (destroy_loop_vec_info): Ditto.
22070 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
22071 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
22072 (vect_analyze_slp): Ditto.
22073 (new_bb_vec_info): Ditto.
22074 (destroy_bb_vec_info): Ditto.
22075 (vect_schedule_slp_instance): Ditto and rename strided_store to
22076 grouped_store.
22077 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
22078 vect_cost_group_size.
22079 (vect_model_store_cost): Rename use of above macros and call
22080 to vect_cost_strided_group_size.
22081 (vect_model_load_cost): Ditto.
22082 (vectorizable_store): Ditto, rename strided_store to grouped_store
22083 and calls to renamed tree-vectorizer.h functions.
22084 (vectorizable_load): Ditto.
22085 (vect_transform_stmt): Rename use of above macros and strided_store
22086 to grouped_store.
22087
1f00098b
JH
220882012-04-10 Jan Hubicka <jh@suse.cz>
22089
22090 * cgraph.h: Remove misledaing comment on ipa-ref.h.
22091 (symtab_type): New enum.
22092 (symtab_node): New structure.
22093 (cgraph_node, varpool_node): Add symbol base type.
22094 (cgraph, varpool): New accestor functions.
22095 * cgraph.c (cgraph_create_node_1): Set symbol type.
22096 * varpool.c (varpool_node): Set symbol type.
22097
ca18edc5
UW
220982012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
22099 Richard Sandiford <rdsandiford@googlemail.com>
22100
22101 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
22102
e30459d5
RG
221032012-04-10 Richard Guenther <rguenther@suse.de>
22104
22105 PR middle-end/52888
22106 * gimple-low.c (gimple_check_call_args): Properly account for
22107 compatible aggregate types.
22108
0878843f
RG
221092012-04-10 Richard Guenther <rguenther@suse.de>
22110
22111 * toplev.h (tree_rest_of_compilation): Remove.
22112 * tree-optimize.c (tree_rest_of_compilation): Likewise.
22113 * cgraph.h (tree_rest_of_compilation): Declare.
22114 * tree-optimize.c (tree_rest_of_compilation): Move ...
22115 * cgraphunit.c (tree_rest_of_compilation): ... here.
22116 * cgraph.c (cgraph_add_new_function): Adjust.
22117 * Makefile.in (tree-optimize.o): Adjust.
22118 (cgraphunit.o): Likewise.
22119
c0d942d2
UW
221202012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
22121
22122 PR tree-optimization/52870
22123 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
22124 presumed pattern statement is within the same loop or basic block.
22125
5973ae1a
TG
221262012-04-10 Tristan Gingold <gingold@adacore.com>
22127
22128 * gengtype.c (main): Make uintptr_t a known type.
22129
26eb69c6
RG
221302012-04-10 Richard Guenther <rguenther@suse.de>
22131
22132 * tree-pass.h (tree_lowering_passes): Remove.
22133 * tree-optimize.c (tree_lowering_passes): Remove.
22134 * cgraph.c (cgraph_add_new_function): Inline relevant parts
2ff5ea2d 22135 of tree_lowering_passes, avoid redundant call of early local passes.
26eb69c6
RG
22136 * cgraphunit.c (cgraph_lower_function): Fold into ...
22137 (cgraph_analyze_function): ... its single caller. Inline
22138 relevant parts of tree_lowering_passes.
22139
3271a0c0
L
221402012-04-09 H.J. Lu <hongjiu.lu@intel.com>
22141
22142 PR other/52777
22143 * config/pa/pa.opt: Remove SIO and GNU_LD.
22144
3c56b037
JH
221452012-04-09 Jan Hubicka <jh@suse.cz>
22146
22147 PR lto/52722
22148 PR lto/51765
dee16055 22149 PR lto/52634
2ff5ea2d
UB
22150 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
22151 boundary, add its target too.
3c56b037
JH
22152 * lto.c (add_references_to_partition): Add also aliased nodes.
22153 (add_cgraph_node_to_partition,
22154 add_varpool_node_to_partition): Work on nodes, not functions/variables;
22155 when adding alias, add also the aliased object.
22156
3cb2b15b
UB
221572012-04-09 Uros Bizjak <ubizjak@gmail.com>
22158
22159 PR target/52883
22160 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
22161 VOIDmode immediate operands.
22162 * config/i386/constraints.md (Wz): New constraint.
22163 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
22164
5ff5b41c
EB
221652012-04-09 Eric Botcazou <ebotcazou@adacore.com>
22166
22167 PR target/52717
22168 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
22169 the DECL generated for the special GOT helper.
22170
7df2d73c
OE
221712012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
22172
22173 * config/sh/constraints.md: Update list of constraints in
22174 comment block.
22175 (Sr0): Remove unused memory constraint.
22176
8772bd54
MLI
221772012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
22178
22179 * tree-pretty-print.h: Update comment.
22180
6b45f126
OE
221812012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
22182
4f3dfa27
OE
22183 * config/sh/sh.md: Use braced string notation where applicable.
22184 (*prefetch_i4, prefetch_m2a): Merge into ...
6b45f126
OE
22185 (*prefetch): ... this new insn.
22186
fae61228
OE
221872012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
22188
22189 * config/sh/sh.h (high_life_started): Remove
22190 * config/sh/predicates.md (general_movdst_operand): Use
22191 'reload_in_progress' instead of 'high_life_started'.
22192 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
22193 divsi_inv_fp): Likewise.
22194
2ef6611e
OE
221952012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
22196
22197 * config/sh/sh-protos.h (prepare_move_operands): Return void
22198 instead of int.
22199 * config/sh/sh.c (prepare_move_operands): Likewise.
22200 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
22201
df4f5d5f
OE
222022012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
22203
22204 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
22205 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
22206 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
22207 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
22208 commutative_float_operator, noncommutative_float_operator,
22209 sh_handle_pragma): Remove.
22210
f2dcf9b8
SL
222112012-04-06 Sandra Loosemore <sandra@codesourcery.com>
22212
22213 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
22214 Use @option markup on command-line options. Use @samp markup on
22215 literal keywords to options. Use @code markup on code fragments.
22216 Use other markup in preference to quotation marks in the text.
22217 Add markup to some passages without any.
22218
d25c4172
MS
222192012-04-06 Mike Stump <mikestump@comcast.net>
22220
22221 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
22222
bdb7ddcc
OE
222232012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
22224
22225 * config/sh/sh.c (hi_const): Remove.
22226 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
22227 of hi_const.
22228
10c17a58
OE
222292012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
22230
22231 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
22232 to bool.
22233 * config/sh/sh.c (sh_expand_t_scc): Likewise.
22234 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
22235 calling sh_expand_t_scc.
22236
aaf701c5
OE
222372012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
22238
22239 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
22240 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
22241 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
22242 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
22243 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
22244 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
22245 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
22246 sh2a_is_function_vector_call): Use bool as return type.
22247 (sh_pass_in_reg_p): Remove.
22248 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
22249 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
22250 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
22251 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
22252 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
22253 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
22254 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
3cb2b15b 22255 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
aaf701c5
OE
22256 sh_loads_bankedreg_p): Use bool as return type.
22257 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
22258 'register' modifier.
22259
3805a93e
MT
222602012-04-06 Matt Turner <mattst88@gmail.com>
22261
22262 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
22263
22be5918
EB
222642012-04-06 Eric Botcazou <ebotcazou@adacore.com>
22265
22266 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
22267 of the destination isn't also a FP_REGS register.
22268
7b38ee83
TJ
222692012-04-05 Teresa Johnson <tejohnson@google.com>
22270 H.J. Lu <hongjiu.lu@intel.com>
22271
2ff5ea2d 22272 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
7b38ee83
TJ
22273 * config/i386/i386.md (move immediate to memory peephole2):
22274 Add cases for HImode move when LCP stall avoidance is needed.
22275 * config/i386/i386.c (initial_ix86_tune_features): Initialize
22276 X86_TUNE_LCP_STALL entry.
22277
4bdd6fa6
UB
222782012-04-05 Uros Bizjak <ubizjak@gmail.com>
22279
22280 PR target/52882
22281 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
22282 CONST_INT operands, zero-extended with AND.
22283
9b9ad23f
OE
222842012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
22285
22286 PR target/50751
22287 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
22288 first argument instead of mode size. Move displacement calculations
22289 to ...
4bdd6fa6 22290 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
9b9ad23f
OE
22291 ... these new functions.
22292 (disp_adjust): Remove max_mov_disp field.
22293 (sh_legitimate_index_p): Use max_mov_insn_displacement and
22294 mov_insn_alignment_mask.
22295 (sh_address_cost): Use max_mov_insn_displacement.
22296
14f986ed
AS
222972012-04-05 Andrew Stubbs <ams@codesourcery.com>
22298
22299 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
22300 (arch_enabled): Handle new arch types.
22301 (one_cmpldi2): Add NEON support.
22302
216820a4
RG
223032012-04-05 Richard Guenther <rguenther@suse.de>
22304
22305 * gimple.c (walk_gimple_op): Compute val_only for the LHS
22306 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
22307 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
22308 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
22309 ... here and make static.
22310 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
22311 Remove.
22312
eaf6ca18
RG
223132012-04-05 Richard Guenther <rguenther@suse.de>
22314
22315 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
22316 basic-block before removing it.
22317
14f60a5a
RG
223182012-04-05 Richard Guenther <rguenther@suse.de>
22319
22320 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
22321 version namespace as we release the freelist.
22322
3d3f2249
RG
223232012-04-05 Richard Guenther <rguenther@suse.de>
22324
22325 * tree-nrv.c (tree_nrv): Release VDEFs.
22326 * tree-sra.c (sra_modify_constructor_assign): Likewise.
22327 (sra_modify_assign): Likewise.
22328 * tree-vect-stmts.c (vect_remove_stores): Likewise.
22329 * tree-vect-loop.c (vect_transform_loop): Likewise.
22330 * tree-ssa-dom.c (optimize_stmt): Likewise.
22331 * tree-vect-slp.c (vect_schedule_slp): Likewise.
22332 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
22333
b5b3ec3e
RG
223342012-04-05 Richard Guenther <rguenther@suse.de>
22335
22336 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
22337 cleanup.
22338 * gimple.h (gsi_remove): Adjust.
22339 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
22340 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
22341 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
22342 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
22343 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
22344 * tree-ssa-pre.c (eliminate): Likewise.
22345
929e10f4
MS
223462012-04-04 Mike Stump <mikestump@comcast.net>
22347
22348 * doc/rtl.texi (const_double): Document as sign-extending.
2ff5ea2d 22349 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
929e10f4
MS
22350 * emit-rtl.c (immed_double_int_const): Refine to state the
22351 value is signed.
22352 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
22353 CONST_DOUBLE integers.
22354 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
22355 negative values are converted. Fix conversions bigger than
22356 HOST_BITS_PER_WIDE_INT.
2ff5ea2d 22357 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
929e10f4
MS
22358 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
22359 * explow.c (plus_constant_mode): Add.
22360 (plus_constant): Implement with plus_constant_mode.
22361 * rtl.h (plus_constant_mode): Add.
22362
0b9066cf
RG
223632012-04-04 Richard Guenther <rguenther@suse.de>
22364
22365 PR tree-optimization/52808
2ff5ea2d 22366 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
0b9066cf
RG
22367 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
22368
9516c54e
TG
223692012-04-04 Tristan Gingold <gingold@adacore.com>
22370
22371 * expr.c (expand_expr_real_2): Handle larger sizetype in
22372 POINTER_PLUS_EXPR.
22373
407f43d7
KK
223742012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
22375
22376 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
22377 to m2a-single instead of m2e.
22378
1d0bafd9
EB
223792012-04-03 Eric Botcazou <ebotcazou@adacore.com>
22380
22381 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
22382 Change type of BITOFFSET to signed. Make sure the lower bound of
22383 the computed range is non-negative by adjusting OFFSET and BITPOS.
22384 (expand_assignment): Adjust call to get_bit_range.
22385
f4ea8112
SKS
223862012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
22387
22388 * h8300/h8300.c (h8300_current_function_monitor_function_p):
dee16055
AS
22389 New function. Added to check monitor functions.
22390 (h8300_option_override): Modified to generate error/warning
22391 messages for invalid combinations of different command line
f4ea8112
SKS
22392 options.
22393 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
dee16055 22394 save EXR on stack for monitor function in case of H8S target
f4ea8112 22395 when "-mno-exr" is passed.
2ff5ea2d
UB
22396 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
22397 Add prototype.
f4ea8112
SKS
22398 * doc/invoke.texi: Document H8S options.
22399
2f6935f4
TG
224002012-04-03 Tristan Gingold <gingold@adacore.com>
22401
22402 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
22403 of gcc_AC_FUNC_MMAP_BLACKLIST.
22404 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
22405 * Makefile.in (aclocal_deps): Add mmap.m4.
22406 * configure: Regenerate.
22407 * aclocal.m4: Regenerate.
22408
07b1bf20
RG
224092012-04-03 Richard Guenther <rguenther@suse.de>
22410
22411 PR tree-optimization/52808
22412 * tracer.c (tail_duplicate): Return whether we have duplicated
22413 any block.
22414 (tracer): If we have duplicated any block, cleanup the CFG.
22415 * cfghooks.c (duplicate_block): If we duplicated a loop
22416 header but not its loop, destroy the loop because it now has
22417 multiple entries.
22418 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
22419 the cfg manipulation routines we are not creating a multiple
22420 entry loop.
22421
90b2952f
TG
224222012-04-03 Tristan Gingold <gingold@adacore.com>
22423
22424 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
22425 'byte' alignment.
22426 (vms_c_common_override_options): Allow parameterless variadic
22427 functions.
22428
8a1da634
JJ
224292012-04-03 Jakub Jelinek <jakub@redhat.com>
22430
22431 PR tree-optimization/52835
22432 * tree-data-ref.c (build_rdg): Return NULL if
22433 compute_data_dependences_for_loop failed.
22434
1d3aa466
EB
224352012-04-03 Eric Botcazou <ebotcazou@adacore.com>
22436
22437 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
22438 for REAL_CST as well.
22439 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
22440 In the bitfield case, if the value is a REAL_CST, convert it first to
22441 an INTEGER_CST.
22442
0465e49e
L
224432012-04-02 H.J. Lu <hongjiu.lu@intel.com>
22444
22445 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
22446 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
22447 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
22448
22449 * config/i386/biarchx32.h: New.
22450
107715f0
AS
224512012-04-02 Anatoly Sokolov <aesok@post.ru>
22452
22453 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
22454 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22455 (arm_preferred_reload_class): New function.
22456
18ce8171
RG
224572012-04-02 Richard Guenther <rguenther@suse.de>
22458
22459 PR tree-optimization/52756
22460 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
22461 (thread_through_loop_header): After threading through the loop latch
22462 remove the split part from the loop and clear further threading
22463 opportunities that would create a multiple entry loop.
22464
df09560e
RG
224652012-04-02 Richard Guenther <rguenther@suse.de>
22466
22467 PR rtl-optimization/52800
22468 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
22469 CLEANUP_CFG_CHANGED.
22470
225820ee
RG
224712012-04-02 Richard Guenther <rguenther@suse.de>
22472
22473 PR middle-end/52803
22474 * loop-init.c (gate_handle_loop2): Destroy loops here if
22475 we don't enter RTL loop optimizers.
22476
5bd5034e
UB
224772012-04-02 Uros Bizjak <ubizjak@gmail.com>
22478
22479 Partially revert:
22480 2012-03-29 Richard Guenther <rguenther@suse.de>
22481
22482 * rtl.h (extended_count): Remove.
22483 * combine.c (extended_count): Remove.
22484
cdc30df3
DS
224852012-04-02 Dodji Seketeli <dodji@redhat.com>
22486
22487 PR c++/40942
22488 * pt.c (more_specialized_fn): Don't apply decay conversion to
22489 types of function parameters.
22490
2a6e6fea
TG
224912012-04-02 Tristan Gingold <gingold@adacore.com>
22492
22493 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
22494 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
22495 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
22496 (ggc_pch_this_base): Use uintptr_t instead of size_t.
22497
b6c0357f
L
224982012-03-31 H.J. Lu <hongjiu.lu@intel.com>
22499
22500 PR bootstrap/52784
22501 * config/i386/i386.c (ix86_option_override_internal): Don't
22502 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
22503
8d960eda
EB
225042012-03-31 Eric Botcazou <ebotcazou@adacore.com>
22505
22506 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
22507 (stmt_can_make_abnormal_goto): Use it.
22508 (is_ctrl_altering_stmt): Likewise.
22509
57c7433f
N
225102012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
22511 Kaz Kojima <kkojima@gcc.gnu.org>
22512
22513 * config/sh/sh.c (push_regs): Skip banked registers when
22514 resbank attribute is specified.
22515 (sh_expand_epilogue): Likewise.
22516
3825692d
RH
225172012-03-30 Richard Henderson <rth@redhat.com>
22518
22519 PR debug/52727
22520 * combine-stack-adj.c (prev_active_insn_bb): New.
22521 (next_active_insn_bb): New.
22522 (force_move_args_size_note): New.
22523 (combine_stack_adjustments_for_block): Use it.
22524
e025da0c
RH
225252012-03-30 Richard Henderson <rth@redhat.com>
22526
22527 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
22528 (ix86_expand_vector_init_duplicate): Initialize it.
22529 (expand_vec_perm_palignr): Likewise.
22530 (ix86_expand_vec_perm_const): Likewise.
22531 (ix86_vectorize_vec_perm_const_ok): Likewise.
22532 (expand_vec_perm_blend): Use it.
22533 (expand_vec_perm_vpermil): Likewise.
22534 (expand_vec_perm_pshufb): Likewise.
22535 (expand_vec_perm_1): Likewise.
22536 (expand_vec_perm_pshuflw_pshufhw): Likewise.
22537 (expand_vec_perm_interleave2): Likewise.
22538 (expand_vec_perm_vpermq_perm_1): Likewise.
22539 (expand_vec_perm_vperm2f128): Likewise.
22540 (expand_vec_perm_interleave3): Likewise.
22541 (expand_vec_perm_vperm2f128_vblend): Likewise.
22542 (expand_vec_perm_vpshufb2_vpermq): Likewise.
22543 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
22544 (expand_vec_perm_broadcast): Likewise.
22545 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
22546
7b470faf
RH
225472012-03-30 Richard Henderson <rth@redhat.com>
22548
22549 * dwarf2out.c (gen_variable_die): Initialize off.
22550
c531f06a
TG
225512012-03-30 Tristan Gingold <gingold@adacore.com>
22552
22553 * config/vms/vms-f.c: New file.
22554 * config/vms/t-vms (vms-f.o): New rule.
22555 * config.gcc (*-*-*vms*): Define fortran_target_objs.
22556
fef205d5
RG
225572012-03-30 Richard Guenther <rguenther@suse.de>
22558
22559 PR tree-optimization/52754
22560 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
22561 propagate arbitrary addresses into really plain dereferences.
22562
0b7fccfa
RG
225632012-03-30 Richard Guenther <rguenther@suse.de>
22564
22565 PR middle-end/52772
22566 * except.c (emit_to_new_bb_before): Move loop updating ...
22567 (dw2_build_landing_pads): ... here. Use a proper block for
22568 querying the loop father.
22569
fe5798c0
TG
225702012-03-30 Tristan Gingold <gingold@adacore.com>
22571
22572 * config/ia64/ia64.c (ia64_section_type_flags): Remove
22573 common_object attribute handling.
22574 (SECTION_VMS_OVERLAY): Remove
22575 (ia64_vms_common_object_attribute): Replace abort with an assert.
22576 Do not set DECL_SECTION_NAME.
22577 (ia64_vms_output_aligned_decl_common): Handle common_object
22578 attribute.
22579 (ia64_vms_elf_asm_named_section): Remove.
22580 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
22581
5cf01d62
RG
225822012-03-30 Richard Guenther <rguenther@suse.de>
22583
22584 PR middle-end/52786
22585 * double-int.c (rshift_double): Remove not needed cast.
22586
aeb83f09
RG
225872012-03-30 Richard Guenther <rguenther@suse.de>
22588
22589 * tree-affine.h (print_aff): Remove.
22590 * tree-affine.c (print_aff): Make static.
22591 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
22592 (get_references_in_stmt): Likewise.
22593 (print_direction_vector): Likewise.
22594 (print_dir_vectors): Likewise.
22595 (print_dist_vectors): Likewise.
22596 (dump_subscript): Likewise.
22597 (dump_ddrs): Likewise.
22598 (dump_dist_dir_vectors): Likewise.
22599 (dump_data_references): Likewise.
22600 (dump_data_dependence_relation): Likewise.
22601 (dump_data_dependence_direction): Likewise.
22602 (dump_rdg_vertex): Likewise.
22603 (dump_rdg_component): Likewise.
22604 (debug_ddrs): Declare.
22605 (struct data_ref_loc_d): Move ...
22606 * tree-data-ref.c (struct data_ref_loc_d): ... here.
22607 (get_references_in_stmt): Make static.
22608 (dump_data_references): Likewise.
22609 (dump_subscript): Likewise.
22610 (print_direction_vector): Likewise.
22611 (print_dir_vectors): Likewise.
22612 (print_dist_vectors): Likewise.
22613 (dump_data_dependence_relation): Likewise.
22614 (dump_dist_dir_vectors): Likewise.
22615 (dump_ddrs): Likewise.
22616 (dump_rdg_vertex): Likewise.
22617 (dump_rdg_component): Likewise.
22618 (debug_ddrs): New function.
22619 (access_matrix_get_index_for_parameter): Remove.
22620
b9268e55
TG
226212012-03-30 Tristan Gingold <gingold@adacore.com>
22622
22623 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
22624 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
22625 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
22626 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
22627 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
22628 (vms_patch_builtins): Handle new flags
22629 * config/vms/vms-crtlmap.map: Completed using nm on
22630 c and math system libraries.
22631 * config/vms/make-crtlmap.awk: Handle any number of flags.
22632
b9bebd7f
MJ
226332012-03-30 Martin Jambor <mjambor@suse.cz>
22634
22635 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
22636 is a builtin_stack_save in a dominating BB.
22637
a15d0d03
UB
226382012-03-29 Uros Bizjak <ubizjak@gmail.com>
22639
22640 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
22641 crossing 128bit lane boundary.
22642
d79318b7
VM
226432012-03-29 Vladimir Makarov <vmakarov@redhat.com>
22644
22645 * ira-color.c (setup_left_conflict_sizes_p): Process all
22646 conflicting objects.
22647
b84b294a
JJ
226482012-03-29 Jakub Jelinek <jakub@redhat.com>
22649
22650 PR tree-optimization/52760
22651 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
22652 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
22653
711417cd
RG
226542012-03-29 Richard Guenther <rguenther@suse.de>
22655
22656 * cgraph.h (cgraph_materialize_all_clones): Remove.
22657 (reset_inline_failed): Likewise.
22658 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
22659 * cgraphbuild.c (reset_inline_failed): Remove.
22660 * rtl.h (cse_main): Remove.
22661 (extended_count): Likewise.
22662 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
22663 (cse_main): Make static.
22664 * combine.c (extended_count): Remove.
22665 (dump_combine_stats): Mark as DEBUG_FUNCTION.
22666 * basic-block.h (reorder_basic_blocks): Remove.
22667 * bb-reorder.c (reorder_basic_blocks): Make static.
22668 * Makefile.in (dse.o): Remove dse.h dependency.
22669 * dse.h: Remove.
22670 * dse.c (gate_dse): Remove.
22671 (clear_alias_mode_eq): Likewise.
22672 (clear_alias_mode_hash): Likewise.
22673 (dse_record_singleton_alias_set): Likewise.
22674 (dse_invalidate_singleton_alias_set): Likewise.
22675
a1ecc15c
L
226762012-03-29 H.J. Lu <hongjiu.lu@intel.com>
22677
22678 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
22679 crtbegin_so%O%s for -shared.
22680 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
22681
6bcfb753
RG
226822012-03-29 Richard Guenther <rguenther@suse.de>
22683
22684 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
22685 (add_to_value): Remove.
22686 (print_value_expressions): Likewise.
22687 * tree-ssa-pre.c (add_to_value): Make static.
22688 (print_value_expressions): Likewise.
22689 * gimple.h (gimple_adjust_this_by_delta): Remove.
22690 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
22691
477fcae3
RG
226922012-03-29 Richard Guenther <rguenther@suse.de>
22693
22694 PR middle-end/50708
22695 * double-int.h (rshift_double): Remove.
6c381d9d 22696 * double-int.c (lshift_double): Use absu_hwi to make count positive.
477fcae3
RG
22697 (rshift_double): Make static, take unsigned count argument,
22698 remove handling of negative count argument.
22699 (double_int_rshift): Dispatch to lshift_double.
22700
1ab8b791
L
227012012-03-28 H.J. Lu <hongjiu.lu@intel.com>
22702
22703 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
22704 OPTION_MASK_ABI_64.
22705
22706 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
22707 (SPEC_X32): Likewise.
22708 (MULTILIB_DEFAULTS): Likewise.
22709
22710 * config/i386/i386.c (isa_opts): Remove -m64.
22711 (ix86_target_string): Properly handle -m32/-m64/-mx32.
22712 (ix86_option_override_internal): Properly
22713 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
22714 handle -m32, -m64 and -mx32.
22715
22716 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
22717 with OPTION_ABI_X32. Moved after TARGET_LP64.
22718 (TARGET_LP64): Changed to OPTION_ABI_64.
22719
22720 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
22721 (mx32): Replace ISA_X32 with ABI_X32.
22722
2defb110
EB
227232012-03-28 Eric Botcazou <ebotcazou@adacore.com>
22724
22725 * tree.c (tree_size) <VECTOR_CST>: New case.
22726
2310e450
UB
227272012-03-28 Uros Bizjak <ubizjak@gmail.com>
22728
22729 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
22730 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
22731
26a7fca2
JJ
227322012-03-28 Jakub Jelinek <jakub@redhat.com>
22733
f25a65f5
JJ
22734 PR middle-end/52691
22735 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
22736 __builtin_va_start to __builtin_next_arg if the latter is
22737 builtin_decl_explicit_p rather than when it is not.
22738
26a7fca2
JJ
22739 PR middle-end/52750
22740 * tree-vect-generic.c (vector_element): Perform multiplication
22741 for pos in bitsizetype type instead of idx type.
22742
7d776ee2
RG
227432012-03-28 Richard Guenther <rguenther@suse.de>
22744
22745 * loop-init.c (loop_optimizer_init): If loops are preserved
22746 perform incremental initialization of required loop features.
22747 (loop_optimizer_finalize): If loops are to be preserved only
22748 clean up optional loop features.
22749 (rtl_loop_done): Forcefully free loops here.
2310e450 22750 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
7d776ee2
RG
22751 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
22752 to existing loops.
22753 (construct_init_block): Likewise.
22754 (construct_exit_block): Likewise.
22755 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
22756 the CFG after expanding.
2310e450
UB
22757 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
22758 If we needed to calculate them, free them afterwards.
7d776ee2
RG
22759 * tree-pass.h (PROP_loops): New define.
22760 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
22761 * basic-block.h (CLEANUP_CFG_CHANGED): New.
22762 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
2310e450 22763 (cleanup_cfg): If we did something and have loops around, fix them up.
7d776ee2
RG
22764 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
22765 with CLEANUP_CFG_CHANGED.
22766 * cfghooks.c (merge_blocks): If we merge a loop header into
22767 its predecessor, update the loop structure.
22768 (duplicate_block): If we copy a loop latch, adjust loop state
22769 to note we may have multiple latches.
22770 (delete_basic_block): Mark loops for fixup if we remove a loop.
22771 * cfganal.c (forwarder_block_p): Protect loop latches, headers
22772 and preheaders.
22773 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
22774 (cfg_layout_can_merge_blocks_p): Likewise.
22775 * cprop.c (bypass_block): If we create a loop with multiple
22776 entries, mark it for removal.
22777 * except.c (emit_to_new_bb_before): Add the new basic-block
22778 to existing loops.
22779 * tree-eh.c (lower_resx): Likewise.
22780 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
22781 (expand_omp_taskreg): Likewise.
22782 * tree-inline.c (initialize_cfun): Likewise.
22783 * tree-mudflap.c (add_bb_to_loop): Prototype.
22784 (mf_build_check_statement_for): Properly add new basic-blocks
22785 to existing loops.
22786 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
22787 if we remove a loop.
22788 (thread_through_loop_header): Likewise.
22789 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
22790 new basic-blocks to existing loops.
22791 (expand_transaction): Likewise.
22792 * Makefile.in (except.o): Add $(CFGLOOP_H).
22793 (expr.o): Likewise.
22794 (cgraph.o): Likewise.
22795 (cprop.o): Likewise.
22796 (cfgexpand.o): Likewise.
22797 (cfganal.o): Likewise.
22798 (trans-mem.o): Likewise.
22799 (tree-eh.o): Likewise.
22800
911ba855
GJL
228012012-03-28 Georg-Johann Lay <avr@gjlay.de>
22802
22803 PR target/52692
22804 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
22805 (avr_builtin_decl): New static function.
22806 (struct avr_builtin_description, avr_bdesc): Move up.
22807 Add GTY marker. Add field fndecl. Remove redundant field id.
22808 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
22809 (avr_expand_builtin): Code cleanup because .id is removed.
22810
7fd6378e
GJL
228112012-03-28 Georg-Johann Lay <avr@gjlay.de>
22812
22813 PR target/52737
22814 * config.gcc (tm_file): Remove avr/multilib.h.
22815
2310e450 22816 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
7fd6378e
GJL
22817
22818 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
22819 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
22820 * config/avr/t-avr: Remove generation of multilib.h.
22821 * config/avr/t-multilib: Regenerate.
22822 * config/avr/multilib.h: Remove.
22823 * config/avr/avr.opt (-msp8): New option.
22824 (avr_sp8): New variable.
22825 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
22826 * config/avr/avr.h (AVR_HAVE_SPH): New define.
22827 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
22828 (avr_device_to_sp8): New prototype.
22829 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
22830 (DRIVER_SELF_SPECS): New define.
22831 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
22832 __AVR_SP8__, __AVR_HAVE_SPH__.
22833 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
22834 AVR_HAVE_8BIT_SP to decide if SP_H is present.
22835 (avr_file_start): Ditto.
22836
be47bf24
JJ
228372012-03-28 Jakub Jelinek <jakub@redhat.com>
22838
22839 PR target/52736
22840 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
22841 instead of 8 in adjust_address.
22842
00d6b19a
AB
228432012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
22844
22845 PR middle-end/51893
22846 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
22847 targets.
22848
8c6d71c0
OE
228492012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
22850
22851 PR target/50751
22852 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
22853 Rearrange conditional logic. Move displacement address calculations
22854 to ...
22855 (sh_find_mov_disp_adjust): ... this new function.
22856
719e1e80
L
228572012-03-27 H.J. Lu <hongjiu.lu@intel.com>
22858
22859 * config/arm/arm.opt (mapcs): Remove MaskExists.
22860 * config/cris/linux.opt (mno-gotplt): Likewise.
22861 * config/i386/i386.opt (mhard-float): Likewise.
22862 (msse4): Likewise.
22863 (mno-sse4): Likewise.
22864 * config/m68k/m68k.opt (mhard-float): Likewise.
22865 * config/mep/mep.op (mcop32): Likewise.
22866 * config/pa/pa-hpux.opt (msio): Likewise.
22867 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
22868 * config/picochip/picochip.opt (mlittle): Likewise.
22869 * config/sh/sh.opt (mrenesas): Likewise.
22870 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
22871 * config/sparc/sparc.opt (mhard-float): Likewise.
22872 * config/v850/v850.opt (mv850es): Likewise.
22873 * config/vax/vax.opt (mg-float): Likewise.
22874
429576ac
MJ
228752012-03-27 Martin Jambor <mjambor@suse.cz>
22876
22877 PR middle-end/52693
22878 * tree-sra.c (sra_modify_assign): Do not call
22879 load_assign_lhs_subreplacements when working with an unscalarizable
22880 region.
22881
ae1547cc
UB
228822012-03-27 Uros Bizjak <ubizjak@gmail.com>
22883
22884 PR target/52698
22885 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
22886 New prototype.
22887 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
22888 * config/i386/i386.c: Include reload.h.
22889 (ix86_legitimize_reload_address): New function.
22890
1ad36b7e
L
228912012-03-27 H.J. Lu <hongjiu.lu@intel.com>
22892
22893 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
22894 hasn't been allocated. Define a target macro for Mask and
ae1547cc 22895 InverseMask if it hasn't been defined. Remove MaskExists handling.
1ad36b7e 22896
9a0ee5ed 22897 * doc/options.texi: Remove MaskExists.
1ad36b7e 22898
066922e6
CLT
228992012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
22900
22901 PR target/52667
22902 * config/sh/sh.c (find_barrier): Add equality check of last_got
22903 to avoid going above orig insn. Update comments.
22904
005aa1b4
RG
229052012-03-27 Richard Guenther <rguenther@suse.de>
22906
22907 PR middle-end/52720
22908 * fold-const.c (try_move_mult_to_index): Handle &x.array more
22909 explicitely.
22910
a59b038c
EB
229112012-03-27 Eric Botcazou <ebotcazou@adacore.com>
22912
22913 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
22914 of a unit before computing the offset in units.
22915 * expr.c (get_bit_range): Return the null range if the enclosing record
22916 is part of a larger bit field.
22917
2283164d
TG
229182012-03-27 Tristan Gingold <gingold@adacore.com>
22919
22920 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
22921 * config/ia64/ia64.md: Remove mode in template.
22922 Sign extend operand in expand_simple_binop.
22923 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
22924 CASE_VECTOR_MODE instead of TARGET_ILP32.
22925 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
22926
da3237d1
SB
229272012-03-26 Steven Bosscher <steven@gcc.gnu.org>
22928
22929 * varasm.c (assemble_external): #if 0 out the new assert from the
22930 previous commit, it breaks the Java and Go front ends.
22931
ffe5d708
SB
229322012-03-26 Steven Bosscher <steven@gcc.gnu.org>
22933
bbee5843
SB
22934 * toplev.c (check_global_declaration_1): Do not call assemble_external.
22935 * expr.c (emit_block_move_libcall_fn): Likewise.
22936 (clear_storage_libcall_fn): Likewise.
22937 (expand_expr_addr_expr_1): Likewise.
22938 (expand_expr_real_1): Likewise.
22939 * calls.c (rtx_for_function_call): Likewise.
22940
ffe5d708
SB
22941 * varasm.c (assemble_external): Assert this function is only called
22942 during or after expanding to RTL.
22943
3515a00b
MJ
229442012-03-26 Martin Jambor <mjambor@suse.cz>
22945
22946 PR tree-optimization/50052
22947 * tree-sra.c (tree_non_aligned_mem_p): Removed.
22948 (tree_non_aligned_mem_for_access_p): Likewise.
22949 (build_accesses_from_assign): Removed strict alignment requirements
22950 checks.
22951 (access_precludes_ipa_sra_p): Likewise.
22952
ad5d161a
RG
229532012-03-26 Richard Guenther <rguenther@suse.de>
22954
22955 PR tree-optimization/52701
22956 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
22957 compute and set the evolution part of PHI nodes.
22958
5467ee52
RG
229592012-03-26 Richard Guenther <rguenther@suse.de>
22960
22961 PR tree-optimization/52721
22962 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
22963
39f3fed6
UW
229642012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
22965
22966 PR tree-optimization/52686
22967 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
22968 WIDEN_LSHIFT_EXPR.
22969
4b12e93d
TG
229702012-03-26 Tristan Gingold <gingold@adacore.com>
22971
22972 * config/alpha/vms.h (LINK_SPEC): Simplify.
22973 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
22974 (NAME__MAIN, SYMBOL__MAIN): Remove.
22975 (VMS_DEBUG_MAIN_POINTER): Remove.
22976 * config/ia64/vms.h: Likewise.
22977 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
22978 code to vms.c. Call vms_start_function.
22979 * config/ia64/ia64.c (ia64_start_function): Likewise.
22980 * config/vms/vms-protos.h (vms_start_function): Declare.
22981 * config/vms/vms.c (vms_start_function): New function.
22982 * config/vms/vms.h (MATH_LIBRARY): Define.
22983 (VMS_DEBUG_MAIN_POINTER): Define.
22984
2169f14c
EB
229852012-03-26 Eric Botcazou <ebotcazou@adacore.com>
22986
22987 PR rtl-optimization/52629
22988 * reload1.c (count_pseudo): Short-circuit common case.
22989 (count_spilled_pseudo): Return early for pseudos without hard regs.
22990 Assert that the pseudo has got a hard reg before manipulating it.
22991
47a1ae3c
JH
229922012-03-24 Jan Hubicka <jh@suse.cz>
22993
22994 PR lto/51663
22995 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
22996 (decide_is_variable_needed): Do not handle toplevel reorder here.
22997 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
22998 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
22999 even at -O0.
23000
8c5f2327
EB
230012012-03-24 Eric Botcazou <ebotcazou@adacore.com>
23002
23003 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
23004 and str_bitsize instead of more convoluted expressions.
23005
c4133027
EB
230062012-03-24 Eric Botcazou <ebotcazou@adacore.com>
23007
23008 PR target/52610
23009 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
23010
f26c81d6
EB
230112012-03-24 Eric Botcazou <ebotcazou@adacore.com>
23012
23013 PR target/52656
23014 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
23015
d01f346b
MJ
230162012-03-23 Martin Jambor <mjambor@suse.cz>
23017
23018 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
23019
0ac168a1
RG
230202012-03-23 Richard Guenther <rguenther@suse.de>
23021
23022 PR tree-optimization/52678
23023 * tree-vectorizer.h (struct _stmt_vec_info): Add
23024 loop_phi_evolution_part member.
23025 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
23026 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
23027 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
23028 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
23029 Use the cached evolution part and the PHI nodes value from
23030 the loop preheader edge instead of re-analyzing the evolution.
23031
3fd03b93
MK
230322012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
23033
23034 * config/mips/mips-tables.opt: Update.
23035 * config/mips/mips.md (processor): Add xlp.
23036 * config/mips/mips-cpus.def: Add xlp.
23037 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
23038 5KF for now.
23039 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
23040 * doc/invoke.texi: Mention XLP.
23041
c140ddf3
JJ
230422012-03-22 Jakub Jelinek <jakub@redhat.com>
23043
23044 PR middle-end/52547
23045 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
23046 on any new_local_var_chain vars declared during recursing on
23047 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
23048
b31a2c5a
UB
230492012-03-22 Uros Bizjak <ubizjak@gmail.com>
23050
23051 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
23052 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
23053 (ASM_OUTPUT_LOCAL): Ditto.
23054 (ASM_OUTPUT_COMMON): Remove.
23055 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
23056 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
23057
b4e93f45
JH
230582012-03-22 Jan Hubicka <jh@suse.cz>
23059
23060 PR middle-end/51737
23061 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
23062 parameter.
23063 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
b31a2c5a
UB
23064 * ipa-inline-transform.c (save_inline_function_body): Remove
23065 copied clone if needed.
b4e93f45
JH
23066 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
23067
e45381b3
RG
230682012-03-22 Richard Guenther <rguenther@suse.de>
23069
23070 PR middle-end/52666
23071 * fold-const.c (fold_ternary_loc): Fix typo.
23072
94236928
GJL
230732012-03-22 Georg-Johann Lay <avr@gjlay.de>
23074
23075 PR target/52496
23076 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
23077 (unspecv): Add UNSPECV_MEMORY_BARRIER.
23078 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
23079 (delay_cycles_1, delay_cycles_2): Ditto.
23080 (delay_cycles_3, delay_cycles_4): Ditto.
23081 (nopv, *nopv): Ditto.
23082 (sleep, *sleep): Ditto.
23083 (wdr, *wdr): Ditto.
23084
cd32bb90
RG
230852012-03-22 Richard Guenther <rguenther@suse.de>
23086
23087 PR tree-optimization/52548
23088 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
23089 because of clobbers.
23090 (prune_clobbered_mems): New function.
23091 (compute_antic_aux): Use it to prune ANTIC_OUT.
23092 (compute_partial_antic_aux): Use it to prune PA_IN.
b31a2c5a
UB
23093 (compute_avail): Only insert expressions into EXP_GEN that are not
23094 invalidated when translated up to the beginning of the block.
cd32bb90 23095
418b7df3
RG
230962012-03-22 Richard Guenther <rguenther@suse.de>
23097
23098 PR tree-optimization/52638
23099 * tree-vect-stmts.c (vect_init_vector_1): New function, split
23100 out from ...
23101 (vect_init_vector): ... here. Handle scalar vector inits.
23102 (vect_get_vec_def_for_operand): Adjust.
23103 (vectorizable_load): Likewise.
23104
8f27fc6b
UB
231052012-03-22 Uros Bizjak <ubizjak@gmail.com>
23106
23107 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
23108 (alpha*-*-freebsd*): Ditto.
23109 (alpha*-*-netbsd*): Ditto.
23110 (alpha*-*-openbsd*): Ditto.
23111 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
23112 (DWARF2_DEBUGGING_INFO): Remove.
23113 (PREFERRED_DEBUGGING_TYPE): Remove.
23114 (ASM_FINAL_SPEC): Remove.
23115 (IDENT_ASM_OP): Remove.
23116 (ASM_OUTPUT_IDENT): Remove.
23117 (SKIP_ASM_OP): Remove.
23118 (ASM_OUTPUT_SKIP): Remove.
23119 (ALIGN_ASM_OP): Remove.
23120 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
23121 (ASM_OUTPUT_CASE_LABEL): Remove.
23122 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
23123 (COMMON_ASM_OP): Remove.
23124 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
23125 (ASCII_DATA_ASM_OP): Remove.
23126 (READONLY_DATA_SECTION_ASM_OP): Remove.
23127 (INIT_SECTION_ASM_OP): Remove.
23128 (FINI_SECTION_ASM_OP): Remove.
23129 (ASM_SECTION_START_OP): Remove.
23130 (ASM_OUTPUT_SECTION_START_FILE): Remove.
23131 (TARGET_ASM_NAMED_SECTION): Remove.
23132 (TARGET_ASM_SELECT_SECTION): Remove.
23133 (MAKE_DECL_ONE_ONLY): Remove.
23134 (TYPE_ASM_OP): Remove.
23135 (SIZE_ASM_OP): Remove.
23136 (ASM_WEAKEN_LABEL): Remove.
23137 (TYPE_OPERAND_FMT): Remove.
23138 (ASM_DECLARE_RESULT): Remove.
23139 (ASM_DECLARE_OBJECT_NAME): Remove.
23140 (ASM_FINISH_DECLARE_OBJECT): Remove.
23141 (ELF_ASCII_ESCAPES): Remove.
23142 (ELF_STRING_LIMIT): Remove.
23143 (STRING_ASM_OP): Remove.
23144 (ASM_OUTPUT_EXTERNAL): Remove.
23145 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
23146 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
23147 before define.
23148 (ASM_DECLARE_FUNCTION_NAME): Ditto.
23149 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
23150 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
23151 (ASM_OUTPUT_SKIP): Ditto.
23152 (READONLY_DATA_SECTION_ASM_OP): Remove.
23153 (USER_LABEL_PREFIX): Remove.
23154 (ASM_OUTPUT_ASCII): Remove.
23155 (ASM_OUTPUT_CASE_LABEL): Remove.
23156 (NO_DOLLAR_IN_LABEL): Undefine.
23157
109a16c2
RG
231582012-03-22 Richard Guenther <rguenther@suse.de>
23159
23160 PR tree-optimization/52459
23161 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
23162 PHI insertion for calls.
23163
7b02f4e0
SB
231642012-03-21 Steven Bosscher <steven@gcc.gnu.org>
23165
23166 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
23167 find_sets_in_insn, canonicalize_insn): Split out from ...
23168 (cse_insn): ... here.
23169 (invalidate_from_clobbers): Take an insn instead of the pattern.
23170
e022193e
OE
231712012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
23172
23173 PR target/52479
23174 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
23175 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
23176 * config/sh/sh.md (sindf2, cosdf2): Remove.
23177
6c5bfec0
KK
231782012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
23179
0dbc5be5 23180 PR target/52642
6c5bfec0 23181 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
8f27fc6b 23182 prologue for unwinder and profiler.
6c5bfec0 23183
a26f86dc
AT
231842012-03-21 Andreas Tobler <andreast@fgznet.ch>
23185
23186 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
23187 Introduce emul_name to select the right linker emulation for
23188 powerpc64-*-freebsd*.
23189 * configure: Regenerate.
23190 * config.gcc: Add bits to support powerpc64-*-freebsd*.
23191 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
23192 * config/rs6000/freebsd64.h: New file.
23193 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
23194 POWERPC_FREEBSD.
23195 (rs6000_savres_strategy): Likewise.
23196 (rs6000_savres_routine_name): Likewise.
23197 (rs6000_elf_file_end): Likewise.
23198 * config/rs6000/t-freebsd64: New file.
23199 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
23200 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
23201
ad648ade
AT
23202 * config/rs6000/freebsd64.h: Remove duplicated entries from last
23203 commit.
23204 * config/rs6000/t-freebsd64: Likewise.
23205
03b29b0a
GJL
232062012-03-21 Georg-Johann Lay <avr@gjlay.de>
23207
23208 PR rtl-optimization/52543
23209 PR target/52461
23210 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
23211 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
23212 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
23213 (avr_load_libgcc_p): Restrict to __flash loads.
23214 (avr_out_lpm): Only handle 1-byte loads from __flash.
23215 (avr_load_lpm): New function.
23216 (avr_find_unused_d_reg): Remove.
23217 (avr_out_lpm_no_lpmx): Remove.
23218 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
23219 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
23220 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
23221 (load_<mode>, load_<mode>_clobber): New insns.
23222 (mov<mode>): For multi-byte move from non-generic
23223 16-bit address spaces: Expand to load_<mode> resp.
23224 load_<mode>_clobber.
23225 (load<mode>_libgcc): Remove expander.
23226 (split-lpmx): Remove split.
23227
baeecefc
RE
232282012-03-21 Richard Earnshaw <rearnsha@arm.com>
23229
23230 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
23231 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
23232 All callers changed.
23233 (Fixed_core_reg): New feature.
23234 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
23235 disassembly.
23236 * neon-testgen.ml: Handle Fixed_core_reg.
23237
021afdb4
AS
232382012-03-21 Andrew Stubbs <ams@codesourcery.com>
23239
23240 * config/arm/arm.c (thumb2_reorg): Add complete support
23241 for 16-bit instructions.
23242 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
23243
50eeef09
RG
232442012-03-21 Richard Guenther <rguenther@suse.de>
23245
23246 PR tree-optimizer/52636
23247 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
23248 to the appropriate type.
23249
be147e84
RG
232502012-03-21 Richard Guenther <rguenther@suse.de>
23251
23252 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
23253 dependencies.
23254 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
23255 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
23256 * passes.c (init_optimization_passes): Remove pass_init_function,
23257 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
23258 * tree-pass.h (pass_init_function): Remove.
23259 (pass_jump): Remove.
23260 (pass_initial_value_sets): Remove.
23261 (pass_unshare_all_rtl): Remove.
23262 * integrate.c (pass_initial_value_sets): Remove.
23263 * emit-rtl.c (pass_unshare_all_rtl): Remove.
23264 * tree.h (init_function_for_compilation): Remove.
23265 * function.c (init_function_for_compilation): Remove.
23266 (pass_init_function): Remove.
23267 * cfgcleanup.c (rest_of_handle_jump): Remove.
23268 (pass_jump): Remove.
23269
f78f0473
JM
232702012-03-20 Jason Merrill <jason@redhat.com>
23271
23272 * tree-streamer-in.c (streamer_alloc_tree): Call
23273 ggc_alloc_zone_cleared_tree_node instead of
23274 ggc_alloc_zone_cleared_tree_node_stat.
23275
513d0519
JW
232762012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
23277
23278 * doc/extend.texi (Template Instantiation): Remove anachronisms.
23279
6945a32e
JJ
232802012-03-20 Jakub Jelinek <jakub@redhat.com>
23281
ee289e45
JJ
23282 PR target/52607
23283 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
23284 (ix86_expand_vec_perm_const_1): Call it.
23285
e5069d62
JJ
23286 * config/i386/i386.c (vselect_insn): New variable.
23287 (init_vselect_insn): New function.
23288 (expand_vselect, expand_vselect_insn): Add testing_p argument.
23289 Call init_vselect_insn if vselect_insn is NULL. Adjust
23290 PATTERN (vselect_insn), instead of creating a new insn each time,
23291 only emit a copy of it if not testing and recog has been successful.
23292 (expand_vec_perm_pshufb, expand_vec_perm_1,
23293 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
23294 callers.
23295
6945a32e
JJ
23296 PR target/52607
23297 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
23298 ("enabled" attribute): Handle avx2 and noavx2 isas.
23299 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
23300 New insns.
23301 (vec_dup<mode>): Add avx2 =x,x alternative.
23302 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
23303 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
23304 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
23305 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
23306 for V8SFmode.
23307 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
23308 if possible, handle also V8SFmode.
23309
681676df
RE
233102012-03-20 Richard Earnshaw <rearnsha@arm.com>
23311
23312 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
23313 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
23314 reg_or_zero_operand predicate.
23315 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
23316
999a099c
JJ
233172012-03-20 Jakub Jelinek <jakub@redhat.com>
23318
23319 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
23320 If operand isn't UNSPEC, return 0.
23321
dac1fbf8
RG
233222012-03-20 Richard Guenther <rguenther@suse.de>
23323
23324 * tree-pass.h (pass_rtl_eh): Remove.
23325 * except.c (gate_handle_eh): Likewise.
23326 (rest_of_handle_eh): Likewise.
23327 (pass_rtl_eh): Likewise.
23328 (finish_eh_generation): Export.
23329 * except.h (finish_eh_generation): Declare.
23330 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
23331 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
23332 after expanding stack alignment. Instead of compacting blocks
23333 call cleanup_cfg.
23334
7ebf9677
RG
233352012-03-20 Richard Guenther <rguenther@suse.de>
23336
23337 * stor-layout.c (finish_bitfield_representative): Fallback
23338 to conservative maximum size if the padding up to the next
23339 field cannot be computed as a constant.
23340 (finish_bitfield_layout): If we cannot compute the distance
23341 between the start of the bitfield representative and the
23342 bitfield member start a new representative.
23343 * expr.c (get_bit_range): The distance between the start of
23344 the bitfield representative and the bitfield member is zero
23345 if the field offsets are not constants.
23346
18dae016
TG
233472012-03-20 Tristan Gingold <gingold@adacore.com>
23348
23349 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
23350 convert in lowercase.
23351 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
23352 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
23353 * stor-layout.c (sizetype_tab): Adjust.
23354 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
23355 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
23356 instead of type_kind_last.
23357 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
23358 instead of size_int_kind.
23359 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
23360 * doc/tm.texi: Regenerate.
23361 * defaults.h (SIZETYPE): Provide a default value.
23362 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
23363 (SIZETYPE): Define.
23364
d9241861
OE
233652012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
23366
23367 * config/sh/sh.md: Use braced string notation where applicable.
23368
5ef4f609
UB
233692012-03-19 Uros Bizjak <ubizjak@gmail.com>
23370
23371 * config/i386/i386.md (allocate_stack): Simplify.
23372
18ae1560
UB
233732012-03-19 Uros Bizjak <ubizjak@gmail.com>
23374
23375 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
23376 copy_to_mode_reg (Pmode, ...).
23377 (expand_builtin_frame_address): Ditto.
23378 * expr.c (emit_block_move_via_libcall): Ditto.
23379 (set_storage_via_libcall): Ditto.
23380
23381 * config/i386/i386.c (ix86_expand_movmem): Ditto.
23382 (ix86_expand_setmem): Ditto.
23383 (ix86_trampoline_init): DItto.
23384 * config/i386/i386.md (cmpstrnsi): Ditto.
18ae1560 23385
3e4907f4
SL
233862012-03-19 Sandra Loosemore <sandra@codesourcery.com>
23387
23388 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
23389 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
23390 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
23391 (SH Options): Likewise.
23392
edd8bb12
UB
233932012-03-19 Uros Bizjak <ubizjak@gmail.com>
23394
23395 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
23396 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
23397 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
23398 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
23399 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
23400
23401 Revert:
23402 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
23403
23404 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
23405 * config/i386/i386.c (ix86_decompose_address): Use
23406 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
23407 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
23408 thread pointer to a register.
23409
23410 Revert:
23411 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
23412
23413 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
23414 if Pmode != word_mode.
23415 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
23416 Pmode == SImode for TARGET_X32.
23417
23418 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
23419 (tls_initial_exec_x32): Likewise.
23420
344332e8
OE
234212012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
23422
23423 PR target/50751
23424 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
23425 DISP_ADDR_OFFSET): New macros.
23426 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
23427 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
23428 (sh_legitimize_address): Add QImode displacement handling.
edd8bb12 23429 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
344332e8
OE
23430 vector subregs.
23431 (sh_secondary_reload): Add QImode displacement handling.
23432 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
ae5a8549
OE
23433 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
23434 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
23435 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
23436 to register operands only.
23437 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
23438 (extendqihi2): Change insn to expander.
23439 (*extendqihi2_compact_reg): New insn.
23440 (movqi_i, movqi): Replace with ...
23441 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
23442 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
23443 Add new peepholes for QImode displacement addressing.
344332e8 23444
04398fa8
PC
234452012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
23446
23447 PR c++/14710
23448 * doc/invoke.texi: Document -Wuseless-cast.
23449
b199074d
EB
234502012-03-19 Eric Botcazou <ebotcazou@adacore.com>
23451
23452 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
23453 * tree.h (handled_component_p): Reorder cases.
23454 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
23455 not initialize unsignedp.
23456 (loc_list_from_tree): Likewise.
23457 (fortran_common): Likewise.
23458 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
23459
79f3658a
UB
234602012-03-19 Uros Bizjak <ubizjak@gmail.com>
23461
23462 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
23463 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
23464 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
23465 (ix86_split_long_move): Ditto.
23466 (legitimize_tls_address): Use ix86_gen_sub3.
23467 (construct_plt_address): Assert that Pmode == DImode.
23468
82e86dc6
UB
234692012-03-18 Uros Bizjak <ubizjak@gmail.com>
23470
23471 * config/i386/i386.md: Remove empty predicates and/or constraints.
23472 * config/i386/sync.md: Ditto.
23473 * config/i386/sse.md: Ditto.
23474 * config/i386/mmx.md: Ditto.
23475 * config/i386/pentium.md: Ditto.
23476 * config/i386/athlon.md: Ditto.
23477
d6682315
RG
234782012-03-16 Richard Guenther <rguenther@suse.de>
23479
23480 PR tree-optimization/52603
23481 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
23482 comment.
23483
23484 Revert
23485 2012-03-14 Richard Guenther <rguenther@suse.de>
23486
23487 PR tree-optimization/52571
23488 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
23489 flag_section_anchors check ...
23490 (vect_can_force_dr_alignment_p): ... here.
23491
0a1c20dc
MJ
234922012-03-16 Martin Jambor <mjambor@suse.cz>
23493
b199074d 23494 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
0a1c20dc
MJ
23495 memory through MEM_REFs by calling extract_bit_field.
23496
6814f778
RG
234972012-03-16 Richard Guenther <rguenther@suse.de>
23498
23499 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
23500 and REFERENCE_TYPE interpretations.
23501 (can_native_interpret_type_p): New function.
23502 (fold_ternary_loc): Use native encode/interpret to fold
23503 BIT_FIELD_REFs of constants.
23504
ada3df50
RG
235052012-03-16 Richard Guenther <rguenther@suse.de>
23506
23507 PR middle-end/52584
23508 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
23509 of vector constants and constructors.
23510
b758f602
RG
235112012-03-16 Richard Guenther <rguenther@suse.de>
23512
23513 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
23514 VIEW_CONVERT_EXPR to convert constants.
23515 (vect_is_simple_use): Treat all constants as vec_constant_def.
23516
cf1867a0 235172012-03-16 Richard Guenther <rguenther@suse.de>
82e86dc6 23518 Kai Tietz <ktietz@redhat.com>
cf1867a0
RG
23519
23520 PR middle-end/48814
23521 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
23522 side-effects completely in the pre-queue and use a temporary
23523 for the result.
23524
2447776c
RG
235252012-03-16 Richard Guenther <rguenther@suse.de>
23526
23527 * stor-layout.c (finish_bitfield_representative): Fall back
23528 to the conservative maximum size if we cannot compute the
23529 size of the tail padding.
23530
6ceb677f
TG
235312012-03-16 Tristan Gingold <gingold@adacore.com>
23532
23533 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
23534 __CRTL_VER and __VMS_VER.
23535 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
23536 and vms_c_get_vms_ver.
23537 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
23538 functions.
23539 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
23540 (VMS_DEFAULT_VMS_VER): Define.
23541 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
23542 (VMS_DEFAULT_VMS_VER): Define.
23543
50a763ab
RG
235442012-03-16 Richard Guenther <rguenther@suse.de>
23545
23546 * tree-vect-loop.c (get_initial_def_for_induction): Use
23547 build_constructor directly.
23548 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
23549 build_vector_from_val.
23550 * tree.c (build_vector_from_val): Avoid creating a constructor
23551 first when we want a constant vector.
23552
17246516
RO
235532012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23554
23555 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
23556
d2a12ae7
RG
235572012-03-16 Richard Guenther <rguenther@suse.de>
23558
23559 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
23560 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
23561 (struct tree_vector): Remove elements member, add variable size
23562 elts array member.
23563 (build_vector_stat): Declare.
23564 (build_vector): Define in terms of build_vector_stat.
23565 * tree.c (build_vector): Rename to ...
23566 (build_vector_stat): ... this. Take array of trees as parameter.
23567 (build_vector_from_ctor): Adjust.
23568 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
23569 initializer_zerop): Adjust.
23570 * cfgexpand.c (expand_debug_expr): Likewise.
23571 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
23572 const_vector_from_tree): Likewise.
23573 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
23574 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
23575 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
23576 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
23577 (lto_input_ts_vector_tree_pointers): Adjust.
23578 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
23579 (write_ts_vector_tree_pointers): Adjust.
23580 * varasm.c (const_hash_1, compare_constant, copy_constant,
23581 output_constant): Adjust.
23582 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
23583 * print-tree.c (print_node): Adjust.
23584 * tree-pretty-print.c (dump_generic_node): Adjust.
23585 * tree-vect-generic.c (uniform_vector_p, vector_element,
23586 lower_vec_perm): Adjust.
23587 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
23588 * tree-vect-slp.c (vect_get_constant_vectors,
23589 vect_transform_slp_perm_load): Adjust.
23590 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
23591 * expmed.c (make_tree): Adjust.
23592 * config/i386/i386.c (ix86_expand_builtin): Adjust.
23593 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
23594 and implementation.
23595 (sparc_fold_builtin): Adjust.
23596
20bfad56
TG
235972012-03-16 Tristan Gingold <gingold@adacore.com>
23598
23599 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
23600 * config/vms/vms-stdint.h: New file.
23601
305576a5
TG
236022012-03-16 Tristan Gingold <gingold@adacore.com>
23603
23604 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
23605 (ia64-hp-*vms*): Replaced by ...
23606 (*-*-*vms*): ... This new entry.
23607
b8227739
JJ
236082012-03-15 Jakub Jelinek <jakub@redhat.com>
23609
81de8b03 23610 PR target/52568
82e86dc6 23611 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
81de8b03
JJ
23612 (ix86_expand_vec_perm_const_1): Use it.
23613
b8227739
JJ
23614 PR target/52568
23615 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
23616 (avx2_permv4df): Remove.
23617 (avx2_permv4di): Macroize into...
23618 (avx2_perm<mode>): ... this using VI8F_256 iterator.
23619 (avx2_permv4di_1): Macroize into...
23620 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
23621
df7965e4
UW
236222012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
23623
23624 * combine.c (apply_distributive_law): Do not distribute SUBREG.
23625
bc4fb355
IR
236262012-03-15 Ira Rosen <irar@il.ibm.com>
23627 Ulrich Weigand <ulrich.weigand@linaro.org>
23628
23629 * tree-vect-patterns.c (widened_name_p): Rename to ...
23630 (type_conversion_p): ... this. Add new argument to determine
23631 if it's a promotion or demotion operation. Check for
23632 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
23633 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
23634 widened_name_p.
23635 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
23636 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
23637 Likewise.
23638 (vect_recog_mixed_size_cond_pattern): Likewise and allow
23639 non-constant then and else clauses.
23640
f5709183
IR
236412012-03-15 Ira Rosen <irar@il.ibm.com>
23642 Ulrich Weigand <ulrich.weigand@linaro.org>
23643
23644 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
23645 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
23646 vect_pattern_recog.
23647 * tree-vect-patterns.c (widened_name_p): Pass basic block
23648 info to vect_is_simple_use.
23649 (vect_recog_dot_prod_pattern): Fail for basic blocks.
23650 (vect_recog_widen_sum_pattern): Likewise.
23651 (vect_handle_widen_op_by_const): Support basic blocks.
23652 (vect_operation_fits_smaller_type,
23653 vect_recog_over_widening_pattern): Likewise.
23654 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
23655 Update call to vect_is_simple_use.
23656 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
23657 Add printing.
23658 (check_bool_pattern): Add an argument, update call to
23659 vect_is_simple_use and the recursive calls.
23660 (vect_recog_bool_pattern): Update relevant function calls.
23661 Add printing.
23662 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
23663 (vect_pattern_recog_1): Check for reduction only in loops.
23664 (vect_pattern_recog): Add new argument. Support basic blocks.
23665 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
23666 info to vect_is_simple_use_1.
8f27fc6b 23667 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
f5709183
IR
23668 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
23669
ff63ac4d
JJ
236702012-03-15 Jakub Jelinek <jakub@redhat.com>
23671 Andrew Pinski <apinski@cavium.com>
23672
23673 PR middle-end/52592
23674 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
23675 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
23676 calls instead of __builtin_ir{int,ound}*.
23677
b3781fcb
BRF
236782012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
23679
23680 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
23681 documentation.
23682
42183685 236832012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5ab22850
RR
23684
23685 * config.gcc (target_type_format_char): New. Document it. Set it for
b3781fcb 23686 arm*-*-* .
82e86dc6
UB
23687 * configure.ac (gnu_unique_option): Use target_type_format_char
23688 in test. Comment rationale.
5ab22850
RR
23689 * configure: Regenerate .
23690
ad193f32
JJ
236912012-03-15 Jakub Jelinek <jakub@redhat.com>
23692
23693 PR tree-optimization/52267
23694 * tree-vrp.c (masked_increment): New function.
23695 (register_edge_assert_for_2): Derive ASSERT_EXPRs
23696 from (X & CST1) cmp CST2 tests.
23697
9b00587c
RG
236982012-03-15 Richard Guenther <rguenther@suse.de>
23699
23700 PR middle-end/52580
23701 * tree-data-ref.c (subscript_dependence_tester_1): Check
23702 all dimensions for non-conflicting access functions.
23703
a12bf402
MLI
237042012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
23705
23706 PR c++/44783
23707 * doc/invoke.texi [C++ Language Options]: Document
23708 -ftemplate-backtrace-limit.
23709
51a1aacf
TG
237102012-03-15 Tristan Gingold <gingold@adacore.com>
23711
23712 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
23713 before a parameter.
23714
b763dcaa
TG
237152012-03-15 Tristan Gingold <gingold@adacore.com>
23716
23717 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
23718 use DW_OP_call_frame_cfa.
23719
28968d91
L
237202012-03-14 H.J. Lu <hongjiu.lu@intel.com>
23721
23722 PR target/50797
23723 * config/i386/i386-opts.h (pmode): New.
23724
23725 * config/i386/i386.c (ix86_option_override_internal): Properly
23726 check and set ix86_pmode.
23727
8f27fc6b 23728 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
28968d91
L
23729
23730 * config/i386/i386.opt (maddress-mode=): New.
23731
23732 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
23733
7c17f335
RO
237342012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23735
23736 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
23737 (dwarf2out_do_cfi_asm): Likewise.
23738 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
23739 handling.
23740 (add_data_member_location_attribute): Likewise.
23741 (gen_array_type_die): Likewise.
23742 (gen_subprogram_die): Likewise.
23743 (gen_producer_string): Likewise.
23744 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
23745 Remove MIPS_DEBUGGING_INFO handling.
23746 (sdb_debug_hooks): Likewise.
23747 (sdbout_begin_block): Likewise.
23748 (sdbout_end_block): Likewise.
23749 (sdbout_begin_prologue): Likewise.
23750 (sdbout_start_source_file): Likewise.
23751 (sdbout_end_source_file): Likewise.
23752 (sdbout_init): Likewise.
23753 * system.h (MIPS_DEBUGGING_INFO): Poison.
23754
46e1a769
RO
237552012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23756
23757 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
23758 (alpha_file_start) [MS_STAMP]: Remove.
23759
23760 * config/alpha/elf.h (TARGET_GAS): Remove.
23761 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
23762 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
23763 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
23764 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
23765 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
23766 (alpha*-*-freebsd*): Likewise.
23767 (alpha*-*-netbsd*): Likewise.
23768 (alpha*-*-openbsd*): Likewise.
23769 (alpha*-*-*): Remove target_cpu_default2.
23770 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
23771 handling.
23772 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
23773 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
23774 * config/alpha/alpha.c (print_operand): Always assume
23775 TARGET_AS_SLASH_BEFORE_SUFFIX.
23776 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
23777 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
23778 ("*builtin_setjmp_receiver_er_1"): Remove.
23779 * config/alpha/alpha.opt (malpha-as): Remove.
23780 (mgas): Ignore.
23781 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
23782 -malpha-as, -mgas.
23783 Remove DEC Unix reference.
23784
23785 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
23786 (EXTENDED_COFF): Remove.
23787 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
23788 (EXTENDED_COFF): Don't undef.
23789 * config/alpha/alpha.c (alpha_file_start): Always assume
23790 OBJECT_FORMAT_ELF.
23791 Don't set targetm.asm_file_start_file_directive.
23792 [!OBJECT_FORMAT_ELF]: Remove.
23793 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
23794
23795 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
23796 (DBX_DEBUGGING_INFO): Remove.
23797 (MIPS_DEBUGGING_INFO): Remove.
23798 (PREFERRED_DEBUGGING_TYPE): Remove.
23799 (DBX_OUTPUT_SOURCE_LINE): Remove.
23800 (SDB_OUTPUT_SOURCE_LINE): Remove.
23801 (DBX_CONTIN_LENGTH): Remove.
23802 (NO_DBX_FUNCTION_END): Remove.
23803 (ASM_STABS_OP): Remove.
23804 (ASM_STABN_OP): Remove.
23805 (ASM_STABD_OP): Remove.
23806 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
23807 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
23808 (PUT_SDB_DEF): Remove.
23809 (PUT_SDB_PLAIN_DEF): Remove.
23810 (PUT_SDB_TYPE): Remove.
23811 (sdb_label_count): Remove.
23812 (PUT_SDB_BLOCK_START): Remove.
23813 (PUT_SDB_BLOCK_END): Remove.
23814 (PUT_SDB_FUNCTION_START): Remove.
23815 (PUT_SDB_FUNCTION_END): Remove.
23816 (PUT_SDB_EPILOGUE_END): Remove.
23817 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
23818 (MIPS_DEBUGGING_INFO): Don't undef.
23819 (DBX_DEBUGGING_INFO): Don't undef.
23820 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
23821 (MIPS_DEBUGGING_INFO): Don't undef.
23822 (DBX_DEBUGGING_INFO): Don't undef.
23823 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
23824 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
23825 handling.
23826 (alpha_start_function): Likewise.
23827 (sdb_label_count): Remove.
23828 (alpha_output_filename): Remove DBX_DEBUG handling.
23829 (alpha_file_start): Likewise.
23830
7888f266
RO
238312012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23832
23833 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
23834 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
23835 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
23836 Solaris 8 support.
23837 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
23838 (ld_tls_support): Remove Solaris 8 references.
23839 (lwp_dir, lwp_spec): Remove support for alternate thread library.
82e86dc6 23840 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
7888f266
RO
23841 * configure: Regenerate.
23842 * config.in: Regenerate.
23843
23844 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
23845 * config/i386/sol2.h: Remove Solaris 8 references.
23846
23847 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
23848 (i?86-*-solaris2.9): ... this.
23849 Remove Solaris 8 references.
23850 (Specific, *-*-solaris2*): Document Solaris 8 removal.
23851 Remove Solaris 8 references.
23852
b24513a1
RO
238532012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23854
23855 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
23856 (mips-sgi-irix6.5*): Remove.
23857 * config.host (mips-sgi-irix*): Remove.
23858 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
23859 (set_have_as_tls): Remove *-*-irix6*.
23860 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
23861 * configure: Regenerate.
23862
23863 * config/mips/iris6.h: Remove.
23864 * config/mips/iris6.opt: Remove.
23865 * config/mips/t-irix6: Remove.
23866
23867 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
23868 (TARGET_IRIX6): Remove.
23869 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
23870 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
23871 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
23872 handling.
23873 (mips_file_start): Likewise.
23874 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
23875
23876 * config/mips/driver-native.c [__sgi__]: Remove.
23877 (host_detect_local_cpu) [__sgi__]: Remove.
23878
23879 * config/mips/gnu-user.h: Remove iris5.h reference.
23880
23881 * config/mips/mips-modes.def: Remove IRIX 6 reference.
23882 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
23883 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
23884 Remove.
23885
23886 * gcc.c (main): Move asm_debug initialization ...
23887 (asm_debug): ... here.
23888
23889 * ginclude/stddef.h (__STDDEF_H__): Don't define.
23890
23891 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
23892 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
23893 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
23894 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
23895 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
23896 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
23897 Remove.
23898 * doc/tm.texi: Regenerate.
23899
23900 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
23901 IRIX 6 reference.
23902 (MIPS Options, -march): Remove IRIX reference.
23903 * doc/install.texi (Binaries, SGI IRIX): Remove.
23904 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
23905 of section.
23906 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
23907
02f6574b
MJ
239082012-03-14 Martin Jambor <mjambor@suse.cz>
23909
23910 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
82e86dc6 23911 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
02f6574b
MJ
23912 (expand_expr_real_1): Do not handle misalignment if modifier is
23913 EXPAND_WRITE.
23914
995ec132
RG
239152012-03-14 Richard Guenther <rguenther@suse.de>
23916
23917 PR middle-end/52584
23918 * tree-vect-generic.c (type_for_widest_vector_mode): Take
23919 element type instead of mode, use build_vector_type_for_mode
23920 instead of the langhook, build a vector of proper signedness.
23921 (expand_vector_operations_1): Adjust.
23922
7501ca28
RG
239232012-03-14 Richard Guenther <rguenther@suse.de>
23924
23925 PR middle-end/52582
82e86dc6
UB
23926 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
23927 a cgraph node for a FUNCTION_DECL that comes from a constructor.
7501ca28
RG
23928 (gimple_get_virt_method_for_binfo): Likewise.
23929
c205d0b3
RG
239302012-03-14 Richard Guenther <rguenther@suse.de>
23931
23932 PR tree-optimization/52571
23933 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
23934 flag_section_anchors check ...
23935 (vect_can_force_dr_alignment_p): ... here. Do not re-align
23936 DECL_COMMON variables.
23937
26c71b93
RG
239382012-03-14 Richard Guenther <rguenther@suse.de>
23939
23940 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
23941 * stor-layout.c (start_bitfield_representative): New function.
23942 (finish_bitfield_representative): Likewise.
23943 (finish_bitfield_layout): Likewise.
23944 (finish_record_layout): Call finish_bitfield_layout.
23945 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
23946 for QUAL_UNION_TYPE fields.
23947 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
23948 Stream DECL_BIT_FIELD_REPRESENTATIVE.
23949 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
23950
23951 PR middle-end/52080
23952 PR middle-end/52097
23953 PR middle-end/48124
23954 * expr.c (get_bit_range): Unconditionally extract bitrange
23955 from DECL_BIT_FIELD_REPRESENTATIVE.
23956 (expand_assignment): Adjust call to get_bit_range.
23957
1caf8dd6
RG
239582012-03-14 Richard Guenther <rguenther@suse.de>
23959
23960 PR middle-end/52578
23961 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
23962 the outermost conversion is a sign-change only.
23963 (fold_binary_loc): Disregard widening and sign-changing
23964 conversions when we determine if two variables are equal
23965 for reassociation.
23966 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
23967 (T1)x if the outermost conversion is a sign-change only.
23968
a1d3d84b
UB
239692012-03-14 Uros Bizjak <ubizjak@gmail.com>
23970
23971 Revert:
23972 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
23973
23974 * config/i386/predicates.md (constant_call_address_operand): Declare
23975 as special predicate. Update all uses.
23976
b7613c91
JJ
239772012-03-13 Jakub Jelinek <jakub@redhat.com>
23978
9243c51d
JJ
23979 PR c/52577
23980 * c-parser.c (c_parser_postfix_expression)
23981 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
23982
b7613c91
JJ
23983 * config/i386/smmintrin.h: Avoid /* within a comment.
23984 * config/i386/nmmintrin.h: Likewise.
23985
9020ff27
UB
239862012-03-13 Uros Bizjak <ubizjak@gmail.com>
23987
23988 * config/i386/i386.md (xbegin): Remove constraint from expander.
23989
6e5c8423
UB
239902012-03-13 Uros Bizjak <ubizjak@gmail.com>
23991
23992 * config/i386/predicates.md (constant_call_address_operand): Declare
23993 as special predicate. Update all uses.
23994 * config/i386/i386.md: Remove mode from constant_call_address_operand
23995 predicates.
23996 * config/i386/i386.c (ix86_output_call_insn): Call
23997 constant_call_address_operand with VOIDmode.
23998
ff71e554
UB
239992012-03-13 Uros Bizjak <ubizjak@gmail.com>
24000
24001 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
24002 AND zero extended address correctly.
24003
62a1c041
UB
240042012-03-13 Uros Bizjak <ubizjak@gmail.com>
24005
24006 * config/i386/predicates.md (tls_symbolic_operand): Declare as
24007 special predicate.
24008 (tls_modbase_operand): Ditto.
24009 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
24010 tls_modbase_operand predicates.
24011
43332529
MJ
240122012-03-13 Martin Jambor <mjambor@suse.cz>
24013
24014 * expr.c (expand_assignment): Handle misaligned scalar writes to
24015 memory through top-level MEM_REFs by calling store_bit_field.
24016
0c12cd5e
RG
240172012-03-13 Richard Guenther <rguenther@suse.de>
24018
24019 PR middle-end/52134
24020 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
24021 if Y is a constant multiple of 1 << CST.
24022
ae606c28
GJL
240232012-03-13 Georg-Johann Lay <avr@gjlay.de>
24024
24025 PR target/52488
24026 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
24027 offset (size) to a value the insns can deal with.
24028 (expand_epilogue): Ditto.
24029
a0a6e3f7
MGD
240302012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
24031
24032 * config/arm/neon.ml (ops): Fixup expected instructions for
24033 unsigned vector compares.
24034
9ec96023
UB
240352012-03-13 Uros Bizjak <ubizjak@gmail.com>
24036
24037 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
24038 addresses only when %reg is not in word mode.
24039
d47657bd
RO
240402012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24041
24042 * config/microblaze/microblaze.md: Fix typo.
24043 * tree-if-conv.c: Likewise.
24044 * tree-vect-patterns.c: Likewise.
24045
d82c57a8
RO
240462012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24047
24048 * config.gcc (extra_passes): Remove.
24049 * configure.ac (extra_passes): Don't substitute.
24050 * configure: Regenerate.
24051 * Makefile.in (EXTRA_PASSES): Remove.
24052 (GCC_PASSES): Remove $(EXTRA_PASSES).
24053 (MOSTLYCLEANFILES): Likewise.
24054 (native): Likewise.
24055 (install-common): Likewise.
24056
6c2f0f83
UB
240572012-03-13 Uros Bizjak <ubizjak@gmail.com>
24058
24059 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
24060 * config/i386/i386.c (ix86_decompose_address): Use
24061 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
24062 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
24063 thread pointer to a register.
24064
a029a154
L
240652012-03-12 H.J. Lu <hongjiu.lu@intel.com>
24066
24067 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
24068 on tls_symbolic_operand.
24069 (tls_global_dynamic_64_<mode>): Likewise.
24070
2dc5ca18
GJL
240712012-03-12 Georg-Johann Lay <avr@gjlay.de>
24072
24073 PR other/52545
24074 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
24075 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
24076
ed2d1466
GJL
240772012-03-12 Georg-Johann Lay <avr@gjlay.de>
24078
24079 PR target/52499
24080 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
24081 type from reg_class_t to enum reg_class.
24082 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
24083
b928d32b
AP
240842012-03-12 Andrew Pinski <apinski@cavium.com>
24085
24086 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
24087 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
24088 (value_replacement): Likewise.
24089 (empty_block_p): Check also if the PHIs for the block are empty.
24090
2f986dce
GJL
240912012-03-12 Georg-Johann Lay <avr@gjlay.de>
24092
24093 PR target/52148
24094 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
24095 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
24096 r184615 from 2012-02-28.
24097
79eeab23
L
240982012-03-12 H.J. Lu <hongjiu.lu@intel.com>
24099
24100 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
24101 (ix86_gen_tls_local_dynamic_base_64): Likewise.
24102 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
24103 and ix86_gen_tls_local_dynamic_base_64.
24104 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
24105 ix86_gen_tls_local_dynamic_base_64.
24106
24107 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
24108 (*tls_global_dynamic_64_<mode>): This.
24109 (tls_global_dynamic_64): Renamed to ...
24110 (tls_global_dynamic_64_<mode>): This.
24111 (*tls_local_dynamic_base_64): Renamed to ...
24112 (*tls_local_dynamic_base_64_<mode>): This.
24113 (tls_local_dynamic_base_64): Renamed to ...
24114 (tls_local_dynamic_base_64_<mode>): This.
24115
986b6423
L
241162012-03-12 H.J. Lu <hongjiu.lu@intel.com>
24117
24118 * config/i386/i386.c (ix86_option_override_internal): Properly
24119 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
24120 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
82e86dc6
UB
24121 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
24122 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
986b6423
L
24123
24124 * config/i386/sse.md (sse3_monitor64): Renamed to ...
24125 (sse3_monitor64_<mode>): This.
24126
472b8fdc
TG
241272012-03-12 Tristan Gingold <gingold@adacore.com>
24128
24129 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
24130 (ia64_function_arg_advance): Ditto.
24131
c4bc5c25
RO
241322012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24133
24134 * config.gcc (mips*-*-openbsd*): Remove.
24135 * config/mips/openbsd.h: Remove.
24136 * config/mips/sdb.h: Remove.
24137
24138 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
24139 * config/mips/mips.c (sdb_label_count): Remove.
24140 (mips_debugger_offset): Remove #if 0 code.
24141 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
24142 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
24143
493dd43c
RO
241442012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24145
24146 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
24147 binutils reference.
24148 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
24149 Update binutils references.
24150 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
24151 Update binutils reference.
24152 Update Sun as/GNU ld caveat.
24153 Document binutils largefile requirement for LTO plugin.
344f61ae 24154 Remove reference to alternate libpthread.
493dd43c 24155
5c30094f
RO
241562012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24157
24158 * config.gcc (alpha*-dec-osf5.1*): Remove.
24159 * config.host (alpha*-dec-osf*): Remove.
24160 * configure.ac (*-*-osf*): Remove.
24161 (alpha*-dec-osf*): Remove.
24162 * configure: Regenerate.
24163
82e86dc6
UB
24164 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
24165 config/alpha/va_list.h, config/alpha/x-osf: Remove.
5c30094f
RO
24166
24167 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
24168 * config/alpha/alpha.c (struct machine_function): Update comment.
24169 (alpha_start_function): Remove Tru64 UNIX as handling for
24170 max_frame_size.
24171 * config/alpha/alpha.md ("exception_receiver"): Remove
24172 TARGET_LD_BUGGY_LDGP.
24173 ("*exception_receiver_2"): Likewise.
24174 * except.c (finish_eh_generation): Remove Tru64 reference.
24175 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
24176 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
24177 * target.def (handle_pragma_extern_prefix): Remove.
24178
24179 * Makefile.in (mips-tfile.o-warn): Remove.
24180 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
24181 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
24182 * mips-tdump.c, mips-tfile.c: Remove.
24183
24184 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
24185 extern_prefix.
24186 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
24187 (Specific, alpha*-dec-osf5.1): Note removal.
24188 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
24189 Remove.
24190 * doc/tm.texi: Regenerate.
24191 * doc/trouble.texi (Cross-Compiler Problems): Remove.
24192
bb008427
RG
241932012-03-12 Richard Guenther <rguenther@suse.de>
24194
24195 * config/arm/arm.c (neon_dereference_pointer): Do not call
24196 covert during RTL expansion.
24197
281740d1
TG
241982012-03-12 Tristan Gingold <gingold@adacore.com>
24199
24200 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
24201 Options. Mention -mpointer-size.
24202
21fa2faf
RG
242032012-03-12 Richard Guenther <rguenther@suse.de>
24204
24205 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
24206 build_nonstandard_integer_type.
24207
7ee6fd68
RG
242082012-03-12 Richard Guenther <rguenther@suse.de>
24209
24210 * tree.c (signed_or_unsigned_type_for): Use
24211 build_nonstandard_integer_type.
24212 (signed_type_for): Adjust documentation.
24213 (unsigned_type_for): Likewise.
24214 * tree-pretty-print.c (dump_generic_node): Use standard names
24215 for non-standard integer types if available.
24216
d8aba32a
TG
242172012-03-12 Tristan Gingold <gingold@adacore.com>
24218
24219 * config/vms/vms.opt: Add vms-opts.h header.
24220 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
24221 target mask.
24222 (-mvms-return-codes): Document.
24223 (-mpointer-size): New option.
24224 (vms_pointer_size): Add enumeration.
24225 * config/vms/vms-opts.h: New file.
24226 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
24227 __INITIAL_POINTER_SIZE.
24228 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
24229 (C_COMMON_OVERRIDE_OPTIONS): Define.
24230 (DWARF2_ADDR_SIZE): Define.
24231 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
24232 * config/vms/vms-protos.h (vms_c_common_override_options):
24233 New prototype.
24234 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
24235 if -mno-pointer-size.
24236 (vms_c_common_override_options): New function.
24237 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
24238 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
24239 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
24240 and flag_vms_pointer_size.
24241 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
24242 * config.gcc (*-*-*vms*): Define xm_file.
24243 (alpha*-dec-*vms*): Do not define xm_file.
24244 (alpha64-dec-*vms*): Remove.
24245 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
24246 and tmake_file.
24247
7b5c5139
JJ
242482012-03-12 Jakub Jelinek <jakub@redhat.com>
24249
24250 PR tree-optimization/51721
24251 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
24252 if (int) unsvar cmp CST.
24253
3f5f6592
RG
242542012-03-12 Richard Guenther <rguenther@suse.de>
24255
82e86dc6
UB
24256 * tree-sra.c (create_access_replacement): Only rename the replacement
24257 if we can rewrite it into SSA form. Properly mark register typed
24258 replacements that we cannot rewrite with TREE_ADDRESSABLE.
3f5f6592
RG
24259 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
24260 for aggregate or BLKmode results.
24261
01c1f20d
JJ
242622012-03-12 Jakub Jelinek <jakub@redhat.com>
24263
24264 PR tree-optimization/52533
24265 * tree-vrp.c (register_edge_assert_for_2): Use double_int
24266 type for mask, only handle shifts by non-zero in-range
24267 shift count, for LE_EXPR and GT_EXPR if new_val is
24268 maximum, don't add the assertion.
24269
bf2eaa3f
KY
242702012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
24271
24272 * doc/invoke.texi: Document -mrtm option.
82e86dc6 24273 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
bf2eaa3f
KY
24274 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
24275 (ix86_handle_option): Handle OPT_mrtm.
24276 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
24277 xtestintrin.h.
24278 (x86_64-*-*): Ditto.
24279 * i386-builtin-types.def (INT_FTYPE_VOID): New.
24280 * config/i386/i386-c.c (ix86_target_macros_internal): Define
24281 __RTM__ if needed.
24282 (ix86_target_string): Define -mrtm option.
24283 (PTA_RTM): New.
82e86dc6
UB
24284 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
24285 Handle new option.
bf2eaa3f
KY
24286 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
24287 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
24288 IX86_BUILTIN_XTEST.
24289 (bdesc_special_args): Ditto.
24290 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
24291 (ix86_expand_special_args_builtin): Handle new built-in type.
24292 (ix86_expand_builtin): Handle XABORT instruction.
24293 * config/i386/i386.h (TARGET_RTM): New.
24294 * config/i386/i386.md (UNSPECV_XBEGIN): New.
24295 (UNSPECV_XEND): Ditto.
24296 (UNSPECV_XABORT): Ditto.
24297 (UNSPECV_XTEST): Ditto.
24298 (xbegin): Ditto.
24299 (xbegin_1): Ditto.
24300 (xend): Ditto.
24301 (xabort): Ditto
24302 (xtest): Ditto.
24303 (xtest_1): Ditto.
24304 * config/i386/i386.opt (mrtm): New.
82e86dc6 24305 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
bf2eaa3f
KY
24306 * config/i386/rtmintrin.h: New header.
24307 * config/i386/xtestintrin.h: Ditto.
24308
914e2f45
TG
243092012-03-12 Tristan Gingold <gingold@adacore.com>
24310
82e86dc6
UB
24311 * ginclude/stddef.h: Adjust previous patch.
24312 Use __VMS__ instead of VMS.
914e2f45 24313
f70c41dd
UB
243142012-03-12 Uros Bizjak <ubizjak@gmail.com>
24315
24316 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
24317 Also convert sequences with CC setting arithmetic instruction.
24318
25d28bd3
SL
243192012-03-11 Sandra Loosemore <sandra@codesourcery.com>
24320
24321 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
24322 from C Language Options to Preprocessor Options.
24323 (C Dialect Options): Move -no-integrated-cpp documentation
24324 from here...
24325 (Preprocessor Options): ...to here. Rewrite the description
82e86dc6 24326 so it makes more sense, and remove discussion of merging front ends.
25d28bd3 24327
8100d8c1
L
243282012-03-11 H.J. Lu <hongjiu.lu@intel.com>
24329
24330 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
24331 needed for loop.
24332 (ix86_expand_setmem): Likewise.
24333
670bb1a1
UB
243342012-03-11 Uros Bizjak <ubizjak@gmail.com>
24335
24336 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
24337 convert_to_mode.
24338
ba61421d
L
243392012-03-11 H.J. Lu <hongjiu.lu@intel.com>
24340
24341 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
24342 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
24343
649507af
L
243442012-03-11 H.J. Lu <hongjiu.lu@intel.com>
24345
670bb1a1 24346 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
649507af 24347
1991321c
L
243482012-03-11 H.J. Lu <hongjiu.lu@intel.com>
24349
24350 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
24351 TARGET_64BIT.
24352
9ec90caa
UB
243532012-03-11 H.J. Lu <hongjiu.lu@intel.com>
24354 Uros Bizjak <ubizjak@gmail.com>
1ce8d925 24355
9ec90caa 24356 * config/i386/predicates.md (call_insn_operand): Allow
1ce8d925
UB
24357 constant_call_address_operand in Pmode only.
24358 (sibcall_insn_operand): Ditto.
24359 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
24360 (*call_vzeroupper): Ditto.
24361 (*sibcall): Ditto.
24362 (*sibcall_vzeroupper): Ditto.
24363 (*call_value): Ditto.
24364 (*call_value_vzeroupper): Ditto.
24365 (*sibcall_value): Ditto.
24366 (*sibcall_value_vzeroupper): Ditto.
24367 (*indirect_jump): Ditto.
24368 (*tablejump_1): Ditto.
24369 (indirect_jump): Convert memory address to word mode for TARGET_X32.
24370 (tablejump): Ditto.
24371 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
24372 to word mode.
24373
07c0b560
OE
243742012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
24375
24376 PR target/51244
24377 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
24378 Use movrt_negc instead of negc pattern for non-SH2A.
24379 (*movnegt): Remove.
24380 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
24381
09255652
L
243822012-03-10 H.J. Lu <hongjiu.lu@intel.com>
24383
24384 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
24385 if Pmode != word_mode.
24386 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
1ce8d925 24387 Pmode == SImode for TARGET_X32.
09255652
L
24388
24389 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
24390 (tls_initial_exec_x32): Likewise.
24391
30823ba6
CLT
243922012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
24393
24394 PR rtl-optimization/52528
24395 * combine.c (can_combine_p): Add setting of subst_low_luid
24396 before call to expand_field_assignment().
24397
b364b425
SL
243982012-03-09 Sandra Loosemore <sandra@codesourcery.com>
24399
24400 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
24401 and related program names.
24402
7bd11aba
SL
244032012-03-09 Sandra Loosemore <sandra@codesourcery.com>
24404
24405 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
24406
080324ac
UB
244072012-03-09 Uros Bizjak <ubizjak@gmail.com>
24408
24409 PR target/52530
24410 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
24411 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
24412 to set code to 'q'.
24413 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
24414 (*movdi_internal_rex64): Use %E operand modifier for lea.
24415 (*movsi_internal): Ditto.
24416 (*lea_1): Ditto.
24417 (*lea<mode>_2): Ditto.
24418 (*lea_{3,4,5,6}_zext): Ditto.
24419 (*tls_global_dynamic_32_gnu): Ditto.
24420 (*tls_global_dynamic_64): Ditto.
24421 (*tls_dynamic_gnu2_lea_32): Ditto.
24422 (*tls_dynamic_gnu2_lea_64): Ditto.
24423 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
24424
45cfa18d
MM
244252012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
24426
24427 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
24428 redefine to be NULL if the current bit-size is different from the
24429 configured bit-size.
24430
24431 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
24432 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
24433 set the default tuning. Add asserts to make sure the cpu and tune
24434 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
24435 test whether the index is set, instead of > 0.
24436 (rs6000_file_start): Do not reset the default cpu if the current
24437 bit-size is different from the configured bit-size.
24438
30da483d
TG
244392012-03-09 Tristan Gingold <gingold@adacore.com>
24440
24441 * config/vms/vms-crtlmap.map: Add comments.
24442 Add entries needed to build Ada RTS.
24443
c8be95e6
TG
244442012-03-09 Tristan Gingold <gingold@adacore.com>
24445
24446 * ginclude/stddef.h: Do not define __size_t on VMS.
24447
412cd719
TG
244482012-03-09 Tristan Gingold <gingold@adacore.com>
24449
24450 * c-tree.h (c_default_pointer_mode): New variable.
24451 * c-decl.c (c_default_pointer_mode): New variable.
24452 (c_build_pointer_type): New function.
24453 (grokdeclarator): Call c_build_pointer_type instead
24454 of build_pointer_type.
24455
24456 * config/vms/vms-c.c: Include c-tree.h
24457 (saved_pointer_mode): New variable.
24458 (handle_pragma_pointer_size): New function.
24459 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
24460 (vms_c_register_pragma): Register __pointer_size and
24461 __required_pointer_size pragmas.
24462
575a6235
TG
244632012-03-09 Tristan Gingold <gingold@adacore.com>
24464
24465 * config/vms/vms-c.c (vms_construct_include_filename): New function.
24466 (vms_c_register_includes): Reference it.
24467
210ac0b7
AP
244682012-03-09 Andrew Pinski <apinski@cavium.com>
24469
24470 PR middle-end/51988
24471 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
24472 print_generic_expr.
24473 (tree_ssa_phiopt_worker): Go through all the PHIs for
24474 value_replacement instead of just the singleton one.
24475 (value_replacement): Change return type to int. Return 0 instead of
24476 false.
575a6235
TG
24477 Allow the middle basic block to contain more than just the defining
24478 statement.
210ac0b7
AP
24479 Handle non empty middle basic blocks.
24480 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
24481
bef28ced
JL
244822012-03-09 Jiangning Liu <jiangning.liu@arm.com>
24483
24484 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
24485 array reference and component reference.
24486 (analyze_scalar_evolution_for_address_of): New.
24487
9916d7ea
JZ
244882012-03-08 Jie Zhang <jzhang918@gmail.com>
24489
24490 PR target/49862
080324ac 24491 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
9916d7ea
JZ
24492 (hwloop_pattern_reg): Fix set but not used warning.
24493 (bfin_reorg_loops): Remove unused parameter.
24494 (bfin_reorg): Update use of bfin_reorg_loops.
24495
cc845923
L
244962012-03-08 H.J. Lu <hongjiu.lu@intel.com>
24497
24498 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
24499 with integer parameters in registers.
24500 (gen_push): Push register in word_mode instead of Pmode.
24501 (ix86_emit_save_regs): Likewise.
080324ac 24502 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
cc845923
L
24503 (gen_pop): Pop register in word_mode instead of Pmode.
24504 (ix86_emit_restore_regs_using_pop): Likewise.
24505 (ix86_expand_prologue): Replace Pmode with word_mode for push
24506 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
24507 restore RAX and R10 in word_mode.
24508 (ix86_emit_restore_regs_using_mov): Restore integer registers
24509 in word_mode.
24510 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
24511 word_mode.
24512 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
24513 (ix86_split_long_move): Likewise.
24514
24515 * config/i386/i386.md (W): New.
24516 (*push<mode>2_prologue): Replace :P with :W.
24517 (*pop<mode>1): Likewise.
24518 (*pop<mode>1_epilogue): Likewise.
24519 (push/pop peephole2): Use word_mode scratch registers.
24520
b9719055
UB
245212012-03-08 Uros Bizjak <ubizjak@gmail.com>
24522
24523 * config/i386/predicates.md (indirect_branch_operand): Simplify.
24524
e04d063b
GJL
245252012-03-08 Georg-Johann Lay <avr@gjlay.de>
24526
24527 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
24528 for constants in [-63,63].
24529
ce19a3f8
UB
245302012-03-08 Uros Bizjak <ubizjak@gmail.com>
24531
24532 PR target/52530
24533 Revert:
24534 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
24535
24536 * config/i386/i386.c (ix86_print_operand_address): Only handle
24537 zero-extended DImode addresses.
24538
2527ff87
RO
245392012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24540
24541 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
24542 * configure: Regenerate.
24543
d93417c8
GJL
245442012-03-08 Georg-Johann Lay <avr@gjlay.de>
24545
24546 PR target/52496
24547 * config/avr/avr.c (avr_mem_clobber): New static function.
24548 (avr_expand_delay_cycles): Add memory clobber operand to
24549 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
24550 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
24551 (enable_interrupt, disable_interrupt): New expander.
24552 (nopv, sleep, wdr): New expanders.
24553 (delay_cycles_1): Add memory clobber.
24554 (delay_cycles_2): Add memory clobber.
24555 (delay_cycles_3): Add memory clobber.
24556 (delay_cycles_4): Add memory clobber.
24557 (cli_sei): New insn from former "enable_interrupt",
24558 "disable_interrupt" with memory clobber.
24559 (*wdt): New insn from former "wdt" with memory clobber.
24560 (*nopv): Similar, but for "nopv".
24561 (*sleep): Similar, but for "sleep".
24562
bed9e870
OE
245632012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
24564 Kaz Kojima <kkojima@gcc.gnu.org>
24565
24566 PR target/52503
24567 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
24568 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
24569 (SUBTARGET_OVERRIDE_OPTIONS): Define.
24570
ca538e97
UB
245712012-03-07 Uros Bizjak <ubizjak@gmail.com>
24572
24573 * config/i386/predicates.md (x86_64_zext_general_operand): New.
24574 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
24575 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
24576
95f2389a
WL
245772012-03-07 Walter Lee <walt@tilera.com>
24578
24579 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
24580 REG_CFA_* notes for the stack pointer.
24581 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
24582 EH_RETURN_STACKADJ_RTX.
24583 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
24584 generate REG_CFA_* notes for the stack pointer.
24585 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
24586 by EH_RETURN_STACKADJ_RTX.
24587
0bd5f4dd
GJL
245882012-03-07 Georg-Johann Lay <avr@gjlay.de>
24589
24590 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
24591 when __AVR_3_BYTE_PC__ is defined.
24592
397c0dc8
UB
245932012-03-07 Uros Bizjak <ubizjak@gmail.com>
24594
24595 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
24596 (ix86_print_operand): Handle '^'.
24597 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
24598 using P mode iterator. Add %^ to asm template to conditionally emit
24599 addr32 prefix.
24600 (*rep_movdi_rex64): Ditto.
24601 (*strsetdi_rex_1): Ditto.
24602 (*rep_stosdi_rex64): Ditto.
24603 (*strmov{si,hi,qi}_1): Add %^ to asm template to
24604 conditionally emit addr32 prefix.
24605 (*rep_mov{si,qi}): Ditto.
24606 (*strset{si,hi,qi}): Ditto.
24607 (*rep_stos{si,qi}): Ditto.
24608 (*cmpstrnqi_nz_1): Ditto.
24609 (*cmpstrnqi_1): Ditto.
24610 (*strlenqi_1): Ditto.
24611
cccff71a
L
246122012-03-07 H.J. Lu <hongjiu.lu@intel.com>
24613
24614 * config/i386/i386.c (function_value_64): Return pointers in
24615 word_mode instead of Pmode.
24616 (ix86_promote_function_mode): Likewise.
24617
0f250839
RG
246182012-03-07 Richard Guenther <rguenther@suse.de>
24619
24620 * coverage.c (get_gcov_type): Use type_for_mode.
24621 (get_gcov_unsigned_t): Likewise.
24622 * expr.c (store_constructor): Use type_for_mode.
24623 (try_casesi): Likewise.
397c0dc8 24624 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
0f250839
RG
24625 (add_standard_iv_candidates): Use standard type trees.
24626 * dojump.c (do_jump): Remove dead code.
24627
647d4b75
RG
246282012-03-07 Richard Guenther <rguenther@suse.de>
24629
24630 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
24631
73ddd02d
RG
246322012-03-07 Richard Guenther <rguenther@suse.de>
24633
24634 * convert.c (strip_float_extensions): Move ...
24635 * tree.c (strip_float_extensions): ... here.
24636
1274e3a4
GJL
246372012-03-07 Georg-Johann Lay <avr@gjlay.de>
24638
24639 PR target/52484
24640 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
24641
96f9265a
RG
246422012-03-07 Richard Guenther <rguenther@suse.de>
24643
24644 * omp-low.c (extract_omp_for_data): Use signed_type_for.
24645 (expand_omp_for_generic): Likewise.
24646 (expand_omp_for_static_nochunk): Likewise.
24647 (expand_omp_for_static_chunk): Likewise.
24648 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
24649 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
24650 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
24651 Use unsigned_type_for.
24652 (vect_create_cond_for_align_checks): Use signed_type_for.
24653
3f1960ac
AB
246542012-03-07 Andrey Belevantsev <abel@ispras.ru>
24655
24656 PR rtl-optimization/52203
24657 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
24658 all callers to pass NULL except ...
24659 (reset_sched_cycles_in_current_ebb): ... here, save the value
24660 in new variable 'empty'. Increase issue_rate only for
397c0dc8 24661 non-empty insns.
3f1960ac 24662
d6baa446
RC
246632012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
24664
24665 PR target/51417
397c0dc8
UB
24666 * Makefile.in: Let install-gcc-ar depend on installdirs,
24667 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
d6baa446
RC
24668 Don't double canonicalize if cross-compiling.
24669
42601c63
GJL
246702012-03-07 Georg-Johann Lay <avr@gjlay.de>
24671
24672 PR target/52506
24673 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
24674 to: RAMPZ, RAMPY, RAMPX, RAMPD.
24675 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
24676
61108225
GJL
246772012-03-07 Georg-Johann Lay <avr@gjlay.de>
24678
24679 PR target/52505
24680 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
24681 from RAM.
24682 * config/avr/avr.md (xload_8): Adjust insn length.
24683
b30e10ab
GJL
246842012-03-07 Georg-Johann Lay <avr@gjlay.de>
24685
24686 PR target/52461
24687 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
24688 if RAMPZ affects reading from RAM.
24689
eb3e63cc
RG
246902012-03-07 Richard Guenther <rguenther@suse.de>
24691
24692 PR pch/52518
24693 PR pch/38987
24694 * doc/invoke.texi (Precompiled Headers): Remove sentence that
24695 suggests you can include PCHs from inside another header.
24696
788284ef
RS
246972012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
24698
24699 PR middle-end/52515
24700 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
24701
98b1d9b2
KT
247022012-03-07 Kai Tietz <ktietz@redhat.com>
24703
24704 * doc/invoke.texi (fwritable-relocated-rdata): Document
24705 new Cygwin/MinGW target option.
24706 * config/i386/winnt.c (i386_pe_unique_section): Ignore
24707 reloc if flag -fwritable-relocated-rdata is not set.
24708 (i386_pe_section_type_flags): Likewise.
24709 * config/i386/cygming.opt (fwritable-relocated-rdata):
24710 Add new flag variable flag_writable_rel_rdata.
24711
f409d239
RG
247122012-03-07 Richard Guenther <rguenther@suse.de>
24713
24714 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
24715 precision against gimple constraints.
24716
ca4adc91
RS
247172012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
24718
24719 PR middle-end/52372
24720 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
24721 variables.
24722 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
24723 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
24724 variables.
24725 (init_emit_regs): Move associated initialization to...
24726 (init_emit_once): ...here.
24727
22a89c86
RH
247282012-03-06 Richard Henderson <rth@redhat.com>
24729
24730 * config/m68k/m68k.h (ISA_HAS_TAS): New.
24731 * config/m68k/sync.md (atomic_test_and_set): Use it.
24732 (atomic_test_and_set_1): Likewise.
24733
46402cbe
MM
247342012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
24735
24736 PR target/50310
24737 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
24738 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
24739 (vector_ltgt<mode>): Likewise.
24740 (vector_ordered<mode>): Likewise.
24741 (vector_unordered<mode>): Likewise.
397c0dc8 24742 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
46402cbe 24743
6342e53f
AH
247442012-03-06 Aldy Hernandez <aldyh@redhat.com>
24745
24746 * trans-mem.c: New typedef for tm_region_p.
24747 Define vector types for tm_region_p.
24748 (tm_region_init): Replace region_worklist to a vector called
24749 bb_regions.
24750
d8f56643
RG
247512012-03-06 Richard Guenther <rguenther@suse.de>
24752
24753 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
24754 MEM_REF with constant pointer operand.
24755
9da5500b
RG
247562012-03-06 Richard Guenther <rguenther@suse.de>
24757
24758 PR middle-end/52493
24759 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
24760
66df6e9e
TG
247612012-03-06 Tristan Gingold <gingold@adacore.com>
24762
397c0dc8 24763 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
66df6e9e
TG
24764 (external_model_kind): Improve documentation.
24765 (vms_pragma_extern_model): Handle relaxed_redef.
24766 (vms_c_register_pragma): Allow expansion for nomember_alignment.
24767
837fd3b0
GJL
247682012-03-06 Georg-Johann Lay <avr@gjlay.de>
24769
24770 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
24771 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
24772 Some more notes on EIND usage and reorder EIND subsection.
24773
17a27c59
TG
247742012-03-06 Tristan Gingold <gingold@adacore.com>
24775
24776 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
24777 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
24778
a2ddaaf5
TG
247792012-03-06 Tristan Gingold <gingold@adacore.com>
24780
24781 * config/vms/t-vmsnative (version): Define.
24782 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
24783
b7b5540a
AB
247842012-03-06 Andrey Belevantsev <abel@ispras.ru>
24785
24786 PR rtl-optimization/52250
24787 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
24788 to put note list into. Unconditionally call move_bb_info.
24789 (move_bb_info): Do not assert the blocks being in the same region,
a2ddaaf5 24790 just drop the note list if they are not.
b7b5540a 24791
9747719a
OE
247922012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
24793
24794 PR target/51244
24795 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
24796 and use unified expansion logic.
24797 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
24798 closer to the existing movt insn.
24799 (negc): Rename insn to *negc. Add new expander.
24800 (movnegt): Use xor pattern for T bit negation. Reserve helper
24801 constant for negc pattern.
24802 (*movnegt): New insn and splitter.
24803
5de72424
BS
248042012-03-05 Bernd Schmidt <bernds@codesourcery.com>
24805
24806 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
24807 PLUS_EXPR.
24808
3b1552c1
RH
248092012-03-05 Richard Henderson <rth@redhat.com>
24810
24811 * genemit.c (main): Include "target.h" in insn-emit.c.
24812 * Makefile.in (insn-emit.o): Depend on TARGET_H.
24813 * config/sh/sync.md (atomic_test_and_set): Reference
24814 targetm.atomic_test_and_set_trueval instead of
24815 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
24816
1565f169
JR
248172012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
24818
24819 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
24820 Make static.
24821
c0814136
SB
248222012-03-05 Steven Bosscher <steven@gcc.gnu.org>
24823
24824 * langhooks.c (add_builtin_type): New function.
24825 * langhooks.h (add_builtin_type): Export it.
24826 * config/mep/mep.c (mep_init_builtins): Use it.
24827 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
24828
1e3c1d95
JJ
248292012-03-05 Jakub Jelinek <jakub@redhat.com>
24830
24831 PR debug/51902
24832 * tree.h (BLOCK_SAME_RANGE): Define.
24833 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
24834 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
24835 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
24836 isn't equal to supercontext fragment's fragment chain.
24837 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
24838 fragment origin.
24839 (blocks_nreverse_all): Likewise.
24840 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
24841 BLOCK_SUPERCONTEXT to supercontext fragment instead of
24842 supercontext fragment's fragment origin.
24843 * dwarf2out.c (add_high_low_attributes): If stmt has the same
24844 range as its parent (or parents thereof etc.), use the parent's
24845 DW_AT_ranges value instead of creating a new .debug_ranges range.
24846
4999c62c
RH
248472012-03-05 Richard Henderson <rth@redhat.com>
24848
24849 PR tree-opt/52242
24850 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
24851 * omp-low.c (expand_omp_atomic): Assume anything aligned to
24852 BIGGEST_ALIGNMENT is aligned.
24853
95a6dda5
RH
248542012-03-05 Richard Henderson <rth@redhat.com>
24855
24856 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
24857 * config/sh/sh.c: ... here.
24858
b7313c30
RH
248592012-03-05 Richard Henderson <rth@redhat.com>
24860
24861 PR target/52481
24862 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
24863 instead of calling negqi2 directly.
24864
f49b12f4
RH
248652012-03-05 Aldy Hernandez <aldyh@redhat.com>
24866
24867 PR middle-end/52463
24868 * trans-mem.c (tm_region_init): Use last_basic_block.
24869
ab649754
OE
248702012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
24871
24872 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
24873 * config/sh/sync.md (atomic_test_and_set): New expander.
24874 (tasb, atomic_test_and_set_soft): New insns.
24875 * config/sh/sh.opt (menable-tas): New option.
24876 * doc/invoke.texi (SH Options): Document it.
24877
510dbcce
RG
248782012-03-05 Richard Guenther <rguenther@suse.de>
24879
24880 * cfgloop.c (verify_loop_structure): Verify dominators before
24881 using them.
24882 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
24883 dominators from here.
24884 * graphite-scop-detection.c (create_sese_edges): Likewise.
24885 * loop-doloop.c (doloop_optimize_loops): Likewise.
24886 * loop-init.c (loop_optimizer_init): Likewise.
24887 * loop-unroll.c (unroll_and_peel_loops): Likewise.
24888 * loop-unswitch.c (unswitch_loops): Likewise.
24889 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
24890 * tree-parloops.c (parallelize_loops): Likewise. Verify
24891 only when checking is enabled.
24892 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
24893
50bcfce0
BS
248942012-03-05 Bernd Schmidt <bernds@codesourcery.com>
24895
24896 * genautomata.c (parse_automata_opt): New static function.
24897 (initiate_automaton_gen): Remove all option handling code. Remove
24898 argc argument. All callers changed.
397c0dc8 24899 (main): Call init_rtx_reader_args_cb with the new function as argument.
50bcfce0 24900
cd7d9fd7
RG
249012012-03-05 Richard Guenther <rguenther@suse.de>
24902
24903 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
24904 * tree-if-conv.c (combine_blocks): Free post-dominator info
24905 after breaking it.
24906 * tree-parloops.c (create_parallel_loop): Free and re-compute
24907 dominator info after breaking it.
24908
b55f62cc
RG
249092012-03-05 Richard Guenther <rguenther@suse.de>
24910
24911 PR middle-end/52353
24912 * optabs.h (trapv_unoptab_p): New function.
24913 (trapv_binoptab_p): Likewise.
24914 * optabs.c (expand_binop): Use emit_libcall_block_1 with
24915 a proper equiv_may_trap argument.
24916 (expand_unop): Likewise.
24917 (emit_libcall_block_1): Take extra argument whether the
24918 instruction may trap. Renamed from ...
24919 (emit_libcall_block): ... this. New wrapper.
24920
f9df6f16
JJ
249212012-03-05 Jakub Jelinek <jakub@redhat.com>
24922
3877a6a6
JJ
24923 PR tree-optimization/51721
24924 * tree-vrp.c (register_edge_assert_for_2): If comparing
24925 lhs of right shift by constant with an integer constant,
24926 add ASSERT_EXPRs for the rhs1 of the right shift.
24927
f9df6f16
JJ
24928 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
24929
45c0175b
RG
249302012-03-05 Richard Guenther <rguenther@suse.de>
24931
24932 * tree.c (integer_zerop): Handle VECTOR_CSTs.
24933 (integer_onep): Likewise.
24934 (integer_all_onesp): Likewise.
24935
d84f3a05
GJL
249362012-03-05 Georg-Johann Lay <avr@gjlay.de>
24937
24938 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
24939
55b86fb0
L
249402012-03-04 H.J. Lu <hongjiu.lu@intel.com>
24941
24942 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
24943 instead of TARGET_64BIT.
24944
4732e8de
L
249452012-03-04 H.J. Lu <hongjiu.lu@intel.com>
24946
24947 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
24948 adjust_stack_insn.
24949
5ca9708b
L
249502012-03-04 H.J. Lu <hongjiu.lu@intel.com>
24951
24952 * config/i386/i386.c (ix86_print_operand_address): Only handle
24953 zero-extended DImode addresses.
24954
f0050a4b
UB
249552012-03-04 Uros Bizjak <ubizjak@gmail.com>
24956
24957 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
24958 taken and cputaken as bool.
24959
904eea2c
UB
249602012-03-04 Uros Bizjak <ubizjak@gmail.com>
24961
24962 * config/i386/constraints.md (Ya): New internal constraint.
24963 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
24964 (*zero_extendsidi2_rex64): Add x,x alternative.
24965 (*zero_extendsidi2): Ditto. Add o,0 alternative.
24966 Remove flags reg clobber. Adjust corresponding splits.
24967 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
24968 zero_extendqisi2 expanders using SWI12 mode iterator.
24969 (zero_extend<mode>si2_and): Macroize insn from
24970 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
24971 splitters.
24972 (*zero_extend<mode>si2): Macroize insn from
24973 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
24974 (*zero_extend*2_movzbl_and): Remove insn patterns.
24975 (zero_extendqihi2_and): Merge corresponding splitter.
24976 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
24977 (*zero_extend*2_movzbl_and): Remove insn patterns.
24978 (*anddi_1): Split TYPE_IMOVX instructions.
24979 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
24980 (*andhi_1): Ditto.
24981 (and->zext splitter): Add splitter pattern.
24982 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
24983
b12866c7
SL
249842012-03-04 Sandra Loosemore <sandra@codesourcery.com>
24985
24986 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
24987 x86-specific text.
24988 (Debugging Options): Likewise.
24989 (Optimize Options): Likewise.
24990 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
24991 with other architectures. Use official processor names with correct
24992 spelling/capitalization. Fix formatting and grammar issues.
24993 (i386 and x86-64 Windows Options): Similar cleanup here.
24994
4feaca8b
KK
249952012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
24996
24997 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
24998
59248459
KK
249992012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
25000
25001 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
25002 DBX_REGISTER_NUMBER.
25003
dea148c4
KK
250042012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
25005
25006 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
25007 operand is CONST_INT. Take COSTS_N_INSNS into account.
25008 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
25009 of shiftcosts.
25010
a6de595f
RH
250112012-03-02 Richard Henderson <rth@redhat.com>
25012
25013 * optabs.c (expand_atomic_test_and_set): Honor
25014 atomic_test_and_set_trueval even when atomic_test_and_set
25015 optab is not in use.
25016
4978c736
KK
250172012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
25018
25019 PR target/48596
25020 PR target/48806
25021 * config/sh/sh.c (sh_register_move_cost): Increase cost between
25022 GENERAL_REGS and FP_REGS for SImode.
25023
5e44ea89
OE
250242012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
25025
25026 PR target/49486
25027 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
25028 (absdi2): New expander.
25029 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
25030
349e6f05
OE
250312012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
25032
b5ea8036
OE
25033 * config/sh/sync.md (atomic_exchange<mode>): New expander.
25034 (atomic_exchange<mode>_soft): New insn.
25035
250362012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
25037
25038 * config/sh/sync.md: Update copyright notice dates.
349e6f05
OE
25039 (atomic_compare_and_swap<mode>): Use SImode for return value instead
25040 of QImode.
b5ea8036 25041 (atomic_compare_and_swap<mode>_soft): Likewise.
349e6f05
OE
25042
250432012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
904eea2c 25044
b6a0df6c
OE
25045 PR target/31640
25046 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
25047 * config/sh/sh.c: Update copyright notice dates.
25048 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
25049 alignment for TARGET_HARD_SH4.
904eea2c 25050 (sh_option_override): Reduce default function alignment. Set
b6a0df6c
OE
25051 loop alignment to 4 bytes when not optimizing for size.
25052
093193be
MK
250532012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
25054
290d87eb 25055 PR middle-end/50335
093193be
MK
25056 * doc/invoke.texi (floop-flatten): Remove.
25057 * toplev.c (process_options): Remove references to flag_loop_flatten.
25058 * tree-ssa-loop.c (gate_graphite_transform): Same.
25059 * common.opt (floop-flatten): Obsolete.
25060 * graphite-poly.c (apply_poly_transforms): Remove reference to
25061 flag_loop_flatten.
25062 * Makefile.in (graphite-flattening.o): Remove.
25063 * graphite-flattening.c: Remove.
25064
34c5f21a
UB
250652012-03-02 Uros Bizjak <ubizjak@gmail.com>
25066
25067 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
25068 having mode compatible with the mode of previous compare. Substitute
25069 compare mode of previous compare with the mode, compatible
25070 with eliminated and previous compare.
25071
6f975f93
PB
250722012-03-02 Peter Bergner <bergner@vnet.ibm.com>
25073
25074 * config/rs6000/dfp.md (floatdidd2): New define_insn.
25075
76945a7c
UB
250762012-03-02 Uros Bizjak <ubizjak@gmail.com>
25077
25078 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
25079 compatible with CCGOCmode and CCGCmode.
25080
2ff16893
PB
250812012-03-02 Peter Bergner <bergner@vnet.ibm.com>
25082
25083 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
25084
5d216c70
UW
250852012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
25086
25087 * config/arm/arm.c (arm_sat_operator_match): New function.
25088 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
25089 * config/arm/arm.md ("insn" attribute): Add "sat" value.
25090 ("SAT", "SATrev"): New code iterators.
25091 ("SATlo", "SAThi"): New code iterator attributes.
25092 ("*satsi_<SAT:code>"): New pattern.
25093 ("*satsi_<SAT:code>_shift"): Likewise.
25094 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
25095 and "shift" attributes.
25096 ("arm_usatsihi"): Add "insn" attribute.
25097 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
25098 by powers of two. Do not allow shift by 32.
25099
2b57045b
UB
251002012-03-02 Uros Bizjak <ubizjak@gmail.com>
25101
25102 PR target/46716
25103 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
25104 to pass the argument in the register of "natural" mode.
25105
c4ddde1b
RG
251062012-03-02 Richard Guenther <rguenther@suse.de>
25107
25108 PR tree-optimization/52406
25109 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
25110 (struct indices): Add unconstrained_base member.
25111 (struct dr_alias): Remove unused vops member.
25112 (DR_UNCONSTRAINED_BASE): New define.
25113 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
25114 add indices to allow their disambiguation. Make DR_BASE_OBJECT
25115 be an artificial access that covers the whole indexed object,
25116 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
25117 plain decl base-objects to their MEM_REF variant.
25118 (dr_may_alias_p): When the base-object of either data reference
25119 has unknown size use only points-to information.
25120 (compute_affine_dependence): Make dumps easier to read and
25121 more verbose.
25122 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
25123 DR_REF when looking for packed references.
25124 (vect_supportable_dr_alignment): Likewise.
25125
2d68f67f
GY
251262012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
25127
2b57045b 25128 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
2d68f67f
GY
25129 Improve conditions for peepholes of loads followed by commutative
25130 operators.
2b57045b 25131 * config/arm/ldmstm.md: Regenerated.
2d68f67f 25132
45c29d4d
RG
251332012-03-02 Richard Guenther <rguenther@suse.de>
25134
25135 * BASE-VER: Set to 4.8.0.
25136
9094e001
RE
251372012-03-01 Richard Earnshaw <rearnsha@arm.com>
25138
25139 * config.gcc (obsolete): Add all ARM targets using the FPA.
25140 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
25141 * doc/install.texi: Avoid references to obsolete ARM ports.
25142
82b06589
JR
251432012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
25144
25145 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
25146
08b03910
JB
251472012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
25148 Joern Rennecke <joern.rennecke@embecosm.com>
25149
25150 * doc/extend.texi: Expand and update information on interrupt
25151 attribute for Epiphany.
25152
1ce35c11
OE
251532012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
25154
25155 * config/sh/sh-protos.h: Update copyright notice dates.
25156 * config/sh/sh.h: Likewise.
25157 * config/sh/sh.md: Likewise.
25158 * config/sh/constraints.md: Likewise.
25159 * config/sh/predicates.md: Likewise.
25160
f51a9d10
OE
251612012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
25162
25163 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
25164 * config/sh/sh.c (tertiary_reload_operand): Likewise.
25165
d4217ae1
OE
251662012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
25167
25168 * config/sh/constraints.md: Fix comment typo.
25169
5d9dc69a
JDA
251702012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25171
25172 PR target/52408
25173 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
25174 unsigned HOST_WIDE_INT.
25175 (zvdep_imm64): Likewise.
25176 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
25177 (vdepi_and): Likewise.
25178 Likewise for unamed 64-bit patterns.
25179 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
25180
0f68ba3e
AO
251812012-03-01 Alexandre Oliva <aoliva@redhat.com>
25182
25183 PR debug/52001
25184 PR rtl-optimization/52417
25185 * cselib.c (cselib_any_perm_equivs): New variable.
25186 (cselib_reset_table): Check that it's not set when not
25187 preserving constants.
25188 (cselib_add_permanent_equiv): Set it.
25189 (cselib_have_permanent_equivalences): New.
25190 (cselib_init, cselib_finish): Reset it.
25191 * cselib.h (cselib_have_permanent_equivalences): Declare.
25192 * alias.c (get_addr): Restore earlier behavior when there
25193 aren't permanent equivalences.
25194
2aceddd8
SB
251952012-03-01 Steven Bosscher <steven@gcc.gnu.org>
25196
25197 * config/mn10300/mn10300-modes.def: Fix copyright notice.
25198 * config/v850/v850-modes.def: Fix copyright notice.
25199
1619fcfc
GJL
252002012-03-01 Georg-Johann Lay <avr@gjlay.de>
25201
25202 * doc/extend.texi (AVR Built-in Functions): Document
25203 __builtin_avr_flash_segment.
25204
25205 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
25206 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
25207 (*split.flash_segment): New insn-and-split.
25208 * config/avr/avr.c (avr_init_builtins): Add local variables:
25209 const_memx_void_node, const_memx_ptr_type_node,
25210 char_ftype_const_memx_ptr.
25211
69ef9a79
JJ
252122012-03-01 Jakub Jelinek <jakub@redhat.com>
25213
25214 PR tree-optimization/52445
25215 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
25216 add ssa_name_ver, offset and size fields and change store field
25217 to bool.
25218 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
25219 (add_or_mark_expr): Likewise. Only consider previous stores
25220 with the same size and offset.
25221 (nt_init_block): Only look at gimple_assign_single_p stmts,
25222 doesn't look at rhs2.
25223
c1d9cb02
RG
252242012-03-01 Richard Guenther <rguenther@suse.de>
25225
25226 PR middle-end/52443
25227 * tree-cfg.c (verify_gimple_assign_unary): Allow any
25228 conversions from integral types to pointer types.
25229
b2ef48ef
GJL
252302012-03-01 Georg-Johann Lay <avr@gjlay.de>
25231
25232 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
2b57045b 25233 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
b2ef48ef
GJL
25234 unintentionally removed in r184616.
25235
283b5296
VK
252362012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25237
25238 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
25239 3DNow from bdver1.
25240
29ebe616
JJ
252412012-02-29 Jakub Jelinek <jakub@redhat.com>
25242 Uros Bizjak <ubizjak@gmail.com>
25243
25244 PR target/52437
25245 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
25246 alternatives, add "e" constraint to the new last alternative
25247 and ! to last 3 alternatives.
25248
fd787640
EB
252492012-02-29 Eric Botcazou <ebotcazou@adacore.com>
25250
25251 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
25252 DW_AT_artificial attributes at the end of the processing.
25253 (gen_array_type_die): Likewise.
25254 (gen_enumeration_type_die): Likewise.
25255 (gen_struct_or_union_type_die): Likewise.
25256 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
25257 the parent type.
25258
598e67d7
JJ
252592012-02-29 Jakub Jelinek <jakub@redhat.com>
25260
a3017cf1
JJ
25261 PR middle-end/52419
25262 * expr.c (expand_assignment): If doing misaligned store that doesn't
25263 cover all mode bits, perform a RMW cycle.
25264
598e67d7
JJ
25265 PR tree-optimization/52429
25266 * tree-parloops.c (separate_decls_in_region_debug): Return early
25267 if var is LABEL_DECL.
25268
529b39d8
BS
252692012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25270
25271 PR tree-optimization/52424
25272 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
25273 calling dom_thread_across_edge.
25274
43c626f0
GJL
252752012-02-29 Georg-Johann Lay <avr@gjlay.de>
25276
25277 * config/avr/avr.c: Move definition of TARGET macros to end of file.
25278
20848609
GJL
252792012-02-29 Georg-Johann Lay <avr@gjlay.de>
25280
25281 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
25282 * config/avr/avr.c (avr_output_bld): Remove unused function.
25283 (avr_out_sbxx_branch): Use "%T" to print bit position.
25284
1edaa8b7
GJL
252852012-02-29 Georg-Johann Lay <avr@gjlay.de>
25286
25287 * config/avr/avr.md: Untabify.
25288
252892012-02-29 Georg-Johann Lay <avr@gjlay.de>
25290
25291 * config/avr/avr.md (eqne): New code iterator.
25292 (*dec-and-branchsi): Use it in text peephole's condition.
25293 (*dec-and-branchhi): Ditto.
25294 (*dec-and-branchqi): Ditto.
25295
df51e502
GJL
252962012-02-29 Georg-Johann Lay <avr@gjlay.de>
25297
25298 PR target/49939
25299 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
25300 the device does not have the skip-bug.
25301
bf997c7d
OE
253022012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
25303
25304 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
25305 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
25306 -mpretend-cmove): New.
25307
bf743fc4
JJ
253082012-02-29 Jakub Jelinek <jakub@redhat.com>
25309
25310 PR bootstrap/52397
25311 * df.h (struct df_d): Adjust comment that hard_regs_live_count
25312 doesn't count DEBUG_INSN refs.
25313 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
25314 for DEBUG_INSN refs.
25315
211bea38
UW
253162012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25317
25318 Partially revert:
25319
25320 2012-02-20 Richard Guenther <rguenther@suse.de>
25321 PR tree-optimization/52298
25322 * tree-vect-stmts.c (vectorizable_load): Properly use
6c381d9d 25323 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
211bea38 25324
19c0d7df
AH
253252012-02-28 Aldy Hernandez <aldyh@redhat.com>
25326
25327 PR middle-end/51752
25328 * gimple.h (gimple_in_transaction): New.
25329 (gimple_set_in_transaction): New.
25330 (struct gimple_statement_base): Add in_transaction field.
25331 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
25332 transaction loads.
25333 (tree_ssa_lim_initialize): Compute transaction bits.
25334 * tree.h (compute_transaction_bits): Protoize.
25335 * trans-mem.c (tm_region_init): Use the heap to store BB
25336 auxilliary data.
25337 (compute_transaction_bits): New.
25338
cdbfc61d
BRF
253392012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25340
25341 * gcc.c (display_help): Document --help=common and sort entries
25342 alphabetically.
25343
6c6b6634
BRF
253442012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25345
25346 * doc/install.texi: Document check-$LANG specific shortcuts
25347
fd92bb80
MGD
253482012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
25349
25350 PR target/51534
25351 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
25352 and vcgtu.
25353 * config/arm/arm_neon.h: Regenerate.
25354 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
25355 (neon_vcgeu): New insn.
25356 (neon_vcgtu): Likewise.
25357 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
2b57045b 25358 (ops): Unsigned comparison intrinsics call a different builtin.
fd92bb80 25359
8eef33ca
RG
253602012-02-28 Richard Guenther <rguenther@suse.de>
25361
25362 PR target/52407
25363 * config/i386/i386.c (ix86_expand_vector_set): Fix element
25364 ordering for the VEC_CONCAT for two element vectors for
25365 V2SFmode, V2SImode and V2DImode.
25366
e3ed9d60
RE
253672012-02-28 Richard Earnshaw <rearnsha@arm.com>
25368
25369 PR target/49448
25370 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
25371 detecting big-endian triplets.
25372
192af6e8
RE
253732012-02-28 Richard Earnshaw <rearnsha@arm.com>
25374
25375 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
25376 mode if there is no type information available.
25377
b0eaa5b4
TK
253782012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
25379
25380 PR tree-optimization/53207
25381 * doc/invoke.texi: Document as experimental and relying on graphite.
25382
f37cf6a9
GJL
253832012-02-28 Georg-Johann Lay <avr@gjlay.de>
25384
25385 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
25386 of initializer to changes from r184614.
2b57045b 25387
85998a93
RG
253882012-02-28 Richard Guenther <rguenther@suse.de>
25389
25390 PR tree-optimization/52395
25391 * tree-sra.c (build_ref_for_offset): Also look at the base
25392 TYPE_ALIGN when figuring out the alignment of the replacement.
25393
3a5a825a
RG
253942012-02-28 Richard Guenther <rguenther@suse.de>
25395
25396 PR tree-optimization/52402
25397 * ipa-prop.c (ipa_modify_call_arguments): Properly use
25398 mis-aligned types when creating the accesses at the call site.
25399
639d0302
GJL
254002012-02-28 Georg-Johann Lay <avr@gjlay.de>
25401
25402 * config/avr/builtins.def: New file.
25403 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
25404 * config/avr/avr.c (enum avr_builtin_id): Use it.
25405 (avr_init_builtins): Use it. And use avr_bdesc.
25406 (bdesc_1arg): Remove.
25407 (bdesc_2arg): Remove.
25408 (bdesc_3arg): Remove.
25409 (struct avr_builtin_description): Add field n_args.
25410 (avr_bdesc): New static variable using builtins.def.
25411 (avr_expand_builtin): Use it.
25412 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
25413 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
25414 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
25415
8310dca7
GJL
254162012-02-28 Georg-Johann Lay <avr@gjlay.de>
25417
25418 PR target/52148
25419 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
25420 match only one single hard register with respective hard reg rtx.
25421 (movmemx_<mode>): Ditto.
25422 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
25423 insn anatomy of movmem[x]_<mode>.
25424 (avr_out_movmem): Same for printing assembler and operand usage.
25425
bae3b1bf
GJL
254262012-02-28 Georg-Johann Lay <avr@gjlay.de>
25427
25428 PR target/49868
25429 PR target/52261
25430 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
25431 address spaces located outside of device flash.
25432
25433 * config/avr/avr.h (base_arch_s): Remove field n_segments.
25434 (mcu_type_s): Add field n_flash.
25435 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
25436 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
25437 (AVR_MCU): Add N_FLASH argument.
25438 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
25439 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
25440 macro __FLASH<n> if that address space makes sense for the device.
25441 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
25442 outside of target flash.
25443 (avr_asm_named_section): Ditto.
25444 (avr_asm_select_section): Ditto.
25445 (avr_addr_space_convert): Ditto.
25446 (avr_emit_movmemhi): Ditto.
25447 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
25448 address space is outside of device flash.
25449 (avr_insert_attributes): Ditto.
25450 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
25451 avr_current_arch->n_segments.
25452
afbf6e97
L
254532012-02-27 H.J. Lu <hongjiu.lu@intel.com>
25454
25455 PR target/52352
2b57045b 25456 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
afbf6e97
L
25457 (*movabs<mode>_2): Likewise.
25458
2e216592
JJ
254592012-02-27 Jakub Jelinek <jakub@redhat.com>
25460
56b15099
JJ
25461 PR target/52375
25462 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
25463 s_register_operand in the test instead of REG_P. Don't call
25464 gen_reg_rtx if it won't be used.
25465
2e216592
JJ
25466 PR tree-optimization/52376
25467 * ipa-split.c (split_function): Ignore CLOBBER stmts.
25468
2662a821
SH
254692012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
25470
25471 * ifcvt.c (noce_get_condition): Check condition variable is not
25472 small_register_classes_for_mode_p before accepting.
25473
f59280cf
UB
254742012-02-27 Uros Bizjak <ubizjak@gmail.com>
25475
25476 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
25477
d2d6bcce
MGD
254782012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
25479
25480 Revert:
25481 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
25482 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
25483 tuning parameters.
25484 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
25485
dac73555
OE
254862012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
25487
25488 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
25489
2eff0b9d
OE
254902012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
25491
25492 * config/sh/predicates.md: Remove blank lines.
25493 * config/sh/sh.c: Fix typos in comments.
25494 * config/sh/constraints.md: Likewise.
25495 * config/sh/sh.md: Remove blank lines.
25496 Fix typos in comments. Use ;; as comment characters.
25497
7afd1a8e
WL
254982012-02-26 Walter Lee <walt@tilera.com>
25499
f59280cf 25500 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
7afd1a8e
WL
25501 (replace_mov_pcrel_step2): Ditto.
25502
0e224656
AO
255032012-02-25 Alexandre Oliva <aoliva@redhat.com>
25504
a5628378
AO
25505 PR debug/52001
25506 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
25507 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
25508 and locs that reference values newer than the non-canonical value
25509 at hand. Return the canonical value as a worst case.
25510 (memrefs_conflict_p): Walk canonical value's locs.
25511
0e224656
AO
25512 PR debug/52001
25513 * cselib.c (preserve_only_constants): Rename to...
25514 (preserve_constants_and_equivs): ... this. Split out...
25515 (invariant_or_equiv_p): ... this. Preserve plus expressions
25516 of other preserved expressions too.
25517 (cselib_reset_table): Adjust.
25518 * var-tracking.c (reverse_op): Use canonical value to build
25519 reverse operation.
25520
15498cfa
KT
255212012-02-23 Kai Tietz <ktietz@redhat.com>
25522
25523 * config/i386/i386.c (ix86_delegitimize_address): Handle
25524 UNSPEC_PCREL plus displacement.
25525
39e73abc
GJL
255262012-02-24 Georg-Johann Lay <avr@gjlay.de>
25527
25528 PR target/52261
25529 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
25530 to test for unusedness in st X addressing.
25531
b9af73fc
RG
255322012-02-24 Richard Guenther <rguenther@suse.de>
25533
25534 PR middle-end/52361
f59280cf 25535 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
b9af73fc
RG
25536 (is_gimple_reg_type): Move inline ...
25537 * gimple.h (is_gimple_reg_type): ... here.
25538
6ae4eccd
RG
255392012-02-24 Richard Guenther <rguenther@suse.de>
25540
25541 PR middle-end/52361
25542 * passes.c (execute_function_todo): When verifying SSA form
25543 verify gimple form first.
25544 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
25545
bf948210
RG
255462012-02-24 Richard Guenther <rguenther@suse.de>
25547
25548 PR middle-end/52355
25549 * fold-const.c (fold_addr_of_array_ref_difference): New function.
f59280cf 25550 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
bf948210 25551
b8f4632c
BRF
255522012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25553
25554 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
25555
4021ad55
BRF
255562012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25557
25558 * tree-phinodes.c (make_phi_node): Mark static.
25559 * tree-flow.h (make_phi_node): Remove extern decl.
25560 * doc/gimple.texi (make_phi_node): Remove documentation.
25561
0eb09f31
BRF
255622012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25563
f59280cf 25564 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
0eb09f31
BRF
25565 * tree-ssa-sccvn.c (print_scc): Ditto.
25566
6a953a91
BRF
255672012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25568
25569 * doc/passes.texi (Full redundancy elimination): Fix typo.
25570
55532e32
BRF
255712012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25572
25573 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
25574
6cbb4c32
EB
255752012-02-23 Eric Botcazou <ebotcazou@adacore.com>
25576
25577 PR bootstrap/52287
25578 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
25579
560ad308
UB
255802012-02-23 Uros Bizjak <ubizjak@gmail.com>
25581
25582 PR c/52290
25583 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
25584
f71f1418
GJL
255852012-02-23 Georg-Johann Lay <avr@gjlay.de>
25586
25587 * config/avr/avr.md (code_stdname): Add ior, xor.
25588 (xior): New code iterator.
25589 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
25590 (*<code_stdname><mode>qi.byte1-3): Ditto.
25591
a348dc7f
JJ
255922012-02-23 Jakub Jelinek <jakub@redhat.com>
25593
25594 PR tree-optimization/52019
25595 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
25596 CLOBBER stmts.
25597
e10e461e
UW
255982012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25599
25600 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
25601 HAVE_INITFINI_ARRAY to work around namespace pollution in
25602 certain versions of newlib system headers.
25603 * config.in: Regenerate.
25604 * configure: Regenerate.
25605 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
25606 instead of HAVE_INITFINI_ARRAY.
25607
9517e333
UB
256082012-02-22 Uros Bizjak <ubizjak@gmail.com>
25609
25610 PR target/52330
25611 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
25612 is not offsettable memory reference.
25613
219db888
GJL
256142012-02-22 Georg-Johann Lay <avr@gjlay.de>
25615
25616 PR target/18145
25617 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
25618 setting avr_need_clear_bss_p for __gnu_lto* symbols.
25619
45958634
GJL
256202012-02-22 Georg-Johann Lay <avr@gjlay.de>
25621
25622 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
9517e333 25623 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
45958634 25624
bbd6a014
RO
256252012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25626
25627 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
25628 library on Solaris 8 even without TLS support.
25629 * configure: Regenerate.
25630
3e888a5e
RG
256312012-02-22 Richard Guenther <rguenther@suse.de>
25632
25633 PR middle-end/52329
25634 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
25635 for GIMPLE_DEBUG stmts.
bbd6a014 25636
f18a7b25
MJ
256372012-02-22 Martin Jambor <mjambor@suse.cz>
25638
25639 PR middle-end/51782
25640 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
25641 according to the base object.
25642
0b262c28
GJL
256432012-02-22 Georg-Johann Lay <avr@gjlay.de>
25644
25645 PR rtl-optimization/50063
25646 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
25647 and 2 (8-bit SP) in operand 2.
25648 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
25649 setup to use movhi_sp_r instead of vanilla move to write SP.
25650 Adjust REG_CFA notes to superseed unspec.
25651 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
25652 of vanilla move.
25653 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
25654 known to be off) only with TARGET_NO_INTERRUPTS. Never use
25655 irq_state 1 (IRQ known to be on) here.
25656
2805e6c0
BS
256572012-02-21 Bernd Schmidt <bernds@codesourcery.com>
25658
25659 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
25660 WORDS_BIG_ENDIAN.
25661 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
25662 assign_hard_reg): Likewise.
25663
256642012-02-21 Georg-Johann Lay <avr@gjlay.de>
1890e136
GJL
25665
25666 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
25667
2805e6c0 256682012-02-21 Georg-Johann Lay <avr@gjlay.de>
4998825d
GJL
25669
25670 * config/avr/avr.md
25671 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
25672 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
25673
2805e6c0 256742012-02-21 Georg-Johann Lay <avr@gjlay.de>
0545950b
GJL
25675
25676 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
25677 prototype from here to...
25678 * config/avr/avr.h: ...here.
25679
23d2a817
RE
256802012-02-21 Richard Earnshaw <rearnsha@arm.com>
25681
25682 PR target/52294
2805e6c0 25683 * thumb2.md (thumb2_shiftsi3_short): Split register and
23d2a817
RE
25684 immediate shifts. For register shifts tie operands 0 and 1.
25685 (peephole2 for above): Check that register-controlled shifts
25686 have suitably tied operands.
25687
602c3369
QN
256882012-02-21 Quentin Neill <quentin.neill@amd.com>
25689
25690 PR target/52137
25691 * config/i386/bdver1.md (bdver1_call, bdver1_push,
25692 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
25693 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
25694 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
25695 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
25696 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
25697 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
25698 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
25699 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
25700 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
25701 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
25702 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
25703 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
25704 bdver1_ssevector_avx256_unaligned_load,
25705 bdver1_ssevector_sse128_unaligned_load,
25706 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
25707 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
25708 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
25709 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
25710 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
25711 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
25712 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
25713 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
25714 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
25715 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
25716 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
25717 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
25718 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
25719 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
25720 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
25721 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
25722 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
25723 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
25724 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
25725 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
25726 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
25727 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
25728 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
25729 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
25730 bdver1_ssediv_double_load, bdver1_ssediv_double,
25731 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
25732 Add "bdver2" attribute.
25733
61369bb8
AK
257342012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25735
25736 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
25737 default if possible and not specified otherwise.
25738
0c2ad203
RG
257392012-02-21 Richard Guenther <rguenther@suse.de>
25740
25741 PR middle-end/52314
25742 * gimplify.c (create_tmp_from_val): Use the main variant type
25743 for the type of the temporary we create.
25744
01718e96
RG
257452012-02-21 Richard Guenther <rguenther@suse.de>
25746
25747 PR tree-optimization/52324
25748 * gimplify.c (gimplify_expr): When re-gimplifying expressions
25749 do not gimplify a MEM_REF address operand if it is already
25750 in suitable form.
25751
8540e6e8
AK
257522012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25753
25754 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
25755 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
25756
d1e4b493
RG
257572012-02-21 Richard Guenther <rguenther@suse.de>
25758
25759 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
25760 nested_in_vect_loop.
25761
949e47e5
JJ
257622012-02-21 Jakub Jelinek <jakub@redhat.com>
25763
25764 PR tree-optimization/52318
25765 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
25766 vdef also to non-pure/const call stmts in the sequence.
25767
a2ddaaf5
TG
257682012-02-21 Tristan Gingold <gingold@adacore.com>
25769
25770 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
25771
3ed27cf5
DM
257722012-02-20 David S. Miller <davem@davemloft.net>
25773
25774 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
25775 don't use the "rd %pc" instruction on v9 for PIC register loads.
25776
a4d031c7
AH
257772012-02-20 Aldy Hernandez <aldyh@redhat.com>
25778
25779 PR middle-end/52141
25780 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
25781 in a transaction safe function.
25782
9954e17f
KT
257832012-02-20 Kai Tietz <ktietz@redhat.com>
25784
25785 PR target/52238
25786 * stor-layout.c (place_field): Handle desired_align for
25787 ms-bitfields, too.
25788
a7ce6ec3
RG
257892012-02-20 Richard Guenther <rguenther@suse.de>
25790
25791 PR tree-optimization/52298
25792 * tree-vect-stmts.c (vectorizable_store): Properly use
25793 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
25794 outer loops.
25795 (vectorizable_load): Likewise.
25796 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
25797 Access DR_STEP after ensuring it is not NULL.
25798
5a226e0a
JJ
257992012-02-20 Jakub Jelinek <jakub@redhat.com>
25800
25801 PR tree-optimization/52286
25802 * fold-const.c (fold_binary_loc): For (X & C1) | C2
25803 optimization use double_int_to_tree instead of build_int_cst_wide,
25804 rewrite to use double_int vars.
25805
e992fc2e
RO
258062012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25807
25808 PR target/50166
25809 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
25810 Define _start.
25811 Remove -e 0 from $gcc_cv_ld invocation.
25812 Only use __GLIBC_PREREQ if defined.
25813 Enable on Solaris since Solaris 8 patch.
25814 (gcc_SUN_LD_VERSION): New macro.
25815 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
25816 gcc_SUN_LD_VERSION for version number format.
25817 * configure: Regenerate.
25818 * varasm.c (get_elf_initfini_array_priority_section): Set
25819 SECTION_NOTYPE for non-default priority.
25820 Use get_section instead of get_unnamed_section to emit
25821 .init_array/.fini_array with default priority.
25822
78c27266
RS
258232012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
25824
25825 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
25826 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
25827 (mips_start_unique_function, mips_output_mips16_rdhwr)
25828 (mips_code_end): New functions.
25829 (TARGET_ASM_CODE_END): Define.
25830
5adeb246
RS
258312012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
25832
25833 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
25834 to stubs with non-sibling calls.
25835
e1813255
SL
258362012-02-18 Sandra Loosemore <sandra@codesourcery.com>
25837
25838 * doc/invoke.texi (-fira-* options): Copy-edit.
25839 (ira-* parameters): Copy-edit.
25840
141a25c2
SL
258412012-02-17 Sandra Loosemore <sandra@codesourcery.com>
25842
25843 * doc/invoke.texi: Minor copy-edits to bring into conformance with
25844 GCC coding conventions.
25845
195a2e9d
SL
258462012-02-17 Sandra Loosemore <sandra@codesourcery.com>
25847
25848 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
25849 when used as adjectives.
25850
1b015db7
SL
258512012-02-16 Sandra Loosemore <sandra@codesourcery.com>
25852
25853 * doc/invoke.texi: Clean up "that"/"which" confusion.
25854
7feed462
SB
258552012-02-17 Steven Bosscher <steven@gcc.gnu.org>
25856
25857 * system.h: Poison SMALL_REGISTER_CLASSES
25858 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
25859 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
25860
ca786352
JJ
258612012-02-16 Jakub Jelinek <jakub@redhat.com>
25862
25863 PR tree-optimization/52285
25864 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
25865 when deciding if a call is a tail call or tail recursion.
25866
525b3f60
KT
258672012-02-16 Kai Tietz <ktietz@redhat.com>
25868
25869 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
25870 interger-constant displacement for UNSPEC_PCREL.
25871
04c937f5
JJ
258722012-02-16 Jakub Jelinek <jakub@redhat.com>
25873
3db93c89
JJ
25874 PR rtl-optimization/52208
25875 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
25876 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
25877
e20f6b4b
JJ
25878 PR tree-optimization/52255
25879 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
25880 loop->header has virtual PHI, but exit_e->dest doesn't, add
25881 virtual PHI to exit_e->dest and adjust all uses after the loop.
25882
04c937f5
JJ
25883 PR debug/52260
25884 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
25885 children with clone_tree_hash, not after it.
25886
cebb4698
IS
258872012-02-16 Iain Sandoe <iains@gcc.gnu.org>
25888
25889 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
25890 extended identifiers.
25891
cc8b9c31
JJ
258922012-02-16 Jakub Jelinek <jakub@redhat.com>
25893
183d6db2
JJ
25894 PR middle-end/51929
25895 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
25896 a same_body_alias, also test whether e->callee isn't a former
25897 or current clone of the decl this is a same body alias of.
25898
cc8b9c31
JJ
25899 PR translation/52264
25900 * cgraphunit.c (verify_cgraph_node): Fix a typo.
25901
e3a66c38
SL
259022012-02-15 Sandra Loosemore <sandra@codesourcery.com>
25903
25904 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
25905
a0367cc1
MM
259062012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
25907
25908 PR target/52199
25909 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
25910 force_reg instead of copy_to_reg for better optimization. Force
25911 non-register or memory operands into a register.
25912
b1cef2a5
AM
259132012-02-15 Andrew MacLeod <amacleod@redhat.com>
25914
25915 * extend.texi: Reserve upper bits of memory model for future use.
25916
2da8c1ad
GJL
259172012-01-15 Georg-Johann Lay <avr@gjlay.de>
25918 Anatoly Sokolov <aesok@post.ru>
25919 Eric Weddington <eric.weddington@atmel.com>
25920
25921 PR target/52261
25922 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
25923 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
25924 Rewrite initializers for .macro.
25925 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
25926 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
25927 atxmega32d4, atxmega32x1.
25928 avrxmega4: atxmega64a3, atxmega64d3.
25929 avrxmega5: atxmega64a1, atxmega64a1u.
25930 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
25931 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
25932 avrxmega7: atxmega128a1, atxmega128a1u.
25933 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
25934 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
25935 (struct base_arch_s): Rename reserved to xmega_p.
25936 Rename reserved2 to have_rampd.
25937 (AVR_XMEGA): New define.
25938 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
25939 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
25940 * config/avr/predicates.md (io_address_operand): Take into
25941 account SFR offset.
25942 (low_io_address_operand): Ditto.
25943 (high_io_address_operand): Ditto.
25944 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
25945 (enabled, movhi_sp_r): Use them.
25946 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
25947 cpp_define_formatted to built-in define __AVR_ARCH__.
25948 (__AVR_XMEGA__): New built-in define.
25949 (__AVR_HAVE_RAMPD__): New built-in define.
25950 (__AVR_HAVE_RAMPX__): New built-in define.
25951 (__AVR_HAVE_RAMPY__): New built-in define.
25952 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
25953
25954 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
25955 (avr_option_override): Initialize them.
25956 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
25957 (avr_init_expanders): Initialize them. No more block several calls.
25958 (emit_push_sfr): New static function.
25959 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
25960 Handle AVR_XMEGA.
25961 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
25962 (avr_print_operand): Print addreeses as symbols for
25963 RAMPX, RAMPY, RAMPD, CCP.
25964 (output_movhi): Handle AVR_XMEGA when writing to SP.
25965 (avr_out_movhi_mr_r_xmega): New static function.
25966 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
25967 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
25968 __RAMPD__, __CCP__ as needed.
25969
25970 * config/avr/multilib.h: Regenerate.
25971 * config/avr/t-multilib: Regenerate.
25972 * config/avr/avr-tables.opt: Regenerate.
25973
28db21ee
TG
259742012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
25975
25976 PR tree-optimization/50561
25977 * graphite-flattening.c (lst_project_loop): Do not
25978 remove old scattering dimensions after flattening.
25979 (lst_do_flatten): Likewise.
25980
0c578db6
GJL
259812012-02-15 Georg-Johann Lay <avr@gjlay.de>
25982
25983 * doc/extend.texi (AVR Built-in Functions): Remove doc for
25984 __builtin_avr_map8, __builtin_avr_map16.
25985 Document __builtin_avr_insert_bits.
25986
25987 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
25988 (insert_bits): New insn.
25989 (adjust_len.map_bits): Rename to insert_bits.
25990 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
25991 * avr-protos.h (avr_out_map_bits): Remove.
25992 (avr_out_insert_bits, avr_has_nibble_0xf): New.
25993 * config/avr/constraints.md (Cxf,C0f): New.
25994 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
25995 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
25996 New built-in define __BUILTIN_AVR_INSERT_BITS.
25997 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
25998 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
25999 (avr_move_bits): Rewrite.
26000 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
26001 functions.
26002 (avr_map_op_t): New typedef.
26003 (avr_map_op): New static variable.
26004 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
26005 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
26006 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
26007 (bdesc_3arg, avr_expand_triop_builtin): New.
26008 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
26009 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
26010 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
26011 (avr_map_equal_p, avr_map_sig_p): Remove.
26012 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
26013 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
26014 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
26015 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
26016 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
26017 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
26018
9e7fe10e
BS
260192012-02-14 Bernd Schmidt <bernds@codesourcery.com>
26020
26021 * config/c6x/c6x.md (reserve_cycles): New attribute.
26022 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
26023 don't reserve functional units after the branch occurs.
26024
a7ff6e27
AH
260252012-02-14 Aldy Hernandez <aldyh@redhat.com>
26026
26027 PR middle-end/52142
26028 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
26029 functions into non-tm_pure functions.
26030
aa47290b
EB
260312012-02-14 Eric Botcazou <ebotcazou@adacore.com>
26032
26033 PR lto/52178
26034 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
26035 (iterative_hash_canonical_type): Likewise.
26036 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
26037 the dead edges.
26038
260392012-02-14 Bernd Schmidt <bernds@codesourcery.com>
b75f962c
BS
26040
26041 * haifa-sched.c (prune_ready_list): Ensure that if there is a
9517e333 26042 sched-group insn, it either remains alone or the entire list is pruned.
b75f962c 26043
169264b3
JW
260442012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
26045
26046 * doc/install.texi (Prerequisites): Fix grammar.
26047 (Configuration): Likewise.
26048
7a07ae52
JW
260492012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
26050
26051 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
26052 MPC as part of GCC before describing configuring with --with-gmp etc.
26053 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
26054 sources are present.
26055
a85ce59d
JJ
260562012-02-14 Jakub Jelinek <jakub@redhat.com>
26057
26058 PR debug/51950
26059 * dwarf2out.c (clone_tree_hash): New function.
26060 (copy_decls_walk): Use it instead of clone_tree.
26061
8085c586
RG
260622012-02-14 Richard Guenther <rguenther@suse.de>
26063
26064 PR tree-optimization/52244
26065 PR tree-optimization/51528
26066 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
26067 replacements for integral types.
26068
dd552284
WL
260692012-02-14 Walter Lee <walt@tilera.com>
26070
26071 * config.gcc: Handle tilegx and tilepro.
26072 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
26073 tilegx and tilepro.
26074 Add HAVE_AS_TLS check for tilegx and tilepro.
26075 * configure: Regenerate.
26076 * doc/contrib.texi: Add Mat Hostetter and self.
26077 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
26078 Document instruction intrinsics and network accessing intrinsics.
26079 (TILEPro Built-in Functions): New node. Document instruction
26080 intrinsics and network accessing intrinsics.
26081 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
26082 (Specific, tilepro-*-linux*): Likewise.
26083 * doc/invoke.texi (TILE-Gx Options): New section.
26084 (TILEPro Options): New section.
26085 * doc/md.texi (TILE-Gx): New section.
26086 (TILEPro): New section.
26087 * common/config/tilegx/tilegx-common.c: New file.
26088 * common/config/tilepro/tilepro-common.c: New file.
26089 * config/tilegx/constraints.md: New file.
26090 * config/tilegx/linux.h: New file.
26091 * config/tilegx/mul-tables.c: New file.
26092 * config/tilegx/predicates.md: New file.
26093 * config/tilegx/sync.md: New file.
26094 * config/tilegx/t-tilegx: New file.
26095 * config/tilegx/tilegx-builtins.h: New file.
26096 * config/tilegx/tilegx-c.c: New file.
26097 * config/tilegx/tilegx-generic.md: New file.
26098 * config/tilegx/tilegx-modes.def: New file.
26099 * config/tilegx/tilegx-multiply.h: New file.
26100 * config/tilegx/tilegx-protos.h: New file.
26101 * config/tilegx/tilegx.c: New file.
26102 * config/tilegx/tilegx.h: New file.
26103 * config/tilegx/tilegx.md: New file.
26104 * config/tilegx/tilegx.opt: New file.
26105 * config/tilepro/constraints.md: New file.
26106 * config/tilepro/gen-mul-tables.cc: New file.
26107 * config/tilepro/linux.h: New file.
26108 * config/tilepro/mul-tables.c: New file.
26109 * config/tilepro/predicates.md: New file.
26110 * config/tilepro/t-tilepro: New file.
26111 * config/tilepro/tilepro-builtins.h: New file.
26112 * config/tilepro/tilepro-c.c: New file.
26113 * config/tilepro/tilepro-generic.md: New file.
26114 * config/tilepro/tilepro-modes.def: New file.
26115 * config/tilepro/tilepro-multiply.h: New file.
26116 * config/tilepro/tilepro-protos.h: New file.
26117 * config/tilepro/tilepro.c: New file.
26118 * config/tilepro/tilepro.h: New file.
26119 * config/tilepro/tilepro.md: New file.
26120 * config/tilepro/tilepro.opt: New file.
26121
7daac345
JJ
261222012-02-14 Jakub Jelinek <jakub@redhat.com>
26123
26124 PR tree-optimization/52210
26125 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
26126 vect_model_simple_cost with two entry vect_def_type array instead
26127 of an address of dt.
26128
837487be
RG
261292012-02-14 Richard Guenther <rguenther@suse.de>
26130
26131 PR lto/52178
26132 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
26133 Do not stream DECL_QUALIFIER.
26134 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
26135 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
26136 (find_decls_types_r): Do not walk DECL_QUALIFIER.
26137
45f41865
JJ
261382012-02-14 Jakub Jelinek <jakub@redhat.com>
26139
26140 PR c/52181
26141 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
26142 newdecl.
26143
9a76e83d
JJ
261442012-02-13 Jakub Jelinek <jakub@redhat.com>
26145
26146 PR bootstrap/52172
26147 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
26148 * cselib.c (cselib_subst_to_values_from_insn): New function.
26149 * sched-deps.c (add_insn_mem_dependence,
26150 sched_analyze_1, sched_analyze_2): Use it.
26151
993716bd
JH
261522012-02-13 Jan Hubicka <jh@suse.cz>
26153
26154 PR middle-end/52214
26155 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
26156
255a9a1b
EB
261572012-02-13 Eric Botcazou <ebotcazou@adacore.com>
26158
26159 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
26160 (GTM_SELF_SPECS): Define if not already defined.
26161 (driver_self_specs): Add GTM_SELF_SPECS.
9517e333
UB
26162 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
26163 (GTM_SELF_SPECS): Define.
255a9a1b
EB
26164 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
26165 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
26166
9abd5ed9
JJ
261672012-02-13 Jakub Jelinek <jakub@redhat.com>
26168
67b977ad
JJ
26169 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
26170 away if seen.
26171
9517e333 26172 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
42286976 26173
9abd5ed9 26174 PR middle-end/52230
9517e333
UB
26175 * omp-low.c (expand_omp_for): If a static schedule without chunk size
26176 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
9abd5ed9 26177
8ca1b342
AM
261782012-02-13 Andrew MacLeod <amacleod@redhat.com>
26179
26180 PR c/52190
26181 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
26182
1eb3478f
RG
261832012-02-13 Richard Guenther <rguenther@suse.de>
26184
26185 PR translation/52211
26186 * passes.c (enable_disable_pass): Fix typo.
26187
205ec405
JJ
261882012-02-13 Jakub Jelinek <jakub@redhat.com>
26189
26190 PR middle-end/52209
26191 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
26192 XOR for reduce_bit_field if type is unsigned.
26193
31d7b439
EB
261942012-02-12 Eric Botcazou <ebotcazou@adacore.com>
26195
26196 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
26197 disallow changes from SFmode to mode with different size in FP regs.
26198
261992012-02-12 Robert Millan <rmh@gnu.org>
9517e333 26200 Gerald Pfeifer <gerald@pfeifer.com>
56c534c5
RM
26201
26202 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
26203 Tweak comment.
26204
4cb0fdbc
RS
262052012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
26206
26207 PR rtl-optimization/52175
26208 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
26209 to frame-related instructions.
26210
4e92c31f
JM
262112012-02-10 Jason Merrill <jason@redhat.com>
26212
26213 PR c++/51910
26214 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
26215 (demangle_new_symbols): Fill it.
26216 (scan_linker_output): Walk it.
26217 (start_tweaking): Split out from scan_linker_output.
26218 (maybe_tweak): Update sym->chosen.
26219 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
26220
bd0ba05d
JJ
262212012-02-11 Jakub Jelinek <jakub@redhat.com>
26222
26223 PR debug/52132
9517e333 26224 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
bd0ba05d 26225
28f7ff45
UB
262262012-02-11 Uros Bizjak <ubizjak@gmail.com>
26227
26228 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
26229 having the same mode as previous compare.
26230
8c92f3e8
EB
262312012-02-10 Eric Botcazou <ebotcazou@adacore.com>
26232
26233 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
26234 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
26235 (nonlocal_goto_internal): Likewise.
26236 (nonlocal_goto): Emit a use and an indirect jump directly.
26237
9ac1504b
AM
262382012-02-10 Andrew MacLeod <amacleod@redhat.com>
26239
26240 PR c/52190
26241 * doc/extend.texi : Update comments for __atomic_compare_exchange and
26242 __atomic_{is,always}_lock_free.
26243
877fb450
L
262442012-02-10 Uros Bizjak <ubizjak@gmail.com>
26245
26246 PR target/52146
26247 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
1ce8d925 26248 negative constant address for TARGET_X32.
877fb450 26249
1d4fb493
RH
262502012-02-10 Richard Henderson <rth@redhat.com>
26251
28f7ff45
UB
26252 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
26253 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
26254 for GIMPLE_TRANSACTION. Tidy if's into a switch.
1d4fb493 26255
8bd37302
BS
262562012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26257 Ira Rosen <irar@il.ibm.com>
26258
26259 PR tree-optimization/50031
26260 * targhooks.c (default_builtin_vectorization_cost): Handle
26261 vec_promote_demote.
26262 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
26263 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
26264 all types of reduction and pattern statements.
26265 (vect_estimate_min_profitable_iters): Likewise.
26266 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
26267 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
26268 for explicit realigns.
26269 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
26270 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
26271 vec_promote_demote.
26272 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
26273 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
26274 vec_perm for VSX and handle vec_promote_demote.
26275
58d38fd2
JJ
262762012-02-10 Jakub Jelinek <jakub@redhat.com>
26277
26278 PR middle-end/52177
26279 * builtins.c (fold_builtin_atomic_always_lock_free,
26280 expand_builtin_atomic_always_lock_free,
28f7ff45
UB
26281 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
26282 Return and/or test boolean_true_node/boolean_false_node instead of
58d38fd2
JJ
26283 integer_one_node/integer_zero_node.
26284
0f3b7e9a
JH
262852012-02-10 Jan Hubicka <jh@suse.cz>
26286
26287 PR middle-end/48600
26288 * predict.c (predict_paths_for_bb): Prevent looping.
26289 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
26290
76c9058b
RZ
262912012-02-10 Roman Zhuykov <zhroma@ispras.ru>
26292
26293 * config/arm/arm.c (output_move_double): In one case properly
26294 count number of instructions that will be emitted.
26295
7cbf224d
RG
262962012-02-10 Richard Guenther <rguenther@suse.de>
26297
26298 PR translation/52193
26299 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
26300
16e0be9b
PB
263012012-02-09 Peter Bergner <bergner@vnet.ibm.com>
26302
26303 PR middle-end/52140
26304 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
26305
65cca5de
JJ
263062012-02-09 Jakub Jelinek <jakub@redhat.com>
26307
26308 PR debug/52165
26309 * var-tracking.c (emit_note_insn_var_location): If
26310 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
26311 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
26312 non-NOTE_DURING_CALL_P insn.
26313
15ed19ff
BC
263142012-02-09 Bin Cheng <bin.cheng@arm.com>
26315
26316 PR middle-end/51867
26317 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
26318
5371f719
MG
263192012-02-08 Magnus Granberg <zorry@gentoo.org>
26320
26321 PR driver/48524
28f7ff45
UB
26322 * gcc.c (switch_matches) Support switches with separated form,
26323 -D and -U.
5371f719 26324
82b37806
GJL
263252012-02-08 Georg-Johann Lay <avr@gjlay.de>
26326
26327 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
26328 (SP_ADDR): Ditto.
26329 (RAMPZ_ADDR): Ditto.
26330 * config/avr/avr.c (avr_addr_t): New typedef.
26331 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
26332 (avr_init_expanders): Initialize it.
26333 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
26334 SREG_ADDR.
26335 (expand_epilogue): Ditto.
26336 (avr_print_operand): Ditto.
26337 (avr_file_start): Ditto.
26338 (avr_emit_movmemhi): Ditto.
26339
31432e21
RG
263402012-02-08 Richard Guenther <rguenther@suse.de>
26341
26342 PR tree-optimization/46886
26343 * tree-flow.h (do_while_loop_p): Declare.
26344 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
28f7ff45 26345 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
31432e21 26346
c51ec0a3
AM
263472012-02-08 Andrew MacLeod <amacleod@redhat.com>
26348
26349 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
26350 always succeed for integers larger than a native word.
26351
ea72cc1d
RG
263522012-02-08 Richard Guenther <rguenther@suse.de>
26353
26354 PR rtl-optimization/52170
26355 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
26356 properly handle integer vector modes.
26357
bd73623c
JJ
263582012-02-08 Jakub Jelinek <jakub@redhat.com>
26359
9e66e106
JJ
26360 PR gcov-profile/52150
26361 * coverage.c: Include target.h.
26362 (build_var): Call targetm.strip_name_encoding on the assembler name.
26363 Change one _ into . or $ if the target allows it.
26364 * Makefile.in (coverage.o): Depend on $(TARGET_H).
26365
bd73623c
JJ
26366 PR rtl-optimization/52139
26367 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
26368 is a BARRIER after emit_insn_after_noloc, move BB_END
26369 to the last non-BARRIER insn before it.
26370
4566de10
RS
263712012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
26372
26373 PR middle-end/24306
26374 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
26375 (mips_gimplify_va_arg_expr): Call it instead of
26376 std_gimplify_va_arg_expr.
26377
7cb5ce1a
MM
263782012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
26379
26380 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
26381 message for -mno-pointers-to-nested-function.
26382
f22cfd73
EB
263832012-02-07 Eric Botcazou <ebotcazou@adacore.com>
26384
26385 PR middle-end/51994
26386 * expr.c (get_inner_reference): If there is an offset, add a negative
26387 bit position to it (if any).
26388
13a72c0b
JJ
263892012-02-07 Jakub Jelinek <jakub@redhat.com>
26390
26391 PR rtl-optimization/52060
26392 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
26393 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
26394 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
26395 and/or i0src_copy2 when needed.
26396
deb3f362
JJ
263972012-02-07 Jakub Jelinek <jakub@redhat.com>
26398
117cb2bc
JJ
26399 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
26400 or LTOPLUGINSONAME if have_c.
26401
deb3f362
JJ
26402 * config/freebsd-spec.h: Add comment about what macros can be defined
26403 in this header.
26404 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
26405 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
26406 here instead.
26407
b1edf2bc
RG
264082012-02-07 Richard Guenther <rguenther@suse.de>
26409
26410 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
26411 newline in -alias dumps.
26412
26cfb9ab 264132012-02-07 Kai Tietz <ktietz@redhat.com>
28f7ff45 26414 Dave Korn <dave.korn.cygwin@gmail.com>
26cfb9ab
KT
26415
26416 PR target/40068
26417 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
26418 Take care that typinfo gets dllexport-attribute.
26419
b1b95093
JJ
264202012-02-07 Jakub Jelinek <jakub@redhat.com>
26421
26422 PR middle-end/52074
26423 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
26424 if modifier < EXPAND_SUM call force_operand on the result.
26425
60098013
JR
264262012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
26427
26428 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
26429 adding __forwarder_dst__ prefix if a forwarder_section attribute is
26430 present.
26431 (epiphany_function_type): Replace types for specific interrupts with
26432 EPIPHANY_FUNCTION_INTERRUPT.
26433 (EPIPHANY_INTERRUPT_P): Update.
26434 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
26435 New static function.
26436 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
26437 <disinterrupt>: Affects type identity.
26438 (epiphany_handle_interrupt_attribute): Handle variable number of
26439 arguments.
26440 (epiphany_compute_function_type): Update for new
26441 epiphany_function_type definition.
26442 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
26443 handlers with a longcall forwarder.
26444 (epiphany_start_function): Handle multiple interrupt arguments and/or
26445 forwarder_section attribute.
26446
28f7ff45
UB
26447 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
26448 libgloss.
be648db7 26449
30f0eb2d
AM
264502012-02-07 Alan Modra <amodra@gmail.com>
26451
26452 PR target/52107
26453 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
26454 subregs of TFmode.
26455
c5f14d62
BS
264562012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26457
26458 PR tree-optimization/50969
26459 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
26460 use vec_perm rather than vector_stmt.
26461 (vect_model_load_cost): Likewise.
26462 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
26463 vec_perm to be the same as other vector statements.
26464 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
26465 cost of vec_perm for TARGET_VSX.
26466
973a39ae
RG
264672012-02-06 Richard Guenther <rguenther@suse.de>
26468
26469 PR tree-optimization/52115
26470 * tree-sra.c (access_has_replacements_p): New function.
26471 (sra_modify_assign): Use it to decide whether a use is uninitialized.
26472
fe924d9f
PM
264732012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
26474
26475 PR middle-end/52047
26476 * trans-mem.c (expand_call_tm): Add an assertion.
26477 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
26478 functions.
26479
1d30a09a
RG
264802012-02-06 Richard Guenther <rguenther@suse.de>
26481
26482 PR tree-optimization/50955
26483 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
26484 raise cost of expressions that replace an address with an
26485 expression based on a different pointer.
26486
2c8b5d61
JJ
264872012-02-06 Jakub Jelinek <jakub@redhat.com>
26488
26489 PR target/52129
26490 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
26491 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
26492
9039ea91
JW
264932012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
26494
26495 PR c++/48680
26496 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
26497 -Weffc++ and specify guidelines come from second edition.
26498
7ca9ea76
RS
264992012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
26500
26501 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
26502 (sibcall_value_multiple_internal, call_split, call_internal_direct)
26503 (call_direct_split, call_value_split, call_value_internal_direct)
26504 (call_value_direct_split, call_value_multiple_split): Use jal and
26505 jal_macro attributes.
26506
7bd8c53f
RS
265072012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
26508
26509 * reload1.c (reload_regs_reach_end_p): Replace with...
26510 (reload_reg_rtx_reaches_end_p): ...this function.
26511 (new_spill_reg_store): Update commentary.
26512 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
26513 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
26514 before setting new_spill_reg_store.
26515 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
26516 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
26517 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
26518 for non-spill reload registers.
26519
24ee1384
IR
265202012-02-05 Ira Rosen <irar@il.ibm.com>
26521
26522 PR tree-optimization/52091
26523 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
26524 (vect_is_simple_use_1): Likewise.
26525 * tree-vect-loop.c (vectorizable_reduction): Update calls
26526 to vect_is_simple_use_1 and vect_is_simple_use.
26527 (vectorizable_live_operation): Likewise.
26528 * tree-vect-patterns.c (widened_name_p,
28f7ff45 26529 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
24ee1384 26530 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
28f7ff45
UB
26531 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
26532 vectorizable_shift,vectorizable_operation, vectorizable_store,
26533 vectorizable_load): Likewise.
24ee1384
IR
26534 (vect_is_simple_cond): Add an argument, pass it to
26535 vect_is_simple_use_1.
26536 (vectorizable_condition): Update calls to vect_is_simple_cond,
26537 vect_is_simple_use.
26538 (vect_is_simple_use): Add an argument, the statement in which
26539 OPERAND is used. Check that if OPERAND's def stmt is a double
26540 reduction phi node, the use is a phi node too.
26541 (vect_is_simple_use_1): Add an argument, pass it to
26542 vect_is_simple_use.
26543 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
26544 to vect_is_simple_use.
26545
d5785e76
JJ
265462012-02-04 Jakub Jelinek <jakub@redhat.com>
26547
22439481
JJ
26548 PR rtl-optimization/52095
26549 * modulo-sched.c (dump_insn_locator): New function.
26550 (loop_canon_p, sms_schedule): Use it.
26551
d5785e76
JJ
26552 PR rtl-optimization/52113
26553 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
26554 even for decomposable shift/zext insns.
26555
32410d02
JJ
265562012-02-03 Jakub Jelinek <jakub@redhat.com>
26557 Zdenek Dvorak <ook@ucw.cz>
26558
26559 PR rtl-optimization/52092
26560 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
26561 on get_iv_value result.
26562
75471253
AP
265632012-02-02 Andrew Pinski <apinski@cavium.com>
26564
26565 PR middle-end/47982
26566 PR middle-end/43967
26567 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
26568
1f01c3ec
JJ
265692012-02-02 Jakub Jelinek <jakub@redhat.com>
26570
26571 PR middle-end/48071
26572 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
26573
662f8070
VM
265742012-02-02 Vladimir Makarov <vmakarov@redhat.com>
26575
26576 PR rtl-optimization/49800
26577 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
26578 (sched_finish): Call regstat_free_n_sets_and_refs.
26579
14bc59cb
RS
265802012-02-02 Jia Liu <proljc@gmail.com>
26581
26582 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
26583 than operand 2.
26584
9517e333
UB
265852012-02-02 Jan Hubicka <jh@suse.cz>
26586 Tom de Vries <tom@codesourcery.com>
5ee770bf
JH
26587
26588 PR middle-end/51998
26589 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
26590 * varpool.c (varpool_analyze_pending_decls): Likewise.
26591
b25364a0
S
265922012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
26593 Jayant R Sonar <jayant.sonar@kpitcummins.com>
26594
26595 * config.gcc: Add cr16-* support.
26596
26597 * doc/extend.texi: Document cr16 extensions.
26598 * doc/install.texi: Document cr16 install.
26599 * doc/invoke.texi: Document cr16 options.
26600 * doc/md.texi: Document cr16 constraints.
26601
26602 * common/config/cr16/cr16-common.c: New file.
26603 * config/cr16/cr16.c: New file.
26604 * config/cr16/cr16.h: New file.
26605 * config/cr16/cr16.md: New file.
26606 * config/cr16/cr16.opt: New file.
26607 * config/cr16/cr16-protos.h: New file.
26608 * config/cr16/predicates.md: New file.
26609 * config/cr16/constraints.md: New file.
26610 * config/cr16/t-cr16: New file.
26611
13c931c9
JJ
266122012-02-02 Jakub Jelinek <jakub@redhat.com>
26613
903e49f5
JJ
26614 PR target/52086
26615 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
26616 that operands[2] is either immediate, or q_regs_operand.
26617
13c931c9
JJ
26618 PR tree-optimization/52073
26619 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
26620 a pattern stmt for pattern uses, ignore uses outside of the loop.
26621
c2453253
GJL
266222012-02-01 Georg-Johann Lay <avr@gjlay.de>
26623
26624 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
26625 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
26626 (OUT_AS1, OUT_AS2): Remove.
26627
07ad5438
GJL
266282012-02-01 Georg-Johann Lay <avr@gjlay.de>
26629
26630 PR rtl-optimization/51374
26631 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
26632 to cross other volatile_refs_p insns.
26633
99ea07f8
RG
266342012-02-01 Richard Guenther <rguenther@suse.de>
26635
26636 * doc/invoke.texi (fno-inline): Clarify documentation.
26637 (finline-small-functions): Likewise.
26638 (finline-functions): Likewise.
26639 * common.opt (finline): Adjust comment and documentation.
26640 (finline-small-functions): Clarify documentation.
26641 (finline-functions): Likewise.
26642 (finline-functions-called-once): Likewise.
26643
3db684fb
TG
266442012-02-01 Tristan Gingold <gingold@adacore.com>
26645
26646 * c-typeck.c (composite_type): Keep mode for pointers.
26647
35aebd56
RS
266482012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
26649
26650 * function.h (regno_reg_rtx): Adjust comment.
26651 * reginfo.c (init_reg_modes_target): Only use the previous mode
26652 if it fits within one register. Remove MIPS comment.
26653
8bb1a172
JJ
266542012-01-31 Jakub Jelinek <jakub@redhat.com>
26655
26656 PR bootstrap/52058
26657 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
26658
01496eca
AK
266592012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26660
26661 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
26662 to srak instruction.
26663
a2be33be
MGD
266642012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
26665
28f7ff45 26666 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
a2be33be 26667
dd887943
JJ
266682012-01-31 Jakub Jelinek <jakub@redhat.com>
26669
26670 PR bootstrap/52041
26671 PR bootstrap/52039
26672 PR target/51974
26673 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
26674
63d7ceaa
RG
266752012-01-31 Richard Guenther <rguenther@suse.de>
26676
26677 PR tree-optimization/51528
26678 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
26679 assigns.
26680
68c8a824
JJ
266812012-01-31 Jakub Jelinek <jakub@redhat.com>
26682
26683 PR bootstrap/52041
26684 PR bootstrap/52039
26685 PR target/51974
26686 * ree.c (add_removable_extension): Change def_map argument
26687 to unsigned *, store in def_map 1 + offset into *insn_list vector
26688 instead of pointers into the vector.
26689 (find_removable_extensions): Adjust caller.
26690
a7fd5c6b
GJL
266912012-01-30 Georg-Johann Lay <avr@gjlay.de>
26692
26693 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
26694 Transform all "* quoted-c-code" to { c-code }.
26695 Remove redundant test for "optimize" in combine patterns.
26696 Move (include "avr-dimode.md") to end of file.
26697
ab07692c
BC
266982012-01-30 Bin Cheng <bin.cheng@arm.com>
26699
26700 PR target/51835
26701 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
26702 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
26703
e799d447
RG
267042012-01-30 Richard Guenther <rguenther@suse.de>
26705
26706 PR tree-optimization/52028
26707 * tree-loop-distribution.c (ldist_gen): Properly update
26708 virtual SSA form.
26709
dd44dcb0
JJ
267102012-01-30 Jakub Jelinek <jakub@redhat.com>
26711
2026d51a
JJ
26712 PR debug/52027
26713 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
26714 set_cur_line_info_table if not emitting debug info.
26715
2f326699
JJ
26716 PR tree-optimization/52046
26717 * tree-vect-patterns.c (check_bool_pattern): Give up if
26718 a comparison could throw.
26719
dd44dcb0
JJ
26720 PR debug/52048
26721 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
26722
ab448cfa
RG
267232012-01-30 Richard Guenther <rguenther@suse.de>
26724
26725 PR tree-optimization/52045
26726 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
26727 SSA form if cfgcleanup did anything.
26728
f8698b37
RG
267292012-01-30 Richard Guenther <rguenther@suse.de>
26730
26731 PR tree-optimization/52045
26732 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
26733 before computing final todo.
26734
fdad69c1
RG
267352012-01-30 Richard Guenther <rguenther@suse.de>
26736
26737 PR tree-optimization/51528
26738 * tree-sra.c (sra_modify_assign): Re-factor in preparation
26739 for PR51528 fix.
26740
8203ac49
PB
267412012-01-30 Paolo Bonzini <bonzini@gnu.org>
26742
26743 * df-problems.c (df_kill_notes): Check that the use refers
26744 to the note under examination.
26745
98e4350f
EB
267462012-01-30 Eric Botcazou <ebotcazou@adacore.com>
26747
26748 PR target/51920
26749 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
26750 parameter and use short-lived pseudos.
26751 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
26752 (sparc_expand_vector_init): Const-ify local variables and adjust
26753 calls to above functions.
26754
733ccf09
GJL
267552012-01-30 Georg-Johann Lay <avr@gjlay.de>
26756
26757 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
26758
1d7b264e
SL
267592012-01-29 Sandra Loosemore <sandra@codesourcery.com>
26760
26761 * doc/invoke.texi: Make usage of "compile time" and
26762 "run time"/"runtime" consistent throughout the file.
26763
1e86df8d
UB
267642012-01-29 Uros Bizjak <ubizjak@gmail.com>
26765
28f7ff45 26766 * config/alpha/alpha.c (alpha_option_override): Default to
1e86df8d
UB
26767 full IEEE compliance mode for Go language.
26768
8ca92d04 267692012-01-29 Tijl Coosemans <tijl@coosemans.org>
fc4c0b43
TC
26770
26771 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
26772 (LINK_SSP_SPEC): Define.
26773
df8b5535
JDA
267742012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26775
26776 PR target/51871
26777 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
26778 stubs.
26779
6b6985ba
SL
267802012-01-28 Sandra Loosemore <sandra@codesourcery.com>
26781
26782 * doc/invoke.texi: Correct hyphenation of "floating point",
26783 "double precision", and related terminology throughout the file.
26784
8ea2d689
JJ
267852012-01-28 Jakub Jelinek <jakub@redhat.com>
26786
26787 PR target/52006
26788 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
26789 arm_general_register_operand predicate for operand 2 instead of
26790 register_operand.
26791
183dd130
ILT
267922012-01-27 Ian Lance Taylor <iant@google.com>
26793
26794 PR go/47656
26795 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
26796 * builtins.c (expand_builtin_init_trampoline): Add onstack
26797 parameter. Change caller.
26798 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
26799 * tree.c (build_common_builtin_nodes): Declare
26800 __builtin_init_heap_trampoline.
26801
38ee0815
GJL
268022012-01-27 Georg-Johann Lay <avr@gjlay.de>
26803
26804 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
26805 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
26806 * config/avr/avr.c: Ditto.
26807 (avr_regnames): Remove because unused.
26808 * config/avr/avr.md (*cpse.ne): New peephole.
26809 (*cpse.eq): New peephole from former cpse peepholes.
26810
b6c71f77
ME
268112012-01-27 Michael Eager <eager@eagercon.com>
26812
26813 * config/microblaze.c (microblaze_emit_compare): Correct
26814 test after pcmp instruction.
26815
13604927
RG
268162012-01-27 Richard Guenther <rguenther@suse.de>
26817
26818 PR tree-optimization/52020
26819 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
26820
ace018f9
RG
268212012-01-27 Richard Guenther <rguenther@suse.de>
26822
26823 * ipa-pure-const.c (check_stmt): Clobbers do not make a
26824 function non-const/pure.
26825
aff86594
RG
268262012-01-27 Richard Guenther <rguenther@suse.de>
26827
26828 PR tree-optimization/50444
26829 * tree-sra.c (build_ref_for_offset): Properly adjust the
26830 MEM_REF type for unaligned accesses.
26831
22345357
RG
268322012-01-27 Richard Guenther <rguenther@suse.de>
26833
26834 PR tree-optimization/50444
26835 * expr.c (mem_ref_refers_to_non_mem_p): New function.
26836 (expand_assignment): Use it. Properly handle misaligned
26837 bases when expanding stores to component references.
26838 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
26839 refactor that case.
26840
3881dee9
AB
268412012-01-27 Andrey Belevantsev <abel@ispras.ru>
26842
26843 PR middle-end/51389
26844 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
26845 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
26846 * tree-data-ref.c (find_data_references_in_loop): Make static.
26847 (compute_all_dependences): Change return type to bool. Bail out
26848 for too many datarefs in a loop. Move the hunk resetting the data
26849 dependences vector from ...
26850 (compute_data_dependences_for_loop): ... here. Account for
26851 compute_all_dependences returning false.
26852 (compute_data_dependences_for_bb): Likewise.
26853 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
26854 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
26855
45c83429
RG
268562012-01-27 Richard Guenther <rguenther@suse.de>
26857
26858 PR middle-end/51959
26859 * expr.c (store_field): Use the alias-set of the scratch memory
26860 for storing to it.
26861
842679dc
TV
268622012-01-27 Tom de Vries <tom@codesourcery.com>
26863
26864 PR tree-optimization/51990
1e86df8d
UB
26865 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
26866 WITH_SIZE_EXPR.
842679dc
TV
26867 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
26868
ae25db45
JJ
268692012-01-27 Jakub Jelinek <jakub@redhat.com>
26870
26871 PR debug/52001
26872 * var-tracking.c (reverse_op): Don't add any reverse operation
26873 if V already has any constant locations.
26874
cb485fff
SL
268752012-01-27 Sandra Loosemore <sandra@codesourcery.com>
26876
26877 * doc/invoke.texi: Correct usage of "command line" (noun)
26878 vs "command-line" (adjective) throughout.
26879
e3bd34b8
SL
268802012-01-27 Sandra Loosemore <sandra@codesourcery.com>
26881
26882 * doc/invoke.texi (Language Independent Options): Move
26883 -Wcoverage-mismatch blurb from here....
26884 (Warning Options): ...to here.
26885
b7c0a0d4
PB
268862012-01-27 Peter Bergner <bergner@vnet.ibm.com>
26887
26888 * config/rs6000/rs6000.c (rs6000_option_override_internal):
26889 Set rs6000_always_hint to false for 476.
26890
2fda54bd
MK
268912012-01-27 Matthias Klose <doko@ubuntu.com>
26892
26893 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
26894 system root.
26895 * incpath.c (add_standard_paths): Likewise.
26896
4c1fd084
RH
268972012-01-27 Richard Henderson <rth@redhat.com>
26898
26899 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
26900 * config/m68k/sync.md (atomic_test_and_set): Rename from
26901 sync_test_and_setqi and adjust the operands.
26902 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
26903 and unconditionally enable.
26904
5a843a13
RH
269052012-01-27 Richard Henderson <rth@redhat.com>
26906
26907 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
26908 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
26909 (ldstub): Rename from ldstubqi.
26910 (ldstub<I24MODE>): Remove.
26911
57c5ab1b
RH
269122012-01-27 Richard Henderson <rth@redhat.com>
26913
26914 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
26915 * c-cppbuiltin.c (cpp_atomic_builtins): Define
26916 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
26917 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
26918 * doc/tm.texi: Rebuild.
26919
15e73e06
RH
269202012-01-27 Richard Henderson <rth@redhat.com>
26921
26922 * optabs.c (gen_atomic_test_and_set): Remove default.
26923 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
26924
089dacc5
JJ
269252012-01-26 Jakub Jelinek <jakub@redhat.com>
26926
26927 PR rtl-optimization/51978
1e86df8d 26928 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
089dacc5
JJ
26929 (combine_reaching_defs): Likewise.
26930 (struct re_info): Remove.
26931 (add_removable_extension): Remove x and data arguments,
26932 add insn, insn_list and def_map. Use the arguments directly
26933 instead of using struct re_info.
26934 (find_removable_extensions): Don't call add_removable_extension
26935 through note_stores, instead just call it with single_set
26936 result if non-NULL.
26937 (find_and_remove_re): Pass curr_cand->expr instead of
1e86df8d 26938 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
089dacc5 26939
81bfd197
MM
269402012-01-26 Michael Matz <matz@suse.de>
26941
26942 PR tree-optimization/46590
26943 * cfgexpand.c: Revert last change (r183305).
26944 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
26945 regs.
26946 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
26947 checking for emptiness.
26948
892123df
JJ
269492012-01-26 Jakub Jelinek <jakub@redhat.com>
26950
26951 PR middle-end/51895
26952 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
26953 non-addressable non-BLKmode base correctly.
26954
1a47f99c
MM
269552012-01-26 Michael Matz <matz@suse.de>
26956
26957 PR tree-optimization/48794
26958 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
26959 regions referenced from RESX/EH_DISPATCH.
26960
3d427cc1
AK
269612012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26962
26963 * config/s390/s390.h: Make BRANCH_COST an option.
26964 * config/s390/s390.opt: New option -mbranch-cost.
26965
3be18e47
RH
269662012-01-26 Richard Henderson <rth@redhat.com>
26967
26968 Revert 2012-01-24 change:
26969 * trans-mem.c (requires_barrier): Do not instrument thread local
26970 variables and emit save/restore for them.
26971
21ae439c
JJ
269722012-01-25 Jakub Jelinek <jakub@redhat.com>
26973
26974 PR middle-end/51986
26975 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
26976 for pat == 0.
26977
e906c889
RS
269782012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
26979
55d4e75e
RS
26980 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
26981 ASM_OPERANDS.
e906c889 26982
3a840863
GJL
269832012-01-25 Georg-Johann Lay <avr@gjlay.de>
26984
26985 PR target/49868
26986 Rename __pgm to __flash.
26987 Rename __pgm1 to __flash1.
26988 Rename __pgm2 to __flash2.
26989 Rename __pgm3 to __flash3.
26990 Rename __pgm4 to __flash4.
26991 Rename __pgm5 to __flash5.
26992 Rename __pgmx to __memx.
26993 * doc/extend.texi (AVR Named Address Spaces)
26994 Rename address space names as indicated above.
26995 * config/avr/avr.c (avr_addrspace): Ditto.
26996
26997 * config/avr/avr-protos.h
26998 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
26999 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
27000 * config/avr/predicates.md: Ditto.
27001 * config/avr/avr.c Ditto, and
27002 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
27003 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
27004
27005 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
27006 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
27007 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
27008 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
27009 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
27010 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
27011 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
27012 * config/avr/avr.c: Ditto.
27013 * config/avr/avr.md: Ditto.
27014
b3310d49
JM
270152012-01-25 Jason Merrill <jason@redhat.com>
27016
27017 PR c++/51992
27018 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
27019
06e1d03d
JJ
270202012-01-25 Jakub Jelinek <jakub@redhat.com>
27021
27022 PR tree-optimization/51987
27023 * tree-data-ref.c (get_references_in_stmt): Handle references in
27024 non-volatile GIMPLE_ASM.
27025
8bf43909
RG
270262012-01-25 Richard Guenther <rguenther@suse.de>
27027
27028 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
27029 bases are dereferenced.
27030
3dbdd1b9
AB
270312012-01-25 Andrey Belevantsev <abel@ispras.ru>
27032
27033 PR rtl-optimization/48374
1e86df8d 27034 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
3dbdd1b9 27035
9ca3d00e
AB
270362012-01-25 Andrey Belevantsev <abel@ispras.ru>
27037
27038 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
27039 compute_data_dependences_for_loop returns false.
27040 * tree-parloops.c (loop_parallel_p): Likewise.
27041
87c0fb4b
RG
270422012-01-25 Richard Guenther <rguenther@suse.de>
27043
27044 * tree.h (get_pointer_alignment_1): Declare.
27045 * builtins.c (get_pointer_alignment_1): New function.
27046 (get_pointer_alignment): Use it.
27047
2630025d
RR
270482012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
27049
27050 PR rtl-optimization/48308
27051 * combine.c (enum undo_kind): Add UNDO_LINKS.
27052 (struct undo): Add member l to other_contents and where.
27053 (do_SUBST_LINK): New.
27054 (SUBST_LINK): New.
27055 (try_combine): Handle LOG_LINKS for the dummy i1 case.
27056 (undo_all): Handle UNDO_LINKS.
27057
42cf0609
RH
270582012-01-25 Richard Henderson <rth@redhat.com>
27059
27060 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
27061 mem inputs.
27062
1efaf134
RS
270632012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
27064
27065 * optabs.c (gen_atomic_test_and_set): Use each argument.
27066
63b9d91a
RS
270672012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
27068
27069 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
27070 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
27071 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
27072 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
27073 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
27074 TARGET_PAIRED_SINGLE_FLOAT.
27075
55356334
RS
270762012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
27077
27078 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
27079 (in_struct, return_val): Remove MEM documentation.
27080 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
27081 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
27082 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
27083 and MEM_SCALAR.
27084 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
27085 * cfgexpand.c (add_alias_set_conflicts): Likewise.
27086 * expr.c (store_field): Likewise.
27087 * function.c (assign_stack_temp_for_type): Likewise.
27088 * ifcvt.c (noce_try_cmove_arith): Likewise.
27089 * reload1.c (reload): Likewise.
27090 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
27091 (alpha_set_memflags): Likewise.
27092 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
27093
53d9622b
RS
270942012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
27095
27096 * rtl.h (true_dependence, canon_true_dependence): Remove varies
27097 parameter.
27098 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
27099 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
27100 (true_dependence_1, true_dependence, canon_true_dependence): Remove
27101 varies parameter.
27102 * cselib.c (cselib_rtx_varies_p): Delete.
27103 (cselib_invalidate_mem): Update call to canon_true_dependence.
27104 * dse.c (record_store, check_mem_read_rtx): Likewise.
27105 (scan_reads_nospill): Likewise.
27106 * cse.c (check_dependence): Likewise.
27107 (cse_rtx_varies_p): Delete.
27108 * expr.c (safe_from_p): Update call to true_dependence.
27109 * ira.c (validate_equiv_mem_from_store): Likewise.
27110 (memref_referenced_p): Likewise.
27111 * postreload-gcse.c (find_mem_conflicts): Likewise.
27112 * sched-deps.c (sched_analyze_2): Likewise.
27113 * store-motion.c (load_kills_store): Likewise.
27114 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
27115 * gcse.c (mems_conflict_for_gcse_p): Likewise.
27116 (compute_transp): Update call to canon_true_dependence.
27117
f8a27aa6
RH
271182012-01-25 Richard Henderson <rth@redhat.com>
27119
27120 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
27121 (maybe_emit_atomic_test_and_set): New.
27122 (expand_sync_lock_test_and_set): Use it.
27123 (expand_atomic_test_and_set): Likewise.
27124 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
27125 the implementation; clarify implementation defined details.
27126 * doc/md.texi (atomic_test_and_set): Document.
27127
f1d4a790
RH
271282012-01-25 Richard Henderson <rth@redhat.com>
27129
27130 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
27131
ed6cf318
RH
271322012-01-25 Richard Henderson <rth@redhat.com>
27133
27134 PR target/51968
27135 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
27136 to effect no-op split.
27137
dda6ecae
AH
271382012-01-24 Aldy Hernandez <aldyh@redhat.com>
27139
27140 PR lto/51698
27141 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
27142 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
27143 (BT_FN_VOID_PTR_INT_SIZE): New.
27144 (BT_FN_UINT_UINT_VAR): Remove.
27145 (BT_FN_UINT32_UINT32_VAR): New.
27146 (BT_FN_DOUBLE_VPTR): Remove.
27147 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
27148
1e86df8d 27149 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
dda6ecae
AH
27150 (_ITM_changeTransactionMode): Same.
27151 (_ITM_memmoveRtWt): Change return type to void.
27152 (_ITM_memcpyRtWt): Same.
27153 (_ITM_memsetW): Same.
27154 (_ITM_RaRD): Change types to double.
27155 (_ITM_RD): Same.
27156 (_ITM_RaWD): Same.
27157 (_ITM_RfWD): Same.
27158
27159 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
27160
1aa5d1c7
AH
271612012-01-24 Aldy Hernandez <aldyh@redhat.com>
27162 Patrick Marlier <patrick.marlier@gmail.com>
27163
27164 * trans-mem.c (requires_barrier): Do not instrument thread local
27165 variables and emit save/restore for them.
27166
c5c90089
JM
271672012-01-24 Jason Merrill <jason@redhat.com>
27168
27169 PR c++/51812
27170 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
27171 output static aliases.
27172
5460e1fc
JJ
271732012-01-24 Jakub Jelinek <jakub@redhat.com>
27174
27175 PR driver/47249
27176 * common.opt (-pie, -shared, pie, shared): Change from Common to
27177 Driver.
27178 * gcc.c (display_help): Display help for -pie and -shared.
27179
aa9ec4db
GJL
271802012-01-24 Georg-Johann Lay <avr@gjlay.de>
27181
27182 PR target/49868
27183 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
27184 Remove note on size/offset limitation.
27185 (AVR Variable Attributes): Add example how to read data located
27186 with progmem. Refer to named address spaces.
27187 * doc/invoke.texi (AVR Options): Fix typo.
27188
a9d3ac1e
RG
271892012-01-24 Richard Guenther <rguenther@suse.de>
27190
27191 Forward-port to trunk
27192 2010-09-21 Jakub Jelinek <jakub@redhat.com>
27193
27194 PR middle-end/45678
27195 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
27196 op0 isn't sufficiently aligned and there is movmisalignM
27197 insn for mode, use it to load op0 into a temporary register.
27198
93bcc8c9
JJ
271992012-01-24 Jakub Jelinek <jakub@redhat.com>
27200
27201 PR target/51957
27202 * target.def (const_not_ok_for_debug_p): New hook.
27203 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
27204 documentation.
27205 * doc/tm.texi: Regenerated.
27206 * dwarf2out.c (const_ok_for_output_1): If
27207 targetm.const_not_ok_for_debug_p returns true, fail.
27208 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
27209 function.
27210 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
27211
986ce92f
KT
272122012-01-23 Kai Tietz <ktietz@redhat.com>
27213
27214 PR target/51900
27215 * config/i386/predicates.md (symbolic_operand): Allow
27216 UNSPEC_PCREL as PIC expression for lea.
27217 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
27218 * config/i386/i386.c (ix86_delegitimize_address): Handle
27219 UNSPEC_PCREL for none-MEM, too.
27220
e617b554
AH
272212012-01-23 Aldy Hernandez <aldyh@redhat.com>
27222
27223 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
27224 (ipa_tm_create_version_alias): Same.
27225
1e86df8d 272262012-01-23 Uros Bizjak <ubizjak@gmail.com>
5752c591
UB
27227
27228 PR libitm/51830
27229 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
27230 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
27231
f2ede0ee
AH
272322012-01-23 Aldy Hernandez <aldyh@redhat.com>
27233 Patrick Marlier <patrick.marlier@gmail.com>
27234 Iain Sandoe <developer@sandoe-acoustics.co.uk>
27235
27236 PR lto/51916
27237 * lto-wrapper.c (run_gcc): Pass the LTO section name to
27238 simple_object_start_read.
27239
191879f9
RG
272402012-01-23 Richard Guenther <rguenther@suse.de>
27241
f2ede0ee 27242
191879f9
RG
27243 PR tree-optimization/51895
27244 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
27245 parameter decomposition into BLKmode components.
27246
b31799f4
EB
272472012-01-23 Eric Botcazou <ebotcazou@adacore.com>
27248
27249 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
27250 fake variables for restrict-qualified pointers whose pointed-to type
27251 contains a placeholder.
27252
b2d2adc6
RG
272532012-01-23 Richard Guenther <rguenther@suse.de>
27254
27255 PR tree-optimization/51949
5752c591 27256 * ipa-split.c (execute_split_functions): Do not split malloc functions.
b2d2adc6 27257
b57cca0b
JJ
272582012-01-23 Jakub Jelinek <jakub@redhat.com>
27259
27260 PR rtl-optimization/51933
27261 * ree.c (transform_ifelse): Return true right away if dstreg is
27262 already wider or equal to cand->mode.
27263 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
27264 (make_defs_and_copies_lists): Remove defs_list and copies_list
27265 arguments, add state argument, just truncate state->work_list
27266 instead of always allocating and freeing the vector. Assert that
5752c591 27267 get_defs succeeds instead of returning 2. Changed return type to bool.
b57cca0b
JJ
27268 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
27269 have ext_src_mode, see if it has been modified already with the
27270 right kind of extension and has been extended before from the
27271 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
5752c591 27272 just return true. Remember the original mode in state->modified array.
b57cca0b
JJ
27273 (combine_reaching_defs): Add state argument. Don't allocate and
27274 free here def_list, copied_list and vec vectors, instead just
5752c591 27275 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
b57cca0b
JJ
27276 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
27277 Add state variable, clear vectors in it, initialize state.modified
27278 if needed. Free all the vectors at the end and state.modified too.
27279 Don't skip a candidate if the extension expression has been modified.
27280
daecebc8
DR
272812012-01-22 Douglas B Rupp <rupp@gnat.com>
27282
27283 PR target/47096
27284 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
27285 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
27286 (extra_options) interix.opt -> i386/interix.opt"
27287 (extra_objs):Add winnt-stubs.o
27288 * configure.ac: Add interix to target_os .comm on PE check.
27289 * configure: Regenerate.
27290 * config/interix3.h: Delete and move bits to..
27291 * config/interix.h: Delete and move bits to..
27292 * config/i386/i386-interix3.h: Delete and move bits to..
27293 * config/i386/i386-interix.h: ..here.
27294 (TARGET_CPU_DEFAULT): Remove redefinition.
27295 (TARGET_ASM_CONSTRUCTOR): Undefine.
27296 (SUBTARGET_SWITCHES): Define for ms-bitfields.
27297 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
27298 (PTRDIFF_TYPE): Define.
27299 (LONG_DOUBLE_TYPE_SIZE): Define.
27300 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
27301 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
27302 (TARGET_SECTION_TYPE_FLAGS): Define.
27303 (ASM_DECLARE_FUNCTION_NAME): Define.
27304 (ASM_OUTPUT_EXTERNAL): Define.
27305 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
27306 (ASM_OUTPUT_ALIGNED_BSS): Define.
27307 (PCC_BITFIELD_TYPE_MATTERS): Define.
27308 (USE_CONST_SECTION): Define.
27309 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
27310 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
27311 (SUPPORTS_ONE_ONLY): Remove.
27312 (I386_PE_STRIP_ENCODING): Define.
27313 * config/interix.opt: Delete and move bits to..
27314 * config/i386/interix.opt: ..here. New.
27315 (mpe-aligned-commons): Add.
27316 * config/i386/t-interix: Add copyright header.
27317 (winnt-stubs.o): Add rule.
27318
bbe04f21
JM
273192012-01-22 Jason Merrill <jason@redhat.com>
27320
27321 PR c++/51832
27322 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
27323 for extra name aliases.
27324
ca10595c
EB
273252012-01-22 Eric Botcazou <ebotcazou@adacore.com>
27326
27327 PR rtl-optimization/51924
27328 * ree.c (combine_set_extension): Improve debugging message.
27329 (combine_reaching_defs): Likewise.
27330 (get_defs): Rename confusingly named variable.
27331 (find_and_remove_re): Skip a candidate if the extension expression has
27332 been modified.
27333
4787ac51
RM
273342012-01-21 Robert Millan <rmh@gnu.org>
27335 Gerald Pfeifer <gerald@pfeifer.com>
27336
27337 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
27338 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
27339
82294ec1
JJ
273402012-01-20 Jakub Jelinek <jakub@redhat.com>
27341
27342 PR tree-optimization/51914
27343 * tree-vect-stmts.c (vectorizable_conversion): For
27344 cvt_type && modifier == WIDEN, put temporary with cvt_type
27345 at the beginning of vec_dsts and set vec_dest to temporary
27346 with vectype_out.
27347
68cc3174
EB
273482012-01-20 Eric Botcazou <ebotcazou@adacore.com>
27349
27350 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
27351
8ca92d04 273522012-01-20 Tijl Coosemans <tijl@coosemans.org>
cdee0298
TC
27353
27354 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
27355 * config/rs6000/rs6000.c: Likewise.
27356
4c2708c5
JJ
273572012-01-20 Jakub Jelinek <jakub@redhat.com>
27358
27359 PR target/51915
27360 * config/arm/arm.c (arm_count_output_move_double_insns): Call
27361 output_move_double on a copy of operands array.
27362
5752c591
UB
273632012-01-20 Cary Coutant <ccoutant@google.com>
27364 Dodji Seketeli <dodji@redhat.com>
2d663cb9
CC
27365
27366 PR debug/45682
27367 * dwarf2out.c (copy_declaration_context): Return ref to parent
27368 of declaration DIE, if necessary.
27369 (remove_child_or_replace_with_skeleton): Add new parameter; update
27370 caller. Place skeleton DIE under parent DIE of original declaration.
27371 Move call to copy_declaration_context to here ...
27372 (break_out_comdat_types): ... from here.
27373
afa73d3a
AK
273742012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27375
27376 PR rtl-optimization/51856
27377 * reload.c (find_reloads_subreg_address): Set the address_reloaded
27378 flag to reloaded.
27379
3675f54b
RR
273802012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
27381
27382 PR target/51819
27383 * config/arm/arm.c (arm_print_operand): Correct output of alignment
27384 hints for neon loads and stores.
27385
542bf446
GJL
273862012-01-20 Georg-Johann Lay <avr@gjlay.de>
27387
27388 PR target/49868
27389 PR target/50887
27390 * doc/extend.texi (Named Address Spaces): Split into subsections.
27391 (AVR Named Address Spaces): New subsection.
27392 (M32C Named Address Spaces): New subsection.
27393 (RL78 Named Address Spaces): New subsection.
27394 (SPU Named Address Spaces): New subsection.
27395 (Variable Attributes): New anchor "AVR Variable Attributes".
27396 (AVR Variable Attributes): Rewrite and avoid wording
27397 "address space" in this context.
27398 * doc/invoke.texi (AVR Options): Rewrite and add documentation
27399 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
27400 (AVR Built-in Macros): New subsubsection therein.
27401 * doc/md.texi (AVR constraints): Remove "C04", "R".
27402
a88b3135
RG
274032012-01-20 Richard Guenther <rguenther@suse.de>
27404
27405 PR tree-optimization/51903
27406 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
27407 when removing stmts.
27408
f06129ea
RR
274092012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
27410
27411 PR target/50313
27412 * config/arm/arm.c (arm_load_pic_register): Use
27413 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
27414 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
27415 (arm_pic_static_addr): Likewise.
27416 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
27417 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
27418 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
27419 (pic_load_addr_unified): New.
27420
229bfbcf
AB
274212012-01-20 Andrey Belevantsev <abel@ispras.ru>
27422
27423 PR target/51106
27424 * function.c (instantiate_virtual_regs_in_insn): Use
27425 delete_insn_and_edges when removing a wrong asm insn.
27426
2608d841
VM
274272012-01-19 Vladimir Makarov <vmakarov@redhat.com>
27428
27429 PR rtl-optimization/40761
5752c591
UB
27430 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
27431 Add new member loop_num.
2608d841
VM
27432 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
27433 (ira_build): Remove the parameter.
27434
5752c591 27435 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
2608d841
VM
27436 (ira.c): Do not build CFG loops for one region allocation. Remove
27437 argument from ira_build call.
27438
27439 * ira-build.c (init_loop_tree_node): New function.
27440 (create_loop_tree_nodes): Use it. Separate the case when CFG
27441 loops are not built.
27442 (more_one_region_p): Check current_loops.
27443 (finish_loop_tree_nodes): Separate the case when CFG loops are not
27444 built.
27445 (add_loop_to_tree): Process loop equal to NULL too.
27446 (form_loop_tree): Separate the case when CFG loops are not built.
27447 Use explicitly number for the root.
27448 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
27449 an assertion.
27450 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
27451 instead of loop->num.
5752c591 27452 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
2608d841
VM
27453 (mark_all_loops_for_removal): Ditto.
27454 (remove_unnecessary_regions): Separate the case when CFG loops
27455 are not built.
27456 (ira_build): Remove the parameter. Use explicit number of regions
27457 when CFG loops are not built.
27458
5752c591
UB
27459 * ira-color.c (print_loop_title): Separate the case for the root node.
27460 Use loop_num instead of loop->num.
2608d841
VM
27461 (move_spill_restore): Use loop_num instead of loop->num.
27462
27463 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
27464 (change_loop): Ditto.
27465 (change_loop): Use loop_num instead of loop->num.
27466
27467 * ira-lives.c (process_bb_node_lives): Ditto.
27468
5752c591 27469 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
2608d841
VM
27470
27471 * ira-conflicts.c (print_allocno_conflicts): Ditto.
27472
dc2c7a52
JJ
274732012-01-19 Jakub Jelinek <jakub@redhat.com>
27474
58b3ebf2
JJ
27475 PR libmudflap/40778
27476 * tree-mudflap.c (mf_artificial): New function.
27477 (execute_mudflap_function_ops, execute_mudflap_function_decls,
27478 mx_register_decls, mudflap_enqueue_decl): Use it.
27479
dc2c7a52
JJ
27480 PR target/51876
27481 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
27482 numbers in the insn pattern.
27483
d5038d06
MM
274842012-01-19 Michael Matz <matz@suse.de>
27485
27486 PR tree-optimization/46590
27487 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
27488 use it in remembering which conflicts we already created.
27489 (add_scope_conflicts): Adjust call to above, (de)allocate helper
27490 bitmap.
27491
aad038ca
AH
274922012-01-19 Aldy Hernandez <aldyh@redhat.com>
27493
27494 PR lto/51280
27495 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
27496 (merge_and_complain): Same.
27497
e9c9f128
JJ
274982012-01-19 Jakub Jelinek <jakub@redhat.com>
27499
27500 PR bootstrap/50237
27501 * config/initfini-array.h: Guard content of the header
27502 with #ifdef HAVE_INITFINI_ARRAY.
27503 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
27504 Add initfini-array.h to tm_file here.
5752c591 27505 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
e9c9f128
JJ
27506 * config.gcc: Don't add initfini-array.h to tm_file here.
27507 * configure: Regenerated.
27508
275092012-01-19 Andrey Belevantsev <abel@ispras.ru>
f90aa714
AB
27510
27511 PR rtl-optimization/51505
27512 * df-problems.c (df_kill_notes): New parameter live. Update comment.
27513 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
5752c591 27514 (df_note_bb_compute): Update the call to df_kill_notes.
f90aa714 27515
63c0efdb
AH
275162012-01-18 Aldy Hernandez <aldyh@redhat.com>
27517
27518 * trans-mem.c (requires_barrier): Remove call to is_global_var.
27519
b8cf611d
RG
275202012-01-18 Richard Guenther <rguenther@suse.de>
27521
27522 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
27523 of conversions to void *.
27524
3bdb97b8
AK
275252012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27526 Richard Sandiford <rdsandiford@googlemail.com>
27527
27528 PR middle-end/50325
27529 PR middle-end/51192
27530 * optabs.h (simplify_expand_binop): Declare.
27531 * optabs.c (simplify_expand_binop): Make global.
27532 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
27533 endian targets if the source cannot be exactly covered by word
27534 mode chunks.
27535
ee3d2ecd
JJ
275362012-01-17 Jakub Jelinek <jakub@redhat.com>
27537
27538 PR bootstrap/51872
27539 * hard-reg-set.h (struct hard_reg_set_container): New type.
27540 * target.h (struct hard_reg_set_container): Forward declare.
27541 * target.def (set_up_by_prologue): New target hook.
27542 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
27543 * doc/tm.texi: Regenerated.
27544 * function.c (thread_prologue_and_epilogue_insns): Change
27545 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
27546 Call targetm.set_up_by_prologue on it.
27547 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
27548 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
27549
be61ce52
NC
275502012-01-17 Nick Clifton <nickc@redhat.com>
27551
27552 * config/rx/rx.c (rx_can_use_simple_return): New function.
27553 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
27554 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
27555
e831c1e8
RG
275562012-01-17 Richard Guenther <rguenther@suse.de>
27557
27558 PR middle-end/51782
27559 * expr.c (expand_assignment): Take address-space information
27560 from the address operand of MEM_REF and TARGET_MEM_REF.
27561 (expand_expr_real_1): Likewise.
27562
67463efb
AK
275632012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27564
27565 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
27566 reload dump is requested.
27567
59cbe98e
AH
275682012-01-17 Aldy Hernandez <aldyh@redhat.com>
27569
27570 PR other/51165
27571 * trans-mem.c (requires_barrier): Call may_be_aliased.
27572
e6fa9204
JJ
275732012-01-17 Jakub Jelinek <jakub@redhat.com>
27574
27575 PR tree-optimization/51877
27576 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
27577 call arguments and fndecls compare equal, instead return false if they
27578 don't. Return true only if lhs1 and lhs2 are either both NULL, or
27579 both SSA_NAMEs that are valueized the same, or they satisfy
27580 operand_equal_p.
27581
26923657
RO
275822012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27583
27584 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
27585 Solaris 11+.
27586 * configure: Regenerate.
27587
c53153e7
JH
275882012-01-16 Jan Hubicka <jh@suse.cz>
27589
27590 PR c/12245
27591 PR c++/14179
27592 * convert.c (convert_to_integer): Use fold_convert for
27593 converting an INTEGER_CST to integer type.
27594
7aeb037b
JM
275952012-01-16 Jason Merrill <jason@redhat.com>
27596
27597 PR c++/14179
27598 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
27599
90dda0e9
JJ
276002012-01-16 Jakub Jelinek <jakub@redhat.com>
27601
00fbd5c8
JJ
27602 PR bootstrap/51860
27603 * config/s390/s390.c (s390_chunkify_start): Don't skip
27604 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
27605 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
27606 If insn is followed by NOTE_INSN_VAR_LOCATION or
27607 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
27608 Don't use location of note insns.
27609
90dda0e9
JJ
27610 PR tree-optimization/51865
27611 * tree-inline.c (tree_function_versioning): Call remap_decl
27612 on DECL_RESULT whenever it has VOID_TYPE_P type.
27613
62835cee
RS
276142012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
27615
27616 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
27617 for calls to locally-binding MIPS16 functions if only the return
27618 type uses float regs.
27619
ddaf8125
RS
276202012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
27621 Richard Sandiford <rdsandiford@googlemail.com>
27622
27623 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
27624 (SYMBOL_32_HIGH): Likewise.
27625 (mips_output_tls_reloc_directive): Declare.
27626 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
27627 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
27628 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
27629 (mips_lo_relocs, mips_hi_relocs): Make extern.
27630 (mips16_stub_function): Move up file.
27631 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
27632 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
27633 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
5752c591
UB
27634 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
27635 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
ddaf8125
RS
27636 (mips_get_tp): Add MIPS16 support.
27637 (mips_legitimize_tls_address): Remove MIPS16 sorry().
27638 Generalize DTPREL and TPREL handling.
27639 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
27640 Add MIPS16 TLS support.
27641 (mips_output_tls_reloc_directive): New function.
27642 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
27643 * config/mips/predicates.md (symbolic_operand_with_high)
27644 (tls_reloc_operand): New predicates.
27645 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
27646 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
27647 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
5752c591 27648 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
ddaf8125
RS
27649 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
27650 (*tls_get_tp_mips16_call_<mode>): Likewise.
27651
bf63ef6c
UB
276522012-01-15 Uros Bizjak <ubizjak@gmail.com>
27653
27654 PR rtl-optimization/51821
27655 * recog.c (peep2_find_free_register): Determine clobbered registers
27656 from insn pattern.
27657
cfbaed3b
DC
276582012-01-14 Denis Chertykov <chertykov@gmail.com>
27659
27660 PR target/50925
27661 * config/avr/avr-protos.h: Revert change of 2012-01-09.
27662 * config/avr/avr.c: Likewise.
27663 * config/avr/avr.h: Likewise.
27664
12448f77
ILT
276652012-01-13 Ian Lance Taylor <iant@google.com>
27666
27667 PR c++/50012
27668 * tree.h (TYPE_QUALS): Add cast to int.
27669 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
27670
9ab6f957
ILT
276712012-01-13 Ian Lance Taylor <iant@google.com>
27672
27673 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
27674 comparing param_index to VEC_length result.
27675
8554df86
SB
276762012-01-13 Steven Bosscher <steven@gcc.gnu.org>
27677
27678 * c-decl.c: Do not include tree-mudflap.h
27679 * tree-optimize.c: Likewise.
27680 * Makefile.in: Update dependencies.
27681
aabb90e5
RG
276822012-01-13 Richard Guenther <rguenther@suse.de>
27683
27684 PR middle-end/8081
27685 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
27686 variable-sized result always use RSO.
27687
639d4bb8
DD
276882012-01-12 DJ Delorie <dj@redhat.com>
27689
27690 * cfgexpand.c (convert_debug_memory_address): Allow any valid
27691 pointer type, not just the default pointer type.
27692
105b876e
RH
276932012-01-09 Richard Henderson <rth@redhat.com>
27694 Denis Chertykov <chertykov@gmail.com>
27695
27696 PR target/50925
27697 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
27698 * config/avr/avr.c (avr_can_eliminate): Simplify.
27699 (avr_initial_elimination_offset): Likewise.
27700 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
27701 (expand_epilogue): Likewise.
27702 (avr_legitimize_address): Gut.
27703 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
27704 (avr_hard_regno_nregs): New.
27705 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
27706 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
27707 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
27708 add soft frame pointer.
27709 (CALL_USED_REGISTERS): Likewise.
27710 (REG_CLASS_CONTENTS): Likewise.
27711 (REGISTER_NAMES): Likewise.
27712 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
27713 (HARD_FRAME_POINTER_REGNUM): New.
27714 (FRAME_POINTER_REGNUM): Use soft frame pointer.
27715 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
27716 remove the HARD_FRAME_POINTER self-elimination.
27717
458652d1 277182012-01-12 Georg-Johann Lay <avr@gjlay.de>
ab8c5093
GJL
27719
27720 PR target/51756
27721 * config/avr/avr.c (avr_encode_section_info): Test for absence of
27722 DECL_EXTERNAL when checking for initializers of progmem variables.
27723
82db3d43
IR
277242012-01-12 Ira Rosen <irar@il.ibm.com>
27725
27726 PR tree-optimization/51799
27727 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
27728 that the last operation is a type demotion.
27729
64668e68
UB
277302012-01-12 Uros Bizjak <ubizjak@gmail.com>
27731
27732 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
27733 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
27734
319638ed
JJ
277352012-01-11 Jakub Jelinek <jakub@redhat.com>
27736
27737 PR bootstrap/51796
27738 * combine.c (distribute_notes): If i3 is a noreturn call,
27739 allow old_size to be equal to args_size and make sure the
27740 noreturn call gets REG_ARGS_SIZE note.
27741 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
27742 on noreturn calls even when the delta is 0.
27743
8f961b22
NS
277442012-01-11 Nathan Sidwell <nathan@acm.org>
27745
27746 * gcov.c (STRING_SIZE): Remove.
27747 (generate_results): Erase annotations for source files with no
27748 coverage information.
27749 (read_line): New.
27750 (output_lines): Use it.
27751
3ad065ef
EB
277522012-01-11 Eric Botcazou <ebotcazou@adacore.com>
27753
27754 * gimple.h (gimplify_body): Remove first argument.
27755 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
27756 pointer set here, instead just pass DATA to walk_tree.
27757 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
27758 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
27759 (unvisit_body): Likewise, but with unmark_visited.
27760 (gimplify_body): Remove BODY_P argument and adjust.
27761 (gimplify_function_tree): Adjust call to gimplify_body.
27762 * omp-low.c (finalize_task_copyfn): Likewise.
27763
1a2c27e9
EB
277642012-01-11 Eric Botcazou <ebotcazou@adacore.com>
27765
27766 * tree.h (build_function_decl_skip_args): Add boolean parameter.
27767 (build_function_type_skip_args): Delete.
27768 * tree.c (build_function_type_skip_args): Make static and add
27769 SKIP_RETURN parameter. Fix thinko in the handling of variants.
27770 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
27771 pass it to build_function_type_skip_args.
27772 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
27773 (tree_function_versioning): Likewise.
27774 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
27775 build_function_decl_skip_args.
27776 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
27777 and pass it to build_function_decl_skip_args/tree_function_versioning.
27778 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
27779 * ipa-inline-transform.c (save_inline_function_body): Likewise.
27780 * trans-mem.c (ipa_tm_create_version): Likewise.
27781 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
27782 * tree-inline.c (declare_return_variable): Remove always-true test.
27783 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
27784 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
27785 * ipa-split.c (split_function): Skip the return value for the split
27786 part if it doesn't return.
27787
b2e25729
BS
277882012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27789
27790 PR tree-optimization/49642
27791 * ipa-split.c (forbidden_dominators): New variable.
27792 (check_forbidden_calls): New function.
27793 (dominated_by_forbidden): Likewise.
27794 (consider_split): Check for forbidden dominators.
27795 (execute_split_functions): Initialize and free forbidden
27796 dominators info; call check_forbidden_calls.
27797
9150e331
MGD
277982012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
27799
27800 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
27801
1c97289f
NC
278022012-01-11 Nick Clifton <nickc@redhat.com>
27803
27804 * config/rx/rx.md (return): Define pattern.
27805
65d5c485
RG
278062012-01-11 Richard Guenther <rguenther@suse.de>
27807
27808 * doc/extend.texi (malloc attribute): Adjust according to
27809 implementation.
27810
594ec92f
AH
278112012-01-10 Aldy Hernandez <aldyh@redhat.com>
27812 Patrick Marlier <patrick.marlier@gmail.com>
27813
27814 PR middle-end/51516
27815 * trans-mem.c (get_cg_data): Traverse aliases if requested.
27816 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
27817 (ipa_tm_note_irrevocable): Same.
27818 (ipa_tm_scan_irr_block): Same.
27819 (ipa_tm_decrement_clone_counts): Same.
27820 (ipa_tm_scan_irr_function): Same.
27821 (ipa_tm_create_version_alias): Same.
27822 (ipa_tm_create_version): Same.
27823 (ipa_tm_transform_calls_redirect): Same.
27824 (ipa_tm_transform_calls): Same.
27825 (ipa_tm_transform_transaction): Same.
27826 (ipa_tm_execute): Same.
27827
aee15221
RG
278282012-01-10 Richard Guenther <rguenther@suse.de>
27829
27830 PR middle-end/51806
27831 * opts.c (common_handle_option): Handle -Werror.
27832
b339cf22
AS
278332012-01-10 Andreas Schwab <schwab@linux-m68k.org>
27834
27835 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
27836 operand number.
27837
90aa444c
JM
278382012-01-10 Jason Merrill <jason@redhat.com>
27839
27840 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
27841 information.
27842
0f24748c
RO
278432012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27844
27845 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
27846 supports R_386_TLS_GD_PLT reloc.
27847 (gcc_cv_as_ix86_tlsldmplt): Check if linker
27848 supports R_386_TLS_LDM_PLT reloc.
27849 * configure: Regenerate.
27850 * config.in: Regenerate.
27851
cba300dd
GJL
278522012-01-10 Georg-Johann Lay <avr@gjlay.de>
27853
27854 PR target/49868
27855 Extend __pgmx semantics to linearize memory.
27856 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
27857 determine if code comes inline or from libgcc.
27858 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
27859 (movmem_qi, movmem_qi): Set constraint #2 to "n".
27860 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
27861 (movmemx_qi, movmemx_hi): New insns.
27862 (xload_<mode>_libgcc): Rewrite to new insn condition.
27863 (xload_<mode>): Remove insns.
27864 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
27865 cases that don't satisfy avr_xload_libgcc_p().
27866 (avr_addr_space_convert): Allow converting in any direction.
27867 (avr_addr_space_subset_p): Return always true.
27868 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
27869 (avr_emit_movmemhi): Ditto.
27870 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
27871 (avr_out_movmem): Ditto.
27872 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
27873 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
27874 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
27875 (avr_encode_section_info): Encode 'progmem' in symbol flags.
27876 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
27877
390b24dc
RG
278782012-01-10 Richard Guenther <rguenther@suse.de>
27879
27880 PR tree-optimization/50913
27881 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
27882 Require data-refs to be representable by Graphite with respect
27883 to any loop nest.
27884
f148a434
UB
278852012-01-10 Uros Bizjak <ubizjak@gmail.com>
27886
27887 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
27888 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
27889
5d1f1cd5
TV
278902012-01-10 Tom de Vries <tom@codesourcery.com>
27891
6fcebe79 27892 PR rtl-optimization/51271
5d1f1cd5
TV
27893 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
27894 handling annulled branch.
27895
b440f324
RH
278962012-01-10 Richard Henderson <rth@redhat.com>
27897
f148a434 27898 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
b440f324
RH
27899 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
27900 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
27901 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
27902 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
27903 arm_expand_vec_perm_const): New.
27904 * config/arm/arm-protos.h: Update.
27905 * config/arm/neon.md (UNSPEC_VCONCAT): New.
27906 (*neon_vswp<VDQX>): New.
27907 (neon_vcombine<VDX>): Use neon_split_vcombine.
27908 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
27909 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
27910 (vec_perm<VE>): New.
27911
18f0fe6b
RH
279122012-01-10 Richard Henderson <rth@redhat.com>
27913
27914 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
27915 use it if reload_completed.
27916 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
27917 arm_output_asm_insn, arm_process_output_memory_barrier,
27918 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
27919 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
27920 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
27921 arm_process_output_sync_insn, arm_output_sync_insn,
27922 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
27923 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
27924 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
27925 (emit_unlikely_jump): New.
27926 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
27927 (arm_split_atomic_op): New.
27928 * config/arm/arm-protos.h: Update.
27929 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
27930 (struct arm_sync_generator): Remove.
27931 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
27932 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
27933 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
27934 (VUNSPEC_LL, VUNSPEC_SC): New.
27935 (sync_result, sync_memory, sync_required_value, sync_new_value,
27936 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
27937 (attr length): Don't use arm_sync_loop_insns.
27938 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
27939 (movsfcc, movdfcc): Likewise.
27940 * config/arm/constraints.md (Ua): New.
27941 * config/arm/prediates.md (mem_noofs_operand): New.
27942 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
27943 (sync_clobber, sync_t2_reqd): Remove.
27944 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
27945 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
27946 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
27947 (arm_sync_compare_and_swap<SIDI>): Remove.
27948 (arm_sync_compare_and_swap<NARROW>): Remove.
27949 (arm_sync_lock_test_and_set<SIDI>): Remove.
27950 (arm_sync_lock_test_and_set<NARROW>): Remove.
27951 (arm_sync_new_<syncop><SIDI>): Remove.
27952 (arm_sync_new_<syncop><NARROW>): Remove.
27953 (arm_sync_new_nand<SIDI>): Remove.
27954 (arm_sync_new_nand<NARROW>): Remove.
27955 (arm_sync_old_<syncop><SIDI>): Remove.
27956 (arm_sync_old_<syncop><NARROW>): Remove.
27957 (arm_sync_old_nand<SIDI>): Remove.
27958 (arm_sync_old_nand<NARROW>): Remove.
27959 (*memory_barrier): Merge arm_output_memory_barrier.
27960 (atomic_compare_and_swap<QHSD>): New.
27961 (atomic_compare_and_swap<NARROW>_1): New.
27962 (atomic_compare_and_swap<SIDI>_1): New.
27963 (atomic_exchange<QHSD>): New.
27964 (cas_cmp_operand, cas_cmp_str): New.
27965 (atomic_op_operand, atomic_op_str): New.
27966 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
27967 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
27968 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
27969 (arm_load_exclusive<NARROW>): New.
27970 (arm_load_exclusivesi, arm_load_exclusivedi): New.
27971 (arm_store_exclusive<QHSD>): New.
27972
279732012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
df5a9a7c
MM
27974
27975 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
27976 reload patterns if -mvsx-scalar-memory.
27977
27978 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
27979 generated, even -mno-vsx-scalar-double was used.
27980 (vsx_xscvdpsp_scalar): Likewise.
27981 (vsx_xscvspdp_scalar2): Likewise.
27982
243b92d1
TV
279832012-01-09 Tom de Vries <tom@codesourcery.com>
27984 Andrew Pinski <apinski@cavium.com>
27985
6fcebe79 27986 PR debug/51471
f148a434
UB
27987 * reorg.c (fill_slots_from_thread): Don't speculate
27988 frame-related insns.
243b92d1 27989
ef2be249
RS
279902012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
27991
27992 * sched-int.h (bb_note): Move to...
27993 * basic-block.h: ...here.
27994 * haifa-sched.c (bb_note): Move to...
27995 * cfgrtl.c: ...here.
27996 * function.c (next_block_for_reg): New function.
27997 (move_insn_for_shrink_wrap): Likewise.
27998 (prepare_shrink_wrap): Rewrite to use the above.
27999
345ae177
AH
280002012-01-09 Aldy Hernandez <aldyh@redhat.com>
28001
28002 * gimple.c (is_gimple_non_addressable): Remove.
28003 * gimple.h: Remove is_gimple_non_addressable.
28004 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
28005 is_gimple_non_addressable.
28006 * trans-mem.c (expand_assign_tm): Same.
28007
06468229
RG
280082012-01-09 Richard Guenther <rguenther@suse.de>
28009
28010 PR tree-optimization/51775
28011 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
28012 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
28013
12aa62e9
MGD
280142012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
28015
28016 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
28017 tuning parameters.
28018 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
28019
fdff9f3d
RB
280202012-01-09 Richard Guenther <rguenther@suse.de>
28021
28022 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
28023
d028561e
JH
280242012-01-08 Jan Hubicka <jh@suse.cz>
28025
28026 PR tree-optimize/51680
fdff9f3d
RB
28027 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
28028 on when known_vals needs to be computed; cleanup.
d028561e 28029
4c8836c6
JH
280302012-01-08 Jan Hubicka <jh@suse.cz>
28031
28032 PR tree-optimize/51694
28033 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
28034
e478624f
JW
280352012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
28036
28037 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
28038 for -std=c++98 and -std=c++11 too.
28039
b78384e0
CLT
280402012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
28041
28042 * cfgloop.c (cancel_loop): Add free() of bbs array.
28043
f45b2a8a
JH
280442012-01-07 Jan Hubicka <jh@suse.cz>
28045
28046 PR tree-optimization/51600
28047 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
28048 that benefits small functions.
28049
280502012-01-07 Jan Hubicka <jh@suse.cz>
28051
28052 * ipa-inline.c (want_inline_small_function_p): Fix formating.
28053
db22a743
JH
280542012-01-07 Jan Hubicka <jh@suse.cz>
28055
28056 PR tree-optimization/51680
28057 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
28058 whose inlining reduce unit size.
28059
faead9f7
AO
280602012-01-07 Alexandre Oliva <aoliva@redhat.com>
28061
28062 PR bootstrap/51725
28063 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
28064 Add canonical node to containing_mem chain after the non-canonical
28065 one, even if there weren't any locs to propagate.
28066 (remove_useless_values): Keep only canonical values.
28067 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
28068 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
28069 canonicalize mem_chain elements that are not discarded.
28070
b71d7f85
JJ
280712012-01-06 Jakub Jelinek <jakub@redhat.com>
28072
0850f694
JJ
28073 PR target/47333
28074 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
28075 before emitting functions.
28076
b71d7f85
JJ
28077 PR gcov-profile/50127
28078 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
28079 clear_aux_for_blocks.
28080
7483eef8
AO
280812012-01-06 Alexandre Oliva <aoliva@redhat.com>
28082
28083 PR debug/51746
28084 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
28085
86d71fca
AC
280862012-01-06 Arnaud Charlet <charlet@adacore.com>
28087
28088 * c-decl.c (ext_block): Moved up.
28089 (collect_all_refs, for_each_global_decl): Take ext_block into account.
28090
17719d09
HS
280912012-01-06 Han Shen <shenhan@google.com>
28092
28093 Translate built-in include paths for sysroot.
28094 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
28095 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
28096
28097 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
28098 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
28099
28100 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
28101 control whether sysroot should be prepended to gxx include dir.
28102
28103 * configure: Regenerate.
28104
b0c99997
TR
281052012-01-06 Torvald Riegel <triegel@redhat.com>
28106
28107 PR rtl-optimization/51771
f148a434 28108 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
b0c99997
TR
28109 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
28110
c3e686a3
EB
281112012-01-05 Eric Botcazou <ebotcazou@adacore.com>
28112
28113 PR tree-optimization/51315
28114 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
28115 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
28116
2d130b31
UB
281172012-01-05 Uros Bizjak <ubizjak@gmail.com>
28118
28119 PR target/51681
28120 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
28121 for shrp pattern. Correctly handle and fixup shift variable.
28122 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
28123
f8f75b16
JJ
281242012-01-05 Jakub Jelinek <jakub@redhat.com>
28125
28126 PR debug/51762
28127 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
28128 note when !ACCUMULATE_OUTGOING_ARGS.
28129
629c2cca
EB
281302012-01-05 Eric Botcazou <ebotcazou@adacore.com>
28131
28132 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
28133 condition.
28134 (extract_range_from_unary_expr_1): Avoid useless computations.
28135
1e69d24e
JJ
281362012-01-05 Jakub Jelinek <jakub@redhat.com>
28137
a3e6a37b
JJ
28138 PR rtl-optimization/51767
28139 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
28140 of jump_block and add an extra edge for degenerated asm gotos.
28141
36363ebb
JJ
28142 PR middle-end/51768
28143 * stmt.c (check_unique_operand_names): Don't ICE during error
28144 reporting if i is from labels chain.
28145
1e69d24e
JJ
28146 PR middle-end/44777
28147 * profile.c (branch_prob): Split bbs that have exit edge
28148 and need a fake entry edge too.
28149
56494762
JH
281502012-01-05 Jan Hubicka <jh@suse.cz>
28151
28152 PR middle-end/49710
28153 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
28154 unlooping loops.
28155
10d12a3e
RG
281562012-01-05 Richard Guenther <rguenther@suse.de>
28157
28158 PR lto/50490
28159 * tree-streamer-out.c (write_ts_optimization): New function.
28160 (streamer_write_tree_body): Call it.
28161 * tree-streamer-in.c (lto_input_ts_optimization): New function.
28162 (streamer_read_tree_body): Call it.
28163 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
28164
32be32af
JJ
281652012-01-05 Jakub Jelinek <jakub@redhat.com>
28166
28167 PR middle-end/51761
2d130b31 28168 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
32be32af
JJ
28169 * gimplify.c (gimplify_cleanup_point_expr): Save and set
28170 in_cleanup_point_expr before gimplify_stmt call and restore it
28171 afterwards.
28172 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
28173 in_cleanup_point_expr is false.
28174
5720c0dc
RG
281752012-01-05 Richard Guenther <rguenther@suse.de>
28176
28177 PR middle-end/51764
28178 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
28179 to c.opt.
28180 * toplev.c (process_options): Reject combining mudflap and LTO.
28181 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
28182
6ad024b4
RG
281832012-01-05 Richard Guenther <rguenther@suse.de>
28184
28185 PR tree-optimization/51760
28186 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
28187 not VARYING.
28188 (bit_value_unop): Handle UNDEFINED operands.
28189 (bit_value_binop): Likewise.
28190
543a341c
GJL
281912012-01-05 Georg-Johann Lay <avr@gjlay.de>
28192
28193 * config/avr/avr.c (avr_replace_prefix): Remove.
28194 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
28195 (avr_asm_function_rodata_section): Ditto.
28196 (avr_asm_select_section): Ditto.
28197
6bfd2688
MS
281982012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
28199
28200 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
28201 insertion.
28202
cbd65133
JJ
282032012-01-05 Jakub Jelinek <jakub@redhat.com>
28204
bfeb0869
JJ
28205 PR bootstrap/51648
28206 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
28207 calls that have any non-fake successor edges.
28208
cbd65133
JJ
28209 PR debug/51746
28210 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
28211
8594273a
EB
282122012-01-04 Eric Botcazou <ebotcazou@adacore.com>
28213
28214 PR tree-optimization/51624
28215 * tree-sra.c (build_ref_for_model): When replicating a chain of
28216 COMPONENT_REFs, stop as soon as the offset would become negative.
28217
5dc28f42
JJ
282182012-01-04 Jakub Jelinek <jakub@redhat.com>
28219
28220 PR debug/51695
28221 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
28222 in .debug_loc on the floor.
28223
03a9ba1e
AP
282242012-01-04 Andrew Pinski <apinski@cavium.com>
28225
28226 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
28227
770da00a
AP
282282012-01-04 Andrew Pinski <apinski@cavium.com>
28229 Adam Nemet <anemet@caviumnetworks.com>
28230
28231 * config/mips/mips.md (size): Add SI and DI.
28232 (SIZE): New mode attribute.
28233 (U): New code attribute.
28234 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
28235 (mips_lbux_<mode>): Delete.
28236 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
28237 (mips_lhx): Use gen_mips_lhx_extsi.
28238 (mips_lhx_<mode>): Delete.
28239 (mips_lwx): Delete.
28240 (mips_l<size>x): New expand.
28241 (mips_lwx_<mode>): Delete.
28242 (mips_l<GPR:size>x_<P:mode>): New pattern.
28243 (*mips_lw<u>x_<P:mode>_ext): Likewise.
28244 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
28245 * config/mips/mips.c (mips_lx_address_p): New function.
28246 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
28247 (dsp64): New availability predicate.
28248 (mips_builtins): Add an entry for __builtin_mips_ldx.
28249 * config/mips/mips.h (ISA_HAS_LBX): New define.
28250 (ISA_HAS_LBUX): Likewise.
28251 (ISA_HAS_LHX): Likewise.
28252 (ISA_HAS_LHUX): Likewise.
28253 (ISA_HAS_LWX): Likewise.
28254 (ISA_HAS_LWUX): Likewise.
28255 (ISA_HAS_LDX): Likewise.
28256 * doc/extend.texi (__builtin_mips_ldx): Document.
28257
e2b30a44
TG
282582012-01-04 Tristan Gingold <gingold@adacore.com>
28259
28260 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
28261 when long pointers are used.
28262 * config.build (*-*-*vms*): Handle all OpenVMS targets.
28263 (alpha64-dec-*vms*, alpha*-dec-*vms*)
28264 (ia64-hp-*vms*): Remove.
28265 * config/vms/xm-vms64.h: Delete.
28266
713b8dfb
AH
282672012-01-04 Aldy Hernandez <aldyh@redhat.com>
28268
28269 PR middle-end/51472
28270 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
28271
7ba65723
AH
282722012-01-04 Aldy Hernandez <aldyh@redhat.com>
28273
b6aa8c33 28274 * opts.c (finish_options): Remove duplicate sorry.
7ba65723 28275
3a54c456
AH
282762012-01-04 Aldy Hernandez <aldyh@redhat.com>
28277
28278 PR middle-end/51696
28279 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
28280 correctly.
28281
f5a3d840
RG
282822012-01-04 Richard Guenther <rguenther@suse.de>
28283
28284 PR middle-end/51750
28285 * tree.c (size_low_cst): New function.
28286 * tree.h (size_low_cst): Declare.
28287 * fold-const.c (fold_comparison): Use it to extract the low
28288 part of the POINTER_PLUS_EXPR offset.
28289
299c4b5f
GJL
282902012-01-04 Georg-Johann Lay <avr@gjlay.de>
28291
28292 Fix clearing ZERO_REG
28293 * config/avr/avr.md (cc): Add alternative "ldi".
28294 (movqi_insn): Use it in cc attribute.
28295 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
28296 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
28297 (output_reload_insisf): Use ZERO_REG to pre-clear register.
28298
925b0ed8
AK
282992012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28300
28301 * configure: Regenerate.
28302
b4cf8c9d
RG
283032012-01-04 Richard Guenther <rguenther@suse.de>
28304
28305 PR tree-optimization/49651
28306 * tree-ssa-structalias.c (type_can_have_subvars): New function.
28307 (var_can_have_subvars): Use it.
2d130b31 28308 (get_constraint_for_1): Only consider subfields if there can be any.
b4cf8c9d 28309
c067f6cf
JJ
283102012-01-03 Jakub Jelinek <jakub@redhat.com>
28311
e30afafb 28312 PR bootstrap/51725
2d130b31
UB
28313 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
28314 to its new canonical_cselib_val and the cselib_val was in
28315 first_containing_mem chain, but the canonical_cselib_val was not,
28316 add the latter into the chain.
e30afafb
JJ
28317 (cselib_invalidate_mem): Compare canonical_cselib_val of
28318 addr_list chain elt with v.
28319
c067f6cf
JJ
28320 PR pch/51722
28321 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
28322 dwarf2out_undef): Allocate e.info using ggc_strdup instead
28323 of xstrdup.
28324 (output_macinfo_op): Don't ggc_strdup fd->filename.
28325 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
28326 then ggc_strdup it. Don't free inc->info or cur->info.
28327 (output_macinfo): Don't free ref->info or file->info.
28328
5d2eb24b
IR
283292012-01-03 Ira Rosen <irar@il.ibm.com>
28330
28331 PR tree-optimization/51269
28332 * tree-vect-loop-manip.c (set_prologue_iterations): Make
28333 first_niters a pointer.
28334 (slpeel_tree_peel_loop_to_edge): Likewise.
28335 (vect_do_peeling_for_loop_bound): Update call to
28336 slpeel_tree_peel_loop_to_edge.
28337 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
28338 here. Remove it from the parameters list.
28339 (vect_do_peeling_for_alignment): Update calls and compute
28340 wide_prolog_niters.
28341
c3e85659
RG
283422012-01-03 Richard Guenther <rguenther@suse.de>
28343
28344 PR tree-optimization/51070
28345 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
28346 Properly handle calls.
28347
f1749ec1
RG
283482012-01-03 Richard Guenther <rguenther@suse.de>
28349
28350 PR tree-optimization/51692
28351 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
28352 the LHS of allocation stmts.
28353
75291c57
OH
283542012-01-03 Olivier Hainque <hainque@adacore.com>
28355
28356 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
28357
6588d711
OH
283582012-01-03 Olivier Hainque <hainque@adacore.com>
28359
28360 * collect2.c (main): In AIX specific computations for vector
28361 insertions, use CONST_CAST2 to cast from char ** to const char **.
28362
f3321fd7
RG
283632012-01-03 Richard Guenther <rguenther@suse.de>
28364
28365 PR debug/51650
28366 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
28367 the context of a limbo DIE when it does not already exist.
28368
a9730200
JJ
283692012-01-03 Jakub Jelinek <jakub@redhat.com>
28370
28371 PR tree-optimization/51719
28372 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
28373 but direct call is, clear direct call's lhs and don't add fallthrough
28374 edge from dcall_bb to join_bb and PHIs.
28375
be5de7a1
AK
283762012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28377
28378 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
28379 the instructions emitted by the pattern.
28380 ("*TDC_insn_<mode>"): Add comment.
28381
8b3c2951
RG
283822012-01-03 Richard Guenther <rguenther@suse.de>
28383
28384 PR middle-end/51730
28385 * fold-const.c (fold_comparison): Properly canonicalize
28386 tree offset and HOST_WIDE_INT bit position.
28387
96fda42c
UB
283882012-01-02 Uros Bizjak <ubizjak@gmail.com>
28389
28390 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
28391 operands for extzv pattern.
28392
a4f436ff
JJ
283932012-01-02 Jakub Jelinek <jakub@redhat.com>
28394
28395 PR bootstrap/51725
28396 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
28397 on mem_elt first.
28398
842322d3
SL
283992012-01-02 Sandra Loosemore <sandra@codesourcery.com>
28400
28401 * doc/invoke.texi (-flto and related options): Copy-edit.
28402
21e8e84d
RS
284032012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
28404
96fda42c 28405 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
21e8e84d 28406
06046046
JJ
284072012-01-02 Jakub Jelinek <jakub@redhat.com>
28408
28409 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
28410 New patterns.
28411
0d8f5d62
RS
284122012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
28413
28414 * expr.h (move_by_pieces_ninsns): Declare.
28415 * expr.c (move_by_pieces_ninsns): Make external.
28416 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
28417 (mips_store_by_pieces_p): Likewise.
28418 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
28419 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
28420 * config/mips/mips.c (mips_move_by_pieces_p): New function.
28421 (mips_store_by_pieces_p): Likewise.
28422
9f929ce6
JJ
284232012-01-02 Jakub Jelinek <jakub@redhat.com>
28424
28425 * passes.c (register_one_dump_file): Free full_name.
28426
96fda42c 28427 * reload1.c (reload): Don't allocate reg_max_ref_width here.
9f929ce6
JJ
28428 (calculate_elim_costs_all_insns): Free offsets_at and
28429 offsets_known_at at the end and clear the pointers.
28430
ce23293b
GJL
284312012-01-02 Georg-Johann Lay <avr@gjlay.de>
28432
28433 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
28434 this option introduced in r180739.
28435
884f56d1
GJL
284362012-01-02 Georg-Johann Lay <avr@gjlay.de>
28437
28438 PR target/51345
28439 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
28440 (tmake_file target=avr): Add avr/t-multilib.
28441
28442 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
28443 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
28444 * config/avr/genmultilib.awk: New file.
28445 * config/avr/t-multilib: New auto-generated file.
28446 * config/avr/multilib.h: New auto-generated file.
28447 * config/avr/t-avr (AVR_MCUS): New variable.
28448 (genopt.sh): Use it.
28449 (s-mlib): Depend on t-multilib.
28450 (t-multilib, multilib.h): New dependencies.
28451 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
28452 (MULTILIB_OPTIONS): Remove.
28453 (MULTILIB_MATCHES): Remove.
28454 (MULTILIB_DIRNAMES): Remove.
28455 (MULTILIB_EXCEPTIONS): Remove:
28456 * config/avr/genopt.sh: Don't use hard coded file name;
28457 pass AVR_MCUS from t-avr instead.
28458
9ecd3a64
GJL
284592012-01-02 Georg-Johann Lay <avr@gjlay.de>
28460
28461 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
28462
8c57e547
GJL
284632012-01-02 Georg-Johann Lay <avr@gjlay.de>
28464
28465 Implement light-weight DImode support.
28466 * config/avr/avr-dimode.md: New file.
28467 * config/avr/avr.md: Include it.
28468 (adjust_len): Add plus64, compare64.
28469 (HIDI): Remove code iterator.
28470 (code_stdname): New code attribute.
28471 (rotx, rotsmode): Remove DI.
28472 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
28473 as code iterator.
28474 * config/avr/avr-protos.h (avr_have_dimode): New.
28475 (avr_out_plus64, avr_out_compare64): New.
28476 * config/avr/avr.c (avr_out_compare): Handle DImode.
28477 (avr_have_dimode): New variable definition and initialization.
28478 (avr_out_compare64, avr_out_plus64): New functions.
28479 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
28480 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
28481 (avr_compare_pattern): Skip DImode comparisons.
28482
8b61e863
RE
284832012-01-02 Revital Eres <revital.eres@linaro.org>
28484
28485 * ddg.c (def_has_ccmode_p): New function.
28486 (add_cross_iteration_register_deps,
28487 create_ddg_dep_from_intra_loop_link): Call it.
28488
ba768e18
RG
284892012-01-02 Richard Guenther <rguenther@suse.de>
28490
28491 PR other/51679
28492 * invoke.texi (fassociative-math): Remove spurious paranthesis.
28493
66f1b195
JJ
284942012-01-01 Jakub Jelinek <jakub@redhat.com>
28495
28496 * gcc.c (process_command): Update copyright notice dates.
28497 * gcov.c (print_version): Likewise.
28498 * gcov-dump.c (print_version): Likewise.
28499 * mips-tfile.c (main): Likewise.
28500 * mips-tdump.c (main): Likewise.
28501
f2c74cc4
IR
285022012-01-01 Ira Rosen <irar@il.ibm.com>
28503
28504 PR tree-optimization/51704
28505 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
96fda42c 28506 a use is inside the basic block or loop before accessing its vect info.
f2c74cc4 28507
06f1716b
JH
285082012-01-01 Jan Hubicka <jhjh@suse.cz>
28509
28510 PR rtl-optimization/51069
28511 * cfgloopmanip.c (remove_path): Removing path making irreducible
28512 region unconditional makes BB part of the region.
28513
45a5b21a
JJ
285142012-01-01 Jakub Jelinek <jakub@redhat.com>
28515
28516 PR tree-optimization/51683
28517 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
28518 calls with side-effects.
28519 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
ad41bd84 28520\f
a7f45047 28521Copyright (C) 2012 Free Software Foundation, Inc.
ad41bd84
JM
28522
28523Copying and distribution of this file, with or without modification,
28524are permitted in any medium without royalty provided the copyright
28525notice and this notice are preserved.